From gerrit-no-reply at lists.osmocom.org Mon Jun 1 04:45:15 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 1 Jun 2020 04:45:15 +0000 Subject: Change in osmo-mgw[master]: mgcp_vty: fix indentation In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18594 ) Change subject: mgcp_vty: fix indentation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I613f2ebcb06a01744d957e87e8b1215a141b43c4 Gerrit-Change-Number: 18594 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 01 Jun 2020 04:45: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 Jun 1 08:21:12 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 08:21:12 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: increase default T311 value to 10s In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18584 ) Change subject: srsenb_sib.conf.tmpl: increase default T311 value to 10s ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18584/1/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl File src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18584/1/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl at 109 PS1, Line 109: t311 = 10000; // in ms > So afaiu this is really the only important line changed right? [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18584 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: Ib7972cf6de4751fa7e614abceead2762f0218558 Gerrit-Change-Number: 18584 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 01 Jun 2020 08:21:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 08:22:52 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 08:22:52 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add run function to EPC In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 ) Change subject: epc: add run function to EPC ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536/2/src/osmo_gsm_tester/obj/epc.py File src/osmo_gsm_tester/obj/epc.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536/2/src/osmo_gsm_tester/obj/epc.py at 41 PS2, Line 41: self._run_node = run_node > self note: run node is actually part of this abstract class, so we should move the registering of "r [?] Sure. But I would consider this out of scope for this patch, no? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 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: Id86c61cbccd41b77f94f125d8d127e2ab5e46cd9 Gerrit-Change-Number: 18536 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 01 Jun 2020 08:22:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 09:04:53 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 09:04:53 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 to look at the new patch set (#3). Change subject: ms_srs: refactor UE state getter functions ...................................................................... ms_srs: refactor UE state getter functions rename UE helper functions to query RRC connected/idle state and adapt tests accordingly also add helper to retrieve assinged IP address Change-Id: I6cd057e34b4df6a1a73695355dd6406d7e039546 --- M src/osmo_gsm_tester/obj/ms.py M src/osmo_gsm_tester/obj/ms_ofono.py M src/osmo_gsm_tester/obj/ms_srs.py M sysmocom/suites/4g/handover.py M sysmocom/suites/4g/iperf3_dl.py M sysmocom/suites/4g/iperf3_ul.py M sysmocom/suites/4g/ping.py 7 files changed, 37 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/35/18535/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 09:04:53 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 09:04:53 +0000 Subject: Change in osmo-gsm-tester[master]: 4g_suite: add MT and MO test cases In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 to look at the new patch set (#3). Change subject: 4g_suite: add MT and MO test cases ...................................................................... 4g_suite: add MT and MO test cases add two new test cases to test paging (MT) and MO traffic Change-Id: I5c7639f2c6953964a5b6979bc35f59464dbda43f --- A sysmocom/suites/4g/rrc_idle_mo_ping.py A sysmocom/suites/4g/rrc_idle_mt_ping.py 2 files changed, 83 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/39/18539/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 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: I5c7639f2c6953964a5b6979bc35f59464dbda43f Gerrit-Change-Number: 18539 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 09:04:54 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 09:04:54 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf_tmpl: fix whitespaces References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 ) Change subject: srsenb_sib.conf_tmpl: fix whitespaces ...................................................................... srsenb_sib.conf_tmpl: fix whitespaces Change-Id: Ifbd3c8bd97d7e2d3f165e88f3358dce9e7e33067 --- M src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl 1 file changed, 16 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/23/18623/1 diff --git a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl index 70e642c..1ce8e96 100644 --- a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl @@ -9,18 +9,18 @@ ( { si_periodicity = 16; - si_mapping_info = []; // comma-separated array of SIB-indexes (from 3 to 13). + si_mapping_info = []; // comma-separated array of SIB-indexes (from 3 to 13). // Leave empty or commented to just scheduler sib2 } ); system_info_value_tag = 0; }; -sib2 = +sib2 = { rr_config_common_sib = { - rach_cnfg = + rach_cnfg = { num_ra_preambles = 52; preamble_init_rx_target_pwr = -104; @@ -30,11 +30,11 @@ mac_con_res_timer = 64; // in ms max_harq_msg3_tx = 4; }; - bcch_cnfg = + bcch_cnfg = { modification_period_coeff = 16; // in ms }; - pcch_cnfg = + pcch_cnfg = { default_paging_cycle = 32; // in rf nB = "1"; @@ -54,25 +54,25 @@ zero_correlation_zone_config = 5; }; }; - pdsch_cnfg = + pdsch_cnfg = { /* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1 */ p_b = 1; rs_power = 0; }; - pusch_cnfg = + pusch_cnfg = { n_sb = 1; hopping_mode = "inter-subframe"; pusch_hopping_offset = 2; enable_64_qam = false; // 64QAM PUSCH is not currently enabled - ul_rs = + ul_rs = { - cyclic_shift = 0; + cyclic_shift = 0; group_assignment_pusch = 0; - group_hopping_enabled = false; - sequence_hopping_enabled = false; + group_hopping_enabled = false; + sequence_hopping_enabled = false; }; }; pucch_cnfg = @@ -90,7 +90,7 @@ delta_flist_pucch = { format_1 = 0; - format_1b = 3; + format_1b = 3; format_2 = 1; format_2a = 2; format_2b = 2; @@ -110,13 +110,12 @@ n311 = 1; }; - freqInfo = + freqInfo = { - ul_carrier_freq_present = true; - ul_bw_present = true; - additional_spectrum_emission = 1; + ul_carrier_freq_present = true; + ul_bw_present = true; + additional_spectrum_emission = 1; }; time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. }; - -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 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: Ifbd3c8bd97d7e2d3f165e88f3358dce9e7e33067 Gerrit-Change-Number: 18623 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 09:04:55 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 09:04:55 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: increase default T311 value to 10s References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18624 ) Change subject: srsenb_sib.conf.tmpl: increase default T311 value to 10s ...................................................................... srsenb_sib.conf.tmpl: increase default T311 value to 10s this matches the default of Amarisoft eNB so tests can use the same values Change-Id: Ic81fb6428751305d8b37a25bddb0d018ca6f51f6 --- M src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/24/18624/1 diff --git a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl index 1ce8e96..ecd49e9 100644 --- a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl @@ -106,7 +106,7 @@ t301 = 100; // in ms t310 = 1000; // in ms n310 = 1; - t311 = 1000; // in ms + t311 = 10000; // in ms n311 = 1; }; -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18624 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: Ic81fb6428751305d8b37a25bddb0d018ca6f51f6 Gerrit-Change-Number: 18624 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 09:04:55 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 09:04:55 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: reduce RRC inactivity timer to 5s References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18625 ) Change subject: srsenb.conf.tmpl: reduce RRC inactivity timer to 5s ...................................................................... srsenb.conf.tmpl: reduce RRC inactivity timer to 5s the default value of 60s is too long to trigger errors in the handling of this timer. So a 5s timer is more likely to reveal potential issues during the test execution Change-Id: Id7a6739487c7875c4f26a47d05978c9ea9f33873 --- M src/osmo_gsm_tester/templates/srsenb.conf.tmpl 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/25/18625/1 diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index 4ff5ee8..295b8d2 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -274,7 +274,7 @@ #pregenerate_signals = false #tx_amplitude = 0.6 #link_failure_nof_err = 50 -#rrc_inactivity_timer = 60000 +rrc_inactivity_timer = 5000 #max_prach_offset_us = 30 #eea_pref_list = EEA0, EEA2, EEA1 #eia_pref_list = EIA2, EIA1, EIA0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18625 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: Id7a6739487c7875c4f26a47d05978c9ea9f33873 Gerrit-Change-Number: 18625 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 09:04:55 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 09:04:55 +0000 Subject: Change in osmo-gsm-tester[master]: handover.py: fix typo in test References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18626 ) Change subject: handover.py: fix typo in test ...................................................................... handover.py: fix typo in test Change-Id: I9a52a341d7575807d3e52460e1aa24732e3b3112 --- M sysmocom/suites/4g/handover.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/26/18626/1 diff --git a/sysmocom/suites/4g/handover.py b/sysmocom/suites/4g/handover.py index 6bb6456..bc49266 100755 --- a/sysmocom/suites/4g/handover.py +++ b/sysmocom/suites/4g/handover.py @@ -70,7 +70,7 @@ print("Exception while terminating process %r" % repr(process)) raise e -rest_str = 'Got %d successful handovers (>= %d) during %d seconds' % (num_handovers, threshold, duration) +res_str = 'Got %d successful handovers (>= %d) during %d seconds' % (num_handovers, threshold, duration) print(res_str) test.set_report_stdout(res_str) proc.terminate() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18626 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: I9a52a341d7575807d3e52460e1aa24732e3b3112 Gerrit-Change-Number: 18626 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 09:05:48 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 09:05:48 +0000 Subject: Change in osmo-gsm-tester[master]: enb: refactor ue_max_rate() and move helper function back to sub classes In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534 ) Change subject: enb: refactor ue_max_rate() and move helper function back to sub classes ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534/1/src/osmo_gsm_tester/obj/enb.py File src/osmo_gsm_tester/obj/enb.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534/1/src/osmo_gsm_tester/obj/enb.py at 85 PS1, Line 85: self._type = None > This looks non-related? right, I used another approach before but now it can go awawy -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534 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: I30fa7006906d101c53ba586fb06bced3945aa960 Gerrit-Change-Number: 18534 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 01 Jun 2020 09:05: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 Mon Jun 1 11:34:02 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 1 Jun 2020 11:34:02 +0000 Subject: Change in osmo-pcu[master]: BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/18387 to look at the new patch set (#7). Change subject: BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request ...................................................................... BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request Let's finally use the API we introduced in [1]. [1] I96df3352856933c9140177b2801a2c71f4134183 Change-Id: Ia15761c33c8048d35c7f7bc93dbea781dd0894b7 Related: OS#1548 --- M src/bts.cpp 1 file changed, 56 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/87/18387/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/18387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia15761c33c8048d35c7f7bc93dbea781dd0894b7 Gerrit-Change-Number: 18387 Gerrit-PatchSet: 7 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy 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 Jun 1 11:34:35 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 1 Jun 2020 11:34:35 +0000 Subject: Change in osmo-pcu[master]: bts: refactor handling and parsing of RACH.ind In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/18386 ) Change subject: bts: refactor handling and parsing of RACH.ind ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/18386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5fe7e0f51bf5c9eac073935cc4f4edd667c67c6e Gerrit-Change-Number: 18386 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 01 Jun 2020 11:34: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 Mon Jun 1 19:06:09 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 1 Jun 2020 19:06:09 +0000 Subject: Change in libosmo-sccp[master]: sccp2sua: fix typo: s/omso_sccp_addr/osmo_sccp_addr/ In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18613 ) Change subject: sccp2sua: fix typo: s/omso_sccp_addr/osmo_sccp_addr/ ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5c37177e9f62eff69bb9d0e7289ecb3c9f9e5f44 Gerrit-Change-Number: 18613 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 01 Jun 2020 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 Mon Jun 1 19:06:14 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 1 Jun 2020 19:06:14 +0000 Subject: Change in libosmo-sccp[master]: sccp2sua: fix typo: s/omso_sccp_addr/osmo_sccp_addr/ In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18613 ) Change subject: sccp2sua: fix typo: s/omso_sccp_addr/osmo_sccp_addr/ ...................................................................... sccp2sua: fix typo: s/omso_sccp_addr/osmo_sccp_addr/ Change-Id: I5c37177e9f62eff69bb9d0e7289ecb3c9f9e5f44 --- M src/sccp2sua.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, approved diff --git a/src/sccp2sua.c b/src/sccp2sua.c index 92a3907..c937231 100644 --- a/src/sccp2sua.c +++ b/src/sccp2sua.c @@ -109,7 +109,7 @@ return num_octets; } -/*! \brief Parse wire-encoded SCCP address into omso_sccp_addr +/*! \brief Parse wire-encoded SCCP address into osmo_sccp_addr * \param[out] out user-allocated output data structure * \param[in] addr wire-encoded SCCP address * \param[in] addrlen Size of \ref addr in bytes -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I5c37177e9f62eff69bb9d0e7289ecb3c9f9e5f44 Gerrit-Change-Number: 18613 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 19:42:57 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 1 Jun 2020 19:42:57 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 ) Change subject: ms_srs: refactor UE state getter functions ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/2/src/osmo_gsm_tester/obj/ms_srs.py File src/osmo_gsm_tester/obj/ms_srs.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/2/src/osmo_gsm_tester/obj/ms_srs.py at 309 PS2, Line 309: def is_rrc_idle(self): > Reminder: This still need to be addressed as agreed in comments from last version. The proposed approach didn't work, not sure if it has something to do with the wait() function. It returns: "rrc_idle_mt_ping.py:23: ERR: TypeError: 'bool' object is not callable" -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 01 Jun 2020 19:42:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 20:15:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 1 Jun 2020 20:15:54 +0000 Subject: Change in osmo-bts[master]: tests/tx_power: Speed up test In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18577 ) Change subject: tests/tx_power: Speed up test ...................................................................... tests/tx_power: Speed up test Otherwise test takes around 5 seconds due to each power ramping step waiting for 1 sec. Change-Id: I703e1137f30e4874ef40785bec6100b50b9633a7 --- M tests/tx_power/tx_power_test.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/tx_power/tx_power_test.c b/tests/tx_power/tx_power_test.c index 34fbeb7..9d38d83 100644 --- a/tests/tx_power/tx_power_test.c +++ b/tests/tx_power/tx_power_test.c @@ -197,6 +197,7 @@ { printf("Testing tx_power ramping for sysmoBTS 1020\n"); trx->power_params = tpp_1020; + trx->power_params.ramp.step_interval_sec = 0; /* speedup test */ trx->max_power_red = 0; power_ramp_start(trx, to_mdB(dBm), 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I703e1137f30e4874ef40785bec6100b50b9633a7 Gerrit-Change-Number: 18577 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 Jun 1 20:15:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 1 Jun 2020 20:15:55 +0000 Subject: Change in osmo-bts[master]: doc: Update vty reference xml file In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18578 ) Change subject: doc: Update vty reference xml file ...................................................................... doc: Update vty reference xml file Change-Id: I26c6522e6b5b87030dde61afacd637ff38b12303 --- M doc/manuals/vty/bts_vty_reference.xml 1 file changed, 280 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/vty/bts_vty_reference.xml b/doc/manuals/vty/bts_vty_reference.xml index d5621c8..a4c4be6 100644 --- a/doc/manuals/vty/bts_vty_reference.xml +++ b/doc/manuals/vty/bts_vty_reference.xml @@ -18,10 +18,11 @@ - + + @@ -163,6 +164,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -332,6 +396,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -555,6 +665,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -724,6 +897,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -845,6 +1064,13 @@ + + + + + + + config @@ -1327,6 +1553,12 @@ + + + + + + config-line @@ -1351,7 +1583,19 @@ config-e1_input - + + + + + + + + + + + + + @@ -1359,8 +1603,9 @@ - - + + + @@ -1412,6 +1657,23 @@ + + + + + + + + + + + + + + + + + @@ -1479,6 +1741,13 @@ + + + + + + + phy-inst @@ -1516,6 +1785,13 @@ + + + + + + + -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I26c6522e6b5b87030dde61afacd637ff38b12303 Gerrit-Change-Number: 18578 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 Jun 1 20:20:32 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 1 Jun 2020 20:20:32 +0000 Subject: Change in openbsc[master]: fix typo in osmo_bts_variant_names: s/omso/osmo/ References: Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/c/openbsc/+/18627 ) Change subject: fix typo in osmo_bts_variant_names: s/omso/osmo/ ...................................................................... fix typo in osmo_bts_variant_names: s/omso/osmo/ Change-Id: I4645da18fde48165c846ba714cd03e604aef5ad6 --- M openbsc/src/libcommon/gsm_data_shared.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/27/18627/1 diff --git a/openbsc/src/libcommon/gsm_data_shared.c b/openbsc/src/libcommon/gsm_data_shared.c index 75fe0b0..a97a2b9 100644 --- a/openbsc/src/libcommon/gsm_data_shared.c +++ b/openbsc/src/libcommon/gsm_data_shared.c @@ -87,7 +87,7 @@ { BTS_OSMO_LITECELL15, "osmo-bts-lc15" }, { BTS_OSMO_OCTPHY, "osmo-bts-octphy" }, { BTS_OSMO_SYSMO, "osmo-bts-sysmo" }, - { BTS_OSMO_TRX, "omso-bts-trx" }, + { BTS_OSMO_TRX, "osmo-bts-trx" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/18627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I4645da18fde48165c846ba714cd03e604aef5ad6 Gerrit-Change-Number: 18627 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 1 22:45:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 1 Jun 2020 22:45:17 +0000 Subject: Change in libosmo-netif[master]: src/stream: Work around more Linux kernel ABI breakage References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18628 ) Change subject: src/stream: Work around more Linux kernel ABI breakage ...................................................................... src/stream: Work around more Linux kernel ABI breakage Back in Change-Id Ia95dd1f9ffed9f743c049e05797b1a6f1f9f8c69 we tried to work-around kernel ABI breakage introduced in kernel >= v5.5, but it seems that there have already been similar ABI breakages in v4.11 and v4.12. See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/sctp.h?id=b6e6b5f1da7e8d092f86a4351802c27c0170c5a5 and https://marc.info/?l=linux-sctp&m=158729301516157&w=2 for the ost recent incarnation. See https://osmocom.org/issues/4573#note-6 for all known cases of SCTP_EVENTS ABI breakage. Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc --- M src/stream.c 1 file changed, 71 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/28/18628/1 diff --git a/src/stream.c b/src/stream.c index 6e4c461..6b8f5a0 100644 --- a/src/stream.c +++ b/src/stream.c @@ -73,6 +73,75 @@ #define MSG_NOSIGNAL 0 #endif +/* is any of the bytes from offset .. size in 'u8' non-zero? */ +static bool byte_nonzero(const uint8_t *u8, unsigned int offset, unsigned int u8_size) +{ + int j; + + for (j = offset; j < u8_size; j++) { + if (u8[j] != 0) + return true; + } + + return false; +} + +/* Attempt to work around Linux kernel ABI breakage + * + * The Linux kernel ABI for the SCTP_EVENTS socket option has been broken repeatedly. + * - until commit 35ea82d611da59f8bea44a37996b3b11bb1d3fd7 ( kernel < 4.11), the size is 10 bytes + * - in 4.11 it is 11 bytes + * - in 4.12 .. 5.4 it is 13 bytes + * - in kernels >= 5.5 it is 14 bytes + * + * This wouldn't be a problem if the kernel didn't have a "stupid" assumption that the structure + * size passed by userspace will match 1:1 the length of the structure at kernel compile time. In + * an ideal world, it would just use the known first bytes and assume the remainder is all zero. + * But as it doesn't do that, let's try to work around this */ +static int sctp_setsockopt_events_linux_workaround(int fd, const struct sctp_event_subscribe *event) +{ + unsigned int size = sizeof(*event); + const uint8_t try_sizes[] = { 14, 13, 11, 10 }; + uint8_t buf[14]; + int rc, i; + + /* first try to use the userspace structure as-is */ + rc = setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, event, sizeof(*event)); + if (rc != -EINVAL) + return rc; + + /* next, try with shorter sizes (older kernel + new userspace headers) */ + for (i = 0; i < ARRAY_SIZE(try_sizes); i++) { + if (try_sizes[i] >= size) + continue; + + /* ensure that if the caller requested one of the "later" options we don't + * truncate */ + if (byte_nonzero((const uint8_t *)event, try_sizes[i], size)) + continue; + + rc = setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, event, try_sizes[i]); + if (rc != -EINVAL) + return rc; + } + + /* finally, try with larger sizes (newer kernel + old userspace headers) */ + if (size < sizeof(buf)) { + memset(buf, 0, sizeof(buf)); + memcpy(buf, event, size); + for (i = 0; i < ARRAY_SIZE(try_sizes); i++) { + if (try_sizes[i] < size) + continue; + + rc = setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, buf, try_sizes[i]); + if (rc != -EINVAL) + return rc; + } + } + + return rc; +} + static int sctp_sock_activate_events(int fd) { #ifdef HAVE_LIBSCTP @@ -89,28 +158,10 @@ event.sctp_shutdown_event = 1; /* IMPORTANT: Do NOT enable sender_dry_event here, see * https://bugzilla.redhat.com/show_bug.cgi?id=1442784 */ - rc = setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, - &event, sizeof(event)); - /* - * Attempt to work around kernel ABI breakage - * - * In kernel commit b6e6b5f1da7e8d092f86a4351802c27c0170c5a5, the - * struct sctp_event_subscribe had a u8 field added to it at the end, thus - * breaking ABI. - * See https://marc.info/?l=linux-sctp&m=158729301516157&w=2 for discussion. - * - * We attempt to work around the issue where the kernel header are new - * and running kernel is old, by forcing the size of the struct to 13 which - * is the "old" size - */ - if ((rc < 0) && (sizeof(event) != 13)) - rc = setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, - &event, 13); - + rc = sctp_setsockopt_events_linux_workaround(fd, &event); if (rc < 0) - LOGP(DLINP, LOGL_ERROR, "couldn't activate SCTP events " - "on FD %u\n", fd); + LOGP(DLINP, LOGL_ERROR, "couldn't activate SCTP events on FD %u\n", fd); return rc; #else return -1; -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc Gerrit-Change-Number: 18628 Gerrit-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 Jun 2 08:21:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:21:14 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add run function to EPC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 ) Change subject: epc: add run function to EPC ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536/2/src/osmo_gsm_tester/obj/epc.py File src/osmo_gsm_tester/obj/epc.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536/2/src/osmo_gsm_tester/obj/epc.py at 41 PS2, Line 41: self._run_node = run_node > Sure. [?] Yep indeed -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 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: Id86c61cbccd41b77f94f125d8d127e2ab5e46cd9 Gerrit-Change-Number: 18536 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Tue, 02 Jun 2020 08:21:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: srs_andre 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 Jun 2 08:21:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:21:35 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add run function to EPC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 ) Change subject: epc: add run function to EPC ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 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: Id86c61cbccd41b77f94f125d8d127e2ab5e46cd9 Gerrit-Change-Number: 18536 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Tue, 02 Jun 2020 08:21: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 Jun 2 08:23:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:23:11 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf_tmpl: fix whitespaces In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 ) Change subject: srsenb_sib.conf_tmpl: fix whitespaces ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 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: Ifbd3c8bd97d7e2d3f165e88f3358dce9e7e33067 Gerrit-Change-Number: 18623 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 08:23: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 Jun 2 08:23:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:23:21 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: increase default T311 value to 10s In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18624 ) Change subject: srsenb_sib.conf.tmpl: increase default T311 value to 10s ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18624 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: Ic81fb6428751305d8b37a25bddb0d018ca6f51f6 Gerrit-Change-Number: 18624 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 08:23:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 08:23:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:23:34 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: reduce RRC inactivity timer to 5s In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18625 ) Change subject: srsenb.conf.tmpl: reduce RRC inactivity timer to 5s ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18625 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: Id7a6739487c7875c4f26a47d05978c9ea9f33873 Gerrit-Change-Number: 18625 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 08:23:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 08:24:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:24:02 +0000 Subject: Change in osmo-gsm-tester[master]: handover.py: fix typo in test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18626 ) Change subject: handover.py: fix typo in test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18626 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: I9a52a341d7575807d3e52460e1aa24732e3b3112 Gerrit-Change-Number: 18626 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 08:24: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 Jun 2 08:33:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:33:00 +0000 Subject: Change in openbsc[master]: fix typo in osmo_bts_variant_names: s/omso/osmo/ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/openbsc/+/18627 ) Change subject: fix typo in osmo_bts_variant_names: s/omso/osmo/ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/18627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I4645da18fde48165c846ba714cd03e604aef5ad6 Gerrit-Change-Number: 18627 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 08:33:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 08:34:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 08:34:32 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 ) Change subject: ms_srs: refactor UE state getter functions ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/2/src/osmo_gsm_tester/obj/ms_srs.py File src/osmo_gsm_tester/obj/ms_srs.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/2/src/osmo_gsm_tester/obj/ms_srs.py at 309 PS2, Line 309: def is_rrc_idle(self): > The proposed approach didn't work, not sure if it has something to do with the wait() function. [?] ah indeed. You need to use lambda function. See for instance: sysmocom/suites/debug/interactive.py 150: wait(lambda: not ms.is_attached()) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Tue, 02 Jun 2020 08:34:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: srs_andre 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 Jun 2 08:53:36 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 2 Jun 2020 08:53:36 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: add PRACH, reestablishment and paging counter In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 ) Change subject: ms_srs: add PRACH, reestablishment and paging counter ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538/1/src/osmo_gsm_tester/obj/ms_srs.py File src/osmo_gsm_tester/obj/ms_srs.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538/1/src/osmo_gsm_tester/obj/ms_srs.py at 358 PS1, Line 358: return self._get_counter_stdout('HO successful') > Beign all these a one line, it makes sense to drop the functions and use the one-lines in get_counte [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 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: I592ace7c38d98bfbbec5001a3cdfffe21733ef9f Gerrit-Change-Number: 18538 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Tue, 02 Jun 2020 08:53:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 09:27:30 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 09:27:30 +0000 Subject: Change in openbsc[master]: fix typo in osmo_bts_variant_names: s/omso/osmo/ In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change. ( https://gerrit.osmocom.org/c/openbsc/+/18627 ) Change subject: fix typo in osmo_bts_variant_names: s/omso/osmo/ ...................................................................... fix typo in osmo_bts_variant_names: s/omso/osmo/ Change-Id: I4645da18fde48165c846ba714cd03e604aef5ad6 --- M openbsc/src/libcommon/gsm_data_shared.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/openbsc/src/libcommon/gsm_data_shared.c b/openbsc/src/libcommon/gsm_data_shared.c index 75fe0b0..a97a2b9 100644 --- a/openbsc/src/libcommon/gsm_data_shared.c +++ b/openbsc/src/libcommon/gsm_data_shared.c @@ -87,7 +87,7 @@ { BTS_OSMO_LITECELL15, "osmo-bts-lc15" }, { BTS_OSMO_OCTPHY, "osmo-bts-octphy" }, { BTS_OSMO_SYSMO, "osmo-bts-sysmo" }, - { BTS_OSMO_TRX, "omso-bts-trx" }, + { BTS_OSMO_TRX, "osmo-bts-trx" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/18627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: I4645da18fde48165c846ba714cd03e604aef5ad6 Gerrit-Change-Number: 18627 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 10:06:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:06:43 +0000 Subject: Change in osmo-msc[master]: add full SDP codec information to the MNCC socket In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/15953 ) Change subject: add full SDP codec information to the MNCC socket ...................................................................... Patch Set 6: (7 comments) https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/cc_sdp.c File src/libmsc/cc_sdp.c: https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/cc_sdp.c at 10 PS6, Line 10: /* In order of preference. TODO: make configurable */ Are we adding regression here? Wasn't it already configurable before? https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/cc_sdp.c at 11 PS6, Line 11: static const enum gsm48_bcap_speech_ver mobile_codecs[] = { Not sure if it really makes sense having this static here. https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/cc_sdp.c at 107 PS6, Line 107: for (a->payload_type = 96; a->payload_type <= 127; a->payload_type++) { would be great having defines for this numbers (96,127). https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/codec_sdp_cc_t9n.c File src/libmsc/codec_sdp_cc_t9n.c: https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/codec_sdp_cc_t9n.c at 170 PS6, Line 170: const struct codec_mapping *codec_mapping_by_gsm0808_speech_codec_type(enum gsm0808_speech_codec_type sct, uint16_t cfg) either fix the TODO or mark cfg as unused for the compiler. https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/gsm_04_08_cc.c File src/libmsc/gsm_04_08_cc.c: https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/gsm_04_08_cc.c at 1261 PS6, Line 1261: GSM48_PDISC_CC | (trans->transaction_id << 4), wrong indentation. https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/sdp_msg.c File src/libmsc/sdp_msg.c: https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/src/libmsc/sdp_msg.c at 558 PS6, Line 558: if (codec->rate != 8000) Next time, please split this kind of stuff into separate commits for easier review. https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/tests/msc_vlr/msc_vlr_test_call.err File tests/msc_vlr/msc_vlr_test_call.err: https://gerrit.osmocom.org/c/osmo-msc/+/15953/6/tests/msc_vlr/msc_vlr_test_call.err at 429 PS6, Line 429: This empty line in stderr (libosmocore log) looks susp?cious.As if you are adding an extra \n somewhere. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/15953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I8c3b2de53ffae4ec3a66b9dabf308c290a2c999f Gerrit-Change-Number: 15953 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:06:43 +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 Jun 2 10:10:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:10:07 +0000 Subject: Change in osmo-bsc[master]: Split GSM_BTS_TYPE_OSMOBTS to individual BTS types In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18616 ) Change subject: Split GSM_BTS_TYPE_OSMOBTS to individual BTS types ...................................................................... Patch Set 1: Code-Review-1 Agree with laforge: * Fine moving sysmobts->osmo-bts (and keep support for sysmobts for backward compatibility) * Handle differences between osmo-bts implementations by means of features. -- 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: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:10: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 Jun 2 10:12:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:12:41 +0000 Subject: Change in libosmocore[master]: bts_features: fix: properly check the result of bitvec_get_bit_pos() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18619 ) Change subject: bts_features: fix: properly check the result of bitvec_get_bit_pos() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h File include/osmocom/gsm/bts_features.h: https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h at 43 PS2, Line 43: return bitvec_get_bit_pos(features, feature) == ONE; shouldn't we better assert() in this case? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1ad92e7654a806bb920ae9507c88a122e8d09f0 Gerrit-Change-Number: 18619 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:12:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 10:17:32 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 10:17:32 +0000 Subject: Change in libosmocore[master]: bts_features: fix: properly check the result of bitvec_get_bit_pos() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18619 ) Change subject: bts_features: fix: properly check the result of bitvec_get_bit_pos() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h File include/osmocom/gsm/bts_features.h: https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h at 43 PS2, Line 43: return bitvec_get_bit_pos(features, feature) == ONE; > shouldn't we better assert() in this case? I don't think so. Imagine you're running an old version of osmo-bsc and the recent version of osmo-bts that has some new features (and thus sends a longer feature vector). We don't want to crash the whole BSC just because of that, right? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1ad92e7654a806bb920ae9507c88a122e8d09f0 Gerrit-Change-Number: 18619 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:17:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 10:18:23 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 10:18:23 +0000 Subject: Change in libosmocore[master]: bts_features: fix: properly check the result of bitvec_get_bit_pos() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18619 ) Change subject: bts_features: fix: properly check the result of bitvec_get_bit_pos() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h File include/osmocom/gsm/bts_features.h: https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h at 43 PS2, Line 43: return bitvec_get_bit_pos(features, feature) == ONE; > I don't think so. [?] We could print a warning instead ;) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1ad92e7654a806bb920ae9507c88a122e8d09f0 Gerrit-Change-Number: 18619 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:18:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Vadim Yanitskiy 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 Jun 2 10:21:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:21:47 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 3: (3 comments) Please add bts_model_get/unset/set_flag() or alike APIs. https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/bts.c File src/common/bts.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/bts.c at 261 PS3, Line 261: if (~trx->bts->flags & BTS_IMPL_FLAG_MS_PWR_CTRL_DSP) I would really welcome a function helper for this, in order to: * Avoid boolean math in lots of places (and hence having to pay attention to it) * Easily finding where internal features are checked/used/set. Also because it's something all bts_model are using, so it makes sense to have some sort of abstraction to make it easier when adding a new model. https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/oml.c at 176 PS3, Line 176: msgb_tl16v_put(msg, NM_ATT_MANUF_ID, _NUM_BTS_FEAT/8 + 1, bts->features->data); isn't there an API to get the data pointer? https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/vty.c at 845 PS3, Line 845: for (i = 0, no_features = true; i < sizeof(bts->flags) * 8; i++) { features = false, then setting it to true and checking if (!features) is easier to understand :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:21: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 Tue Jun 2 10:26:56 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 10:26:56 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest References: Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18629 ) Change subject: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest ...................................................................... ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest Unfortunately, we have to revert a part of change [1], because it broke ttcn3-msc-test-latest. The reason is that the latest release of osmo-msc does not support 'timer vlr T3212 30'. Change-Id: Iaeb6f1ffee9286394654bc3cf9d985ace7829110 --- M ttcn3-msc-test/osmo-msc.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/29/18629/1 diff --git a/ttcn3-msc-test/osmo-msc.cfg b/ttcn3-msc-test/osmo-msc.cfg index fe7b4cb..a713786 100644 --- a/ttcn3-msc-test/osmo-msc.cfg +++ b/ttcn3-msc-test/osmo-msc.cfg @@ -71,6 +71,7 @@ authentication optional rrlp mode none mm info 0 + periodic location update 30 msc assign-tmsi cs7-instance-a 0 @@ -78,7 +79,6 @@ mgw remote-ip 172.18.1.103 emergency-call route-to-msisdn 112 mncc external /data/unix/mncc - timer vlr T3212 30 mncc-int default-codec tch-f fr default-codec tch-h hr -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iaeb6f1ffee9286394654bc3cf9d985ace7829110 Gerrit-Change-Number: 18629 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 10:26:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:26:57 +0000 Subject: Change in osmo-pcu[master]: BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/18387 ) Change subject: BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/18387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia15761c33c8048d35c7f7bc93dbea781dd0894b7 Gerrit-Change-Number: 18387 Gerrit-PatchSet: 7 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10: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 Tue Jun 2 10:30:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:30:21 +0000 Subject: Change in osmo-pcu[master]: bts: refactor handling and parsing of RACH.ind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/18386 ) Change subject: bts: refactor handling and parsing of RACH.ind ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/18386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5fe7e0f51bf5c9eac073935cc4f4edd667c67c6e Gerrit-Change-Number: 18386 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:30:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 10:41:27 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 10:41:27 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/bts.c File src/common/bts.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/bts.c at 261 PS3, Line 261: if (~trx->bts->flags & BTS_IMPL_FLAG_MS_PWR_CTRL_DSP) > I would really welcome a function helper for this, in order to: [?] You're definitely trying to turn Osmocom into Helpercom ;) In any case, I will introduce a function to check if a flag is set. Setting a flag (bts->flags |= BTS_IMPL_FLAG_FOO) is super easy and clear, so it needs no API IMHO. https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/oml.c at 176 PS3, Line 176: msgb_tl16v_put(msg, NM_ATT_MANUF_ID, _NUM_BTS_FEAT/8 + 1, bts->features->data); > isn't there an API to get the data pointer? API for 'foo->data'? Is it really something that requires API? https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/3/src/common/vty.c at 845 PS3, Line 845: for (i = 0, no_features = true; i < sizeof(bts->flags) * 8; i++) { > features = false, then setting it to true and checking if (!features) is easier to understand :) This is unrelated. I am (re)using the existing variable with its original name. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:41: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 Jun 2 10:42:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:42:53 +0000 Subject: Change in libosmo-netif[master]: src/stream: Work around more Linux kernel ABI breakage In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18628 ) Change subject: src/stream: Work around more Linux kernel ABI breakage ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1//COMMIT_MSG at 14 PS1, Line 14: and https://marc.info/?l=linux-sctp&m=158729301516157&w=2 for the ost typo: most https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1/src/stream.c File src/stream.c: https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1/src/stream.c at 100 PS1, Line 100: * But as it doesn't do that, let's try to work around this */ In general, I think it is worth finding out the requried size only once and storing it in a static size_t sctp_setsockopt_size once it's found to work, and then simply call setsokopt directly if that static var is != 0. https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1/src/stream.c at 121 PS1, Line 121: continue; AFAIU this probably deserves logging and error and if you end up here you can already return. So that means for instance size=11 and we failed, so we try with try_sizes[i]=10. If we want to set even in 11th byte, we won't be able and we don't need to continue since we'll never be able to set it. That's also why an error log is required. https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1/src/stream.c at 131 PS1, Line 131: memcpy(buf, event, size); memcpy(buf, event, size); memset(buf+size, 0, sizeof(buf) - size); https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1/src/stream.c at 140 PS1, Line 140: } Probably worth logging in else {} here for new-to-come kernels. -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc Gerrit-Change-Number: 18628 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:42:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 10:44:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:44:27 +0000 Subject: Change in libosmocore[master]: bts_features: fix: properly check the result of bitvec_get_bit_pos() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18619 ) Change subject: bts_features: fix: properly check the result of bitvec_get_bit_pos() ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h File include/osmocom/gsm/bts_features.h: https://gerrit.osmocom.org/c/libosmocore/+/18619/2/include/osmocom/gsm/bts_features.h at 43 PS2, Line 43: return bitvec_get_bit_pos(features, feature) == ONE; > We could print a warning instead ;) ah ok, I was considering the "feature" param is sanitized before calling this function, like checking feature < _NUM_BTS_FEAT. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1ad92e7654a806bb920ae9507c88a122e8d09f0 Gerrit-Change-Number: 18619 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:44:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: Vadim Yanitskiy 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 Jun 2 10:44:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:44:56 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18629 ) Change subject: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iaeb6f1ffee9286394654bc3cf9d985ace7829110 Gerrit-Change-Number: 18629 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:44: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 Jun 2 10:47:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:47:37 +0000 Subject: Change in osmo-mgw[master]: mgcp_vty: fix indentation in VTY config write In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18593 ) Change subject: mgcp_vty: fix indentation in VTY config write ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2aefeaf3d7ad4a98b7bfcdc7cbc1ce6ebcbe0537 Gerrit-Change-Number: 18593 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 10:47:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 10:50:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:50:11 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18372 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/6//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/6//COMMIT_MSG at 27 PS6, Line 27: efactor rate counters, put them into a separate module and do no : longer allocate them per trunk. Allocate them globally instead. > I'm not sure if this is a good idea. [?] I think some of them were clearly meant at being global, so I think it's fine (I'm not saying all of them should be global). In any case I think it makes sense to have some of them global and we can later add it per trunk as needed after this clean up being done now. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ice8aaf03faa2fd99074f8665eea3a696d30c5eb3 Gerrit-Change-Number: 18372 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 10:50: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 Tue Jun 2 10:51:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 10:51:16 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18372 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ice8aaf03faa2fd99074f8665eea3a696d30c5eb3 Gerrit-Change-Number: 18372 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 10:51:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 11:19:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 11:19:28 +0000 Subject: Change in osmo-bts[master]: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from os... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18589 ) Change subject: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from osmo-trx ...................................................................... Patch Set 2: > Patch Set 2: > > The spec says: "The range over which the BSS shall be capable of reducing its RF output power from its maximum level shall be nominally 30 dB, in 15 steps of nominally 2 dB." > The power level field has 5 bits of which 4 may be used to set the level, one is fixed to zero. > The b2xx series has a max rx gain of 76 dB and 89.8 dB max tx gain. > > So there is nothing to retrieve, the nominal power needs to configured in the osmo-trx config for one specific device and frequency configuration that is being used, an the relative power reduction always has to be relative to the configured value. As discussed previously, the idea is that for now we hardcode a set of values per device type after doing some measurements. We can later on add VTY configs as needed. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I682211f3d664c21f923ca4a530e0464ca383b6d9 Gerrit-Change-Number: 18589 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: Hoernchen Gerrit-Comment-Date: Tue, 02 Jun 2020 11:19: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 Tue Jun 2 11:26:37 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 11:26:37 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 4: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 11:26:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 11:28:19 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 11:28:19 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 to look at the new patch set (#5). Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Do not mix public and private BTS features, use libosmocore's API It was a very bad idea to mix "public" BTS features, that are reported to the BSC via OML, and those features, that are used locally (and exclusively) in osmo-bts. Why? At least because we already have the BTS feature manipulation API in libosmocore, that is used by osmo-bsc, but for some reason not by osmo-bts. New features added to libosmocore would clash with the existing "internal" ones like BTS_FEAT_MS_PWR_CTRL_DSP. So what this change does can be described as follows: - remove duplicate definition of the "public" features, - use libosmocore's API for the "public" features, - separate both "internal" and "public" features: - the "public" features continue to live in bitvec, - the "internal" features become flags, - s/BTS_FEAT/BTS_IMPL_FLAG/g. As a bonus, let's allocate the feature vector using libosmocore's bitvec API instead of doing this manually in gsm_bts_alloc(). Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e --- M include/osmo-bts/gsm_data_shared.h M src/common/bts.c M src/common/gsm_data_shared.c M src/common/l1sap.c M src/common/oml.c M src/common/vty.c M src/osmo-bts-litecell15/main.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-sysmo/main.c M src/osmo-bts-trx/main.c M src/osmo-bts-virtual/main.c M tests/misc/misc_test.c 13 files changed, 115 insertions(+), 136 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/18591/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 5 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy 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 Jun 2 11:31:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 11:31:47 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18591/4/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/c/osmo-bts/+/18591/4/include/osmo-bts/gsm_data_shared.h at 463 PS4, Line 463: ((bts->flags & (uint16_t) flag) != 0) "typeof(bts->flags)" sounds safer here (in the event we needs more flags in the future. Btw you can do !! instead of !=0. !!(bts->flags & (typeof(bts->flags)) flag) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 5 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 11:31:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 11:36:37 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 11:36:37 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18591/4/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/c/osmo-bts/+/18591/4/include/osmo-bts/gsm_data_shared.h at 463 PS4, Line 463: ((bts->flags & (uint16_t) flag) != 0) > "typeof(bts->flags)" sounds safer here (in the event we needs more flags in the future. ACK. > !!(bts->flags & (typeof(bts->flags)) flag) NACK, it's harder to read. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 5 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 11:36:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 11:39:13 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 11:39:13 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 to look at the new patch set (#6). Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Do not mix public and private BTS features, use libosmocore's API It was a very bad idea to mix "public" BTS features, that are reported to the BSC via OML, and those features, that are used locally (and exclusively) in osmo-bts. Why? At least because we already have the BTS feature manipulation API in libosmocore, that is used by osmo-bsc, but for some reason not by osmo-bts. New features added to libosmocore would clash with the existing "internal" ones like BTS_FEAT_MS_PWR_CTRL_DSP. So what this change does can be described as follows: - remove duplicate definition of the "public" features, - use libosmocore's API for the "public" features, - separate both "internal" and "public" features: - the "public" features continue to live in bitvec, - the "internal" features become flags, - s/BTS_FEAT/BTS_IMPL_FLAG/g. As a bonus, let's allocate the feature vector using libosmocore's bitvec API instead of doing this manually in gsm_bts_alloc(). Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e --- M include/osmo-bts/gsm_data_shared.h M src/common/bts.c M src/common/gsm_data_shared.c M src/common/l1sap.c M src/common/oml.c M src/common/vty.c M src/osmo-bts-litecell15/main.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-sysmo/main.c M src/osmo-bts-trx/main.c M src/osmo-bts-virtual/main.c M tests/misc/misc_test.c 13 files changed, 115 insertions(+), 136 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/18591/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy 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 Jun 2 12:04:40 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 12:04:40 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18629 ) Change subject: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iaeb6f1ffee9286394654bc3cf9d985ace7829110 Gerrit-Change-Number: 18629 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 12: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 Tue Jun 2 12:04:45 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 12:04:45 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18629 ) Change subject: ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest ...................................................................... ttcn3-msc-test: fix osmo-msc.cfg: make it work with latest Unfortunately, we have to revert a part of change [1], because it broke ttcn3-msc-test-latest. The reason is that the latest release of osmo-msc does not support 'timer vlr T3212 30'. Change-Id: Iaeb6f1ffee9286394654bc3cf9d985ace7829110 --- M ttcn3-msc-test/osmo-msc.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, but someone else must approve Vadim Yanitskiy: Looks good to me, approved; Verified diff --git a/ttcn3-msc-test/osmo-msc.cfg b/ttcn3-msc-test/osmo-msc.cfg index fe7b4cb..a713786 100644 --- a/ttcn3-msc-test/osmo-msc.cfg +++ b/ttcn3-msc-test/osmo-msc.cfg @@ -71,6 +71,7 @@ authentication optional rrlp mode none mm info 0 + periodic location update 30 msc assign-tmsi cs7-instance-a 0 @@ -78,7 +79,6 @@ mgw remote-ip 172.18.1.103 emergency-call route-to-msisdn 112 mncc external /data/unix/mncc - timer vlr T3212 30 mncc-int default-codec tch-f fr default-codec tch-h hr -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iaeb6f1ffee9286394654bc3cf9d985ace7829110 Gerrit-Change-Number: 18629 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Vadim Yanitskiy Gerrit-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 Jun 2 12:07:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:07:40 +0000 Subject: Change in osmo-bts[master]: bts-trx: vty: Add 'nominal-tx-power' cmd 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/+/18579 to look at the new patch set (#3). Change subject: bts-trx: vty: Add 'nominal-tx-power' cmd ...................................................................... bts-trx: vty: Add 'nominal-tx-power' cmd This value will be soon acquired automatically by osmo-bts-trx by asking over TRXC to new versions of osmo-trx which is the nominal tx power for a given trx. However, to still be able to work correctly against older versions of osmo-trx or other TRX implementation (older or current) not supporting this new TRX comamnd, let's allow the user to force a given value through VTY for Tx power to work correctly. Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4 --- M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_vty.c 3 files changed, 45 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/79/18579/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4 Gerrit-Change-Number: 18579 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:07:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:07:40 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement power ramping during BTS bring up In-Reply-To: References: Message-ID: Hello tnt, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18488 to look at the new patch set (#5). Change subject: bts-trx: Implement power ramping during BTS bring up ...................................................................... bts-trx: Implement power ramping during BTS bring up The nominal transmit power is still only configurable manually from osmo-bts-trx VTY interface. Support to retrieve the nominal power from osmo-trx will come later. Change-Id: Ia7c353e4c199e0fc3bcab55c45a4abda2c66d2c1 --- M include/osmo-bts/tx_power.h M src/osmo-bts-trx/l1_if.c 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_vty.c 7 files changed, 73 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/88/18488/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7c353e4c199e0fc3bcab55c45a4abda2c66d2c1 Gerrit-Change-Number: 18488 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:07:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:07:40 +0000 Subject: Change in osmo-bts[master]: bts-trx: Introduce helper func l1if_trx_set_nominal_power In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18588 to look at the new patch set (#3). Change subject: bts-trx: Introduce helper func l1if_trx_set_nominal_power ...................................................................... bts-trx: Introduce helper func l1if_trx_set_nominal_power This way we wrap same logic in one place, which will be used more in next commit. Change-Id: I929fc50d544a88900d2e22317ec5ced10f15e51c --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_vty.c 4 files changed, 10 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/88/18588/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I929fc50d544a88900d2e22317ec5ced10f15e51c Gerrit-Change-Number: 18588 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:14:44 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 2 Jun 2020 12:14:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18450 to look at the new patch set (#2). Change subject: MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion ...................................................................... MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion The rtp payload test vector in TC_amr_oa_bwe_rtp_conversion is wrong, it lacks the last byte which should be 0x00. Also the testvector is not very well chossen since it after BWE conversion the actual payload does not shrink (even if it looks like if it would because of the 0x00 byte at the end). Lets pick a better payload from a real world trace that actually shrinks by one byte when it is converted to BWE and use that one. Change-Id: Id4256049bbca49ad5c2eb0579128838ebae062f8 --- M mgw/MGCP_Test.ttcn 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/50/18450/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id4256049bbca49ad5c2eb0579128838ebae062f8 Gerrit-Change-Number: 18450 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:17:06 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 2 Jun 2020 12:17:06 +0000 Subject: Change in osmo-mgw[master]: mgcp_vty: fix indentation In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18594 ) Change subject: mgcp_vty: fix indentation ...................................................................... mgcp_vty: fix indentation Some DEFUN macros are not correctly indented Change-Id: I613f2ebcb06a01744d957e87e8b1215a141b43c4 --- M src/libosmo-mgcp/mgcp_vty.c 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve Vadim Yanitskiy: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index bdcb55c..856c971 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -535,7 +535,7 @@ 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(cfg_mgcp_rtp_force_ptime, +DEFUN(cfg_mgcp_rtp_force_ptime, cfg_mgcp_rtp_force_ptime_cmd, "rtp force-ptime (10|20|40)", RTP_STR FORCE_PTIME_STR @@ -601,7 +601,7 @@ "sdp audio payload number <0-255>", SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload number\n") - DEFUN(cfg_mgcp_sdp_payload_name, +DEFUN(cfg_mgcp_sdp_payload_name, cfg_mgcp_sdp_payload_name_cmd, "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Name\n" "Payload name\n") @@ -614,7 +614,7 @@ "sdp audio payload name NAME", SDP_STR AUDIO_STR AUDIO_STR "Name\n" "Payload name\n") - DEFUN(cfg_mgcp_sdp_payload_send_ptime, +DEFUN(cfg_mgcp_sdp_payload_send_ptime, cfg_mgcp_sdp_payload_send_ptime_cmd, "sdp audio-payload send-ptime", SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n") @@ -804,7 +804,7 @@ CALL_AGENT_STR CALL_AGENT_STR IP_STR "IPv4 Address of the callagent\n") - DEFUN(cfg_mgcp_trunk, cfg_mgcp_trunk_cmd, +DEFUN(cfg_mgcp_trunk, cfg_mgcp_trunk_cmd, "trunk <1-64>", "Configure a SS7 trunk\n" "Trunk Nr\n") { struct mgcp_trunk_config *trunk; @@ -911,7 +911,7 @@ "sdp audio payload number <0-255>", SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload Number\n") - DEFUN(cfg_trunk_payload_name, +DEFUN(cfg_trunk_payload_name, cfg_trunk_payload_name_cmd, "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Payload\n" "Payload Name\n") @@ -926,7 +926,7 @@ "sdp audio payload name NAME", SDP_STR AUDIO_STR AUDIO_STR "Payload\n" "Payload Name\n") - DEFUN(cfg_trunk_loop, +DEFUN(cfg_trunk_loop, cfg_trunk_loop_cmd, "loop (0|1)", "Loop audio for all endpoints on this trunk\n" "Don't Loop\n" "Loop\n") -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I613f2ebcb06a01744d957e87e8b1215a141b43c4 Gerrit-Change-Number: 18594 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy 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 Tue Jun 2 12:20:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:20:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18450 ) Change subject: MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id4256049bbca49ad5c2eb0579128838ebae062f8 Gerrit-Change-Number: 18450 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 12:20:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:21:22 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 2 Jun 2020 12:21:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18450 ) Change subject: MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion ...................................................................... MGCP_Test: fix test vector in TC_amr_oa_bwe_rtp_conversion The rtp payload test vector in TC_amr_oa_bwe_rtp_conversion is wrong, it lacks the last byte which should be 0x00. Also the testvector is not very well chossen since it after BWE conversion the actual payload does not shrink (even if it looks like if it would because of the 0x00 byte at the end). Lets pick a better payload from a real world trace that actually shrinks by one byte when it is converted to BWE and use that one. Change-Id: Id4256049bbca49ad5c2eb0579128838ebae062f8 --- M mgw/MGCP_Test.ttcn 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 0de5308..be4e634 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -2082,8 +2082,12 @@ setverdict(pass); } + /* Note: The hexstrings used with the f_TC_amr_x_x_rtp_conversion test + * functions are real world AMR RTP payloads including AMR header. The + * payloads were extracted from a trace with known good payloads. */ + testcase TC_amr_oa_bwe_rtp_conversion() runs on dummy_CT { - f_TC_amr_x_x_rtp_conversion('100c4e9ba850e30d5d53d04de41e7c'O, '10d3a6ea1438c35754f41379079f'O, "octet-align=1", "octet-align=0"); + f_TC_amr_x_x_rtp_conversion('2014e959f35fdfe5e9667ffbc088818088'O, '217a567cd7f7f97a599ffef022206022'O, "octet-align=1", "octet-align=0"); } testcase TC_amr_oa_oa_rtp_conversion() runs on dummy_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id4256049bbca49ad5c2eb0579128838ebae062f8 Gerrit-Change-Number: 18450 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:24:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:24:00 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if: Clarify {SET; ADJ}POWER TRXC commands In-Reply-To: References: Message-ID: Hello tnt, neels, Jenkins Builder, Hoernchen, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 to look at the new patch set (#2). Change subject: trx_if: Clarify {SET;ADJ}POWER TRXC commands ...................................................................... trx_if: Clarify {SET;ADJ}POWER TRXC commands Change-Id: I4f1986a1ace3fc9cbef10fc0508407a3d608670b --- M common/chapters/trx_if.adoc 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/56/18556/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 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: I4f1986a1ace3fc9cbef10fc0508407a3d608670b Gerrit-Change-Number: 18556 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:26:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:26:18 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if: Clarify {SET; ADJ}POWER TRXC commands In-Reply-To: References: Message-ID: Hello tnt, neels, Jenkins Builder, Hoernchen, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 to look at the new patch set (#3). Change subject: trx_if: Clarify {SET;ADJ}POWER TRXC commands ...................................................................... trx_if: Clarify {SET;ADJ}POWER TRXC commands Change-Id: I4f1986a1ace3fc9cbef10fc0508407a3d608670b --- M common/chapters/trx_if.adoc 1 file changed, 11 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/56/18556/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 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: I4f1986a1ace3fc9cbef10fc0508407a3d608670b Gerrit-Change-Number: 18556 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:30:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:30:59 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if.adoc: Document cmd NOMTXPOWER References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 ) Change subject: trx_if.adoc: Document cmd NOMTXPOWER ...................................................................... trx_if.adoc: Document cmd NOMTXPOWER TRXC message is implemented in: osmo-bts.git I682211f3d664c21f923ca4a530e0464ca383b6d9 osmo-trx.git I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Change-Id: Idb5bb56fc039c7393922243c761f3395a094a55b --- M common/chapters/trx_if.adoc 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/30/18630/1 diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index fc42eed..95c00c7 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -75,6 +75,14 @@ RSP POWERON ---- +`NOMTXPOWER` is used by the BTS to retrieve the nominal output transmit power of +the transceiver. `SETPOWER/ADJPOWER` attenuations (dB) are expected to be +applied based on this value (dBm). +---- +CMD NOMTXPOWER +RSP NOMTXPOWER +---- + `SETPOWER` sets transmit power attenuation wrt the nominal transmit power of the transceiver, in dB. ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 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: Idb5bb56fc039c7393922243c761f3395a094a55b Gerrit-Change-Number: 18630 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 Jun 2 12:31:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:31:33 +0000 Subject: Change in libosmo-netif[master]: amr: fix off-by-one in osmo_amr_bwe_to_oa() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18451 ) Change subject: amr: fix off-by-one in osmo_amr_bwe_to_oa() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: I91e755b83aaac722079879c026d913cc446812d1 Gerrit-Change-Number: 18451 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 12:31:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:39:39 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 2 Jun 2020 12:39:39 +0000 Subject: Change in libosmo-netif[master]: amr: fix off-by-one in osmo_amr_bwe_to_oa() In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18451 ) Change subject: amr: fix off-by-one in osmo_amr_bwe_to_oa() ...................................................................... amr: fix off-by-one in osmo_amr_bwe_to_oa() The for loop in osmo_amr_bwe_to_oa, that converts the body part of the AMR payload runs one byte too far. This may cause that some of the padding bits in the end are not set to zero. The loop is designed to convert n-1 bytes and the nth byte is done separately at the end. Change-Id: I91e755b83aaac722079879c026d913cc446812d1 --- M src/amr.c M tests/amr/amr_test.c M tests/amr/amr_test.ok 3 files changed, 10 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/amr.c b/src/amr.c index 980d6ad..2706432 100644 --- a/src/amr.c +++ b/src/amr.c @@ -198,7 +198,7 @@ return -1; oa_payload_len = 2 + osmo_amr_bytes(oa_hdr->ft); - for (i = 0; i < oa_payload_len - 2; i++) { + for (i = 0; i < oa_payload_len - 3; i++) { buf[i + 2] = payload[i + 1] << 2; buf[i + 2] |= payload[i + 2] >> 6; } diff --git a/tests/amr/amr_test.c b/tests/amr/amr_test.c index 2f41fe9..fabf948 100644 --- a/tests/amr/amr_test.c +++ b/tests/amr/amr_test.c @@ -46,7 +46,7 @@ "100c1fb967f7f1fdf547bf2e61c060", "0004f89d67f1160935bde1996840", "0004633cc7f0630439ffe0000000", - "0004eb81fc0758973b9edc782552", + "0004eb81fc0758973b9edc782550", "a078ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00fc", /* sample with invalid FT */ "END", }; diff --git a/tests/amr/amr_test.ok b/tests/amr/amr_test.ok index af1be82..eea513b 100644 --- a/tests/amr/amr_test.ok +++ b/tests/amr/amr_test.ok @@ -143,10 +143,10 @@ rc: 14 Sample No.: 20 - octet aligned: 0004eb81fc0758973b9edc782552 - 0000000000000100111010111000000111111100000001110101100010010111001110111001111011011100011110000010010101010010 - bw-efficient: 007ae07f01d625cee7b71e095480 - 0000000001111010111000000111111100000001110101100010010111001110111001111011011100011110000010010101010010000000 + octet aligned: 0004eb81fc0758973b9edc782550 + 0000000000000100111010111000000111111100000001110101100010010111001110111001111011011100011110000010010101010000 + bw-efficient: 007ae07f01d625cee7b71e095400 + 0000000001111010111000000111111100000001110101100010010111001110111001111011011100011110000010010101010000000000 rc: 14 Sample No.: 21 @@ -162,15 +162,15 @@ Sample No.: 0 bw-efficient: f4495c7cda8f80 11110100010010010101110001111100110110101000111110000000 - octet aligned: f0442571f36a3e - 11110000010001000010010101110001111100110110101000111110 + octet aligned: f0442571f36a3c + 11110000010001000010010101110001111100110110101000111100 rc: 7 Sample No.: 1 bw-efficient: f44aaa6c969780 11110100010010101010101001101100100101101001011110000000 - octet aligned: f0442aa9b25a5e - 11110000010001000010101010101001101100100101101001011110 + octet aligned: f0442aa9b25a5c + 11110000010001000010101010101001101100100101101001011100 rc: 7 Sample No.: 2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: I91e755b83aaac722079879c026d913cc446812d1 Gerrit-Change-Number: 18451 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:40:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 12:40:58 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 6: Code-Review+1 (5 comments) only cosmetics... mostly about the term choice of "implementation". Did you mean "internal"? "BTS-model" / "BTS-type"? https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h at 461 PS6, Line 461: /* BTS implementation flags (internal use, not exposed via OML) */ (so maybe reflect "internal" in the naming? bts_internal_flag_get(), bts_internal_flag_set()?) https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h at 465 PS6, Line 465: (bts->flags |= (typeof(bts->flags)) flag) (braces around this are slightly weird) https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h at 468 PS6, Line 468: #define BTS_IMPL_FLAG_MS_PWR_CTRL_DSP (1 << 0) ( s/IMPL/INTERNAL/ ?) https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/src/common/vty.c at 832 PS6, Line 832: for (i = 0, no_features = true; i < _NUM_BTS_FEAT; i++) { (I'd rather leave the 'no_features = true' at the start of the function, above. This looks like no_features is used as a loop condition; it does not affect the loop, only what happens around the loop. So it doesn't qualify as a start condition, really.) https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/src/common/vty.c at 843 PS6, Line 843: vty_out(vty, " Implementation flags:%s", VTY_NEWLINE); "Implementation" is a very general term, basically all code is implementation. In the comments you used "internal flags", which I find easier to understand... or "BTS model specific flags"? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 12:40:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:42:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 12:42:13 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if.adoc: Document cmd NOMTXPOWER In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 ) Change subject: trx_if.adoc: Document cmd NOMTXPOWER ...................................................................... Patch Set 1: Code-Review+2 nom nom -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 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: Idb5bb56fc039c7393922243c761f3395a094a55b Gerrit-Change-Number: 18630 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 02 Jun 2020 12: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 Tue Jun 2 12:44:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 12:44:55 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if: Clarify {SET; ADJ}POWER TRXC commands In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 ) Change subject: trx_if: Clarify {SET;ADJ}POWER TRXC commands ...................................................................... Patch Set 3: Code-Review+1 haven't checked about whether the commands work when the trx isn't running, but looks good to me -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 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: I4f1986a1ace3fc9cbef10fc0508407a3d608670b Gerrit-Change-Number: 18556 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 12: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 Tue Jun 2 12:49:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 12:49:05 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if: Clarify {SET; ADJ}POWER TRXC commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 ) Change subject: trx_if: Clarify {SET;ADJ}POWER TRXC commands ...................................................................... Patch Set 3: > Patch Set 3: Code-Review+1 > > haven't checked about whether the commands work when the trx isn't running, but looks good to me I have been working on all this and it makes sense to have it working, so you can basically set any power before poweron. Mostly one would like to set power attenuation to NOMTXPOWER. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 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: I4f1986a1ace3fc9cbef10fc0508407a3d608670b Gerrit-Change-Number: 18556 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 12:49:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 12:55:13 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Tue, 2 Jun 2020 12:55:13 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: guilly at gmail.com has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 5: (1 comment) > Patch Set 5: Verified+1 > > Build Successful > > https://jenkins.osmocom.org/jenkins/job/gerrit-pysim/540/ : SUCCESS' --verified 1 --code-review 0 I can test this in other Quectel modules, have quite a few :-) At the moment, using a BG96, which is where having the ability to read the SIM files is definitely useful for debugging https://gerrit.osmocom.org/c/pysim/+/18159/5/pySim/transport/modem_atcmd.py File pySim/transport/modem_atcmd.py: https://gerrit.osmocom.org/c/pysim/+/18159/5/pySim/transport/modem_atcmd.py at 50 PS5, Line 50: if type(cmd) is str: there is a problem here if cmd is not a string, as it's not initiliased. I solved by doing by adding to this if else: bcmd = cmd.encode() Not sure if it's the right way to do it, though. Don't fully get why you used str.encode instead of cmd, I thought the purpouse of this was to turn the string into bytes? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 5 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Tue, 02 Jun 2020 12:55: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 Jun 2 13:22:23 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 13:22:23 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/pysim/+/18159/5/pySim/transport/modem_atcmd.py File pySim/transport/modem_atcmd.py: https://gerrit.osmocom.org/c/pysim/+/18159/5/pySim/transport/modem_atcmd.py at 50 PS5, Line 50: if type(cmd) is str: > there is a problem here if cmd is not a string, as it's not initiliased. I am not getting what you mean here, sorry. If it's not a string, it should be bytes. > I thought the purpouse of this was to turn the string into bytes? Yes, as written in the comment above. Either it's a string, so we convert it to bytes, or it's already bytes, so we use it as-is. I guess you're still using Python 2? AFAIR, unlike Python 3, type(b'\xff') in Python 2 would be 'str', not 'bytes' as expected. If so, I am not going to fix / work around this. > bcmd = cmd.encode() This does not work with Python 3 :/ AttributeError: 'bytes' object has no attribute 'encode' -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 5 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Tue, 02 Jun 2020 13:22:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: guilly at gmail.com Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 13:52:06 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Tue, 2 Jun 2020 13:52:06 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: guilly at gmail.com has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 5: > Patch Set 5: > > (1 comment) yes, I was running it with python 2, I thought it was not upgraded to 3. The header of pySim-read still uses python2 :-) I was getting a unicode object, and that was exposing the problem. When running send_pdu, it was requesting extra data with this part, not sure why pdu_gr was type unicode if (sw is not None) and ((sw[0:2] == '9f') or (sw[0:2] == '61')): pdu_gr = pdu[0:2] + 'c00000' + sw[2:4] data, sw = self.send_apdu_raw(pdu_gr) Still, if cmd is not a str, you will not initialise bcmd, so probably need to add something in the else? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 5 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Tue, 02 Jun 2020 13:52:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 13:54:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 13:54:45 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18372 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: Code-Review-1 (21 comments) Nice, a lot of excellent cleanup work! I hope you see the large number of comments as appreciation of the patch. May seem ironic from me as Mr. Code Bomb himself, but this patch would be fairly easy to split into smaller parts. I'm thinking the deprecation of the sdp audio name vty commands, some renames, and ideally moving old code to new files first without changing them so that code review can easily see the changes made to the code? The -1 vote is for the DEFUN_DEPRECATED, and missing items in the commit log (or alternatively splitting up the patch), and the talloc_free of trunk->endpoints. Anyway, cool to see osmo-mgw being streamlined :) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7//COMMIT_MSG at 21 PS7, Line 21: symbol name "tcfg" to "trunk" in order to better match the reality. (maybe do renames in a separate patch) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7//COMMIT_MSG at 28 PS7, Line 28: longer allocate them per trunk. Allocate them globally instead. I'm wondering whether anyone would miss per-trunk counters in the future. I don't know of anyone using more than one trunk, but if we have multiple trunks supported in the code, maybe per-trunk counters would be nicer to keep than to remove? https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp.h at a189 PS7, Line 189: char *audio_name; : int audio_payload; these are no longer present in struct mgcp_trunk, maybe explain why in the commit log? https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp_trunk.h File include/osmocom/mgcp/mgcp_trunk.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp_trunk.h at 38 PS7, Line 38: struct mgcp_endpoint **endpoints; changing this from 'struct mgcp_endpoint*' to 'struct mgcp_endpoint**'. What is the reason? If I see this right, we are anyway just allocating a fixed number of endpoints at trunk creation time, and it seems unnecessary to add to this the individual dynamic allocation for every contained endpoint? https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_codec.c File src/libosmo-mgcp/mgcp_codec.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_codec.c at a289 PS7, Line 289: this removal is not mentioned in the commit log. I guess it should be a separate patch from the refactoring. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_conn.c File src/libosmo-mgcp/mgcp_conn.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_conn.c at 259 PS7, Line 259: aggregate_rtp_conn_stats(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn_rtp) This function does not access the individual endp, but accesses the single global struct mgcp_ratectr. It would make more sense to pass a struct mgcp_ratectr as argument, to reflect the fact that now there is only one global set of counters (besides the per-conn counters). https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 90 PS7, Line 90: /* Check if the endpoint name contains the prefix, and chop it off, if it (would be nice to include an example string for a prefix to make it easier to understand for uninformed readers) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 140 PS7, Line 140: * \param[out] cause, pointer to store cause code, can be NULL. (I think doxygen wants no comma after 'cause'?) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 141 PS7, Line 141: * \param[in] epname endpoint name to lookup (may lack trunk prefix and domain name). wildcard should be explained https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 164 PS7, Line 164: if (strncmp(epname_ch, "*", epname_ch_len) == 0) { If I get this right, with a full name, this function finds an existing (used?) endpoint. In this condition here, if the endpoint name is exactly "*", this finds the first unused endpoint. It feels to me like these should be two separate functions, one takes an epname to look up, the other takes no epname and finds an unused one. EDIT: I see now that this function was just moved to a different file... https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 184 PS7, Line 184: /* Find an enspoint by its name (if wildcarded request is not ("enspoint") https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 201 PS7, Line 201: trunk->trunk_nr, epname); (might be better to leave the logging to callers. There could be cases where a caller expects that some endpoint should be gone, and then an error log of "Not able to find" would confuse readers of the osmo-mgw log to think that something went wrong, even though all is as expected) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 214 PS7, Line 214: domain_to_check = strstr(epname, "@"); (could be nice for the future to keep a single implementation for separating epname from domain, maybe use epname_len(), so we have only one place that does strchr('@')? Just an idea...) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_network.c at 1439 PS7, Line 1439: struct mgcp_rtp_end *rtp_end, struct mgcp_endpoint *endp) endp is only used for logging. Isn't rtp_end also part of endp? Maybe I'm wrong, but seems like it should be enough to pass only endp or only rtp_end? https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_trunk.c at 77 PS7, Line 77: talloc_free(trunk->endpoints); the comment says "(re)allocate", but free+alloc loses all endpoint data. Is this intended to change during a running osmo-mgw without losing endpoint state? Then we could use talloc_realloc() instead, which keeps the data (as much of it as is possible). If not, then talloc_free(trunk->endpoints) might not be necessary, or should maybe also first take care to shut down RTP ports and so on? https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_trunk.c at 79 PS7, Line 79: sizeof(struct mgcp_endpoint *), trunk->vty_number_endpoints, "endpoints"); before this, maybe we should validate vty_number_endpoints > 0 (and maybe smaller than some sane maximum?) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at a117 PS7, Line 117: vty_out(vty, " sdp audio-payload number %d%s", not mentioned in the commit log? https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 597 PS7, Line 597: DEFUN(cfg_mgcp_sdp_payload_number, DEFUN_DEPRECATED https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 610 PS7, Line 610: DEFUN(cfg_mgcp_sdp_payload_name, DEFUN_DEPRECATED https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 899 PS7, Line 899: DEFUN(cfg_trunk_payload_number, DEFUN_DEPRECATED https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 911 PS7, Line 911: DEFUN(cfg_trunk_payload_name, DEFUN_DEPRECATED -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ice8aaf03faa2fd99074f8665eea3a696d30c5eb3 Gerrit-Change-Number: 18372 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 13:54: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 Tue Jun 2 14:08:56 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 14:08:56 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 5: > yes, I was running it with python 2, I thought it was not upgraded to 3. The header of pySim-read still uses python2 :-) I fixed most of the problems like print without parentheses, so pySim works fine with Python 3 ;) Unfortunately, yes, we still have Python 2 in headers. The reason is that our test setup is based on old Debian image that ships ancient Python 3.5 from 2017 and old pyscard. Somehow this combination breaks our lazy 'match every line' unit tests. See https://gerrit.osmocom.org/c/pysim/+/15504/. > Still, if cmd is not a str, you will not initialise bcmd, so probably need to add something in the else? Ah, I got what you mean now. Will try to fix soon. Thanks! -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 5 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Tue, 02 Jun 2020 14:08:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 14:52:30 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 14:52:30 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 6: Should be fixed now. Please let me know (set Verified+1) if it works for you. Thanks! -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Tue, 02 Jun 2020 14:52:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 15:00:24 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Tue, 2 Jun 2020 15:00:24 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: guilly at gmail.com has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 6: > Patch Set 6: > > Should be fixed now. Please let me know (set Verified+1) if it works for you. Thanks! It does work for me know, both python2 and python3 - but cannot set it to verified, no permissions! -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Tue, 02 Jun 2020 15:00:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 15:03:39 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 15:03:39 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 6: Verified+1 Setting it on your behalf then ;) Thanks for testing. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Tue, 02 Jun 2020 15:03:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 15:23:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 15:23:22 +0000 Subject: Change in libosmocore[master]: gsm23236: add TMSI and NRI utility functions for MSC pooling In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: gsm23236: add TMSI and NRI utility functions for MSC pooling ...................................................................... Patch Set 2: (1 comment) This change is ready for review. https://gerrit.osmocom.org/c/libosmocore/+/18506/2/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/18506/2/src/gsm/gsm23236.c at 36 PS2, Line 36: int16_t > Why is it signed? Can the NRI be negative? In the end, no real reason, just "why not". The NRI is normally <= 10 bit wide, as per 3GPP TS 23.236. (I'm going to allow up to 15 bits, because there is no hard limit up to 24 bits, but 15 is also far above what anyone would likely ever use.) I want to use negative NRI to indicate invalid or that none has been set. Come to think of it, I think I'm not actually using that anywhere now that these functions return an error code instead of an NRI, but it seems a good idea to keep some room in the definition from the start, since we are getting it for free. The easiest is to take <0 meaning invalid, given the ample unused number space. We could also use 'int', actually. Just thought the int16_t might be more specific on how little of the int will really be used. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 15:23:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Vadim Yanitskiy Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 15:31:53 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 15:31:53 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: print a brief usage statement if argc < 3 References: Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18631 ) Change subject: osmo-bts-omldummy: print a brief usage statement if argc < 3 ...................................................................... osmo-bts-omldummy: print a brief usage statement if argc < 3 Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040 --- M src/osmo-bts-omldummy/main.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/31/18631/1 diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index 3f1d58c..8933860 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -14,6 +14,11 @@ struct e1inp_line *line; int i; + if (argc < 3) { + fprintf(stderr, "Usage: %s dst_host site_id\n", argv[0]); + return 1; + } + char *dst_host = argv[1]; int site_id = atoi(argv[2]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040 Gerrit-Change-Number: 18631 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 15:31:54 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 15:31:54 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: make number of transceivers configurable References: Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18632 ) Change subject: osmo-bts-omldummy: make number of transceivers configurable ...................................................................... osmo-bts-omldummy: make number of transceivers configurable Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d Related: OS#4570 --- M src/osmo-bts-omldummy/main.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/18632/1 diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index 8933860..22d8758 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -15,12 +15,13 @@ int i; if (argc < 3) { - fprintf(stderr, "Usage: %s dst_host site_id\n", argv[0]); + 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; tall_bts_ctx = talloc_named_const(NULL, 1, "OsmoBTS context"); msgb_talloc_ctx_init(tall_bts_ctx, 10*1024); @@ -34,7 +35,7 @@ bts->ip_access.bts_id = 0; /* Additional TRXs */ - for (i = 1; i < 8; i++) { + for (i = 1; i < trx_num; i++) { trx = gsm_bts_trx_alloc(bts); if (!trx) exit(1); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d Gerrit-Change-Number: 18632 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 15:49:58 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 15:49:58 +0000 Subject: Change in libosmocore[master]: gsm23236: add TMSI and NRI utility functions for MSC pooling In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: gsm23236: add TMSI and NRI utility functions for MSC pooling ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18506/2/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/18506/2/src/gsm/gsm23236.c at 36 PS2, Line 36: int16_t The function itself returns an error code: > \return 0 on success, negative on error (i.e. if nri_bitlen is not in the valid range). and this is fine. Let's either make it return NRI, so it can be negative in case of an error, or change pointer type to 'uint16_t *'. The current function signature is confusing. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 15:49:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Vadim Yanitskiy Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 16:48:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 16:48:35 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: print a brief usage statement if argc < 3 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18631 ) Change subject: osmo-bts-omldummy: print a brief usage statement if argc < 3 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040 Gerrit-Change-Number: 18631 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 16:48:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 16:49:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 16:49:07 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: make number of transceivers configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18632 ) Change subject: osmo-bts-omldummy: make number of transceivers configurable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d Gerrit-Change-Number: 18632 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 16:49: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 Jun 2 16:49:18 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 16:49:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect References: Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Related: OS#4546 --- M bts/BTS_Tests.ttcn 1 file changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/18633/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 80804ec..ef67646 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -194,11 +194,15 @@ vc_RSL.start(RSL_Emulation.main(false)); T.start; - alt { - /* TODO: handle connection events from multiple transceivers */ - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP)); + interleave { + /* We expect all 4 transceivers to connect here (separate IPA/RSL connections). + * See https://gerrit.osmocom.org/q/Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b. */ + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, sid := IPAC_PROTO_RSL_TRX0)); + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, sid := IPAC_PROTO_RSL_TRX1)); + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, sid := IPAC_PROTO_RSL_TRX2)); + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, sid := IPAC_PROTO_RSL_TRX3)); [] T.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for ASP_IPA_EVENT_UP"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for RSLEM_EV_TRX_UP"); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 17:09:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 17:09:23 +0000 Subject: Change in libosmocore[master]: gsm23236: add TMSI and NRI utility functions for MSC pooling In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18506 to look at the new patch set (#3). Change subject: gsm23236: add TMSI and NRI utility functions for MSC pooling ...................................................................... gsm23236: add TMSI and NRI utility functions for MSC pooling These utilities will be used by osmo-bsc to determine the Network Resource Indicator seen in the TMSI, and by osmo-msc to compose a TMSI with a specific NRI, for osmo-bsc's load balancing between several MSCs. Related: OS#3682 Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 --- M include/Makefile.am A include/osmocom/gsm/gsm23236.h M src/gsm/Makefile.am A src/gsm/gsm23236.c M src/gsm/libosmogsm.map M tests/Makefile.am A tests/gsm23236/gsm23236_test.c A tests/gsm23236/gsm23236_test.ok M tests/testsuite.at 9 files changed, 394 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/18506/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 17:09:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 17:09:24 +0000 Subject: Change in libosmocore[master]: tlv.h: add msgb_tvl_put() to add a TvLV without the value part References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18634 ) Change subject: tlv.h: add msgb_tvl_put() to add a TvLV without the value part ...................................................................... tlv.h: add msgb_tvl_put() to add a TvLV without the value part So far, we have msgb_tl_put(), which allows putting the TL header of a TLV, without the value part. Add the same for a variable-size length TvLV: put a TvL header of a TvLV without the value part. In a subsequent patch, osmo_mobile_identity will be introduced, which will allow writing the encoded MI directly to the end of a msgb. For BSSGP_IE_IMSI, which is a TvLV, it would hence be simplest to write only the TvL first. Change-Id: I02cca5182fe42e40b63680a2fd470f03bcc11076 --- M include/osmocom/gsm/tlv.h 1 file changed, 45 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/18634/1 diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index bb0e8fc..254c21b 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -111,6 +111,14 @@ return buf + len; } +/*! put (append) a TL field (a TLV field but omitting the value part). */ +static inline uint8_t *tl_put(uint8_t *buf, uint8_t tag, uint8_t len) +{ + *buf++ = tag; + *buf++ = len; + return buf; +} + /*! put (append) a TLV16 field */ static inline uint8_t *tlv16_put(uint8_t *buf, uint8_t tag, uint8_t len, const uint16_t *val) @@ -132,6 +140,15 @@ return buf + len*2; } +/*! put (append) a TL16 field. */ +static inline uint8_t *tl16_put(uint8_t *buf, uint8_t tag, uint16_t len) +{ + *buf++ = tag; + *buf++ = len >> 8; + *buf++ = len & 0xff; + return buf; +} + /*! put (append) a TL16V field */ static inline uint8_t *t16lv_put(uint8_t *buf, uint16_t tag, uint8_t len, const uint8_t *val) @@ -158,6 +175,23 @@ return ret; } +/*! put (append) a TvL field (a TvLV with variable-size length, where the value part's length is already known, but will + * be put() later). + * \returns pointer to the value's start position. + */ +static inline uint8_t *tvl_put(uint8_t *buf, uint8_t tag, uint16_t len) +{ + uint8_t *ret; + + if (len <= TVLV_MAX_ONEBYTE) { + ret = tl_put(buf, tag, len); + buf[1] |= 0x80; + } else + ret = tl16_put(buf, tag, len); + + return ret; +} + /*! put (append) a variable-length tag or variable-length length * */ static inline uint8_t *vt_gan_put(uint8_t *buf, uint16_t tag) { @@ -215,6 +249,17 @@ return t16lv_put(buf, tag, len, val); } +/*! put (append) a TvL field to \ref msgb, i.e. a TvLV with variable-size length, where the value's length is already + * known, but will be put() later. The value section is not yet reserved, only tag and variable-length are put in the + * msgb. + * \returns pointer to the value's start position and end of the msgb. + */ +static inline uint8_t *msgb_tvl_put(struct msgb *msg, uint8_t tag, uint16_t len) +{ + uint8_t *buf = msgb_put(msg, TVLV_GROSS_LEN(len)); + return tvl_put(buf, tag, len); +} + /*! put (append) a TvLV field to \ref msgb */ static inline uint8_t *msgb_tvlv_put(struct msgb *msg, uint8_t tag, uint16_t len, const uint8_t *val) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I02cca5182fe42e40b63680a2fd470f03bcc11076 Gerrit-Change-Number: 18634 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 Jun 2 17:17:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 17:17:17 +0000 Subject: Change in libosmocore[master]: tlv.h: add msgb_tvl_put() to add a TvLV without the value part In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18634 ) Change subject: tlv.h: add msgb_tvl_put() to add a TvLV without the value part ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I02cca5182fe42e40b63680a2fd470f03bcc11076 Gerrit-Change-Number: 18634 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 17:17:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 17:44:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 17:44:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2) to the change originally created by Vadim Yanitskiy. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Related: OS#4546 --- M bts/BTS_Tests.ttcn 1 file changed, 14 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/18633/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy 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 Jun 2 17:53:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 17:53:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 17:53: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 Jun 2 17:53:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 17:53:59 +0000 Subject: Change in libosmocore[master]: gsm23236: add TMSI and NRI utility functions for MSC pooling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: gsm23236: add TMSI and NRI utility functions for MSC pooling ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 17:53:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 17:55:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 17:55:31 +0000 Subject: Change in libosmocore[master]: tlv.h: add msgb_tvl_put() to add a TvLV without the value part In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18634 ) Change subject: tlv.h: add msgb_tvl_put() to add a TvLV without the value part ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I02cca5182fe42e40b63680a2fd470f03bcc11076 Gerrit-Change-Number: 18634 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 17:55: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 Jun 2 17:57:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 17:57:04 +0000 Subject: Change in osmo-bts[master]: bts-trx: vty: Add 'nominal-tx-power' cmd In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18579 ) Change subject: bts-trx: vty: Add 'nominal-tx-power' cmd ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4 Gerrit-Change-Number: 18579 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 17:57:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 17:57:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 17:57:56 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement power ramping during BTS bring up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18488 ) Change subject: bts-trx: Implement power ramping during BTS bring up ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7c353e4c199e0fc3bcab55c45a4abda2c66d2c1 Gerrit-Change-Number: 18488 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 02 Jun 2020 17:57:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 17:58:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 17:58:11 +0000 Subject: Change in osmo-bts[master]: bts-trx: Introduce helper func l1if_trx_set_nominal_power In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18588 ) Change subject: bts-trx: Introduce helper func l1if_trx_set_nominal_power ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I929fc50d544a88900d2e22317ec5ced10f15e51c Gerrit-Change-Number: 18588 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 17:58:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 17:59:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 17:59:30 +0000 Subject: Change in osmo-bts[master]: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from os... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18589 ) Change subject: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from osmo-trx ...................................................................... Patch Set 3: > Patch Set 2: > As discussed previously, the idea is that for now we hardcode a set of values per device type after doing some measurements. We can later on add VTY configs as needed. Well, the user should always be able to override the compile-time defaults, so if you don't add the vty command here, it should be introduced in a follow-up patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I682211f3d664c21f923ca4a530e0464ca383b6d9 Gerrit-Change-Number: 18589 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: Hoernchen Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 17:59:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 18:16:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 18:16:47 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: make number of transceivers configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18632 ) Change subject: osmo-bts-omldummy: make number of transceivers configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d Gerrit-Change-Number: 18632 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 18:16:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 18:17:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 18:17:02 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: print a brief usage statement if argc < 3 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18631 ) Change subject: osmo-bts-omldummy: print a brief usage statement if argc < 3 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040 Gerrit-Change-Number: 18631 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 18:17: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 Jun 2 18:17:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 18:17:06 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: print a brief usage statement if argc < 3 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18631 ) Change subject: osmo-bts-omldummy: print a brief usage statement if argc < 3 ...................................................................... osmo-bts-omldummy: print a brief usage statement if argc < 3 Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040 --- M src/osmo-bts-omldummy/main.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index 3f1d58c..8933860 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -14,6 +14,11 @@ struct e1inp_line *line; int i; + if (argc < 3) { + fprintf(stderr, "Usage: %s dst_host site_id\n", argv[0]); + return 1; + } + char *dst_host = argv[1]; int site_id = atoi(argv[2]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iff2e3c47ed12f02f75589e7bd0cccb5dab32d040 Gerrit-Change-Number: 18631 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy 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 Jun 2 18:17:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 18:17:06 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: make number of transceivers configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18632 ) Change subject: osmo-bts-omldummy: make number of transceivers configurable ...................................................................... osmo-bts-omldummy: make number of transceivers configurable Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d Related: OS#4570 --- M src/osmo-bts-omldummy/main.c 1 file changed, 3 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-bts-omldummy/main.c b/src/osmo-bts-omldummy/main.c index 8933860..22d8758 100644 --- a/src/osmo-bts-omldummy/main.c +++ b/src/osmo-bts-omldummy/main.c @@ -15,12 +15,13 @@ int i; if (argc < 3) { - fprintf(stderr, "Usage: %s dst_host site_id\n", argv[0]); + 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; tall_bts_ctx = talloc_named_const(NULL, 1, "OsmoBTS context"); msgb_talloc_ctx_init(tall_bts_ctx, 10*1024); @@ -34,7 +35,7 @@ bts->ip_access.bts_id = 0; /* Additional TRXs */ - for (i = 1; i < 8; i++) { + for (i = 1; i < trx_num; i++) { trx = gsm_bts_trx_alloc(bts); if (!trx) exit(1); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I712988a289c446c76dc4d9de0189fe448ae08e4d Gerrit-Change-Number: 18632 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy 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 Jun 2 18:18:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 18:18:18 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 18: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 Tue Jun 2 18:27:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 18:27:26 +0000 Subject: Change in osmo-bts[master]: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from os... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18589 ) Change subject: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from osmo-trx ...................................................................... Patch Set 3: > Patch Set 3: > > > Patch Set 2: > > > As discussed previously, the idea is that for now we hardcode a set of values per device type after doing some measurements. We can later on add VTY configs as needed. > > Well, the user should always be able to override the compile-time defaults, so if you don't add the vty command here, it should be introduced in a follow-up patch. For sure it's not here since this is a osmo-bts-trx patch. I can add that later in osmo-trx, but let's first have this working with Roh providing some values, to see which kind of data we need to provide in the VTY (be it a table, or one factor, or whatever). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I682211f3d664c21f923ca4a530e0464ca383b6d9 Gerrit-Change-Number: 18589 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: Hoernchen Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 18:27: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 Jun 2 18:29:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 18:29:27 +0000 Subject: Change in libosmo-netif[master]: src/stream: Work around more Linux kernel ABI breakage In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18628 ) Change subject: src/stream: Work around more Linux kernel ABI breakage ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1/src/stream.c File src/stream.c: https://gerrit.osmocom.org/c/libosmo-netif/+/18628/1/src/stream.c at 100 PS1, Line 100: * But as it doesn't do that, let's try to work around this */ > In general, I think it is worth finding out the requried size only once and storing it in a static s [?] interesting idea. I just expanded on it by using getsockopt() to detect the actual expected size, this way we can avoid a lot of the trial-and-error. Will submit an updated patch later. -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc Gerrit-Change-Number: 18628 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 18:29: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 Jun 2 19:56:14 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 2 Jun 2020 19:56:14 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if: Clarify {SET; ADJ}POWER TRXC commands In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 ) Change subject: trx_if: Clarify {SET;ADJ}POWER TRXC commands ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 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: I4f1986a1ace3fc9cbef10fc0508407a3d608670b Gerrit-Change-Number: 18556 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 02 Jun 2020 19:56:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:05:28 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 20:05:28 +0000 Subject: Change in osmo-msc[master]: manual: Multiple Instances: tweak MNCC, add missing SGs doc In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18493 ) Change subject: manual: Multiple Instances: tweak MNCC, add missing SGs doc ...................................................................... Patch Set 1: Code-Review+2 relative triviality +2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ice610e3db132dc50b7ddc3f3e324e8ad1bba5864 Gerrit-Change-Number: 18493 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 20:05:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:05:31 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 20:05:31 +0000 Subject: Change in osmo-msc[master]: manual: Multiple Instances: tweak MNCC, add missing SGs doc In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18493 ) Change subject: manual: Multiple Instances: tweak MNCC, add missing SGs doc ...................................................................... manual: Multiple Instances: tweak MNCC, add missing SGs doc Change-Id: Ice610e3db132dc50b7ddc3f3e324e8ad1bba5864 --- M doc/manuals/chapters/running.adoc 1 file changed, 19 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc index 4bd3913..e8320a7 100644 --- a/doc/manuals/chapters/running.adoc +++ b/doc/manuals/chapters/running.adoc @@ -74,9 +74,25 @@ More on SMPP configuration in <>. -The external MNCC handler is configured by the `--mncc-sock` commandline -argument. Choose a different such socket path for each OsmoMSC instance running -on the same file system. See more in <>. +The external MNCC handler is a UNIX domain socket that is created when external MNCC handling is configured. A separate +path must be used per osmo-msc instance: + +---- +msc + mncc external /tmp/mncc_socket +---- + +More on MNCC in <>. + +The SGs interface by default listens on 0.0.0.0:29118. Configure a different IP and/or port for each osmo-msc instance. +You may also want to configure different VLR names: + +---- +sgs + local-ip 127.0.0.1 + local-port 29118 + vlr-name vlr.example.net +---- For the following links, OsmoMSC acts as a client and does not listen/bind to a specific interface, and will hence not encounter conflicts for multiple instances -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ice610e3db132dc50b7ddc3f3e324e8ad1bba5864 Gerrit-Change-Number: 18493 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder 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 Jun 2 20:06:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 20:06:26 +0000 Subject: Change in osmo-msc[master]: manual: link to new common cs7-config.adoc, remove some dup of that In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/17580 ) Change subject: manual: link to new common cs7-config.adoc, remove some dup of that ...................................................................... Patch Set 2: ping -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/17580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ie88dd2c7f7318a31ae04fbd6930346d92141fde5 Gerrit-Change-Number: 17580 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 20:06: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 Jun 2 20:07:25 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 2 Jun 2020 20:07:25 +0000 Subject: Change in osmo-msc[master]: vlr_subscr_rx_id_resp(): dont assert on received MI type References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18635 ) Change subject: vlr_subscr_rx_id_resp(): dont assert on received MI type ...................................................................... vlr_subscr_rx_id_resp(): dont assert on received MI type The Mobile Identity type is received on the wire, we asserting on its type constitutes a DoS vector. Change-Id: I2b2e25ef8e878e91a165018ba49f1609cfb5cbd0 --- M src/libvlr/vlr.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/35/18635/1 diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 887ceb8..019e657 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1146,6 +1146,8 @@ case GSM_MI_TYPE_IMEISV: vlr_subscr_set_imeisv(vsub, mi_string); break; + default: + return -EINVAL; } if (vsub->auth_fsm) { @@ -1170,8 +1172,7 @@ event = VLR_ULA_E_ID_IMEISV; break; default: - OSMO_ASSERT(0); - break; + return -EINVAL; } osmo_fsm_inst_dispatch(vsub->lu_fsm, event, mi_string); } -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I2b2e25ef8e878e91a165018ba49f1609cfb5cbd0 Gerrit-Change-Number: 18635 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 Jun 2 20:16:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 20:16:49 +0000 Subject: Change in libosmo-netif[master]: src/stream: Work around more Linux kernel ABI breakage 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-netif/+/18628 to look at the new patch set (#2). Change subject: src/stream: Work around more Linux kernel ABI breakage ...................................................................... src/stream: Work around more Linux kernel ABI breakage Back in Change-Id Ia95dd1f9ffed9f743c049e05797b1a6f1f9f8c69 we tried to work-around kernel ABI breakage introduced in kernel >= v5.5, but it seems that there have already been similar ABI breakages in v4.11 and v4.12. See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/sctp.h?id=b6e6b5f1da7e8d092f86a4351802c27c0170c5a5 and https://marc.info/?l=linux-sctp&m=158729301516157&w=2 for the most recent incarnation. See https://osmocom.org/issues/4573#note-6 for all known cases of SCTP_EVENTS ABI breakage. Closes: OS#4573 Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc --- M src/stream.c 1 file changed, 93 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/28/18628/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc Gerrit-Change-Number: 18628 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:41:46 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 20:41:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 20:41:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:43:52 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 2 Jun 2020 20:43:52 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 to look at the new patch set (#4). Change subject: ms_srs: refactor UE state getter functions ...................................................................... ms_srs: refactor UE state getter functions rename UE helper functions to query RRC connected/idle state and adapt tests accordingly also add helper to retrieve assinged IP address Change-Id: I6cd057e34b4df6a1a73695355dd6406d7e039546 --- M src/osmo_gsm_tester/obj/ms.py M src/osmo_gsm_tester/obj/ms_ofono.py M src/osmo_gsm_tester/obj/ms_srs.py M sysmocom/suites/4g/handover.py M sysmocom/suites/4g/iperf3_dl.py M sysmocom/suites/4g/iperf3_ul.py M sysmocom/suites/4g/ping.py 7 files changed, 40 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/35/18535/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:43:52 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 2 Jun 2020 20:43:52 +0000 Subject: Change in osmo-gsm-tester[master]: 4g_suite: add MT and MO test cases In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 to look at the new patch set (#4). Change subject: 4g_suite: add MT and MO test cases ...................................................................... 4g_suite: add MT and MO test cases add two new test cases to test paging (MT) and MO traffic Change-Id: I5c7639f2c6953964a5b6979bc35f59464dbda43f --- A sysmocom/suites/4g/rrc_idle_mo_ping.py A sysmocom/suites/4g/rrc_idle_mt_ping.py 2 files changed, 83 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/39/18539/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 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: I5c7639f2c6953964a5b6979bc35f59464dbda43f Gerrit-Change-Number: 18539 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:43:52 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 2 Jun 2020 20:43:52 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 ) Change subject: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode ...................................................................... enb_srs: add extra head room for max rate with 6 PRB in MIMO mode the overhead with 6 PRB and MIMO is a bit higher when compared to other PRBs resulting in lower achievable throughput Change-Id: I63888435553bba4f7be88cc745e24472921a7fb4 --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/36/18636/1 diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 33ee16b..2a05930 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -254,6 +254,9 @@ # MIMO only supported for Downlink if downlink and self._txmode > 2: max_rate *= 2 + # For 6 PRBs the max throughput is significantly lower + if self.num_prb() == 6: + max_rate *= 0.85 return max_rate -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 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: I63888435553bba4f7be88cc745e24472921a7fb4 Gerrit-Change-Number: 18636 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:43:53 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 2 Jun 2020 20:43:53 +0000 Subject: Change in osmo-gsm-tester[master]: enb: use 11.52e6 as base_srate for 25 PRB References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 ) Change subject: enb: use 11.52e6 as base_srate for 25 PRB ...................................................................... enb: use 11.52e6 as base_srate for 25 PRB With 25 PRB we've been using 5.76e6 as base sample rate which seems to create some issue during the tests like: [zmq] Error: tx time is 0.178 ms in the past (7833600 < 7835648) [zmq] Error: tx time is 0.011 ms in the past (7835520 < 7835648) Using a higher sample rate seems to work better Change-Id: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c --- M src/osmo_gsm_tester/obj/enb.py 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/37/18637/1 diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 699b66f..6753700 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -146,8 +146,6 @@ return 128 if num_prb <= 15: return 256 - if num_prb <= 25: - return 384 if num_prb <= 50: return 768 if num_prb <= 75: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 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: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c Gerrit-Change-Number: 18637 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 20:54:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 20:54:02 +0000 Subject: Change in libosmo-netif[master]: src/stream: Work around more Linux kernel ABI breakage In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18628 ) Change subject: src/stream: Work around more Linux kernel ABI breakage ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc Gerrit-Change-Number: 18628 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 20:54: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 Jun 2 20:54:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 2 Jun 2020 20:54:05 +0000 Subject: Change in libosmo-netif[master]: src/stream: Work around more Linux kernel ABI breakage In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18628 ) Change subject: src/stream: Work around more Linux kernel ABI breakage ...................................................................... src/stream: Work around more Linux kernel ABI breakage Back in Change-Id Ia95dd1f9ffed9f743c049e05797b1a6f1f9f8c69 we tried to work-around kernel ABI breakage introduced in kernel >= v5.5, but it seems that there have already been similar ABI breakages in v4.11 and v4.12. See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/sctp.h?id=b6e6b5f1da7e8d092f86a4351802c27c0170c5a5 and https://marc.info/?l=linux-sctp&m=158729301516157&w=2 for the most recent incarnation. See https://osmocom.org/issues/4573#note-6 for all known cases of SCTP_EVENTS ABI breakage. Closes: OS#4573 Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc --- M src/stream.c 1 file changed, 93 insertions(+), 20 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/stream.c b/src/stream.c index 6e4c461..44ac1b4 100644 --- a/src/stream.c +++ b/src/stream.c @@ -73,6 +73,97 @@ #define MSG_NOSIGNAL 0 #endif +/* is any of the bytes from offset .. u8_size in 'u8' non-zero? return offset or -1 if all zero */ +static int byte_nonzero(const uint8_t *u8, unsigned int offset, unsigned int u8_size) +{ + int j; + + for (j = offset; j < u8_size; j++) { + if (u8[j] != 0) + return j; + } + + return -1; +} + +static int sctp_sockopt_event_subscribe_size = 0; + +static int determine_sctp_sockopt_event_subscribe_size(void) +{ + uint8_t buf[256]; + socklen_t buf_len = sizeof(buf); + int sd, rc; + + /* only do this once */ + if (sctp_sockopt_event_subscribe_size != 0) + return 0; + + sd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP); + if (sd < 0) + return sd; + + rc = getsockopt(sd, IPPROTO_SCTP, SCTP_EVENTS, buf, &buf_len); + if (rc < 0) + return rc; + + sctp_sockopt_event_subscribe_size = buf_len; + + LOGP(DLINP, LOGL_INFO, "sizes of 'struct sctp_event_subscribe': compile-time %zu, kernel: %u\n", + sizeof(struct sctp_event_subscribe), sctp_sockopt_event_subscribe_size); + return 0; +} + +/* Attempt to work around Linux kernel ABI breakage + * + * The Linux kernel ABI for the SCTP_EVENTS socket option has been broken repeatedly. + * - until commit 35ea82d611da59f8bea44a37996b3b11bb1d3fd7 ( kernel < 4.11), the size is 10 bytes + * - in 4.11 it is 11 bytes + * - in 4.12 .. 5.4 it is 13 bytes + * - in kernels >= 5.5 it is 14 bytes + * + * This wouldn't be a problem if the kernel didn't have a "stupid" assumption that the structure + * size passed by userspace will match 1:1 the length of the structure at kernel compile time. In + * an ideal world, it would just use the known first bytes and assume the remainder is all zero. + * But as it doesn't do that, let's try to work around this */ +static int sctp_setsockopt_events_linux_workaround(int fd, const struct sctp_event_subscribe *event) +{ + + const unsigned int compiletime_size = sizeof(*event); + int rc; + + if (determine_sctp_sockopt_event_subscribe_size() < 0) { + LOGP(DLINP, LOGL_ERROR, "Cannot determine SCTP_EVENTS socket option size\n"); + return -1; + } + + if (compiletime_size == sctp_sockopt_event_subscribe_size) { + /* no kernel workaround needed */ + return setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, event, compiletime_size); + } else if (compiletime_size < sctp_sockopt_event_subscribe_size) { + /* we are using an older userspace with a more modern kernel and hence need + * to pad the data */ + uint8_t buf[sctp_sockopt_event_subscribe_size]; + + memcpy(buf, event, compiletime_size); + memset(buf + sizeof(*event), 0, sctp_sockopt_event_subscribe_size - compiletime_size); + return setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, buf, sctp_sockopt_event_subscribe_size); + } else /* if (compiletime_size > sctp_sockopt_event_subscribe_size) */ { + /* we are using a newer userspace with an older kernel and hence need to truncate + * the data - but only if the caller didn't try to enable any of the events of the + * truncated portion */ + rc = byte_nonzero((const uint8_t *)event, sctp_sockopt_event_subscribe_size, + compiletime_size); + if (rc >= 0) { + LOGP(DLINP, LOGL_ERROR, "Kernel only supports sctp_event_subscribe of %u bytes, " + "but caller tried to enable more modern event at offset %u\n", + sctp_sockopt_event_subscribe_size, rc); + return -1; + } + + return setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, event, sctp_sockopt_event_subscribe_size); + } +} + static int sctp_sock_activate_events(int fd) { #ifdef HAVE_LIBSCTP @@ -89,28 +180,10 @@ event.sctp_shutdown_event = 1; /* IMPORTANT: Do NOT enable sender_dry_event here, see * https://bugzilla.redhat.com/show_bug.cgi?id=1442784 */ - rc = setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, - &event, sizeof(event)); - /* - * Attempt to work around kernel ABI breakage - * - * In kernel commit b6e6b5f1da7e8d092f86a4351802c27c0170c5a5, the - * struct sctp_event_subscribe had a u8 field added to it at the end, thus - * breaking ABI. - * See https://marc.info/?l=linux-sctp&m=158729301516157&w=2 for discussion. - * - * We attempt to work around the issue where the kernel header are new - * and running kernel is old, by forcing the size of the struct to 13 which - * is the "old" size - */ - if ((rc < 0) && (sizeof(event) != 13)) - rc = setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, - &event, 13); - + rc = sctp_setsockopt_events_linux_workaround(fd, &event); if (rc < 0) - LOGP(DLINP, LOGL_ERROR, "couldn't activate SCTP events " - "on FD %u\n", fd); + LOGP(DLINP, LOGL_ERROR, "couldn't activate SCTP events on FD %u\n", fd); return rc; #else return -1; -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Icc49f347cdc0bb77a5c0e230597d662ac35b4acc Gerrit-Change-Number: 18628 Gerrit-PatchSet: 3 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 Tue Jun 2 21:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 2 Jun 2020 21:06:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: cosmetic: improve logging messages References: Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 ) Change subject: library/RSL_Emulation: cosmetic: improve logging messages ...................................................................... library/RSL_Emulation: cosmetic: improve logging messages Change-Id: Iefb6bc96e57822e216f8d8480337e6b4afc4d892 --- M library/RSL_Emulation.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/38/18638/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index eeb5ed5..9a07417 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -183,7 +183,7 @@ return i; } } - log("No Dchan handler for ", comp_ref); + log("No Dchan handler for comp_ref=", comp_ref); return -1; } @@ -196,7 +196,7 @@ return i; } } - log("No Dchan handler for ", trx_nr, chan_nr); + log("No Dchan handler for trx_nr=", trx_nr, " and chan_nr=", chan_nr); return -1; } @@ -209,7 +209,7 @@ return i; } } - log("No Dchan handler for ", ra, fn); + log("No Dchan handler for ra=", ra, " and fn=", fn); return -1; } @@ -226,7 +226,7 @@ } } } - log("No Dchan handler for ", ra, fn); + log("No Dchan handler for ra=", ra, " and fn=", fn); return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iefb6bc96e57822e216f8d8480337e6b4afc4d892 Gerrit-Change-Number: 18638 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 21:13:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 21:13:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633/3/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633/3/bts/BTS_Tests.ttcn at 216 PS3, Line 216: } Can't it happen that you still receive a RF_RES_IND after this and makes test fail later? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 21:13:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 21:18:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 21:18:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: cosmetic: improve logging messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 ) Change subject: library/RSL_Emulation: cosmetic: improve logging messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iefb6bc96e57822e216f8d8480337e6b4afc4d892 Gerrit-Change-Number: 18638 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 21:18:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 21:20:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 21:20:35 +0000 Subject: Change in osmo-msc[master]: vlr_subscr_rx_id_resp(): dont assert on received MI type In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18635 ) Change subject: vlr_subscr_rx_id_resp(): dont assert on received MI type ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/18635/1/src/libvlr/vlr.c File src/libvlr/vlr.c: https://gerrit.osmocom.org/c/osmo-msc/+/18635/1/src/libvlr/vlr.c at 1175 PS1, Line 1175: return -EINVAL; AFAIU since you return above in this caase, you can drop the default case altogether here. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I2b2e25ef8e878e91a165018ba49f1609cfb5cbd0 Gerrit-Change-Number: 18635 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 21:20:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 21:21:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 21:21:29 +0000 Subject: Change in osmo-gsm-tester[master]: enb: use 11.52e6 as base_srate for 25 PRB In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 ) Change subject: enb: use 11.52e6 as base_srate for 25 PRB ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 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: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c Gerrit-Change-Number: 18637 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 02 Jun 2020 21:21:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 2 21:23:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 2 Jun 2020 21:23:54 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 ) Change subject: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode ...................................................................... Patch Set 1: Code-Review+2 Don't you need to add the same for amarisoft_enb? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 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: I63888435553bba4f7be88cc745e24472921a7fb4 Gerrit-Change-Number: 18636 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 02 Jun 2020 21:23: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 Wed Jun 3 01:37:10 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 03 Jun 2020 01:37:10 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ed6fed139646_7b332b170425c6005073e3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 158s] touch libfx2.lib [ 158s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 158s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 158s] Making all in src [ 158s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 158s] Making all in common [ 158s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 158s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 158s] /usr/bin/env: 'python': No such file or directory [ 158s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 158s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 158s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 158s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 158s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 158s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 158s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 158s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 158s] make[1]: *** [Makefile:554: all] 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:13: build] Error 25 [ 158s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 158s] ### VM INTERACTION START ### [ 161s] [ 150.075364] sysrq: SysRq : Power Off [ 161s] [ 150.079813] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] sheep86 failed "build libusrp_3.4.4.7.50ce.dsc" at Wed Jun 3 01:36:54 UTC 2020. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 3 04:29:45 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 03 Jun 2020 04:29:45 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ed7273e8ab1d_7b332b170425c60057214b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Unstable/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 440s] touch libfx2.lib [ 440s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 440s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 440s] Making all in src [ 440s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 440s] Making all in common [ 440s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 440s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 440s] /usr/bin/env: 'python': No such file or directory [ 440s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 440s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 440s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 440s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 440s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 440s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 440s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 440s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 440s] make[1]: *** [Makefile:547: all] Error 2 [ 440s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 440s] dh_auto_build: error: make -j1 returned exit code 2 [ 440s] make: *** [debian/rules:13: build] Error 25 [ 440s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 440s] ### VM INTERACTION START ### [ 443s] [ 377.020591] sysrq: SysRq : Power Off [ 443s] [ 377.037914] reboot: Power down [ 443s] ### VM INTERACTION END ### [ 443s] [ 443s] cloud119 failed "build libusrp_3.4.4.dsc" at Wed Jun 3 04:29:28 UTC 2020. [ 443s] -- 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 Jun 3 05:52:29 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 3 Jun 2020 05:52:29 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: herlesupreeth has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Wed, 03 Jun 2020 05:52: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 Jun 3 05:54:08 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 3 Jun 2020 05:54:08 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: herlesupreeth has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Patch Set 6: > Patch Set 6: Code-Review+2 wow!! cool feature. I was planning to implement the similar SIM carding reading on the Android Device itself using UICC Carrier Privileges. This could be a nice start for me :) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Wed, 03 Jun 2020 05:54:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 06:25:44 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 3 Jun 2020 06:25:44 +0000 Subject: Change in pysim[master]: Implement Generic SIM Access interface as per 3GPP TS 27.007 In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/18159 ) Change subject: Implement Generic SIM Access interface as per 3GPP TS 27.007 ...................................................................... Implement Generic SIM Access interface as per 3GPP TS 27.007 According to 3GPP TS 27.007, sections 8.17 and 8.18, the modem may *optionally* provide Generic and/or Restricted SIM Access to the TE (Terminal Equipment) by means of the AT commands. This basically means that a modem can act as a card reader. Generic SIM Access allows the TE to send raw PDUs in the format as described in 3GPP TS 51.011 directly to the SIM card, while Restricted SIM Access is more limited, and thus is not really interesting to us. This change implements a new transport called ModemATCommandLink, so using it a SIM card can be read and/or programmed without the need to remove it from the modem's socket. A downside of this approach is relatively slow I/O speed compared to PC/SC readers. Tested with Quectel EC20: $ ./pySim-read.py --modem-dev /dev/ttyUSB2 Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Signed-off-by: Vadim Yanitskiy --- M pySim-prog.py M pySim-read.py A pySim/transport/modem_atcmd.py M pySim/utils.py 4 files changed, 146 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Verified herlesupreeth: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index f707c57..601f980 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -61,6 +61,14 @@ 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, diff --git a/pySim-read.py b/pySim-read.py index df21531..e49a907 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -53,6 +53,14 @@ 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, diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py new file mode 100644 index 0000000..742ae8d --- /dev/null +++ b/pySim/transport/modem_atcmd.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python +# -*- 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 +# 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 __future__ import absolute_import + +import logging as log +import serial +import time +import re + +from pySim.transport import LinkBase +from pySim.exceptions import * + +# HACK: if somebody needs to debug this thing +# log.root.setLevel(log.DEBUG) + +class ModemATCommandLink(LinkBase): + def __init__(self, device='/dev/ttyUSB0', baudrate=115200): + self._sl = serial.Serial(device, baudrate, timeout=5) + self._device = device + self._atr = None + + # Trigger initial reset + self.reset_card() + + def __del__(self): + self._sl.close() + + def send_at_cmd(self, cmd): + # Convert from string to bytes, if needed + bcmd = cmd if type(cmd) is bytes else cmd.encode() + bcmd += b'\r' + + # Send command to the modem + log.debug('Sending AT command: %s' % cmd) + try: + wlen = self._sl.write(bcmd) + assert(wlen == len(bcmd)) + except: + raise ReaderError('Failed to send AT command: %s' % cmd) + + # Give the modem some time... + time.sleep(0.3) + + # Read the response + try: + # Skip characters sent back + self._sl.read(wlen) + # Read the rest + rsp = self._sl.read_all() + + # Strip '\r\n' + rsp = rsp.strip() + # Split into a list + rsp = rsp.split(b'\r\n\r\n') + except: + raise ReaderError('Failed parse response to AT command: %s' % cmd) + + log.debug('Got response from modem: %s' % rsp) + return rsp + + def reset_card(self): + # Make sure that we can talk to the modem + if self.send_at_cmd('AT') != [b'OK']: + raise ReaderError('Failed to connect to modem') + + # Reset the modem, just to be sure + if self.send_at_cmd('ATZ') != [b'OK']: + raise ReaderError('Failed to reset the modem') + + # Make sure that generic SIM access is supported + if self.send_at_cmd('AT+CSIM=?') != [b'OK']: + raise ReaderError('The modem does not seem to support SIM access') + + log.info('Modem at \'%s\' is ready!' % self._device) + + def connect(self): + pass # Nothing to do really ... + + def disconnect(self): + pass # Nothing to do really ... + + def wait_for_card(self, timeout=None, newcardonly=False): + pass # Nothing to do really ... + + def send_apdu_raw(self, pdu): + # Prepare the command as described in 8.17 + cmd = 'AT+CSIM=%d,\"%s\"' % (len(pdu), pdu) + + # Send AT+CSIM command to the modem + # TODO: also handle +CME ERROR: + rsp = self.send_at_cmd(cmd) + if len(rsp) != 2 or rsp[-1] != b'OK': + raise ReaderError('APDU transfer failed: %s' % str(rsp)) + rsp = rsp[0] # Get rid of b'OK' + + # Make sure that the response has format: b'+CSIM: %d,\"%s\"' + try: + result = re.match(b'\+CSIM: (\d+),\"([0-9A-F]+)\"', rsp) + (rsp_pdu_len, rsp_pdu) = result.groups() + except: + raise ReaderError('Failed to parse response from modem: %s' % rsp) + + # TODO: make sure we have at least SW + data = rsp_pdu[:-4].decode() + sw = rsp_pdu[-4:].decode() + return data, sw diff --git a/pySim/utils.py b/pySim/utils.py index 20eb5a8..496b918 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -485,6 +485,10 @@ 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 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I20bc00315e2c7c298f46283852865c1416047bc6 Gerrit-Change-Number: 18159 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: fixeria Gerrit-Reviewer: herlesupreeth Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 06:30:37 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Wed, 3 Jun 2020 06:30:37 +0000 Subject: Change in pysim[master]: ts_31_102.py: add EF_ADF_map In-Reply-To: References: Message-ID: herlesupreeth has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/18564 ) Change subject: ts_31_102.py: add EF_ADF_map ...................................................................... ts_31_102.py: add EF_ADF_map the EF files in the USIM ADF are different to the ones int the GSM dir so added the dictionary to avoid conflicts and hardcoded values the 'DIR' one was added in ts_51_011.py, not sure if it should be there as it's not in that standard, but did it for simplicity Change-Id: I458380bf46b2986662ecdede2551c22cd9be92ba --- M pySim-read.py M pySim/cards.py M pySim/ts_31_102.py M pySim/ts_51_011.py 4 files changed, 111 insertions(+), 5 deletions(-) Approvals: Vadim Yanitskiy: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim-read.py b/pySim-read.py index e49a907..b23e6ee 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -29,7 +29,7 @@ import re import sys from pySim.ts_51_011 import EF, DF, EF_SST_map -from pySim.ts_31_102 import EF_UST_map +from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map from pySim.ts_31_103 import EF_IST_map from pySim.commands import SimCardCommands @@ -242,7 +242,7 @@ # EF.UST - File Id in ADF USIM : 6f38 if '9000' == card.select_adf_by_aid(): # EF.UST - (res, sw) = card.read_binary('6f38') + (res, sw) = card.read_binary(EF_USIM_ADF_map['UST']) if sw == '9000': print("USIM Service Table: %s" % res) # Print those which are available diff --git a/pySim/cards.py b/pySim/cards.py index c7b34eb..808fde1 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -225,9 +225,9 @@ try: # Find out how many records the EF.DIR has # and store all the AIDs in the UICC - rec_cnt = self._scc.record_count(['3f00', '2f00']) + rec_cnt = self._scc.record_count(EF['DIR']) for i in range(0, rec_cnt): - rec = self._scc.read_record(['3f00', '2f00'], i + 1) + rec = self._scc.read_record(EF['DIR'], i + 1) if (rec[0][0:2], rec[0][4:6]) == ('61', '4f') and len(rec[0]) > 12 \ and rec[0][8:8 + int(rec[0][6:8], 16) * 2] not in self._aids: self._aids.append(rec[0][8:8 + int(rec[0][6:8], 16) * 2]) diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 9f5abe9..473e595 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -135,4 +135,108 @@ 109: 'MCPTT', 110: 'ePDG configuration Information for Emergency Service support', 111: 'ePDG configuration Information for Emergency Service configured', -} \ No newline at end of file +} + +EF_USIM_ADF_map = { + 'LI': '6F05', + 'ARR': '6F06', + 'IMSI': '6F07', + 'Keys': '6F08', + 'KeysPS': '6F09', + 'DCK': '6F2C', + 'HPPLMN': '6F31', + 'CNL': '6F32', + 'ACMmax': '6F37', + 'UST': '6F38', + 'ACM': '6F39', + 'FDN': '6F3B', + 'SMS': '6F3C', + 'GID1': '6F3E', + 'GID2': '6F3F', + 'MSISDN': '6F40', + 'PUCT': '6F41', + 'SMSP': '6F42', + 'SMSS': '6F42', + 'CBMI': '6F45', + 'SPN': '6F46', + 'SMSR': '6F47', + 'CBMID': '6F48', + 'SDN': '6F49', + 'EXT2': '6F4B', + 'EXT3': '6F4C', + 'BDN': '6F4D', + 'EXT5': '6F4E', + 'CCP2': '6F4F', + 'CBMIR': '6F50', + 'EXT4': '6F55', + 'EST': '6F56', + 'ACL': '6F57', + 'CMI': '6F58', + 'START-HFN': '6F5B', + 'THRESHOLD': '6F5C', + 'PLMNwAcT': '6F60', + 'OPLMNwAcT': '6F61', + 'HPLMNwAcT': '6F62', + 'PSLOCI': '6F73', + 'ACC': '6F78', + 'FPLMN': '6F7B', + 'LOCI': '6F7E', + 'ICI': '6F80', + 'OCI': '6F81', + 'ICT': '6F82', + 'OCT': '6F83', + 'AD': '6FAD', + 'VGCS': '6FB1', + 'VGCSS': '6FB2', + 'VBS': '6FB3', + 'VBSS': '6FB4', + 'eMLPP': '6FB5', + 'AAeM': '6FB6', + 'ECC': '6FB7', + 'Hiddenkey': '6FC3', + 'NETPAR': '6FC4', + 'PNN': '6FC5', + 'OPL': '6FC6', + 'MBDN': '6FC7', + 'EXT6': '6FC8', + 'MBI': '6FC9', + 'MWIS': '6FCA', + 'CFIS': '6FCB', + 'EXT7': '6FCC', + 'SPDI': '6FCD', + 'MMSN': '6FCE', + 'EXT8': '6FCF', + 'MMSICP': '6FD0', + 'MMSUP': '6FD1', + 'MMSUCP': '6FD2', + 'NIA': '6FD3', + 'VGCSCA': '6FD4', + 'VBSCA': '6FD5', + 'GBAP': '6FD6', + 'MSK': '6FD7', + 'MUK': '6FD8', + 'EHPLMN': '6FD9', + 'GBANL': '6FDA', + 'EHPLMNPI': '6FDB', + 'LRPLMNSI': '6FDC', + 'NAFKCA': '6FDD', + 'SPNI': '6FDE', + 'PNNI': '6FDF', + 'NCP-IP': '6FE2', + 'EPSLOCI': '6FE3', + 'EPSNSC': '6FE4', + 'UFC': '6FE6', + 'UICCIARI': '6FE7', + 'NASCONFIG': '6FE8', + 'PWC': '6FEC', + 'FDNURI': '6FED', + 'BDNURI': '6FEE', + 'SDNURI': '6FEF', + 'IWL': '6FF0', + 'IPS': '6FF1', + 'IPD': '6FF2', + 'ePDGId': '6FF3', + 'ePDGSelection': '6FF4', + 'ePDGIdEm': '6FF5', + 'ePDGSelectionEm': '6FF6', +} diff --git a/pySim/ts_51_011.py b/pySim/ts_51_011.py index 1cec91f..37d2bc8 100644 --- a/pySim/ts_51_011.py +++ b/pySim/ts_51_011.py @@ -48,6 +48,7 @@ # MF 'ICCID': '2FE2', 'ELP': '2F05', +'DIR': '2F00', # DF_TELECOM 'ADN': '6F3A', @@ -164,6 +165,7 @@ EF = { 'ICCID': [MF_num, EF_num['ICCID']], 'ELP': [MF_num, EF_num['ELP']], +'DIR': [MF_num, EF_num['DIR']], 'ADN': DF['TELECOM']+[EF_num['ADN']], 'FDN': DF['TELECOM']+[EF_num['FDN']], -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I458380bf46b2986662ecdede2551c22cd9be92ba Gerrit-Change-Number: 18564 Gerrit-PatchSet: 4 Gerrit-Owner: guilly at gmail.com Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: guilly at gmail.com Gerrit-Reviewer: herlesupreeth Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 06:52:38 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 3 Jun 2020 06:52:38 +0000 Subject: Change in osmo-bsc[master]: abis_nm: cosmetic: add curly braces to complex 'if' statements In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18595 ) Change subject: abis_nm: cosmetic: add curly braces to complex 'if' statements ...................................................................... abis_nm: cosmetic: add curly braces to complex 'if' statements Change-Id: I74fbb46920c74a194c296feeeb1bb086fcbd572f --- M src/osmo-bsc/abis_nm.c 1 file changed, 10 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 4ed0602..a0aead8 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -570,25 +570,29 @@ len = TLVP_LEN(tp, NM_ATT_MANUF_ID); /* log potential BTS feature vector overflow */ - if (len > sizeof(bts->_features_data)) + if (len > sizeof(bts->_features_data)) { LOGP(DNM, LOGL_NOTICE, "BTS%u Get Attributes Response: feature vector is truncated to %u bytes\n", bts->nr, MAX_BTS_FEATURES/8); + } /* check that max. expected BTS attribute is above given feature vector length */ - if (len > OSMO_BYTES_FOR_BITS(_NUM_BTS_FEAT)) + if (len > OSMO_BYTES_FOR_BITS(_NUM_BTS_FEAT)) { LOGP(DNM, LOGL_NOTICE, "BTS%u Get Attributes Response: reported unexpectedly long (%u bytes) " "feature vector - most likely it was compiled against newer BSC headers. " "Consider upgrading your BSC to later version.\n", bts->nr, len); + } memcpy(bts->_features_data, TLVP_VAL(tp, NM_ATT_MANUF_ID), sizeof(bts->_features_data)); - for (i = 0; i < _NUM_BTS_FEAT; i++) - if (osmo_bts_has_feature(&bts->features, i) != osmo_bts_has_feature(&bts->model->features, i)) + for (i = 0; i < _NUM_BTS_FEAT; i++) { + if (osmo_bts_has_feature(&bts->features, i) != osmo_bts_has_feature(&bts->model->features, i)) { LOGP(DNM, LOGL_NOTICE, "BTS%u feature '%s' reported via OML does not match statically " "set feature: %u != %u. Please fix.\n", bts->nr, get_value_string(osmo_bts_features_descs, i), osmo_bts_has_feature(&bts->features, i), osmo_bts_has_feature(&bts->model->features, i)); + } + } } /* Parse Attribute Response Info content for 3GPP TS 52.021 ?9.4.28 Manufacturer Dependent State */ @@ -607,10 +611,11 @@ if (rc > 0) { for (i = 0; i < rc; i++) { if (!handle_attr(bts, str2btsattr((const char *)sw_descr[i].file_id), - sw_descr[i].file_version, sw_descr[i].file_version_len)) + sw_descr[i].file_version, sw_descr[i].file_version_len)) { LOGPFOH(DNM, LOGL_NOTICE, foh, "BTS%u: ARI reported sw[%d/%d]: %s " "is %s\n", bts->nr, i, rc, sw_descr[i].file_id, sw_descr[i].file_version); + } } } else { LOGPFOH(DNM, LOGL_ERROR, foh, "BTS%u: failed to parse SW-Config part of " -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I74fbb46920c74a194c296feeeb1bb086fcbd572f Gerrit-Change-Number: 18595 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 06:52:39 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 3 Jun 2020 06:52:39 +0000 Subject: Change in osmo-bsc[master]: abis_nm: cosmetic: use sizeof() for printing buffer size In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18596 ) Change subject: abis_nm: cosmetic: use sizeof() for printing buffer size ...................................................................... abis_nm: cosmetic: use sizeof() for printing buffer size Change-Id: I14be343578a64c1e4ce8ce4d28da9008eb309f3c --- M src/osmo-bsc/abis_nm.c 1 file changed, 2 insertions(+), 2 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 a0aead8..f600801 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -571,8 +571,8 @@ /* log potential BTS feature vector overflow */ if (len > sizeof(bts->_features_data)) { - LOGP(DNM, LOGL_NOTICE, "BTS%u Get Attributes Response: feature vector is truncated to %u bytes\n", - bts->nr, MAX_BTS_FEATURES/8); + LOGP(DNM, LOGL_NOTICE, "BTS%u Get Attributes Response: feature vector is truncated to %zu bytes\n", + bts->nr, sizeof(bts->_features_data)); } /* check that max. expected BTS attribute is above given feature vector length */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14be343578a64c1e4ce8ce4d28da9008eb309f3c Gerrit-Change-Number: 18596 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 06:52:39 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 3 Jun 2020 06:52:39 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix: properly truncate feature vector reported by BTS In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18597 ) Change subject: abis_nm: fix: properly truncate feature vector reported by BTS ...................................................................... abis_nm: fix: properly truncate feature vector reported by BTS The value of the feature vector can not only be greater, but also shorter than size of the buffer! This would potentially result in a buffer overrun. Let's fix this. Change-Id: I65e3228022865ea73de2e4821985df3097b9448b --- M src/osmo-bsc/abis_nm.c 1 file changed, 4 insertions(+), 3 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 f600801..db2879f 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -571,8 +571,9 @@ /* log potential BTS feature vector overflow */ if (len > sizeof(bts->_features_data)) { - LOGP(DNM, LOGL_NOTICE, "BTS%u Get Attributes Response: feature vector is truncated to %zu bytes\n", - bts->nr, sizeof(bts->_features_data)); + LOGP(DNM, LOGL_NOTICE, "BTS%u Get Attributes Response: feature vector is truncated " + "(from %u to %zu bytes)\n", bts->nr, len, sizeof(bts->_features_data)); + len = sizeof(bts->_features_data); } /* check that max. expected BTS attribute is above given feature vector length */ @@ -583,7 +584,7 @@ bts->nr, len); } - memcpy(bts->_features_data, TLVP_VAL(tp, NM_ATT_MANUF_ID), sizeof(bts->_features_data)); + 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)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I65e3228022865ea73de2e4821985df3097b9448b Gerrit-Change-Number: 18597 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy 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 Jun 3 08:32:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 08:32:29 +0000 Subject: Change in libosmo-netif[master]: src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18639 ) Change subject: src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt ...................................................................... src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt In Commit Icc49f347cdc0bb77a5c0e230597d662ac35b4acc I forgot to close the socket :/ Change-Id: I384c61dac0eac8ad999ff0d62350c2fcf3e57ea9 --- M src/stream.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/39/18639/1 diff --git a/src/stream.c b/src/stream.c index 44ac1b4..9e5d805 100644 --- a/src/stream.c +++ b/src/stream.c @@ -103,6 +103,7 @@ return sd; rc = getsockopt(sd, IPPROTO_SCTP, SCTP_EVENTS, buf, &buf_len); + close(sd); if (rc < 0) return rc; -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: I384c61dac0eac8ad999ff0d62350c2fcf3e57ea9 Gerrit-Change-Number: 18639 Gerrit-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 Jun 3 10:37:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 10:37:49 +0000 Subject: Change in libosmo-netif[master]: src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18639 ) Change subject: src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: I384c61dac0eac8ad999ff0d62350c2fcf3e57ea9 Gerrit-Change-Number: 18639 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 10:37:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 10:44:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 10:44:18 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if: Clarify {SET; ADJ}POWER TRXC commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 ) Change subject: trx_if: Clarify {SET;ADJ}POWER TRXC commands ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 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: I4f1986a1ace3fc9cbef10fc0508407a3d608670b Gerrit-Change-Number: 18556 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 03 Jun 2020 10:44:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 10:44:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 10:44:20 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if: Clarify {SET; ADJ}POWER TRXC commands In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 ) Change subject: trx_if: Clarify {SET;ADJ}POWER TRXC commands ...................................................................... trx_if: Clarify {SET;ADJ}POWER TRXC commands Change-Id: I4f1986a1ace3fc9cbef10fc0508407a3d608670b --- M common/chapters/trx_if.adoc 1 file changed, 11 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, but someone else must approve Hoernchen: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index d9f074a..fc42eed 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -64,26 +64,27 @@ RSP POWEROFF ---- -`POWERON` starts the transmitter and starts the demodulator. Initial power -level is very low. This command fails if the transmitter and receiver are not -yet tuned. This command fails if the transmit or receive frequency creates a -conflict with another ARFCN that is already running. If the transceiver is -already on, it answers successfully to this command. +`POWERON` starts the transmitter and starts the demodulator. Initial power level +is by default very low, unless set explicitly by `SETPOWER`/`ADJPOWER` +beforehand while in `POWEROFF` state. This command fails if the transmitter and +receiver are not yet tuned. This command fails if the transmit or receive +frequency creates a conflict with another ARFCN that is already running. If the +transceiver is already on, it answers successfully to this command. ---- CMD POWERON RSP POWERON ---- -`SETPOWER` sets output power in dB wrt full scale. -This command fails if the transmitter and receiver are not running. +`SETPOWER` sets transmit power attenuation wrt the nominal transmit power of +the transceiver, in dB. ---- CMD SETPOWER RSP SETPOWER ---- -`ADJPOWER` adjusts power by the given dB step. Response returns resulting power -level wrt full scale. This command fails if the transmitter and receiver are not -running. +`ADJPOWER` adjusts by the given dB the transmit power attenuation of the +transceiver. Response returns resulting transmit power attenuation wrt the +nominal transmit power of the transceiver. ---- CMD ADJPOWER RSP ADJPOWER -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18556 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: I4f1986a1ace3fc9cbef10fc0508407a3d608670b Gerrit-Change-Number: 18556 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 12:46:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:46:31 +0000 Subject: Change in osmo-msc[master]: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18640 ) Change subject: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds ...................................................................... contrib/osmo-msc.spec.in: Enable SMPP in RPM builds The SPEC file already included a build dependency to libsmpp34, but then the compilation of osmo-msc didn't actually pass --enable-smpp along, resulting in binaries without SMPP support - unlike the Debian binaries, which do contain that part. Change-Id: I223be7a735e97b32f7c0ff246cf826f109b0f686 --- M contrib/osmo-msc.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/18640/1 diff --git a/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index 1ebe9fa..da6c0ba 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -77,6 +77,7 @@ %if %{with_iu} --enable-iu \ %endif + --enable-smpp \ --docdir=%{_docdir}/%{name} \ --with-systemdsystemunitdir=%{_unitdir} -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I223be7a735e97b32f7c0ff246cf826f109b0f686 Gerrit-Change-Number: 18640 Gerrit-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 Jun 3 12:48:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:48:34 +0000 Subject: Change in osmo-msc[master]: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18640 ) Change subject: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I223be7a735e97b32f7c0ff246cf826f109b0f686 Gerrit-Change-Number: 18640 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 03 Jun 2020 12:48: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 Jun 3 12:49:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:49:02 +0000 Subject: Change in libosmo-netif[master]: src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/18639 ) Change subject: src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt ...................................................................... src/stream.c: Don't leak socket during SCTP_EVENTS getsockopt In Commit Icc49f347cdc0bb77a5c0e230597d662ac35b4acc I forgot to close the socket :/ Change-Id: I384c61dac0eac8ad999ff0d62350c2fcf3e57ea9 --- M src/stream.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/stream.c b/src/stream.c index 44ac1b4..9e5d805 100644 --- a/src/stream.c +++ b/src/stream.c @@ -103,6 +103,7 @@ return sd; rc = getsockopt(sd, IPPROTO_SCTP, SCTP_EVENTS, buf, &buf_len); + close(sd); if (rc < 0) return rc; -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/18639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: I384c61dac0eac8ad999ff0d62350c2fcf3e57ea9 Gerrit-Change-Number: 18639 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 12:49:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:49:40 +0000 Subject: Change in osmo-pcu[master]: bts: refactor handling and parsing of RACH.ind In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/18386 ) Change subject: bts: refactor handling and parsing of RACH.ind ...................................................................... bts: refactor handling and parsing of RACH.ind This patch is a set of tightly related changes: - group all RACH.ind parameters into struct 'rach_ind_params'; - group Channel Request parameters into struct 'chan_req_params'; - get rid of egprs_mslot_class_from_ra(), priority_from_ra(), and is_single_block(), introduce unified parse_rach_ind(); - improve logging, get rid of redundant information. This is needed for proper EGPRS Packet Channel Request handling. Change-Id: I5fe7e0f51bf5c9eac073935cc4f4edd667c67c6e Related: OS#1548 --- M src/bts.cpp M src/bts.h M src/pcu_l1_if.cpp M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 5 files changed, 279 insertions(+), 330 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index 8941403..2a74978 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -677,191 +677,165 @@ } /* 3GPP TS 44.060: - * Table 11.2.5.3: PACKET CHANNEL REQUEST - * Table 11.2.5a.3: EGPRS PACKET CHANNEL REQUEST - * Both GPRS and EGPRS use same MultislotClass coding, but since use of PCCCH is + * Table 11.2.5.2: PACKET CHANNEL REQUEST + * Table 11.2.5a.2: EGPRS PACKET CHANNEL REQUEST + * Both GPRS and EGPRS use same MultislotClass coding, but since PRACH is * deprecated, no PACKET CHANNEL REQUEST exists, which means for GPRS we will * receive CCCH RACH which doesn't contain any mslot class. Hence in the end we - * can only receive EGPRS mslot class through 11-bit EGPRS PACKET CHANNEL - * REQUEST. - */ -static inline uint8_t egprs_mslot_class_from_ra(uint16_t ra, bool is_11bit) + * can only receive EGPRS mslot class through 11-bit EGPRS PACKET CHANNEL REQUEST. */ +static int parse_egprs_pkt_ch_req(uint16_t ra11, struct chan_req_params *chan_req) { /* EGPRS multislot class is only present in One Phase Access Request */ - if (is_11bit && (ra >> 10) == 0x00) /* .0xx xxx. .... */ - return ((ra & 0x3e0) >> 5) + 1; - - /* set EGPRS multislot class to 0 for 8-bit RACH, since we don't know it yet */ - return 0; -} - -static inline uint16_t priority_from_ra(uint16_t ra, bool is_11bit) -{ - if (is_11bit) - return (ra & 0x18) >> 3; + if ((ra11 >> 10) == 0x00) /* .0xx xxx. .... */ + chan_req->egprs_mslot_class = ((ra11 & 0x3e0) >> 5) + 1; return 0; } -static inline bool is_single_block(bool force_two_phase, uint16_t ra, enum ph_burst_type burst_type, bool is_11bit) +/* NOTE: chan_req needs to be zero-initialized by the caller */ +static int parse_rach_ind(const struct rach_ind_params *rip, + struct chan_req_params *chan_req) { - bool sb = false; + int rc; - if ((ra & 0xf8) == 0x70) - LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation\n"); - else if (force_two_phase) - LOGP(DRLCMAC, LOGL_DEBUG, - "MS requests single phase access, but we force two phase access [RACH is %s bit]\n", - is_11bit ? "11" : "8"); - - switch(burst_type) { - case GSM_L1_BURST_TYPE_ACCESS_0: - if (is_11bit) { - LOGP(DRLCMAC, LOGL_ERROR, "Error: GPRS 11 bit RACH not supported\n"); - return false; - } - - if ((ra & 0xf8) == 0x70) - return true; - - if (force_two_phase) - return true; - break; - case GSM_L1_BURST_TYPE_ACCESS_1: /* deliberate fall-through */ - case GSM_L1_BURST_TYPE_ACCESS_2: - if (is_11bit) { - if (!(ra & (1 << 10))) { - if (force_two_phase) - return true; - - return false; - } - - return true; - } - LOGP(DRLCMAC, LOGL_ERROR, "Unexpected RACH burst type %u for 8-bit RACH\n", burst_type); - break; + switch (rip->burst_type) { case GSM_L1_BURST_TYPE_NONE: - LOGP(DRLCMAC, LOGL_ERROR, "PCU has not received burst type from BTS\n"); + LOGP(DRLCMAC, LOGL_ERROR, "RACH.ind contains no burst type, assuming TS0\n"); + /* fall-through */ + case GSM_L1_BURST_TYPE_ACCESS_0: + if (rip->is_11bit) { /* 11 bit Access Burst with TS0 => Packet Channel Request */ + LOGP(DRLCMAC, LOGL_ERROR, "11 bit Packet Channel Request " + "is not supported (PBCCH is deprecated)\n"); + return -ENOTSUP; + } + + /* 3GPP TS 44.018, table 9.1.8.1: 8 bit CHANNEL REQUEST. + * Mask 01110xxx indicates single block packet access. */ + chan_req->single_block = ((rip->ra & 0xf8) == 0x70); + break; + case GSM_L1_BURST_TYPE_ACCESS_1: + case GSM_L1_BURST_TYPE_ACCESS_2: + if (!rip->is_11bit) { /* TS1/TS2 => EGPRS Packet Channel Request (always 11 bit) */ + LOGP(DRLCMAC, LOGL_ERROR, "11 bit Packet Channel Request " + "is not supported (PBCCH is deprecated)\n"); + return -ENOTSUP; + } + + rc = parse_egprs_pkt_ch_req(rip->ra, chan_req); + if (rc) + return rc; break; default: - LOGP(DRLCMAC, LOGL_ERROR, "Unexpected RACH burst type %u for %s-bit RACH\n", - burst_type, is_11bit ? "11" : "8"); + LOGP(DRLCMAC, LOGL_ERROR, "RACH.ind contains unknown burst type 0x%02x " + "(%u bit)\n", rip->burst_type, rip->is_11bit ? 11 : 8); + return -EINVAL; } - return sb; + return 0; } -int BTS::rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, - enum ph_burst_type burst_type) +int BTS::rcv_rach(const struct rach_ind_params *rip) { + struct chan_req_params chan_req = { 0 }; struct gprs_rlcmac_ul_tbf *tbf = NULL; - uint8_t trx_no, ts_no = 0; - uint8_t sb = 0; + uint8_t trx_no, ts_no; uint32_t sb_fn = 0; - int rc = 0; - int plen; uint8_t usf = 7; - uint8_t tsc = 0, ta = qta2ta(qta); - uint8_t egprs_ms_class = egprs_mslot_class_from_ra(ra, is_11bit); - bool failure = false; - GprsMs *ms; + uint8_t tsc = 0; + int plen, rc; do_rate_ctr_inc(CTR_RACH_REQUESTS); - if (is_11bit) + if (rip->is_11bit) do_rate_ctr_inc(CTR_11BIT_RACH_REQUESTS); /* Determine full frame number */ - Fn = rfn_to_fn(Fn); + uint32_t Fn = rfn_to_fn(rip->rfn); + uint8_t ta = qta2ta(rip->qta); - send_gsmtap(PCU_GSMTAP_C_UL_RACH, true, 0, ts_no, GSMTAP_CHANNEL_RACH, - Fn, (uint8_t*)&ra, is_11bit ? 2 : 1); + send_gsmtap(PCU_GSMTAP_C_UL_RACH, true, rip->trx_nr, rip->ts_nr, + GSMTAP_CHANNEL_RACH, Fn, (uint8_t *) &rip->ra, + rip->is_11bit ? 2 : 1); - LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF on RACH, " - "so we provide one: ra=0x%02x Fn=%u qta=%d is_11bit=%d:\n", - ra, Fn, qta, is_11bit); + LOGP(DRLCMAC, LOGL_DEBUG, "MS requests Uplink resource on CCCH/RACH: " + "ra=0x%02x (%d bit) Fn=%u qta=%d\n", rip->ra, + rip->is_11bit ? 11 : 8, Fn, rip->qta); - sb = is_single_block(m_bts.force_two_phase, ra, burst_type, is_11bit); + /* Parse [EGPRS Packet] Channel Request from RACH.ind */ + rc = parse_rach_ind(rip, &chan_req); + if (rc) /* Send RR Immediate Assignment Reject */ + goto send_imm_ass_rej; - if (sb) { + if (chan_req.single_block) + LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation\n"); + else if (m_bts.force_two_phase) { + LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation, " + "but we force two phase access\n"); + chan_req.single_block = true; + } + + /* Should we allocate a single block or an Uplink TBF? */ + if (chan_req.single_block) { rc = sba()->alloc(&trx_no, &ts_no, &sb_fn, ta); if (rc < 0) { - failure = true; LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource for " - "single block allocation." - "sending Immediate " - "Assignment Uplink (AGCH) reject\n"); - } else { - tsc = m_bts.trx[trx_no].pdch[ts_no].tsc; - - LOGP(DRLCMAC, LOGL_DEBUG, "RX: [PCU <- BTS] RACH " - " qbit-ta=%d ra=0x%02x, Fn=%d (%d,%d,%d)," - " SBFn=%d\n", - qta, ra, - Fn, (Fn / (26 * 51)) % 32, Fn % 51, Fn % 26, - sb_fn); - LOGP(DRLCMAC, LOGL_INFO, "TX: Immediate Assignment " - "Uplink (AGCH)\n"); + "single block allocation: rc=%d\n", rc); + /* Send RR Immediate Assignment Reject */ + goto send_imm_ass_rej; } + + tsc = m_bts.trx[trx_no].pdch[ts_no].tsc; + LOGP(DRLCMAC, LOGL_DEBUG, "Allocated a single block at " + "SBFn=%u TRX=%u TS=%u\n", sb_fn, trx_no, ts_no); } else { - ms = ms_alloc(0, egprs_ms_class); - // Create new TBF - /* FIXME: Copy and paste with other routines.. */ + GprsMs *ms = ms_alloc(0, chan_req.egprs_mslot_class); tbf = tbf_alloc_ul_tbf(&m_bts, ms, -1, true); - if (!tbf) { - LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource sending " - "Immediate Assignment Uplink (AGCH) " - "reject\n"); + LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource for Uplink TBF\n"); + /* Send RR Immediate Assignment Reject */ rc = -EBUSY; - failure = true; - } else { - 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); - LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] START\n"); - LOGPTBF(tbf, LOGL_DEBUG, "RX: [PCU <- BTS] RACH " - "qbit-ta=%d ra=0x%02x, Fn=%d " - " (%d,%d,%d)\n", - qta, ra, Fn, (Fn / (26 * 51)) % 32, - Fn % 51, Fn % 26); - LOGPTBF(tbf, LOGL_INFO, "TX: START Immediate Assignment Uplink (AGCH)\n"); - trx_no = tbf->trx->trx_no; - ts_no = tbf->first_ts; - usf = tbf->m_usf[ts_no]; - tsc = tbf->tsc(); + goto send_imm_ass_rej; } + + /* FIXME: Copy and paste with other routines.. */ + 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]; + tsc = tbf->tsc(); } - bitvec *immediate_assignment = bitvec_alloc(22, tall_pcu_ctx) /* without plen */; - bitvec_unhex(immediate_assignment, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); +send_imm_ass_rej: + /* Allocate a bit-vector for RR Immediate Assignment [Reject] */ + struct bitvec *bv = bitvec_alloc(22, tall_pcu_ctx); /* without plen */ + bitvec_unhex(bv, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); - if (failure) { + if (rc != 0) { + LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment Reject on AGCH\n"); plen = Encoding::write_immediate_assignment_reject( - immediate_assignment, ra, Fn, - burst_type); + bv, rip->ra, Fn, rip->burst_type); do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_REJ); - } - else { - LOGP(DRLCMAC, LOGL_DEBUG, - " - TRX=%d (%d) TS=%d TA=%d TSC=%d TFI=%d USF=%d\n", - trx_no, m_bts.trx[trx_no].arfcn, ts_no, ta, tsc, - tbf ? tbf->tfi() : -1, usf); - // N. B: if tbf == NULL then SBA is used for Imm. Ass. below - plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, false, ra, Fn, ta, - m_bts.trx[trx_no].arfcn, ts_no, tsc, usf, false, sb_fn, - m_bts.alpha, m_bts.gamma, -1, burst_type); - } - - if (plen >= 0) { + } else { + LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment on AGCH: " + "TRX=%u (ARFCN %u) TS=%u TA=%u TSC=%u TFI=%d USF=%d\n", + trx_no, m_bts.trx[trx_no].arfcn & ~ARFCN_FLAG_MASK, + ts_no, ta, tsc, tbf ? tbf->tfi() : -1, usf); + plen = Encoding::write_immediate_assignment( + tbf, bv, false, rip->ra, Fn, ta, m_bts.trx[trx_no].arfcn, + ts_no, tsc, usf, false, sb_fn, m_bts.alpha, m_bts.gamma, -1, + rip->burst_type); do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_UL_TBF); - pcu_l1if_tx_agch(immediate_assignment, plen); } - bitvec_free(immediate_assignment); + if (plen >= 0) + pcu_l1if_tx_agch(bv, plen); + else + rc = plen; + + bitvec_free(bv); return rc; } @@ -874,25 +848,25 @@ 324, 350, 376, 402, }; -int BTS::rcv_ptcch_rach(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) +int BTS::rcv_ptcch_rach(const struct rach_ind_params *rip) { + uint32_t fn416 = rfn_to_fn(rip->rfn) % 416; struct gprs_rlcmac_bts *bts = bts_data(); struct gprs_rlcmac_pdch *pdch; - uint32_t fn416 = fn % 416; uint8_t ss; /* Prevent buffer overflow */ - if (trx_nr >= ARRAY_SIZE(bts->trx) || ts_nr >= 8) { - LOGP(DRLCMAC, LOGL_ERROR, "Malformed RACH.ind message " - "(TRX=%u TS=%u FN=%u)\n", trx_nr, ts_nr, fn); + if (rip->trx_nr >= ARRAY_SIZE(bts->trx) || rip->ts_nr >= 8) { + LOGP(DRLCMAC, LOGL_ERROR, "(TRX=%u TS=%u RFN=%u) Rx malformed " + "RACH.ind (PTCCH/U)\n", rip->trx_nr, rip->ts_nr, rip->rfn); return -EINVAL; } /* Make sure PDCH time-slot is enabled */ - pdch = &bts->trx[trx_nr].pdch[ts_nr]; + pdch = &bts->trx[rip->trx_nr].pdch[rip->ts_nr]; if (!pdch->m_is_enabled) { - LOGP(DRLCMAC, LOGL_NOTICE, "Rx PTCCH RACH.ind for inactive PDCH " - "(TRX=%u TS=%u FN=%u)\n", trx_nr, ts_nr, fn); + LOGP(DRLCMAC, LOGL_NOTICE, "(TRX=%u TS=%u RFN=%u) Rx RACH.ind (PTCCH/U) " + "for inactive PDCH\n", rip->trx_nr, rip->ts_nr, rip->rfn); return -EAGAIN; } @@ -901,14 +875,15 @@ if (ptcch_slot_map[ss] == fn416) break; if (ss == PTCCH_TAI_NUM) { - LOGP(DRLCMAC, LOGL_ERROR, "Failed to map PTCCH/U sub-slot for fn=%u\n", fn); + LOGP(DRLCMAC, LOGL_ERROR, "(TRX=%u TS=%u RFN=%u) Failed to map " + "PTCCH/U sub-slot\n", rip->trx_nr, rip->ts_nr, rip->rfn); return -ENODEV; } /* Apply the new Timing Advance value */ LOGP(DRLCMAC, LOGL_INFO, "Continuous Timing Advance update " - "for TAI %u, new TA is %u\n", ss, qta2ta(qta)); - pdch->update_ta(ss, qta2ta(qta)); + "for TAI %u, new TA is %u\n", ss, qta2ta(rip->qta)); + pdch->update_ta(ss, qta2ta(rip->qta)); return 0; } diff --git a/src/bts.h b/src/bts.h index aae8b43..e6b7aa3 100644 --- a/src/bts.h +++ b/src/bts.h @@ -267,6 +267,24 @@ STAT_MS_PRESENT, }; +/* RACH.ind parameters (to be parsed) */ +struct rach_ind_params { + enum ph_burst_type burst_type; + bool is_11bit; + uint16_t ra; + uint8_t trx_nr; + uint8_t ts_nr; + uint32_t rfn; + int16_t qta; +}; + +/* [EGPRS Packet] Channel Request parameters (parsed) */ +struct chan_req_params { + unsigned int egprs_mslot_class; + unsigned int priority; + bool single_block; +}; + #ifdef __cplusplus /** * I represent a GSM BTS. I have one or more TRX, I know the current @@ -302,9 +320,8 @@ int rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn); uint32_t rfn_to_fn(int32_t rfn); - int rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, - enum ph_burst_type burst_type); - int rcv_ptcch_rach(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta); + int rcv_rach(const struct rach_ind_params *rip); + int rcv_ptcch_rach(const struct rach_ind_params *rip); void snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 8764024..23f6fbb 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -432,10 +432,21 @@ /* C -> C++ adapter for direct DSP access code (e.g. osmo-bts-sysmo) */ extern "C" int pcu_rx_rach_ind_ptcch(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) { - return BTS::main_bts()->rcv_ptcch_rach(trx_nr, ts_nr, fn, qta); + struct rach_ind_params rip = { + /* The content of RA is not of interest on PTCCH/U */ + .burst_type = GSM_L1_BURST_TYPE_ACCESS_0, + .is_11bit = false, + .ra = 0x00, + .trx_nr = trx_nr, + .ts_nr = ts_nr, + .rfn = fn, + .qta = qta, + }; + + return BTS::main_bts()->rcv_ptcch_rach(&rip); } -static int pcu_rx_rach_ind(struct gsm_pcu_if_rach_ind *rach_ind) +static int pcu_rx_rach_ind(const struct gsm_pcu_if_rach_ind *rach_ind) { int rc = 0; int current_fn = get_current_fn(); @@ -444,17 +455,22 @@ "qta=%d, ra=0x%02x, fn=%u, cur_fn=%d, is_11bit=%d\n", rach_ind->sapi, rach_ind->qta, rach_ind->ra, rach_ind->fn, current_fn, rach_ind->is_11bit); + struct rach_ind_params rip = { + .burst_type = (enum ph_burst_type) rach_ind->burst_type, + .is_11bit = rach_ind->is_11bit > 0, + .ra = rach_ind->ra, + .trx_nr = rach_ind->trx_nr, + .ts_nr = rach_ind->ts_nr, + .rfn = rach_ind->fn, + .qta = rach_ind->qta, + }; + switch (rach_ind->sapi) { case PCU_IF_SAPI_RACH: - rc = BTS::main_bts()->rcv_rach( - rach_ind->ra, rach_ind->fn, - rach_ind->qta, rach_ind->is_11bit, - (ph_burst_type)rach_ind->burst_type); + rc = BTS::main_bts()->rcv_rach(&rip); break; case PCU_IF_SAPI_PTCCH: - rc = BTS::main_bts()->rcv_ptcch_rach( - rach_ind->trx_nr, rach_ind->ts_nr, - rach_ind->fn, rach_ind->qta); + rc = BTS::main_bts()->rcv_ptcch_rach(&rip); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU rach request with " diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 561fc7c..b16c089 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -54,6 +54,21 @@ /* Measurements shared by all unit tests */ static struct pcu_l1_meas meas; +static int bts_handle_rach(BTS *bts, uint16_t ra, uint32_t Fn, int16_t qta) +{ + struct rach_ind_params rip = { + .burst_type = GSM_L1_BURST_TYPE_ACCESS_0, + .is_11bit = false, + .ra = ra, + .trx_nr = 0, + .ts_nr = 0, + .rfn = Fn, + .qta = qta, + }; + + return bts->rcv_rach(&rip); +} + static void check_tbf(gprs_rlcmac_tbf *tbf) { OSMO_ASSERT(tbf); @@ -581,7 +596,7 @@ tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); - the_bts->rcv_rach(0x03, *fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0); + bts_handle_rach(the_bts, 0x03, *fn, qta); ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf != NULL); @@ -667,7 +682,7 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - the_bts->rcv_rach(0x73, rach_fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0); + bts_handle_rach(the_bts, 0x73, rach_fn, qta); /* get next free TFI */ tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); @@ -814,7 +829,7 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - the_bts->rcv_rach(0x73, rach_fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0); + bts_handle_rach(the_bts, 0x73, rach_fn, qta); /* get next free TFI */ tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); @@ -1249,7 +1264,7 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - the_bts->rcv_rach(0x73, rach_fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0); + bts_handle_rach(the_bts, 0x73, rach_fn, qta); /* get next free TFI */ tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); @@ -1562,7 +1577,7 @@ request_dl_rlc_block(bts, trx_no, ts_no, fn); /* simulate RACH, sends an Immediate Assignment Uplink on the AGCH */ - the_bts->rcv_rach(0x73, rach_fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0); + bts_handle_rach(the_bts, 0x73, rach_fn, qta); /* get next free TFI */ tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); @@ -1777,8 +1792,7 @@ * simulate RACH, sends an Immediate Assignment * Uplink reject on the AGCH */ - rc = the_bts.rcv_rach(0x70, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); + rc = bts_handle_rach(&the_bts, 0x70, rach_fn, qta); OSMO_ASSERT(rc == -EINVAL); @@ -1807,22 +1821,14 @@ * simulate RACH, sends an Immediate Assignment Uplink * reject on the AGCH */ - rc = the_bts.rcv_rach(0x78, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x79, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7a, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7b, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7c, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7d, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7e, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7f, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); + rc = bts_handle_rach(&the_bts, 0x78, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x79, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7a, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7b, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7c, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7d, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7e, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7f, rach_fn, qta); OSMO_ASSERT(rc == -EBUSY); @@ -2359,7 +2365,7 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - the_bts->rcv_rach(0x73, rach_fn, qta, 0, GSM_L1_BURST_TYPE_ACCESS_0); + bts_handle_rach(the_bts, 0x73, rach_fn, qta); /* get next free TFI */ tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); @@ -3174,20 +3180,13 @@ /* * Trigger rach till resources(USF) exhaust */ - rc = the_bts.rcv_rach(0x78, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x79, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7a, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7b, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7c, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7d, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); - rc = the_bts.rcv_rach(0x7e, rach_fn, qta, 0, - GSM_L1_BURST_TYPE_ACCESS_0); + rc = bts_handle_rach(&the_bts, 0x78, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x79, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7a, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7b, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7c, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7d, rach_fn, qta); + rc = bts_handle_rach(&the_bts, 0x7e, rach_fn, qta); /* fake a resource request */ ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 57787c5..827f5ce 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -1443,7 +1443,7 @@ === start test_tbf_single_phase === Searching for first unallocated TFI: TRX=0 Found TFI=0. -MS requests UL TBF on RACH, so we provide one: ra=0x03 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -1464,10 +1464,7 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x03, Fn=2654167 (17,25,9) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS (IMSI ): Link quality 12dB (old 12dB) left window [0, 0], modifying uplink CS level: CS-1 -> CS-2 @@ -1515,11 +1512,10 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 4 bytes === end test_tbf_single_phase === === start test_tbf_two_phase === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1597,11 +1593,10 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) appending 4 bytes === end test_tbf_two_phase === === start test_tbf_ra_update_rach === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1723,11 +1718,10 @@ 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 0) TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 0, CS-4): 07 01 00 29 52 41 55 5f 41 43 43 45 50 54 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 00 -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654232 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654232 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654232 (17,39,22), SBFn=2654335 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654335 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=1. TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292, TS=7 (curr FN 2654335) @@ -1794,11 +1788,10 @@ New MS: TLLI = 0xf5667788, TA = 7, IMSI = 0011223344, LLC = 1 === end test_tbf_ra_update_rach === === start test_tbf_dl_flow_and_rach_two_phase === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1884,11 +1877,10 @@ PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) ********** UL-TBF ends here ********** -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654224 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654224 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654224 (17,31,14), SBFn=2654327 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654327 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -1966,11 +1958,10 @@ New MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 === end test_tbf_dl_flow_and_rach_two_phase === === start test_tbf_dl_flow_and_rach_single_phase === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -2058,7 +2049,7 @@ ********** UL-TBF ends here ********** Searching for first unallocated TFI: TRX=0 Found TFI=0. -MS requests UL TBF on RACH, so we provide one: ra=0x03 Fn=2654275 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654275 qta=31 Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -2079,10 +2070,7 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x03, Fn=2654275 (17,31,13) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=0 USF=0 Got CS-1 RLC block: R=0, SI=0, TFI=0, CPS=0, RSB=0, rc=184 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) UL DATA TFI=0 received (V(Q)=0 .. V(R)=0) MS (IMSI ): Link quality 12dB (old 12dB) left window [0, 0], modifying uplink CS level: CS-1 -> CS-2 @@ -2117,11 +2105,10 @@ New MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 === end test_tbf_dl_flow_and_rach_single_phase === === start test_tbf_dl_reuse === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -3140,11 +3127,10 @@ ********** DL-TBF ends here ********** === end test_tbf_ws === === start test_tbf_egprs_two_phase === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -3232,11 +3218,10 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN EGPRS) appending 256 bytes === end test_tbf_egprs_two_phase === === start test_tbf_egprs_two_phase_spb === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -5871,11 +5856,10 @@ ********** DL-TBF ends here ********** === end test_tbf_egprs_spb_dl === === start test_tbf_puan_urbb_len === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -6036,11 +6020,10 @@ ********** DL-TBF ends here ********** === end test_tbf_update_ws === === start test_tbf_li_decoding === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -6182,7 +6165,7 @@ ********** DL-TBF ends here ********** === end test_tbf_epdan_out_of_rx_window === === start test_immediate_assign_rej_multi_block === -MS requests UL TBF on RACH, so we provide one: ra=0x78 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x78 (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6203,11 +6186,8 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x78, Fn=2654167 (17,25,9) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 -MS requests UL TBF on RACH, so we provide one: ra=0x79 Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6228,11 +6208,8 @@ TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x79, Fn=2654167 (17,25,9) -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=1 USF=1 -MS requests UL TBF on RACH, so we provide one: ra=0x7a Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6253,11 +6230,8 @@ TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7a, Fn=2654167 (17,25,9) -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=2 USF=2 -MS requests UL TBF on RACH, so we provide one: ra=0x7b Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6278,11 +6252,8 @@ TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7b, Fn=2654167 (17,25,9) -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=3 USF=3 -MS requests UL TBF on RACH, so we provide one: ra=0x7c Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6303,11 +6274,8 @@ TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7c, Fn=2654167 (17,25,9) -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=4 USF=4 -MS requests UL TBF on RACH, so we provide one: ra=0x7d Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6328,11 +6296,8 @@ TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7d, Fn=2654167 (17,25,9) -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=5 USF=5 -MS requests UL TBF on RACH, so we provide one: ra=0x7e Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6353,11 +6318,8 @@ TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7e, Fn=2654167 (17,25,9) -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=6 USF=6 -MS requests UL TBF on RACH, so we provide one: ra=0x7f Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -6371,21 +6333,22 @@ - Skipping TS 6, because not enabled - Skipping TS 7, because no USF available [UL] algo A (suggested TRX: -1): failed to allocate a TS, no USF available -No PDCH resource sending Immediate Assignment Uplink (AGCH) reject +No PDCH resource for Uplink TBF +Tx Immediate Assignment Reject on AGCH === end test_immediate_assign_rej_multi_block === Destroying MS object, TLLI = 0x00000000 === start test_immediate_assign_rej_single_block === -MS requests UL TBF on RACH, so we provide one: ra=0x70 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x70 (8 bit) Fn=2654167 qta=31 MS requests single block allocation No PDCH available. -No PDCH resource for single block allocation.sending Immediate Assignment Uplink (AGCH) reject +No PDCH resource for single block allocation: rc=-22 +Tx Immediate Assignment Reject on AGCH === end test_immediate_assign_rej_single_block === === start test_tbf_egprs_two_phase_puan === -MS requests UL TBF on RACH, so we provide one: ra=0x73 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x73 (8 bit) Fn=2654167 qta=31 MS requests single block allocation -RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x73, Fn=2654167 (17,25,9), SBFn=2654270 -TX: Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 +Allocated a single block at SBFn=2654270 TRX=0 TS=7 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7 Searching for first unallocated TFI: TRX=0 Found TFI=0. +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ @@ -7815,7 +7778,7 @@ 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 UL TBF on RACH, so we provide one: ra=0x78 Fn=2654167 qta=31 is_11bit=0: +MS requests Uplink resource on CCCH/RACH: ra=0x78 (8 bit) Fn=2654167 qta=31 Creating MS object, TLLI = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -7836,11 +7799,8 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x78, Fn=2654167 (17,25,9) -TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=0 USF=0 -MS requests UL TBF on RACH, so we provide one: ra=0x79 Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -7861,11 +7821,8 @@ TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x79, Fn=2654167 (17,25,9) -TBF(TFI=1 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=1 USF=1 -MS requests UL TBF on RACH, so we provide one: ra=0x7a Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -7886,11 +7843,8 @@ TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7a, Fn=2654167 (17,25,9) -TBF(TFI=2 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=2 USF=2 -MS requests UL TBF on RACH, so we provide one: ra=0x7b Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -7911,11 +7865,8 @@ TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7b, Fn=2654167 (17,25,9) -TBF(TFI=3 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=3 USF=3 -MS requests UL TBF on RACH, so we provide one: ra=0x7c Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -7936,11 +7887,8 @@ TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7c, Fn=2654167 (17,25,9) -TBF(TFI=4 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=4 USF=4 -MS requests UL TBF on RACH, so we provide one: ra=0x7d Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -7961,11 +7909,8 @@ TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7d, Fn=2654167 (17,25,9) -TBF(TFI=5 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=5 USF=5 -MS requests UL TBF on RACH, so we provide one: ra=0x7e Fn=2654167 qta=31 is_11bit=0: +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 = 0x00000000 ********** UL-TBF starts here ********** Allocating UL TBF: MS_CLASS=0/0 @@ -7986,10 +7931,7 @@ TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=NULL) changes state from NULL to FLOW TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) set ass. type CCCH [prev CCCH:0, PACCH:0] TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) starting timer T3169 [RACH (new UL-TBF)] with 5 sec. 0 microsec, cur_fn=0 -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) [UPLINK] START -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) RX: [PCU <- BTS] RACH qbit-ta=31 ra=0x7e, Fn=2654167 (17,25,9) -TBF(TFI=6 TLLI=0x00000000 DIR=UL STATE=FLOW) TX: START Immediate Assignment Uplink (AGCH) - - TRX=0 (0) TS=7 TA=7 TSC=0 TFI=6 USF=6 +Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=6 USF=6 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ ------------------------- RX : Uplink Control Block ------------------------- Creating MS object, TLLI = 0x00000000 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/18386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5fe7e0f51bf5c9eac073935cc4f4edd667c67c6e Gerrit-Change-Number: 18386 Gerrit-PatchSet: 7 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-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 Jun 3 12:49:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:49:40 +0000 Subject: Change in osmo-pcu[master]: BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/18387 ) Change subject: BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request ...................................................................... BTS::parse_rach_ind(): properly handle EGPRS Packet Channel Request Let's finally use the API we introduced in [1]. [1] I96df3352856933c9140177b2801a2c71f4134183 Change-Id: Ia15761c33c8048d35c7f7bc93dbea781dd0894b7 Related: OS#1548 --- M src/bts.cpp 1 file changed, 56 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index 2a74978..26cb258 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -685,9 +685,57 @@ * can only receive EGPRS mslot class through 11-bit EGPRS PACKET CHANNEL REQUEST. */ static int parse_egprs_pkt_ch_req(uint16_t ra11, struct chan_req_params *chan_req) { - /* EGPRS multislot class is only present in One Phase Access Request */ - if ((ra11 >> 10) == 0x00) /* .0xx xxx. .... */ - chan_req->egprs_mslot_class = ((ra11 & 0x3e0) >> 5) + 1; + EGPRS_PacketChannelRequest_t req; + int rc; + + rc = decode_egprs_pkt_ch_req(ra11, &req); + if (rc) { + LOGP(DRLCMAC, LOGL_NOTICE, "Failed to decode " + "EGPRS Packet Channel Request: rc=%d\n", rc); + return rc; + } + + LOGP(DRLCMAC, LOGL_INFO, "Rx EGPRS Packet Channel Request: %s\n", + get_value_string(egprs_pkt_ch_req_type_names, req.Type)); + + switch (req.Type) { + case EGPRS_PKT_CHAN_REQ_ONE_PHASE: + chan_req->egprs_mslot_class = req.Content.MultislotClass + 1; + chan_req->priority = req.Content.Priority + 1; + break; + case EGPRS_PKT_CHAN_REQ_SHORT: + chan_req->priority = req.Content.Priority + 1; + if (req.Content.NumberOfBlocks == 0) + chan_req->single_block = true; + break; + case EGPRS_PKT_CHAN_REQ_ONE_PHASE_RED_LATENCY: + chan_req->priority = req.Content.Priority + 1; + break; + /* Two phase access => single block is needed */ + case EGPRS_PKT_CHAN_REQ_TWO_PHASE: + case EGPRS_PKT_CHAN_REQ_TWO_PHASE_IPA: + chan_req->priority = req.Content.Priority + 1; + chan_req->single_block = true; + break; + /* Signalling => single block is needed */ + case EGPRS_PKT_CHAN_REQ_SIGNALLING: + case EGPRS_PKT_CHAN_REQ_SIGNALLING_IPA: + chan_req->single_block = true; + break; + + /* Neither unacknowledged RLC mode, nor emergency calls are supported */ + case EGPRS_PKT_CHAN_REQ_ONE_PHASE_UNACK: + case EGPRS_PKT_CHAN_REQ_EMERGENCY_CALL: + case EGPRS_PKT_CHAN_REQ_DEDICATED_CHANNEL: + LOGP(DRLCMAC, LOGL_NOTICE, "%s is not supported, rejecting\n", + get_value_string(egprs_pkt_ch_req_type_names, req.Type)); + return -ENOTSUP; + + default: + LOGP(DRLCMAC, LOGL_ERROR, "Unknown EGPRS Packet Channel Request " + "type=0x%02x, probably a bug in CSN.1 codec\n", req.Type); + return -EINVAL; + } return 0; } @@ -774,6 +822,11 @@ chan_req.single_block = true; } + /* TODO: handle Radio Priority (see 3GPP TS 44.060, table 11.2.5a.5) */ + if (chan_req.priority > 0) + LOGP(DRLCMAC, LOGL_NOTICE, "EGPRS Packet Channel Request indicates " + "Radio Priority %u, however we ignore it\n", chan_req.priority); + /* Should we allocate a single block or an Uplink TBF? */ if (chan_req.single_block) { rc = sba()->alloc(&trx_no, &ts_no, &sb_fn, ta); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/18387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia15761c33c8048d35c7f7bc93dbea781dd0894b7 Gerrit-Change-Number: 18387 Gerrit-PatchSet: 8 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-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 Jun 3 12:50:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:50:11 +0000 Subject: Change in osmo-msc[master]: vlr_subscr_rx_id_resp(): dont assert on received MI type In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18635 ) Change subject: vlr_subscr_rx_id_resp(): dont assert on received MI type ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I2b2e25ef8e878e91a165018ba49f1609cfb5cbd0 Gerrit-Change-Number: 18635 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 12:50: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 Jun 3 12:51:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:51:34 +0000 Subject: Change in osmo-msc[master]: manual: link to new common cs7-config.adoc, remove some dup of that In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/17580 ) Change subject: manual: link to new common cs7-config.adoc, remove some dup of that ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/17580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ie88dd2c7f7318a31ae04fbd6930346d92141fde5 Gerrit-Change-Number: 17580 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 12:51: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 Jun 3 12:51:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 12:51:38 +0000 Subject: Change in osmo-msc[master]: manual: link to new common cs7-config.adoc, remove some dup of that In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/17580 ) Change subject: manual: link to new common cs7-config.adoc, remove some dup of that ...................................................................... manual: link to new common cs7-config.adoc, remove some dup of that Related: OS#2767 Depends: Ia2508d4c7b0fef9cdc57e7e122799a480e340bf7 (osmo-gsm-manuals) Change-Id: Ie88dd2c7f7318a31ae04fbd6930346d92141fde5 --- A TODO-RELEASE M doc/manuals/chapters/running.adoc M doc/manuals/osmomsc-usermanual.adoc 3 files changed, 21 insertions(+), 23 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE new file mode 100644 index 0000000..dde4b72 --- /dev/null +++ b/TODO-RELEASE @@ -0,0 +1,10 @@ +# When cleaning up this file: bump API version in corresponding Makefile.am and rename corresponding debian/lib*.install +# according to https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info +# In short: +# LIBVERSION=c:r:a +# If the library source code has changed at all since the last update, then increment revision: c:r + 1:a. +# If any interfaces have been added, removed, or changed since the last update: c + 1:0:0. +# If any interfaces have been added since the last public release: c:r:a + 1. +# If any interfaces have been removed or changed since the last public release: c:r:0. +#library what description / commit summary line +manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc index e8320a7..688fbbe 100644 --- a/doc/manuals/chapters/running.adoc +++ b/doc/manuals/chapters/running.adoc @@ -107,20 +107,21 @@ ==== Configure SCCP/M3UA to accept _A_ and _IuCS_ links -OsmoMSC will contact an STP instance to establish an SCCP/M3UA link. BSC and -HNBGW will then reach the MSC via this link. By default, an STP instance is -assumed to listen on the default M3UA port (2905) on the local host. +OsmoMSC acts as client to contact an STP instance and establish an SCCP/M3UA +link. -Establishing an SCCP/M3UA link towards an STP instance not on the local host -can be configured as follows: +An example configuration of OsmoMSC's SCCP link: ---- cs7 instance 0 - asp my-OsmoMSC 2905 0 m3ua - ! IP address of the remote STP: - remote-ip 10.23.24.1 + point-code 0.23.1 + asp asp-clnt-OsmoMSC-A-Iu 2905 0 m3ua + remote-ip 127.0.0.1 + sctp-role client ---- +This configuration is explained in detail in <>. + Note that _A_ and _IuCS_ may use different SCCP instances, if so desired: ---- @@ -135,21 +136,6 @@ cs7-instance-iu 1 ---- -A full configuration needs an `asp` on an `as` -- an Application Server Process -running on an Application Server -- as well as a local point code and routing -configuration. The SCCP VTY automatically creates those parts that are missing, -by assuming sane defaults. A complete configuration would look like this: - ----- -cs7 instance 0 - point-code 0.23.1 - asp my-OsmoMSC-A-Iu 2905 0 m3ua - remote-ip 127.0.0.1 - as my-as-for-OsmoMSC-A-Iu m3ua - asp my-OsmoMSC-A-Iu - routing-key 0 0.23.1 ----- - ==== Configure GSUP to reach the HLR OsmoMSC will assume a GSUP server (OsmoHLR) to run on the local host and the diff --git a/doc/manuals/osmomsc-usermanual.adoc b/doc/manuals/osmomsc-usermanual.adoc index d680a51..848d9c0 100644 --- a/doc/manuals/osmomsc-usermanual.adoc +++ b/doc/manuals/osmomsc-usermanual.adoc @@ -22,6 +22,8 @@ include::./common/chapters/logging.adoc[] +include::./common/chapters/cs7-config.adoc[] + include::{srcdir}/chapters/net.adoc[] include::./common/chapters/smpp.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/17580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ie88dd2c7f7318a31ae04fbd6930346d92141fde5 Gerrit-Change-Number: 17580 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder 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 Jun 3 13:47:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 13:47:23 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18642 ) Change subject: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file ...................................................................... ttcn3-bts: jenkins.sh: Log fake_trx stdout to file This allows easily checking if fake_trx fails to start early during startup, for instance due to a python exception. Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/42/18642/1 diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 4974a34..949d650 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -46,7 +46,7 @@ --name ${BUILD_TAG}-fake_trx -d \ $DOCKER_ARGS \ $REPO_USER/osmocom-bb-host-master \ - /tmp/osmocom-bb/src/target/trx_toolkit/fake_trx.py \ + /bin/sh -c "/tmp/osmocom-bb/src/target/trx_toolkit/fake_trx.py \ --log-file-name /data/fake_trx.log \ --log-file-level DEBUG \ --log-file-time \ @@ -54,7 +54,7 @@ -R 172.18.9.20 -r 172.18.9.22 \ --trx TRX1 at 172.18.9.20:5700/1 \ --trx TRX2 at 172.18.9.20:5700/2 \ - --trx TRX3 at 172.18.9.20:5700/3 + --trx TRX3 at 172.18.9.20:5700/3 >>/data/fake_trx.out 2>&1" } start_trxcon() { -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18 Gerrit-Change-Number: 18642 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 Jun 3 14:00:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 14:00:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... Patch Set 3: Code-Review-1 I have been testing with this patch and I can see failures sometimes during brng up. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:00: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 Jun 3 14:02:15 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 14:02:15 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18506 to look at the new patch set (#4). Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... add gsm23236: MSC pooling: TMSI and NRI utility functions These utilities will be used by osmo-bsc to determine the Network Resource Indicator seen in the TMSI, and (potentially) by osmo-msc to compose a TMSI with a specific NRI, for osmo-bsc's load balancing between several MSCs. Add utility functions to: - extract an NRI value from a TMSI. - overwrite the NRI value in a TMSI. - limit an NRI in a (random) TMSI to a given list of ranges. - add NRI value ranges to a list. - remove them from a list. - match NRI value (range) to a list. - parse NRI values from string, for VTY. - common VTY functionality of adding/removing NRI values from argv. Add C tests for the above. Why we need public API for NRI ranges: In osmo-bsc alone, we need the same NRI API twice, 1: to manage/list NRI value ranges per-MSC, and 2: to manage/list NULL-NRI values. If we also consider (potentially) adding NRI support to osmo-msc, we need the same API twice again there. Hence it is useful to define re-used API up here in libosmocore. Related: OS#3682 Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 --- M include/Makefile.am A include/osmocom/gsm/gsm23236.h M src/gsm/Makefile.am A src/gsm/gsm23236.c M src/gsm/libosmogsm.map M tests/Makefile.am A tests/gsm23236/gsm23236_test.c A tests/gsm23236/gsm23236_test.ok M tests/testsuite.at 9 files changed, 1,724 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/18506/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:06:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 14:06:02 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Abandoned merged with the other gsm23236 patch -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:07:16 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 14:07:16 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: neels has restored this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Restored -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-MessageType: restore -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:07:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 14:07:53 +0000 Subject: Change in libosmocore[master]: gsm23236: add NRI range utility functions In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18540 ) Change subject: gsm23236: add NRI range utility functions ...................................................................... Abandoned merged into the other gsm23236 patch (was too much work keeping them apart) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I68e4156824032772f460042499bbc693380186dc Gerrit-Change-Number: 18540 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Wed Jun 3 14:08:56 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 14:08:56 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 4: copying review from the other patch that was merged here: " one *could* (not saying you must if you don't like it) create a 'osmo_nri_range_list' or 'osmo_nri_ranges' struct which stores the master llist_head, the nri_bitlen and which also serves as talloc context for any osmo_nri_range allocations. This way the function signatures (and hence usage) would be simplified without having to manually specify ctx and/or nri_bitlen. If the osmo_nri_range had a back-pointer to the ramnge_list/ranges "parent", then even functions only receiving a single osmo_nri_range as argument can get to the nri_Bitlen. " I'm currently considering it... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:08: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 Jun 3 14:10:12 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 14:10:12 +0000 Subject: Change in osmo-mgw[master]: mgcp_vty: fix indentation in VTY config write In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18593 to look at the new patch set (#3). Change subject: mgcp_vty: fix indentation in VTY config write ...................................................................... mgcp_vty: fix indentation in VTY config write The config under the node mgcp is written with an indentation that has one space too much. Change-Id: I2aefeaf3d7ad4a98b7bfcdc7cbc1ce6ebcbe0537 Related: OS#2659 --- M src/libosmo-mgcp/mgcp_vty.c 1 file changed, 36 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/93/18593/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2aefeaf3d7ad4a98b7bfcdc7cbc1ce6ebcbe0537 Gerrit-Change-Number: 18593 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:10:12 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 14:10:12 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 to look at the new patch set (#5). Change subject: trunk: get rid of virt_trunk pointer ...................................................................... trunk: get rid of virt_trunk pointer The virtual trunk is a pre-configured trunk that always exists. It is kept separate from the trunk list using a separate pointer. This makes thinks unecessarly complicated. Lets organize the trunk in the trunk list like any other trunk, except that we automatically create it on startup and assign it always the trunk id number 0. Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 7 files changed, 153 insertions(+), 105 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/90/18590/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:10:14 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 14:10:14 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18643 ) Change subject: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg ...................................................................... osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg rename struct mgcp_trunk_config to struct mgcp_trunk and the related symbol name "tcfg" to "trunk" in order to better match the reality. Change-Id: I02889dbf8149e139b1bd0326e13ce4c1aec867d1 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 12 files changed, 162 insertions(+), 162 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/43/18643/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 27b1e35..538c907 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -42,7 +42,7 @@ */ struct mgcp_endpoint; struct mgcp_config; -struct mgcp_trunk_config; +struct mgcp_trunk; struct mgcp_rtp_end; #define MGCP_ENDP_CRCX 1 @@ -59,9 +59,9 @@ #define MGCP_POLICY_REJECT 5 #define MGCP_POLICY_DEFER 6 -typedef int (*mgcp_change)(struct mgcp_trunk_config *cfg, int endpoint, int state); -typedef int (*mgcp_policy)(struct mgcp_trunk_config *cfg, int endpoint, int state, const char *transactio_id); -typedef int (*mgcp_reset)(struct mgcp_trunk_config *cfg); +typedef int (*mgcp_change)(struct mgcp_trunk *cfg, int endpoint, int state); +typedef int (*mgcp_policy)(struct mgcp_trunk *cfg, int endpoint, int state, const char *transactio_id); +typedef int (*mgcp_reset)(struct mgcp_trunk *cfg); typedef int (*mgcp_rqnt)(struct mgcp_endpoint *endp, char tone); /** @@ -177,7 +177,7 @@ MGCP_DLCX_DEFERRED_BY_POLICY, }; -struct mgcp_trunk_config { +struct mgcp_trunk { struct llist_head entry; struct mgcp_config *cfg; @@ -263,7 +263,7 @@ /* trunk handling */ /* virtual trunk for RTP - RTP endpoints */ - struct mgcp_trunk_config *virt_trunk; + struct mgcp_trunk *virt_trunk; /* physical trunks with underlying E1 endpoints */ struct llist_head trunks; @@ -302,8 +302,8 @@ int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg, enum mgcp_role role); int mgcp_vty_init(void); -int mgcp_endpoints_allocate(struct mgcp_trunk_config *cfg); -void mgcp_trunk_set_keepalive(struct mgcp_trunk_config *tcfg, int interval); +int mgcp_endpoints_allocate(struct mgcp_trunk *cfg); +void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval); /* * format helper functions diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 4c2caad..8fa8390 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -81,7 +81,7 @@ struct mgcp_config *cfg; /*! Backpointer to the Trunk specific configuration */ - struct mgcp_trunk_config *tcfg; + struct mgcp_trunk *trunk; /*! Endpoint properties (see above) */ const struct mgcp_endpoint_type *type; @@ -101,6 +101,6 @@ }; /*! Extract endpoint number for a given endpoint */ -#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->tcfg->endpoints)) +#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->trunk->endpoints)) void mgcp_endp_release(struct mgcp_endpoint *endp); diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 670332d..b2e2210 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -282,8 +282,8 @@ return endpoint + 60; } -struct mgcp_trunk_config *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index); -struct mgcp_trunk_config *mgcp_trunk_num(struct mgcp_config *cfg, int index); +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index); +struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index); char *get_lco_identifier(const char *options); int check_local_cx_options(void *ctx, const char *options); diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index 9e55ab0..3cea495 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -292,7 +292,7 @@ * We do not compare to the full audio_name because we expect that * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the * audio name of the codec is set to "GSM" */ - if (sscanf(endp->tcfg->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) + if (sscanf(endp->trunk->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) return false; /* Finally we check if the subtype_name we have generated from the @@ -302,9 +302,9 @@ return true; /* FIXME: It is questinable that the method to pick a compatible - * codec can work properly. Since this useses tcfg->audio_name, as + * codec can work properly. Since this useses trunk->audio_name, as * a reference, which is set to "AMR/8000" permanently. - * tcfg->audio_name must be updated by the first connection that + * trunk->audio_name must be updated by the first connection that * has been made on an endpoint, so that the second connection * can make a meaningful decision here */ @@ -335,7 +335,7 @@ for (i = 0; i < rtp->codecs_assigned; i++) { /* When no transcoding is available, avoid codecs that would * require transcoding. */ - if (endp->tcfg->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) { + if (endp->trunk->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) { LOGP(DLMGCP, LOGL_NOTICE, "transcoding not available, skipping codec: %d/%s\n", rtp->codecs[i].payload_type, rtp->codecs[i].subtype_name); continue; diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 7a86274..0b499b4 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -255,7 +255,7 @@ } static void -aggregate_rtp_conn_stats(struct mgcp_trunk_config *trunk, struct mgcp_conn_rtp *conn_rtp) +aggregate_rtp_conn_stats(struct mgcp_trunk *trunk, struct mgcp_conn_rtp *conn_rtp) { struct rate_ctr_group *all_stats = trunk->all_rtp_conn_stats; struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; @@ -296,7 +296,7 @@ switch (conn->type) { case MGCP_CONN_TYPE_RTP: - aggregate_rtp_conn_stats(endp->tcfg, &conn->u.rtp); + aggregate_rtp_conn_stats(endp->trunk, &conn->u.rtp); mgcp_rtp_conn_cleanup(&conn->u.rtp); break; default: diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c index b0d1a9f..7124a39 100644 --- a/src/libosmo-mgcp/mgcp_msg.c +++ b/src/libosmo-mgcp/mgcp_msg.c @@ -136,12 +136,12 @@ const char *mgcp) { char *rest = NULL; - struct mgcp_trunk_config *tcfg; - int trunk, endp; + struct mgcp_trunk *trunk; + int trunk_index, endp; struct mgcp_endpoint *endp_ptr; - trunk = strtoul(mgcp + 6, &rest, 10); - if (rest == NULL || rest[0] != '/' || trunk < 1) { + trunk_index = strtoul(mgcp + 6, &rest, 10); + if (rest == NULL || rest[0] != '/' || trunk_index < 1) { LOGP(DLMGCP, LOGL_ERROR, "Wrong trunk name '%s'\n", mgcp); return NULL; } @@ -156,26 +156,26 @@ if (endp == 1) return NULL; - tcfg = mgcp_trunk_num(cfg, trunk); - if (!tcfg) { + trunk = mgcp_trunk_num(cfg, trunk_index); + if (!trunk) { LOGP(DLMGCP, LOGL_ERROR, "The trunk %d is not declared.\n", - trunk); + trunk_index); return NULL; } - if (!tcfg->endpoints) { + if (!trunk->endpoints) { LOGP(DLMGCP, LOGL_ERROR, - "Endpoints of trunk %d not allocated.\n", trunk); + "Endpoints of trunk %d not allocated.\n", trunk_index); return NULL; } - if (endp < 1 || endp >= tcfg->number_endpoints) { + if (endp < 1 || endp >= trunk->number_endpoints) { LOGP(DLMGCP, LOGL_ERROR, "Failed to find endpoint '%s'\n", mgcp); return NULL; } - endp_ptr = &tcfg->endpoints[endp]; + endp_ptr = &trunk->endpoints[endp]; endp_ptr->wildcarded_req = false; return endp_ptr; } @@ -235,7 +235,7 @@ unsigned int gw = INT_MAX; const char *endpoint_number_str; struct mgcp_endpoint *endp; - struct mgcp_trunk_config *virt_trunk = cfg->virt_trunk; + struct mgcp_trunk *virt_trunk = cfg->virt_trunk; *cause = 0; diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 3b8e736..2d3fdc3 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -61,7 +61,7 @@ int id, int inc) { struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; - struct rate_ctr_group *trunk_stats = endp->tcfg->all_rtp_conn_stats; + struct rate_ctr_group *trunk_stats = endp->trunk->all_rtp_conn_stats; /* add to both the per-connection and the per-trunk global stats */ rate_ctr_add(&conn_stats->ctr[id], inc); @@ -187,7 +187,7 @@ if (rc == -1) goto failed; - if (endp->tcfg->omit_rtcp) + if (endp->trunk->omit_rtcp) return rc; was_rtcp = 1; @@ -819,7 +819,7 @@ * connection in loopback mode exists), then the source connection * shall be specified as destination connection */ - struct mgcp_trunk_config *tcfg = endp->tcfg; + struct mgcp_trunk *trunk = endp->trunk; struct mgcp_rtp_end *rtp_end; struct mgcp_rtp_state *rtp_state; char *dest_name; @@ -835,7 +835,7 @@ } LOGPENDP(endp, DRTP, LOGL_DEBUG, "loop:%d, mode:%d%s\n", - tcfg->audio_loop, conn_src->conn->mode, + trunk->audio_loop, conn_src->conn->mode, conn_src->conn->mode == MGCP_CONN_LOOPBACK ? " (loopback)" : ""); /* FIXME: It is legal that the payload type on the egress connection is @@ -947,7 +947,7 @@ buflen = cont; } while (buflen > 0); return nbytes; - } else if (!tcfg->omit_rtcp) { + } else if (!trunk->omit_rtcp) { LOGPENDP(endp, DRTP, LOGL_DEBUG, "send to %s %s rtp_port:%u rtcp_port:%u\n", dest_name, inet_ntoa(rtp_end->addr), @@ -1150,12 +1150,12 @@ { struct mgcp_endpoint *endp; struct mgcp_conn_rtp *conn; - struct mgcp_trunk_config *tcfg; + struct mgcp_trunk *trunk; int rc; conn = (struct mgcp_conn_rtp*) fd->data; endp = conn->conn->endp; - tcfg = endp->tcfg; + trunk = endp->trunk; LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "receiving RTP/RTCP packet...\n"); @@ -1190,7 +1190,7 @@ LOGPENDP(endp, DRTP, LOGL_DEBUG, "conn:%s\n", mgcp_conn_dump(conn->conn)); /* Check if the origin of the RTP packet seems plausible */ - if (tcfg->rtp_accept_all == 0) { + if (trunk->rtp_accept_all == 0) { if (check_rtp_origin(conn, addr) != 0) return -1; } diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index caed0b7..4d77a4c 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -254,11 +254,11 @@ * Remember the last transmission per endpoint. */ if (endp) { - struct mgcp_trunk_config *tcfg = endp->tcfg; + struct mgcp_trunk *trunk = endp->trunk; talloc_free(endp->last_response); talloc_free(endp->last_trans); - endp->last_trans = talloc_strdup(tcfg->endpoints, trans); - endp->last_response = talloc_strndup(tcfg->endpoints, + endp->last_trans = talloc_strdup(trunk->endpoints, trans); + endp->last_response = talloc_strndup(trunk->endpoints, (const char *)res->l2h, msgb_l2len(res)); } @@ -296,7 +296,7 @@ /* NOTE: Only in the virtual trunk we allow dynamic endpoint names */ if (endp->wildcarded_req - && endp->tcfg->trunk_type == MGCP_TRUNK_VIRTUAL) { + && endp->trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { rc = msgb_printf(msg, "Z: %s%x@%s\r\n", MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, ENDPOINT_NUMBER(endp), endp->cfg->domain); @@ -379,8 +379,8 @@ * - or a response (three numbers, space, transaction id) */ struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg) { - struct mgcp_trunk_config *tcfg = cfg->virt_trunk; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_general_ctr_group; + struct mgcp_trunk *trunk = cfg->virt_trunk; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_general_ctr_group; struct mgcp_parse_data pdata; int rc, i, code, handled = 0; struct msgb *resp = NULL; @@ -692,13 +692,13 @@ void mgcp_rtp_end_config(struct mgcp_endpoint *endp, int expect_ssrc_change, struct mgcp_rtp_end *rtp) { - struct mgcp_trunk_config *tcfg = endp->tcfg; + struct mgcp_trunk *trunk = endp->trunk; - int patch_ssrc = expect_ssrc_change && tcfg->force_constant_ssrc; + int patch_ssrc = expect_ssrc_change && trunk->force_constant_ssrc; - rtp->force_aligned_timing = tcfg->force_aligned_timing; + rtp->force_aligned_timing = trunk->force_aligned_timing; rtp->force_constant_ssrc = patch_ssrc ? 1 : 0; - rtp->rfc5993_hr_convert = tcfg->rfc5993_hr_convert; + rtp->rfc5993_hr_convert = trunk->rfc5993_hr_convert; LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "Configuring RTP endpoint: local port %d%s%s\n", @@ -830,9 +830,9 @@ /* CRCX command handler, processes the received command */ static struct msgb *handle_create_con(struct mgcp_parse_data *p) { - struct mgcp_trunk_config *tcfg = p->endp->tcfg; + struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_crcx_ctr_group; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_crcx_ctr_group; int error_code = 400; const char *local_options = NULL; const char *callid = NULL; @@ -915,7 +915,7 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: endpoint full, max. %i connections allowed!\n", endp->type->max_conns); - if (tcfg->force_realloc) { + if (trunk->force_realloc) { /* There is no more room for a connection, make some * room by blindly tossing the oldest of the two two * connections */ @@ -934,7 +934,7 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: already seized by other call (%s)\n", endp->callid); - if (tcfg->force_realloc) + if (trunk->force_realloc) /* This is not our call, toss everything by releasing * the entire endpoint. (rude!) */ mgcp_endp_release(endp); @@ -949,10 +949,10 @@ /* Set the callid, creation of another connection will only be possible * when the callid matches up. (Connections are distinguished by their * connection ids) */ - endp->callid = talloc_strdup(tcfg->endpoints, callid); + endp->callid = talloc_strdup(trunk->endpoints, callid); snprintf(conn_name, sizeof(conn_name), "%s", callid); - _conn = mgcp_conn_alloc(tcfg->endpoints, endp, MGCP_CONN_TYPE_RTP, conn_name); + _conn = mgcp_conn_alloc(trunk->endpoints, endp, MGCP_CONN_TYPE_RTP, conn_name); if (!_conn) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: unable to allocate RTP connection\n"); @@ -987,7 +987,7 @@ /* Set local connection options, if present */ if (local_options) { - rc = set_local_cx_options(endp->tcfg->endpoints, + rc = set_local_cx_options(endp->trunk->endpoints, &endp->local_options, local_options); if (rc != 0) { LOGPCONN(_conn, DLMGCP, LOGL_ERROR, @@ -1007,8 +1007,8 @@ goto error2; } - conn->end.fmtp_extra = talloc_strdup(tcfg->endpoints, - tcfg->audio_fmtp_extra); + conn->end.fmtp_extra = talloc_strdup(trunk->endpoints, + trunk->audio_fmtp_extra); if (p->cfg->force_ptime) { conn->end.packet_duration_ms = p->cfg->force_ptime; @@ -1043,7 +1043,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(tcfg, ENDPOINT_NUMBER(endp), + rc = p->cfg->policy_cb(trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: @@ -1066,12 +1066,12 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "CRCX: Creating connection: port: %u\n", conn->end.local_port); if (p->cfg->change_cb) - p->cfg->change_cb(tcfg, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX); + p->cfg->change_cb(trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ - OSMO_ASSERT(tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE); + OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); if (conn->conn->mode & MGCP_CONN_RECV_ONLY - && tcfg->keepalive_interval != MGCP_KEEPALIVE_NEVER) + && trunk->keepalive_interval != MGCP_KEEPALIVE_NEVER) send_dummy(endp, conn); LOGPCONN(_conn, DLMGCP, LOGL_NOTICE, @@ -1088,9 +1088,9 @@ /* MDCX command handler, processes the received command */ static struct msgb *handle_modify_con(struct mgcp_parse_data *p) { - struct mgcp_trunk_config *tcfg = p->endp->tcfg; + struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_mdcx_ctr_group; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_mdcx_ctr_group; int error_code = 500; int silent = 0; int have_sdp = 0; @@ -1198,7 +1198,7 @@ /* Set local connection options, if present */ if (local_options) { - rc = set_local_cx_options(endp->tcfg->endpoints, + rc = set_local_cx_options(endp->trunk->endpoints, &endp->local_options, local_options); if (rc != 0) { LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR, @@ -1257,7 +1257,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_MDCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: @@ -1287,13 +1287,13 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "MDCX: modified conn:%s\n", mgcp_conn_dump(conn->conn)); if (p->cfg->change_cb) - p->cfg->change_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_MDCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ - OSMO_ASSERT(endp->tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE); + OSMO_ASSERT(endp->trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); if (conn->conn->mode & MGCP_CONN_RECV_ONLY - && endp->tcfg->keepalive_interval != MGCP_KEEPALIVE_NEVER) + && endp->trunk->keepalive_interval != MGCP_KEEPALIVE_NEVER) send_dummy(endp, conn); rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_SUCCESS]); @@ -1314,9 +1314,9 @@ /* DLCX command handler, processes the received command */ static struct msgb *handle_delete_con(struct mgcp_parse_data *p) { - struct mgcp_trunk_config *tcfg = p->endp->tcfg; + struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_dlcx_ctr_group; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_dlcx_ctr_group; int error_code = 400; int silent = 0; char *line; @@ -1377,7 +1377,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_DLCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: @@ -1442,7 +1442,7 @@ } if (p->cfg->change_cb) - p->cfg->change_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_DLCX); rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_SUCCESS]); @@ -1472,7 +1472,7 @@ LOGP(DLMGCP, LOGL_NOTICE, "RSIP: resetting all endpoints ...\n"); if (p->cfg->reset_cb) - p->cfg->reset_cb(p->endp->tcfg); + p->cfg->reset_cb(p->endp->trunk); return NULL; } @@ -1518,37 +1518,37 @@ /* Connection keepalive timer, will take care that dummy packets are send * regularly, so that NAT connections stay open */ -static void mgcp_keepalive_timer_cb(void *_tcfg) +static void mgcp_keepalive_timer_cb(void *_trunk) { - struct mgcp_trunk_config *tcfg = _tcfg; + struct mgcp_trunk *trunk = _trunk; struct mgcp_conn *conn; int i; LOGP(DLMGCP, LOGL_DEBUG, "triggered trunk %d keepalive timer\n", - tcfg->trunk_nr); + trunk->trunk_nr); /* Do not accept invalid configuration values * valid is MGCP_KEEPALIVE_NEVER, MGCP_KEEPALIVE_ONCE and * values greater 0 */ - OSMO_ASSERT(tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE); + OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); /* The dummy packet functionality has been disabled, we will exit * immediately, no further timer is scheduled, which means we will no * longer send dummy packets even when we did before */ - if (tcfg->keepalive_interval == MGCP_KEEPALIVE_NEVER) + if (trunk->keepalive_interval == MGCP_KEEPALIVE_NEVER) return; /* In cases where only one dummy packet is sent, we do not need * the timer since the functions that handle the CRCX and MDCX are * triggering the sending of the dummy packet. So we behave like in * the MGCP_KEEPALIVE_NEVER case */ - if (tcfg->keepalive_interval == MGCP_KEEPALIVE_ONCE) + if (trunk->keepalive_interval == MGCP_KEEPALIVE_ONCE) return; /* Send walk over all endpoints and send out dummy packets through * every connection present on each endpoint */ - for (i = 1; i < tcfg->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &tcfg->endpoints[i]; + for (i = 1; i < trunk->number_endpoints; ++i) { + struct mgcp_endpoint *endp = &trunk->endpoints[i]; llist_for_each_entry(conn, &endp->conns, entry) { if (conn->mode == MGCP_CONN_RECV_ONLY) send_dummy(endp, &conn->u.rtp); @@ -1557,21 +1557,21 @@ /* Schedule the keepalive timer for the next round */ LOGP(DLMGCP, LOGL_DEBUG, "rescheduling trunk %d keepalive timer\n", - tcfg->trunk_nr); - osmo_timer_schedule(&tcfg->keepalive_timer, tcfg->keepalive_interval, + trunk->trunk_nr); + osmo_timer_schedule(&trunk->keepalive_timer, trunk->keepalive_interval, 0); } -void mgcp_trunk_set_keepalive(struct mgcp_trunk_config *tcfg, int interval) +void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval) { - tcfg->keepalive_interval = interval; - osmo_timer_setup(&tcfg->keepalive_timer, mgcp_keepalive_timer_cb, tcfg); + trunk->keepalive_interval = interval; + osmo_timer_setup(&trunk->keepalive_timer, mgcp_keepalive_timer_cb, trunk); if (interval <= 0) - osmo_timer_del(&tcfg->keepalive_timer); + osmo_timer_del(&trunk->keepalive_timer); else - osmo_timer_schedule(&tcfg->keepalive_timer, - tcfg->keepalive_interval, 0); + osmo_timer_schedule(&trunk->keepalive_timer, + trunk->keepalive_interval, 0); } static int free_rate_counter_group(struct rate_ctr_group *rate_ctr_group) @@ -1580,7 +1580,7 @@ return 0; } -static int alloc_mgcp_rate_counters(struct mgcp_trunk_config *trunk, void *ctx) +static int alloc_mgcp_rate_counters(struct mgcp_trunk *trunk, void *ctx) { /* FIXME: Each new rate counter group requires a unique index. At the * moment we generate an index using a counter, but perhaps there is @@ -1676,11 +1676,11 @@ * \param[in] cfg mgcp configuration * \param[in] nr trunk number * \returns pointer to allocated trunk configuration */ -struct mgcp_trunk_config *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; - trunk = talloc_zero(cfg, struct mgcp_trunk_config); + trunk = talloc_zero(cfg, struct mgcp_trunk); if (!trunk) { LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate.\n"); return NULL; @@ -1709,9 +1709,9 @@ * \param[in] cfg mgcp configuration * \param[in] index trunk number * \returns pointer to trunk configuration, NULL on error */ -struct mgcp_trunk_config *mgcp_trunk_num(struct mgcp_config *cfg, int index) +struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; llist_for_each_entry(trunk, &cfg->trunks, entry) if (trunk->trunk_nr == index) @@ -1722,27 +1722,27 @@ /*! allocate endpoints and set default values. * (called once at startup by VTY) - * \param[in] tcfg trunk configuration + * \param[in] trunk trunk configuration * \returns 0 on success, -1 on failure */ -int mgcp_endpoints_allocate(struct mgcp_trunk_config *tcfg) +int mgcp_endpoints_allocate(struct mgcp_trunk *trunk) { int i; - tcfg->endpoints = _talloc_zero_array(tcfg->cfg, + trunk->endpoints = _talloc_zero_array(trunk->cfg, sizeof(struct mgcp_endpoint), - tcfg->vty_number_endpoints, + trunk->vty_number_endpoints, "endpoints"); - if (!tcfg->endpoints) + if (!trunk->endpoints) return -1; - for (i = 0; i < tcfg->vty_number_endpoints; ++i) { - INIT_LLIST_HEAD(&tcfg->endpoints[i].conns); - tcfg->endpoints[i].cfg = tcfg->cfg; - tcfg->endpoints[i].tcfg = tcfg; + for (i = 0; i < trunk->vty_number_endpoints; ++i) { + INIT_LLIST_HEAD(&trunk->endpoints[i].conns); + trunk->endpoints[i].cfg = trunk->cfg; + trunk->endpoints[i].trunk = trunk; - switch (tcfg->trunk_type) { + switch (trunk->trunk_type) { case MGCP_TRUNK_VIRTUAL: - tcfg->endpoints[i].type = &ep_typeset.rtp; + trunk->endpoints[i].type = &ep_typeset.rtp; break; case MGCP_TRUNK_E1: /* FIXME: Implement E1 allocation */ @@ -1750,12 +1750,12 @@ break; default: osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", - tcfg->trunk_type, __FILE__, __LINE__); + trunk->trunk_type, __FILE__, __LINE__); } } - tcfg->number_endpoints = tcfg->vty_number_endpoints; - alloc_mgcp_rate_counters(tcfg, tcfg->cfg); + trunk->number_endpoints = trunk->vty_number_endpoints; + alloc_mgcp_rate_counters(trunk, trunk->cfg); return 0; } diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 01e7968..428bde6 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -557,7 +557,7 @@ if (rc < 0) goto buffer_too_small; - if (endp->tcfg->audio_send_name) { + if (endp->trunk->audio_send_name) { rc = add_rtpmap(sdp, payload_type, audio_name); if (rc < 0) goto buffer_too_small; @@ -573,7 +573,7 @@ if (rc < 0) goto buffer_too_small; } - if (conn->end.packet_duration_ms > 0 && endp->tcfg->audio_send_ptime) { + if (conn->end.packet_duration_ms > 0 && endp->trunk->audio_send_ptime) { rc = msgb_printf(sdp, "a=ptime:%u\r\n", conn->end.packet_duration_ms); if (rc < 0) diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 856c971..137d5de 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -42,9 +42,9 @@ static struct mgcp_config *g_cfg = NULL; -static struct mgcp_trunk_config *find_trunk(struct mgcp_config *cfg, int nr) +static struct mgcp_trunk *find_trunk(struct mgcp_config *cfg, int nr) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; if (nr == 0) trunk = cfg->virt_trunk; @@ -68,7 +68,7 @@ static int config_write_mgcp(struct vty *vty) { - struct mgcp_trunk_config *trunk = g_cfg->virt_trunk; + struct mgcp_trunk *trunk = g_cfg->virt_trunk; vty_out(vty, "mgcp%s", VTY_NEWLINE); vty_out(vty, " domain %s%s", g_cfg->domain, VTY_NEWLINE); @@ -244,7 +244,7 @@ } } -static void dump_trunk(struct vty *vty, struct mgcp_trunk_config *cfg, int show_stats) +static void dump_trunk(struct vty *vty, struct mgcp_trunk *cfg, int show_stats) { int i; @@ -298,7 +298,7 @@ SHOW_MGCP_STR "Include Statistics\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; int show_stats = argc >= 1; dump_trunk(vty, g_cfg->virt_trunk, show_stats); @@ -314,7 +314,7 @@ } static void -dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk_config *trunk, const char *epname) +dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk *trunk, const char *epname) { const size_t virt_prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; unsigned long epidx; @@ -350,7 +350,7 @@ SHOW_MGCP_STR "Display information about an endpoint\n" "The name of the endpoint\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; dump_mgcp_endpoint(vty, g_cfg->virt_trunk, argv[0]); llist_for_each_entry(trunk, &g_cfg->trunks, entry) @@ -366,7 +366,7 @@ "Display information about a trunk\n" "Trunk number\n" "Display information about an endpoint\n" "The name of the endpoint\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; int trunkidx = atoi(argv[0]); trunk = find_trunk(g_cfg, trunkidx); @@ -807,7 +807,7 @@ DEFUN(cfg_mgcp_trunk, cfg_mgcp_trunk_cmd, "trunk <1-64>", "Configure a SS7 trunk\n" "Trunk Nr\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; int index = atoi(argv[0]); trunk = mgcp_trunk_num(g_cfg, index); @@ -827,7 +827,7 @@ static int config_write_trunk(struct vty *vty) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; llist_for_each_entry(trunk, &g_cfg->trunks, entry) { vty_out(vty, " trunk %d%s", trunk->trunk_nr, VTY_NEWLINE); @@ -885,7 +885,7 @@ "Add extra fmtp for the SDP file\n" "Audio\n" "Fmtp-extra\n" "Extra Information\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; char *txt = argv_concat(argv, argc, 0); if (!txt) return CMD_WARNING; @@ -900,7 +900,7 @@ "sdp audio-payload number <0-255>", SDP_STR AUDIO_STR "Number\n" "Payload Number\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; unsigned int payload = atoi(argv[0]); trunk->audio_payload = payload; @@ -916,7 +916,7 @@ "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Payload\n" "Payload Name\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; osmo_talloc_replace_string(g_cfg, &trunk->audio_name, argv[0]); return CMD_SUCCESS; @@ -931,7 +931,7 @@ "loop (0|1)", "Loop audio for all endpoints on this trunk\n" "Don't Loop\n" "Loop\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; if (g_cfg->osmux) { vty_out(vty, "Cannot use `loop' with `osmux'.%s", VTY_NEWLINE); @@ -946,7 +946,7 @@ "sdp audio-payload send-ptime", SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_ptime = 1; return CMD_SUCCESS; } @@ -956,7 +956,7 @@ "no sdp audio-payload send-ptime", NO_STR SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_ptime = 0; return CMD_SUCCESS; } @@ -966,7 +966,7 @@ "sdp audio-payload send-name", SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_name = 1; return CMD_SUCCESS; } @@ -976,14 +976,14 @@ "no sdp audio-payload send-name", NO_STR SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_name = 0; return CMD_SUCCESS; } DEFUN(cfg_trunk_omit_rtcp, cfg_trunk_omit_rtcp_cmd, "rtcp-omit", RTCP_OMIT_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->omit_rtcp = 1; return CMD_SUCCESS; } @@ -991,7 +991,7 @@ DEFUN(cfg_trunk_no_omit_rtcp, cfg_trunk_no_omit_rtcp_cmd, "no rtcp-omit", NO_STR RTCP_OMIT_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->omit_rtcp = 0; return CMD_SUCCESS; } @@ -1000,7 +1000,7 @@ cfg_trunk_patch_rtp_ssrc_cmd, "rtp-patch ssrc", RTP_PATCH_STR "Force a fixed SSRC\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 1; return CMD_SUCCESS; } @@ -1009,7 +1009,7 @@ cfg_trunk_no_patch_rtp_ssrc_cmd, "no rtp-patch ssrc", NO_STR RTP_PATCH_STR "Force a fixed SSRC\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 0; return CMD_SUCCESS; } @@ -1018,7 +1018,7 @@ cfg_trunk_patch_rtp_ts_cmd, "rtp-patch timestamp", RTP_PATCH_STR "Adjust RTP timestamp\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_aligned_timing = 1; return CMD_SUCCESS; } @@ -1027,7 +1027,7 @@ cfg_trunk_no_patch_rtp_ts_cmd, "no rtp-patch timestamp", NO_STR RTP_PATCH_STR "Adjust RTP timestamp\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_aligned_timing = 0; return CMD_SUCCESS; } @@ -1036,7 +1036,7 @@ cfg_trunk_patch_rtp_rfc5993hr_cmd, "rtp-patch rfc5993hr", RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->rfc5993_hr_convert = true; return CMD_SUCCESS; } @@ -1045,7 +1045,7 @@ cfg_trunk_no_patch_rtp_rfc5993hr_cmd, "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->rfc5993_hr_convert = false; return CMD_SUCCESS; } @@ -1053,7 +1053,7 @@ DEFUN(cfg_trunk_no_patch_rtp, cfg_trunk_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 0; trunk->force_aligned_timing = 0; trunk->rfc5993_hr_convert = false; @@ -1065,7 +1065,7 @@ "rtp keep-alive <1-120>", RTP_STR RTP_KEEPALIVE_STR "Keep-alive interval in secs\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, atoi(argv[0])); return CMD_SUCCESS; } @@ -1075,7 +1075,7 @@ "rtp keep-alive once", RTP_STR RTP_KEEPALIVE_STR "Send dummy packet only once after CRCX/MDCX\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); return CMD_SUCCESS; } @@ -1084,7 +1084,7 @@ cfg_trunk_no_rtp_keepalive_cmd, "no rtp keep-alive", NO_STR RTP_STR RTP_KEEPALIVE_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, 0); return CMD_SUCCESS; } @@ -1093,7 +1093,7 @@ cfg_trunk_allow_transcoding_cmd, "allow-transcoding", "Allow transcoding\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->no_audio_transcoding = 0; return CMD_SUCCESS; } @@ -1102,7 +1102,7 @@ cfg_trunk_no_allow_transcoding_cmd, "no allow-transcoding", NO_STR "Allow transcoding\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->no_audio_transcoding = 1; return CMD_SUCCESS; } @@ -1114,7 +1114,7 @@ "The name in hex of the endpoint\n" "Disable the loop\n" "Enable the loop\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; struct mgcp_conn *conn; @@ -1172,7 +1172,7 @@ "destination IP of the data\n" "destination port\n") { struct mgcp_rtp_tap *tap; - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; struct mgcp_conn_rtp *conn; const char *conn_id = NULL; @@ -1227,7 +1227,7 @@ "free-endpoint <0-64> NUMBER", "Free the given endpoint\n" "Trunk number\n" "Endpoint number in hex.\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; trunk = find_trunk(g_cfg, atoi(argv[0])); @@ -1259,7 +1259,7 @@ "reset-endpoint <0-64> NUMBER", "Reset the given endpoint\n" "Trunk number\n" "Endpoint number in hex.\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; int endp_no, rc; @@ -1502,7 +1502,7 @@ enum mgcp_role role) { int rc; - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; cfg->osmux_port = OSMUX_PORT; cfg->osmux_batch = 4; diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index 48869c4..22f2ab8 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -71,7 +71,7 @@ /* FIXME: Make use of the rtp proxy code */ static struct mgcp_config *cfg; -static struct mgcp_trunk_config *reset_trunk; +static struct mgcp_trunk *reset_trunk; static int reset_endpoints = 0; static int daemonize = 0; @@ -148,13 +148,13 @@ /* Callback function to be called when the RSIP ("Reset in Progress") mgcp * command is received */ -static int mgcp_rsip_cb(struct mgcp_trunk_config *tcfg) +static int mgcp_rsip_cb(struct mgcp_trunk *trunk) { /* Set flag so that, when read_call_agent() is called next time * the reset can progress */ reset_endpoints = 1; - reset_trunk = tcfg; + reset_trunk = trunk; return 0; } diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index e0518a4..fa38296 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -593,7 +593,7 @@ static int last_endpoint = -1; -static int mgcp_test_policy_cb(struct mgcp_trunk_config *cfg, int endpoint, +static int mgcp_test_policy_cb(struct mgcp_trunk *cfg, int endpoint, int state, const char *transactio_id) { fprintf(stderr, "Policy CB got state %d on endpoint 0x%x\n", @@ -641,7 +641,7 @@ return real_clock_gettime(clk_id, tp); } -static void mgcp_endpoints_release(struct mgcp_trunk_config *trunk) +static void mgcp_endpoints_release(struct mgcp_trunk *trunk) { int i; for (i = 1; i < trunk->number_endpoints; i++) @@ -749,7 +749,7 @@ { struct mgcp_config *cfg; struct mgcp_endpoint *endp; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; int i; struct mgcp_conn_rtp *conn = NULL; char last_conn_id[256]; @@ -890,7 +890,7 @@ static void test_retransmission(void) { struct mgcp_config *cfg; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; int i; char last_conn_id[256]; int rc; @@ -958,7 +958,7 @@ static void test_rqnt_cb(void) { struct mgcp_config *cfg; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; struct msgb *inp, *msg; char conn_id[256]; @@ -1036,7 +1036,7 @@ int i; struct mgcp_endpoint endp; struct mgcp_config cfg = {0}; - struct mgcp_trunk_config trunk; + struct mgcp_trunk trunk; printf("Testing packet loss calculation.\n"); @@ -1047,7 +1047,7 @@ endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; trunk.endpoints = &endp; - endp.tcfg = &trunk; + endp.trunk = &trunk; INIT_LLIST_HEAD(&endp.conns); for (i = 0; i < ARRAY_SIZE(pl_test_dat); ++i) { @@ -1262,7 +1262,7 @@ { int i; - struct mgcp_trunk_config trunk; + struct mgcp_trunk trunk; struct mgcp_endpoint endp; struct mgcp_config cfg = {0}; struct mgcp_rtp_state state; @@ -1300,7 +1300,7 @@ trunk.force_constant_ssrc = patch_ssrc; trunk.force_aligned_timing = patch_ts; - endp.tcfg = &trunk; + endp.trunk = &trunk; INIT_LLIST_HEAD(&endp.conns); _conn = mgcp_conn_alloc(NULL, &endp, MGCP_CONN_TYPE_RTP, @@ -1361,7 +1361,7 @@ static void test_multilple_codec(void) { struct mgcp_config *cfg; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; struct mgcp_endpoint *endp; struct msgb *inp, *resp; struct in_addr addr; @@ -1558,7 +1558,7 @@ static void test_no_name(void) { - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; struct mgcp_config *cfg; struct msgb *inp, *msg; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I02889dbf8149e139b1bd0326e13ce4c1aec867d1 Gerrit-Change-Number: 18643 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 Jun 3 14:10:15 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 14:10:15 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 901 insertions(+), 629 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/18644/1 diff --git a/include/osmocom/mgcp/Makefile.am b/include/osmocom/mgcp/Makefile.am index 036b4ca..fb7654f 100644 --- a/include/osmocom/mgcp/Makefile.am +++ b/include/osmocom/mgcp/Makefile.am @@ -7,5 +7,7 @@ mgcp_sdp.h \ mgcp_codec.h \ mgcp_ctrl.h \ + mgcp_trunk.h \ debug.h \ + mgcp_ratectr.h \ $(NULL) diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 538c907..4c122e7 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -34,6 +34,8 @@ #include #include +#include "mgcp_ratectr.h" + #define RTP_PORT_DEFAULT_RANGE_START 16002 #define RTP_PORT_DEFAULT_RANGE_END RTP_PORT_DEFAULT_RANGE_START + 64 @@ -59,8 +61,8 @@ #define MGCP_POLICY_REJECT 5 #define MGCP_POLICY_DEFER 6 -typedef int (*mgcp_change)(struct mgcp_trunk *cfg, int endpoint, int state); -typedef int (*mgcp_policy)(struct mgcp_trunk *cfg, int endpoint, int state, const char *transactio_id); +typedef int (*mgcp_change)(struct mgcp_endpoint *endp, int state); +typedef int (*mgcp_policy)(struct mgcp_endpoint *endp, int state, const char *transaction_id); typedef int (*mgcp_reset)(struct mgcp_trunk *cfg); typedef int (*mgcp_rqnt)(struct mgcp_endpoint *endp, char tone); @@ -177,57 +179,6 @@ MGCP_DLCX_DEFERRED_BY_POLICY, }; -struct mgcp_trunk { - struct llist_head entry; - - struct mgcp_config *cfg; - - int trunk_nr; - int trunk_type; - - char *audio_fmtp_extra; - char *audio_name; - int audio_payload; - int audio_send_ptime; - int audio_send_name; - int audio_loop; - - int no_audio_transcoding; - - int omit_rtcp; - int keepalive_interval; - - /* RTP patching */ - int force_constant_ssrc; /* 0: don't, 1: once */ - int force_aligned_timing; - bool rfc5993_hr_convert; - - /* spec handling */ - int force_realloc; - - /* timer */ - struct osmo_timer_list keepalive_timer; - - /* When set, incoming RTP packets are not filtered - * when ports and ip-address do not match (debug) */ - int rtp_accept_all; - - unsigned int number_endpoints; - int vty_number_endpoints; - struct mgcp_endpoint *endpoints; - - /* Rate counter group which contains stats for generic MGCP events. */ - struct rate_ctr_group *mgcp_general_ctr_group; - /* Rate counter group which contains stats for processed CRCX commands. */ - struct rate_ctr_group *mgcp_crcx_ctr_group; - /* Rate counter group which contains stats for processed MDCX commands. */ - struct rate_ctr_group *mgcp_mdcx_ctr_group; - /* Rate counter group which contains stats for processed DLCX commands. */ - struct rate_ctr_group *mgcp_dlcx_ctr_group; - /* Rate counter group which aggregates stats of individual RTP connections. */ - struct rate_ctr_group *all_rtp_conn_stats; -}; - enum mgcp_role { MGCP_BSC = 0, MGCP_BSC_NAT, @@ -295,6 +246,10 @@ /* osmocom CTRL interface */ struct ctrl_handle *ctrl; + + /* global rate counters to measure the MGWs overall performance and + * health */ + struct mgcp_ratectr ratectr; }; /* config management */ @@ -302,7 +257,6 @@ int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg, enum mgcp_role role); int mgcp_vty_init(void); -int mgcp_endpoints_allocate(struct mgcp_trunk *cfg); void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval); /* @@ -311,7 +265,7 @@ struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg); -int mgcp_send_reset_ep(struct mgcp_endpoint *endp, int endpoint); +int mgcp_send_reset_ep(struct mgcp_endpoint *endp); int mgcp_send_reset_all(struct mgcp_config *cfg); diff --git a/include/osmocom/mgcp/mgcp_common.h b/include/osmocom/mgcp/mgcp_common.h index a1bbb19..07d8d37 100644 --- a/include/osmocom/mgcp/mgcp_common.h +++ b/include/osmocom/mgcp/mgcp_common.h @@ -100,6 +100,10 @@ /* A prefix to denote the virtual trunk (RTP on both ends) */ #define MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK "rtpbridge/" +/* A prefix to denote the e1 trunk + * (see also RFC3435 section E.2) */ +#define MGCP_ENDPOINT_PREFIX_E1_TRUNK "ds/e1-" + /* Maximal number of payload types / codecs that can be negotiated via SDP at * at once. */ #define MGCP_MAX_CODECS 10 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 8fa8390..1fe8266 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -28,8 +28,8 @@ struct mgcp_endpoint; #define LOGPENDP(endp, cat, level, fmt, args...) \ -LOGP(cat, level, "endpoint:0x%x " fmt, \ - endp ? ENDPOINT_NUMBER(endp) : -1, \ +LOGP(cat, level, "endpoint:%s " fmt, \ + endp ? endp->name : "none", \ ## args) /* Callback type for RTP dispatcher functions @@ -68,6 +68,9 @@ /*! MGCP endpoint model */ struct mgcp_endpoint { + /*! Unique endpoint name, used for addressing via MGCP */ + char *name; + /*! Call identifier string (as supplied by the call agant) */ char *callid; @@ -80,7 +83,7 @@ /*! Backpointer to the MGW configuration */ struct mgcp_config *cfg; - /*! Backpointer to the Trunk specific configuration */ + /*! Backpointer to the trunk this endpoint belongs to */ struct mgcp_trunk *trunk; /*! Endpoint properties (see above) */ @@ -100,7 +103,9 @@ uint32_t x_osmo_ign; }; -/*! Extract endpoint number for a given endpoint */ -#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->trunk->endpoints)) - +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name); void mgcp_endp_release(struct mgcp_endpoint *endp); +struct mgcp_endpoint *mgcp_endp_by_name_trunk(int *cause, const char *epname, + struct mgcp_trunk *trunk); +struct mgcp_endpoint *mgcp_endp_by_name(int *cause, const char *epname, + struct mgcp_config *cfg); diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index b2e2210..174bfd9 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -282,9 +282,6 @@ return endpoint + 60; } -struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index); -struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index); - char *get_lco_identifier(const char *options); int check_local_cx_options(void *ctx, const char *options); void mgcp_rtp_end_config(struct mgcp_endpoint *endp, int expect_ssrc_change, diff --git a/include/osmocom/mgcp/mgcp_ratectr.h b/include/osmocom/mgcp/mgcp_ratectr.h new file mode 100644 index 0000000..82e5b11 --- /dev/null +++ b/include/osmocom/mgcp/mgcp_ratectr.h @@ -0,0 +1,16 @@ +#pragma once + +struct mgcp_ratectr { + /* Rate counter group which contains stats for generic MGCP events. */ + struct rate_ctr_group *mgcp_general_ctr_group; + /* Rate counter group which contains stats for processed CRCX commands. */ + struct rate_ctr_group *mgcp_crcx_ctr_group; + /* Rate counter group which contains stats for processed MDCX commands. */ + struct rate_ctr_group *mgcp_mdcx_ctr_group; + /* Rate counter group which contains stats for processed DLCX commands. */ + struct rate_ctr_group *mgcp_dlcx_ctr_group; + /* Rate counter group which aggregates stats of individual RTP connections. */ + struct rate_ctr_group *all_rtp_conn_stats; +}; + +int mgcp_ratectr_alloc(void *ctx, struct mgcp_ratectr *ratecntr); diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h new file mode 100644 index 0000000..71d89ac --- /dev/null +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -0,0 +1,46 @@ +#pragma once + +struct mgcp_trunk { + struct llist_head entry; + + struct mgcp_config *cfg; + + int trunk_nr; + int trunk_type; + + char *audio_fmtp_extra; + char *audio_name; + int audio_payload; + int audio_send_ptime; + int audio_send_name; + int audio_loop; + + int no_audio_transcoding; + + int omit_rtcp; + int keepalive_interval; + + /* RTP patching */ + int force_constant_ssrc; /* 0: don't, 1: once */ + int force_aligned_timing; + bool rfc5993_hr_convert; + + /* spec handling */ + int force_realloc; + + /* timer */ + struct osmo_timer_list keepalive_timer; + + /* When set, incoming RTP packets are not filtered + * when ports and ip-address do not match (debug) */ + int rtp_accept_all; + + unsigned int number_endpoints; + unsigned int vty_number_endpoints; + struct mgcp_endpoint **endpoints; +}; + +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr); +int mgcp_trunk_alloc_endpts(struct mgcp_trunk *tcfg); +struct mgcp_trunk *mgcp_trunk_by_num(struct mgcp_config *cfg, int index); +struct mgcp_trunk *mgcp_trunk_by_name(const char *epname, struct mgcp_config *cfg); diff --git a/src/libosmo-mgcp/Makefile.am b/src/libosmo-mgcp/Makefile.am index a0c015b..77d0cdf 100644 --- a/src/libosmo-mgcp/Makefile.am +++ b/src/libosmo-mgcp/Makefile.am @@ -40,5 +40,7 @@ mgcp_conn.c \ mgcp_stat.c \ mgcp_endp.c \ + mgcp_trunk.c \ mgcp_ctrl.c \ + mgcp_ratectr.c \ $(NULL) diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index 3cea495..c251317 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -19,6 +19,7 @@ */ #include #include +#include #include /* Helper function to dump codec information of a specified codec to a printable diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 0b499b4..1b15e14 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -254,10 +255,9 @@ return NULL; } -static void -aggregate_rtp_conn_stats(struct mgcp_trunk *trunk, struct mgcp_conn_rtp *conn_rtp) +static void aggregate_rtp_conn_stats(struct mgcp_config *cfg, struct mgcp_conn_rtp *conn_rtp) { - struct rate_ctr_group *all_stats = trunk->all_rtp_conn_stats; + struct rate_ctr_group *all_stats = cfg->ratectr.all_rtp_conn_stats; struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; if (all_stats == NULL || conn_stats == NULL) @@ -296,7 +296,7 @@ switch (conn->type) { case MGCP_CONN_TYPE_RTP: - aggregate_rtp_conn_stats(endp->trunk, &conn->u.rtp); + aggregate_rtp_conn_stats(endp->cfg, &conn->u.rtp); mgcp_rtp_conn_cleanup(&conn->u.rtp); break; default: diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index eec46bf..9d5681c 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -1,7 +1,7 @@ /* Endpoint types */ /* - * (C) 2017 by sysmocom s.f.m.c. GmbH + * (C) 2017-2020 by sysmocom s.f.m.c. GmbH * All Rights Reserved * * Author: Philipp Maier @@ -23,6 +23,7 @@ #include #include +#include /* Endpoint typeset definition */ const struct mgcp_endpoint_typeset ep_typeset = { @@ -32,6 +33,38 @@ .rtp.cleanup_cb = mgcp_cleanup_rtp_bridge_cb }; +/*! allocate an endpoint and set default values. + * \param[in] trunk configuration + * \returns endpoint on success, NULL on failure */ +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name) +{ + struct mgcp_endpoint *endp; + + endp = talloc_zero(trunk->endpoints, struct mgcp_endpoint); + if (!endp) + return NULL; + + INIT_LLIST_HEAD(&endp->conns); + endp->cfg = trunk->cfg; + endp->trunk = trunk; + endp->name = talloc_strdup(endp, name); + + switch (trunk->trunk_type) { + case MGCP_TRUNK_VIRTUAL: + endp->type = &ep_typeset.rtp; + break; + case MGCP_TRUNK_E1: + /* FIXME: Implement E1 allocation */ + LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); + break; + default: + osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", + trunk->trunk_type, __FILE__, __LINE__); + } + + return endp; +} + /*! release endpoint, all open connections are closed. * \param[in] endp endpoint to release */ void mgcp_endp_release(struct mgcp_endpoint *endp) @@ -53,3 +86,217 @@ endp->local_options.codec = NULL; endp->wildcarded_req = false; } + +/* Check if the endpoint name contains the prefix (e.g. "rtpbridge/" or + * "ds/e1-"), and chop it off, if it exists (per trunk the prefix is + * the same for all endpoints, so no ambiguity is introduced) */ +static void chop_epname_prefix(char *epname, struct mgcp_trunk *trunk) +{ + size_t prefix_len; + switch (trunk->trunk_type) { + case MGCP_TRUNK_VIRTUAL: + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; + if (strncmp + (epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, + prefix_len) == 0) + memmove(epname, epname + prefix_len, + strlen(epname) - prefix_len + 1); + return; + case MGCP_TRUNK_E1: + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; + if (strncmp + (epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, + prefix_len) == 0) + memmove(epname, epname + prefix_len, + strlen(epname) - prefix_len + 1); + return; + } +} + +/* Check if the endpoint name contains a suffix (e.g. "@mgw") and chop + * it off */ +static void chop_epname_suffix(char *epname, struct mgcp_trunk *trunk) +{ + char *suffix_begin; + + /* Endpoints on the virtual trunk may have a domain name that is + * followed after an @ character, this can be chopped off. All + * other supported trunk types do not have any suffixes that may + * be chopped off */ + if (trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { + suffix_begin = strchr(epname, '@'); + if (!suffix_begin) + return; + *suffix_begin = '\0'; + } +} + +/* Strip the endpoint name from all information that is already evaluated + * and not needed to identify the endpoint on the trunk */ +static void strip_epname(char *epname_stripped, const char *epname, + struct mgcp_trunk *trunk) +{ + osmo_str_tolower_buf(epname_stripped, strlen(epname), epname); + chop_epname_prefix(epname_stripped, trunk); + chop_epname_suffix(epname_stripped, trunk); +} + +/* Go through the trunk and find a random free (no active calls) endpoint, + * this function is called when a wildcarded request is carried out, which + * means that it is up to the MGW to choose a random free endpoint. */ +static struct mgcp_endpoint *find_free_endpoint(struct mgcp_trunk *trunk) +{ + struct mgcp_endpoint *endp; + unsigned int i; + + for (i = 0; i < trunk->number_endpoints; i++) { + endp = trunk->endpoints[i]; + if (endp->callid == NULL) { + endp->wildcarded_req = true; + return endp; + } + } + + return NULL; +} + +static struct mgcp_endpoint *find_specific_endpoint(const char *epname, + struct mgcp_trunk *trunk) +{ + char epname_stripped[MGCP_ENDPOINT_MAXLEN]; + char epname_stripped_endp[MGCP_ENDPOINT_MAXLEN]; + struct mgcp_endpoint *endp; + unsigned int i; + + /* Strip irrelevant information from the endpoint name */ + strip_epname(epname_stripped, epname, trunk); + + for (i = 0; i < trunk->number_endpoints; i++) { + endp = trunk->endpoints[i]; + strip_epname(epname_stripped_endp, endp->name, trunk); + if (strcmp(epname_stripped_endp, epname_stripped) == 0) { + endp->wildcarded_req = false; + return endp; + } + } + + return NULL; +} + +/*! Find an endpoint by its name on a specified trunk. + * \param[out] cause pointer to store cause code, can be NULL. + * \param[in] epname endpoint name to lookup. + * \param[in] trunk where the endpoint is located. + * \returns endpoint or NULL if endpoint was not found. */ +struct mgcp_endpoint *mgcp_endp_by_name_trunk(int *cause, const char *epname, + struct mgcp_trunk *trunk) +{ + struct mgcp_endpoint *endp; + + if (cause) + *cause = 0; + + /* At the moment we only support a primitive ('*'-only) method of + * wildcarded endpoint searches that picks the next free endpoint on + * a trunk. */ + if (strstr(epname, "*")) { + endp = find_free_endpoint(trunk); + if (endp) { + LOGPENDP(endp, DLMGCP, LOGL_DEBUG, + "(trunk:%d) found free endpoint: %s\n", + trunk->trunk_nr, endp->name); + return endp; + } + + LOGP(DLMGCP, LOGL_ERROR, + "(trunk:%d) Not able to find a free endpoint\n", + trunk->trunk_nr); + if (cause) + *cause = -403; + return NULL; + } + + /* Find an endpoint by its name (if wildcarded request is not + * applicable) */ + endp = find_specific_endpoint(epname, trunk); + if (endp) { + LOGPENDP(endp, DLMGCP, LOGL_DEBUG, + "(trunk:%d) found endpoint: %s\n", + trunk->trunk_nr, endp->name); + return endp; + } + + LOGP(DLMGCP, LOGL_ERROR, + "(trunk:%d) Not able to find specified endpoint: %s\n", + trunk->trunk_nr, epname); + if (cause) + *cause = -500; + + return NULL; +} + +/* Check if the domain name, which is supplied with the endpoint name + * matches the configuration. */ +static int check_domain_name(const char *epname, struct mgcp_config *cfg) +{ + char *domain_to_check; + + domain_to_check = strstr(epname, "@"); + if (!domain_to_check) { + LOGP(DLMGCP, LOGL_ERROR, "missing domain name in endpoint name \"%s\", expecting \"%s\"\n", + epname, cfg->domain); + return -EINVAL; + } + + /* Accept any domain if configured as "*" */ + if (!strcmp(cfg->domain, "*")) + return 0; + + if (strcmp(domain_to_check+1, cfg->domain) != 0) { + LOGP(DLMGCP, LOGL_ERROR, "wrong domain name in endpoint name \"%s\", expecting \"%s\"\n", + epname, cfg->domain); + return -EINVAL; + } + + return 0; +} + +/*! Find an endpoint by its name, search at all trunks. + * \param[out] cause, pointer to store cause code, can be NULL. + * \param[in] epname, must contain trunk prefix. + * \param[in] cfg, mgcp configuration (trunks). + * \returns endpoint or NULL if endpoint was not found. */ +struct mgcp_endpoint *mgcp_endp_by_name(int *cause, const char *epname, + struct mgcp_config *cfg) +{ + struct mgcp_trunk *trunk; + struct mgcp_endpoint *endp; + char epname_lc[MGCP_ENDPOINT_MAXLEN]; + + osmo_str_tolower_buf(epname_lc, sizeof(epname_lc), epname); + epname = epname_lc; + + if (cause) + *cause = -500; + + /* Identify the trunk where the endpoint is located */ + trunk = mgcp_trunk_by_name(epname, cfg); + if (!trunk) + return NULL; + + /* Virtual endpoints require a domain name (see RFC3435, section E.3) */ + if (trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { + if (check_domain_name(epname, cfg)) + return NULL; + } + + /* Identify the endpoint on the trunk */ + endp = mgcp_endp_by_name_trunk(cause, epname, trunk); + if (!endp) { + return NULL; + } + + if (cause) + *cause = 0; + return endp; +} diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c index 7124a39..019466e 100644 --- a/src/libosmo-mgcp/mgcp_msg.c +++ b/src/libosmo-mgcp/mgcp_msg.c @@ -129,167 +129,6 @@ return ret; } -/* We have a null terminated string with the endpoint name here. We only - * support two kinds. Simple ones as seen on the BSC level and the ones - * seen on the trunk side. (helper function for find_endpoint()) */ -static struct mgcp_endpoint *find_e1_endpoint(struct mgcp_config *cfg, - const char *mgcp) -{ - char *rest = NULL; - struct mgcp_trunk *trunk; - int trunk_index, endp; - struct mgcp_endpoint *endp_ptr; - - trunk_index = strtoul(mgcp + 6, &rest, 10); - if (rest == NULL || rest[0] != '/' || trunk_index < 1) { - LOGP(DLMGCP, LOGL_ERROR, "Wrong trunk name '%s'\n", mgcp); - return NULL; - } - - endp = strtoul(rest + 1, &rest, 10); - if (rest == NULL || rest[0] != '@') { - LOGP(DLMGCP, LOGL_ERROR, "Wrong endpoint name '%s'\n", mgcp); - return NULL; - } - - /* signalling is on timeslot 1 */ - if (endp == 1) - return NULL; - - trunk = mgcp_trunk_num(cfg, trunk_index); - if (!trunk) { - LOGP(DLMGCP, LOGL_ERROR, "The trunk %d is not declared.\n", - trunk_index); - return NULL; - } - - if (!trunk->endpoints) { - LOGP(DLMGCP, LOGL_ERROR, - "Endpoints of trunk %d not allocated.\n", trunk_index); - return NULL; - } - - if (endp < 1 || endp >= trunk->number_endpoints) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to find endpoint '%s'\n", - mgcp); - return NULL; - } - - endp_ptr = &trunk->endpoints[endp]; - endp_ptr->wildcarded_req = false; - return endp_ptr; -} - -/* Find an endpoint that is not in use. Do this by going through the endpoint - * array, check the callid. A callid nullpointer indicates that the endpoint - * is free */ -static struct mgcp_endpoint *find_free_endpoint(struct mgcp_endpoint *endpoints, - unsigned int number_endpoints) -{ - struct mgcp_endpoint *endp; - unsigned int i; - - for (i = 0; i < number_endpoints; i++) { - if (endpoints[i].callid == NULL) { - endp = &endpoints[i]; - LOGPENDP(endp, DLMGCP, LOGL_DEBUG, - "found free endpoint\n"); - endp->wildcarded_req = true; - return endp; - } - } - - LOGP(DLMGCP, LOGL_ERROR, "Not able to find a free endpoint\n"); - return NULL; -} - -/* Check if the domain name, which is supplied with the endpoint name - * matches the configuration. */ -static int check_domain_name(struct mgcp_config *cfg, const char *mgcp) -{ - char *domain_to_check; - - domain_to_check = strstr(mgcp, "@"); - if (!domain_to_check) - return -EINVAL; - - /* Accept any domain if configured as "*" */ - if (!strcmp(cfg->domain, "*")) - return 0; - - if (strcmp(domain_to_check+1, cfg->domain) != 0) { - LOGP(DLMGCP, LOGL_ERROR, "Wrong domain name '%s', expecting '%s'\n", mgcp, cfg->domain); - return -EINVAL; - } - - return 0; -} - -/* Search the endpoint pool for the endpoint that had been selected via the - * MGCP message (helper function for mgcp_analyze_header()) */ -static struct mgcp_endpoint *find_endpoint(struct mgcp_config *cfg, - const char *mgcp, - int *cause) -{ - char *endptr = NULL; - unsigned int gw = INT_MAX; - const char *endpoint_number_str; - struct mgcp_endpoint *endp; - struct mgcp_trunk *virt_trunk = cfg->virt_trunk; - - *cause = 0; - - /* Check if the domainname in the request is correct */ - if (check_domain_name(cfg, mgcp)) { - *cause = -500; - return NULL; - } - - /* Check if the E1 trunk is requested */ - if (strncmp(mgcp, "ds/e1", 5) == 0) { - endp = find_e1_endpoint(cfg, mgcp); - if (!endp) - *cause = -500; - return endp; - } - - /* Check if the virtual trunk is addressed (new, correct way with prefix) */ - if (strncmp - (mgcp, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, - strlen(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK)) == 0) { - endpoint_number_str = - mgcp + strlen(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK); - if (endpoint_number_str[0] == '*') { - endp = find_free_endpoint(virt_trunk->endpoints, - virt_trunk->number_endpoints); - if (!endp) - *cause = -403; - return endp; - } - gw = strtoul(endpoint_number_str, &endptr, 16); - if (gw < virt_trunk->number_endpoints && endptr[0] == '@') { - endp = &virt_trunk->endpoints[gw]; - endp->wildcarded_req = false; - return endp; - } - } - - /* Deprecated method without prefix */ - LOGP(DLMGCP, LOGL_NOTICE, - "Addressing virtual trunk without prefix (deprecated), please use %s: '%s'\n", - MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, mgcp); - gw = strtoul(mgcp, &endptr, 16); - if (gw < virt_trunk->number_endpoints && endptr[0] == '@') { - endp = &virt_trunk->endpoints[gw]; - endp->wildcarded_req = false; - return endp; - } - - LOGP(DLMGCP, LOGL_ERROR, "Not able to find the endpoint: '%s'\n", mgcp); - *cause = -500; - return NULL; -} - /*! Analyze and parse the the hader of an MGCP messeage string. * \param[out] pdata caller provided memory to store the parsing results * \param[in] data mgcp message string @@ -317,7 +156,7 @@ pdata->trans = elem; break; case 1: - pdata->endp = find_endpoint(pdata->cfg, elem, &cause); + pdata->endp = mgcp_endp_by_name(&cause, elem, pdata->cfg); if (!pdata->endp) { LOGP(DLMGCP, LOGL_ERROR, "Unable to find Endpoint `%s'\n", elem); @@ -391,8 +230,8 @@ const size_t line_len = strlen(line); if (line[0] != '\0' && line_len < 2) { LOGP(DLMGCP, LOGL_ERROR, - "Wrong MGCP option format: '%s' on 0x%x\n", - line, ENDPOINT_NUMBER(endp)); + "Wrong MGCP option format: '%s' on %s\n", + line, endp->name); return 0; } diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 2d3fdc3..7651486 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -61,11 +62,11 @@ int id, int inc) { struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; - struct rate_ctr_group *trunk_stats = endp->trunk->all_rtp_conn_stats; + struct rate_ctr_group *mgw_stats = endp->cfg->ratectr.all_rtp_conn_stats; - /* add to both the per-connection and the per-trunk global stats */ + /* add to both the per-connection and the global stats */ rate_ctr_add(&conn_stats->ctr[id], inc); - rate_ctr_add(&trunk_stats->ctr[id], inc); + rate_ctr_add(&mgw_stats->ctr[id], inc); } static void rtpconn_rate_ctr_inc(struct mgcp_conn_rtp *conn_rtp, struct mgcp_endpoint *endp, int id) @@ -648,9 +649,8 @@ return; #if 0 - DEBUGP(DRTP, - "endpoint:0x%x payload hdr payload %u -> endp payload %u\n", - ENDPOINT_NUMBER(endp), rtp_hdr->payload_type, payload); + LOGPENDP(endp, DRTP, LOGL_DEBUG, "payload hdr payload %u -> endp payload %u\n", + rtp_hdr->payload_type, payload); rtp_hdr->payload_type = payload; #endif } @@ -1436,11 +1436,10 @@ /* Bind RTP and RTCP port (helper function for mgcp_bind_net_rtp_port()) */ static int bind_rtp(struct mgcp_config *cfg, const char *source_addr, - struct mgcp_rtp_end *rtp_end, int endpno) + struct mgcp_rtp_end *rtp_end, struct mgcp_endpoint *endp) { /* NOTE: The port that is used for RTCP is the RTP port incremented by one * (e.g. RTP-Port = 16000 ==> RTCP-Port = 16001) */ - struct mgcp_endpoint *endp = &cfg->virt_trunk->endpoints[endpno]; if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port) != 0) { @@ -1527,8 +1526,7 @@ mgcp_get_local_addr(local_ip_addr, conn); - return bind_rtp(endp->cfg, local_ip_addr, end, - ENDPOINT_NUMBER(endp)); + return bind_rtp(endp->cfg, local_ip_addr, end, endp); } /*! free allocated RTP and RTCP ports. diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index 8da7361..ca8b5f0 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -27,6 +27,7 @@ #include #include #include +#include static struct osmo_fd osmux_fd; @@ -204,7 +205,7 @@ for (i=0; ivirt_trunk->number_endpoints; i++) { - endp = &cfg->virt_trunk->endpoints[i]; + endp = cfg->virt_trunk->endpoints[i]; llist_for_each_entry(conn, &endp->conns, entry) { if (conn->type != MGCP_CONN_TYPE_RTP) diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 4d77a4c..f62b581 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include @@ -40,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -53,101 +53,6 @@ #define MGCP_REQUEST(NAME, REQ, DEBUG_NAME) \ { .name = NAME, .handle_request = REQ, .debug_name = DEBUG_NAME }, -static const struct rate_ctr_desc mgcp_general_ctr_desc[] = { - /* rx_msgs = rx_msgs_retransmitted + rx_msgs_handled + rx_msgs_unhandled + err_rx_msg_parse + err_rx_no_endpoint */ - [MGCP_GENERAL_RX_MSGS_TOTAL] = {"mgcp:rx_msgs", "total number of MGCP messages received."}, - [MGCP_GENERAL_RX_MSGS_RETRANSMITTED] = {"mgcp:rx_msgs_retransmitted", "number of received retransmissions."}, - [MGCP_GENERAL_RX_MSGS_HANDLED] = {"mgcp:rx_msgs_handled", "number of handled MGCP messages."}, - [MGCP_GENERAL_RX_MSGS_UNHANDLED] = {"mgcp:rx_msgs_unhandled", "number of unhandled MGCP messages."}, - [MGCP_GENERAL_RX_FAIL_MSG_PARSE] = {"mgcp:err_rx_msg_parse", "error parsing MGCP message."}, - [MGCP_GENERAL_RX_FAIL_NO_ENDPOINT] = {"mgcp:err_rx_no_endpoint", "can't find MGCP endpoint, probably we've used all allocated endpoints."}, -}; - -const static struct rate_ctr_group_desc mgcp_general_ctr_group_desc = { - .group_name_prefix = "mgcp", - .group_description = "mgcp general statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_general_ctr_desc), - .ctr_desc = mgcp_general_ctr_desc -}; - -static const struct rate_ctr_desc mgcp_crcx_ctr_desc[] = { - [MGCP_CRCX_SUCCESS] = {"crcx:success", "CRCX command processed successfully."}, - [MGCP_CRCX_FAIL_BAD_ACTION] = {"crcx:bad_action", "bad action in CRCX command."}, - [MGCP_CRCX_FAIL_UNHANDLED_PARAM] = {"crcx:unhandled_param", "unhandled parameter in CRCX command."}, - [MGCP_CRCX_FAIL_MISSING_CALLID] = {"crcx:missing_callid", "missing CallId in CRCX command."}, - [MGCP_CRCX_FAIL_INVALID_MODE] = {"crcx:invalid_mode", "invalid connection mode in CRCX command."}, - [MGCP_CRCX_FAIL_LIMIT_EXCEEDED] = {"crcx:limit_exceeded", "limit of concurrent connections was reached."}, - [MGCP_CRCX_FAIL_UNKNOWN_CALLID] = {"crcx:unkown_callid", "unknown CallId in CRCX command."}, - [MGCP_CRCX_FAIL_ALLOC_CONN] = {"crcx:alloc_conn_fail", "connection allocation failure."}, - [MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC] = {"crcx:no_remote_conn_desc", "no opposite end specified for connection."}, - [MGCP_CRCX_FAIL_START_RTP] = {"crcx:start_rtp_failure", "failure to start RTP processing."}, - [MGCP_CRCX_FAIL_REJECTED_BY_POLICY] = {"crcx:conn_rejected", "connection rejected by policy."}, - [MGCP_CRCX_FAIL_NO_OSMUX] = {"crcx:no_osmux", "no osmux offered by peer."}, - [MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS] = {"crcx:conn_opt", "connection options invalid."}, - [MGCP_CRCX_FAIL_CODEC_NEGOTIATION] = {"crcx:codec_nego", "codec negotiation failure."}, - [MGCP_CRCX_FAIL_BIND_PORT] = {"crcx:bind_port", "port bind failure."}, -}; - -const static struct rate_ctr_group_desc mgcp_crcx_ctr_group_desc = { - .group_name_prefix = "crcx", - .group_description = "crxc statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_crcx_ctr_desc), - .ctr_desc = mgcp_crcx_ctr_desc -}; - -static const struct rate_ctr_desc mgcp_mdcx_ctr_desc[] = { - [MGCP_MDCX_SUCCESS] = {"mdcx:success", "MDCX command processed successfully."}, - [MGCP_MDCX_FAIL_WILDCARD] = {"mdcx:wildcard", "wildcard endpoint names in MDCX commands are unsupported."}, - [MGCP_MDCX_FAIL_NO_CONN] = {"mdcx:no_conn", "endpoint specified in MDCX command has no active connections."}, - [MGCP_MDCX_FAIL_INVALID_CALLID] = {"mdcx:callid", "invalid CallId specified in MDCX command."}, - [MGCP_MDCX_FAIL_INVALID_CONNID] = {"mdcx:connid", "invalid connection ID specified in MDCX command."}, - [MGCP_MDCX_FAIL_UNHANDLED_PARAM] = {"crcx:unhandled_param", "unhandled parameter in MDCX command."}, - [MGCP_MDCX_FAIL_NO_CONNID] = {"mdcx:no_connid", "no connection ID specified in MDCX command."}, - [MGCP_MDCX_FAIL_CONN_NOT_FOUND] = {"mdcx:conn_not_found", "connection specified in MDCX command does not exist."}, - [MGCP_MDCX_FAIL_INVALID_MODE] = {"mdcx:invalid_mode", "invalid connection mode in MDCX command."}, - [MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS] = {"mdcx:conn_opt", "connection options invalid."}, - [MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC] = {"mdcx:no_remote_conn_desc", "no opposite end specified for connection."}, - [MGCP_MDCX_FAIL_START_RTP] = {"mdcx:start_rtp_failure", "failure to start RTP processing."}, - [MGCP_MDCX_FAIL_REJECTED_BY_POLICY] = {"mdcx:conn_rejected", "connection rejected by policy."}, - [MGCP_MDCX_DEFERRED_BY_POLICY] = {"mdcx:conn_deferred", "connection deferred by policy."}, -}; - -const static struct rate_ctr_group_desc mgcp_mdcx_ctr_group_desc = { - .group_name_prefix = "mdcx", - .group_description = "mdcx statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_mdcx_ctr_desc), - .ctr_desc = mgcp_mdcx_ctr_desc -}; - -static const struct rate_ctr_desc mgcp_dlcx_ctr_desc[] = { - [MGCP_DLCX_SUCCESS] = {"dlcx:success", "DLCX command processed successfully."}, - [MGCP_DLCX_FAIL_WILDCARD] = {"dlcx:wildcard", "wildcard names in DLCX commands are unsupported."}, - [MGCP_DLCX_FAIL_NO_CONN] = {"dlcx:no_conn", "endpoint specified in DLCX command has no active connections."}, - [MGCP_DLCX_FAIL_INVALID_CALLID] = {"dlcx:callid", "CallId specified in DLCX command mismatches endpoint's CallId ."}, - [MGCP_DLCX_FAIL_INVALID_CONNID] = {"dlcx:connid", "connection ID specified in DLCX command does not exist on endpoint."}, - [MGCP_DLCX_FAIL_UNHANDLED_PARAM] = {"dlcx:unhandled_param", "unhandled parameter in DLCX command."}, - [MGCP_DLCX_FAIL_REJECTED_BY_POLICY] = {"dlcx:rejected", "connection deletion rejected by policy."}, - [MGCP_DLCX_DEFERRED_BY_POLICY] = {"dlcx:deferred", "connection deletion deferred by policy."}, -}; - -const static struct rate_ctr_group_desc mgcp_dlcx_ctr_group_desc = { - .group_name_prefix = "dlcx", - .group_description = "dlcx statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_dlcx_ctr_desc), - .ctr_desc = mgcp_dlcx_ctr_desc -}; - -const static struct rate_ctr_group_desc all_rtp_conn_rate_ctr_group_desc = { - .group_name_prefix = "all_rtp_conn", - .group_description = "aggregated statistics for all rtp connections", - .class_id = 1, - .num_ctr = ARRAY_SIZE(all_rtp_conn_rate_ctr_desc), - .ctr_desc = all_rtp_conn_rate_ctr_desc -}; static struct msgb *handle_audit_endpoint(struct mgcp_parse_data *data); static struct msgb *handle_create_con(struct mgcp_parse_data *data); @@ -297,9 +202,7 @@ /* NOTE: Only in the virtual trunk we allow dynamic endpoint names */ if (endp->wildcarded_req && endp->trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { - rc = msgb_printf(msg, "Z: %s%x@%s\r\n", - MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, - ENDPOINT_NUMBER(endp), endp->cfg->domain); + rc = msgb_printf(msg, "Z: %s\r\n", endp->name); if (rc < 0) return -EINVAL; } @@ -379,8 +282,7 @@ * - or a response (three numbers, space, transaction id) */ struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg) { - struct mgcp_trunk *trunk = cfg->virt_trunk; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_general_ctr_group; + struct rate_ctr_group *rate_ctrs = cfg->ratectr.mgcp_general_ctr_group; struct mgcp_parse_data pdata; int rc, i, code, handled = 0; struct msgb *resp = NULL; @@ -832,7 +734,8 @@ { struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_crcx_ctr_group; + struct mgcp_config *cfg = endp->cfg; + struct rate_ctr_group *rate_ctrs = cfg->ratectr.mgcp_crcx_ctr_group; int error_code = 400; const char *local_options = NULL; const char *callid = NULL; @@ -1043,8 +946,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_CRCX, p->trans); + rc = p->cfg->policy_cb(endp, MGCP_ENDP_CRCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: LOGPCONN(_conn, DLMGCP, LOGL_NOTICE, @@ -1066,7 +968,7 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "CRCX: Creating connection: port: %u\n", conn->end.local_port); if (p->cfg->change_cb) - p->cfg->change_cb(trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX); + p->cfg->change_cb(endp, MGCP_ENDP_CRCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); @@ -1088,9 +990,9 @@ /* MDCX command handler, processes the received command */ static struct msgb *handle_modify_con(struct mgcp_parse_data *p) { - struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_mdcx_ctr_group; + struct mgcp_config *cfg = endp->cfg; + struct rate_ctr_group *rate_ctrs = cfg->ratectr.mgcp_mdcx_ctr_group; int error_code = 500; int silent = 0; int have_sdp = 0; @@ -1257,8 +1159,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_MDCX, p->trans); + rc = p->cfg->policy_cb(endp, MGCP_ENDP_MDCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: LOGPCONN(conn->conn, DLMGCP, LOGL_NOTICE, @@ -1287,8 +1188,7 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "MDCX: modified conn:%s\n", mgcp_conn_dump(conn->conn)); if (p->cfg->change_cb) - p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_MDCX); + p->cfg->change_cb(endp, MGCP_ENDP_MDCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ OSMO_ASSERT(endp->trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); @@ -1314,9 +1214,9 @@ /* DLCX command handler, processes the received command */ static struct msgb *handle_delete_con(struct mgcp_parse_data *p) { - struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_dlcx_ctr_group; + struct mgcp_config *cfg = endp->cfg; + struct rate_ctr_group *rate_ctrs = cfg->ratectr.mgcp_dlcx_ctr_group; int error_code = 400; int silent = 0; char *line; @@ -1377,8 +1277,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_DLCX, p->trans); + rc = p->cfg->policy_cb(endp, MGCP_ENDP_DLCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "DLCX: rejected by policy\n"); @@ -1442,8 +1341,7 @@ } if (p->cfg->change_cb) - p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_DLCX); + p->cfg->change_cb(endp, MGCP_ENDP_DLCX); rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_SUCCESS]); if (silent) @@ -1548,7 +1446,7 @@ /* Send walk over all endpoints and send out dummy packets through * every connection present on each endpoint */ for (i = 1; i < trunk->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &trunk->endpoints[i]; + struct mgcp_endpoint *endp = trunk->endpoints[i]; llist_for_each_entry(conn, &endp->conns, entry) { if (conn->mode == MGCP_CONN_RECV_ONLY) send_dummy(endp, &conn->u.rtp); @@ -1574,66 +1472,12 @@ trunk->keepalive_interval, 0); } -static int free_rate_counter_group(struct rate_ctr_group *rate_ctr_group) -{ - rate_ctr_group_free(rate_ctr_group); - return 0; -} - -static int alloc_mgcp_rate_counters(struct mgcp_trunk *trunk, void *ctx) -{ - /* FIXME: Each new rate counter group requires a unique index. At the - * moment we generate an index using a counter, but perhaps there is - * a better way of assigning indices? */ - static unsigned int general_rate_ctr_index = 0; - static unsigned int crcx_rate_ctr_index = 0; - static unsigned int mdcx_rate_ctr_index = 0; - static unsigned int dlcx_rate_ctr_index = 0; - static unsigned int all_rtp_conn_rate_ctr_index = 0; - - if (trunk->mgcp_general_ctr_group == NULL) { - trunk->mgcp_general_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_general_ctr_group_desc, general_rate_ctr_index); - if (!trunk->mgcp_general_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_general_ctr_group, free_rate_counter_group); - general_rate_ctr_index++; - } - if (trunk->mgcp_crcx_ctr_group == NULL) { - trunk->mgcp_crcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index); - if (!trunk->mgcp_crcx_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_crcx_ctr_group, free_rate_counter_group); - crcx_rate_ctr_index++; - } - if (trunk->mgcp_mdcx_ctr_group == NULL) { - trunk->mgcp_mdcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index); - if (!trunk->mgcp_mdcx_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_mdcx_ctr_group, free_rate_counter_group); - mdcx_rate_ctr_index++; - } - if (trunk->mgcp_dlcx_ctr_group == NULL) { - trunk->mgcp_dlcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index); - if (!trunk->mgcp_dlcx_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_dlcx_ctr_group, free_rate_counter_group); - dlcx_rate_ctr_index++; - } - if (trunk->all_rtp_conn_stats == NULL) { - trunk->all_rtp_conn_stats = rate_ctr_group_alloc(ctx, &all_rtp_conn_rate_ctr_group_desc, - all_rtp_conn_rate_ctr_index); - if (!trunk->all_rtp_conn_stats) - return -1; - talloc_set_destructor(trunk->all_rtp_conn_stats, free_rate_counter_group); - all_rtp_conn_rate_ctr_index++; - } - return 0; -} - /*! allocate configuration with default values. * (called once at startup by main function) */ struct mgcp_config *mgcp_config_alloc(void) { + /* FIXME: This is unrelated to the protocol, put this in some + * appropiate place! */ struct mgcp_config *cfg; cfg = talloc_zero(NULL, struct mgcp_config); @@ -1657,109 +1501,21 @@ cfg->get_net_downlink_format_cb = &mgcp_get_net_downlink_format_default; - INIT_LLIST_HEAD(&cfg->trunks); - - /* default trunk handling */ + /* Allocate virtual trunk */ cfg->virt_trunk = mgcp_trunk_alloc(cfg, MGCP_TRUNK_VIRTUAL, 0); if (!cfg->virt_trunk) { talloc_free(cfg); return NULL; } - /* virtual trunk is not part of the list! */ - llist_del(&cfg->virt_trunk->entry); + + /* Initalize list head for user configurable trunks */ + INIT_LLIST_HEAD(&cfg->trunks); + + mgcp_ratectr_alloc(cfg, &cfg->ratectr); return cfg; } -/*! allocate configuration with default values. Do not link it into global list yet! - * (called once at startup by VTY) - * \param[in] cfg mgcp configuration - * \param[in] nr trunk number - * \returns pointer to allocated trunk configuration */ -struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) -{ - struct mgcp_trunk *trunk; - - trunk = talloc_zero(cfg, struct mgcp_trunk); - if (!trunk) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate.\n"); - return NULL; - } - - trunk->cfg = cfg; - trunk->trunk_type = ttype; - trunk->trunk_nr = nr; - trunk->audio_name = talloc_strdup(trunk, "AMR/8000"); - trunk->audio_payload = 126; - trunk->audio_send_ptime = 1; - trunk->audio_send_name = 1; - trunk->vty_number_endpoints = 33; - trunk->omit_rtcp = 0; - mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); - if (alloc_mgcp_rate_counters(trunk, trunk) < 0) { - talloc_free(trunk); - return NULL; - } - llist_add_tail(&trunk->entry, &cfg->trunks); - - return trunk; -} - -/*! get trunk configuration by trunk number (index). - * \param[in] cfg mgcp configuration - * \param[in] index trunk number - * \returns pointer to trunk configuration, NULL on error */ -struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index) -{ - struct mgcp_trunk *trunk; - - llist_for_each_entry(trunk, &cfg->trunks, entry) - if (trunk->trunk_nr == index) - return trunk; - - return NULL; -} - -/*! allocate endpoints and set default values. - * (called once at startup by VTY) - * \param[in] trunk trunk configuration - * \returns 0 on success, -1 on failure */ -int mgcp_endpoints_allocate(struct mgcp_trunk *trunk) -{ - int i; - - trunk->endpoints = _talloc_zero_array(trunk->cfg, - sizeof(struct mgcp_endpoint), - trunk->vty_number_endpoints, - "endpoints"); - if (!trunk->endpoints) - return -1; - - for (i = 0; i < trunk->vty_number_endpoints; ++i) { - INIT_LLIST_HEAD(&trunk->endpoints[i].conns); - trunk->endpoints[i].cfg = trunk->cfg; - trunk->endpoints[i].trunk = trunk; - - switch (trunk->trunk_type) { - case MGCP_TRUNK_VIRTUAL: - trunk->endpoints[i].type = &ep_typeset.rtp; - break; - case MGCP_TRUNK_E1: - /* FIXME: Implement E1 allocation */ - LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); - break; - default: - osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", - trunk->trunk_type, __FILE__, __LINE__); - } - } - - trunk->number_endpoints = trunk->vty_number_endpoints; - alloc_mgcp_rate_counters(trunk, trunk->cfg); - - return 0; -} - static int send_agent(struct mgcp_config *cfg, const char *buf, int len) { return write(cfg->gw_fd.bfd.fd, buf, len); @@ -1790,17 +1546,16 @@ /*! Reset a single endpoint by sending RSIP message to self. * (called by VTY) - * \param[in] endp trunk endpoint - * \param[in] endpoint number + * \param[in] endp to reset * \returns 0 on success, -1 on error */ -int mgcp_send_reset_ep(struct mgcp_endpoint *endp, int endpoint) +int mgcp_send_reset_ep(struct mgcp_endpoint *endp) { char buf[MGCP_ENDPOINT_MAXLEN + 128]; int len; int rc; len = snprintf(buf, sizeof(buf), - "RSIP 39 %x@%s MGCP 1.0\r\n", endpoint, endp->cfg->domain); + "RSIP 39 %s MGCP 1.0\r\n", endp->name); if (len < 0) return -1; diff --git a/src/libosmo-mgcp/mgcp_ratectr.c b/src/libosmo-mgcp/mgcp_ratectr.c new file mode 100644 index 0000000..beb5d5a --- /dev/null +++ b/src/libosmo-mgcp/mgcp_ratectr.c @@ -0,0 +1,192 @@ +/* A Media Gateway Control Protocol Media Gateway: RFC 3435 */ +/* rate-counter implementation */ + +/* + * (C) 2009-2012 by Holger Hans Peter Freyther + * (C) 2009-2012 by On-Waves + * (C) 2017-2020 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include + +static const struct rate_ctr_desc mgcp_general_ctr_desc[] = { + /* rx_msgs = rx_msgs_retransmitted + rx_msgs_handled + rx_msgs_unhandled + err_rx_msg_parse + err_rx_no_endpoint */ + [MGCP_GENERAL_RX_MSGS_TOTAL] = { "mgcp:rx_msgs", "total number of MGCP messages received." }, + [MGCP_GENERAL_RX_MSGS_RETRANSMITTED] = { "mgcp:rx_msgs_retransmitted", "number of received retransmissions." }, + [MGCP_GENERAL_RX_MSGS_HANDLED] = { "mgcp:rx_msgs_handled", "number of handled MGCP messages." }, + [MGCP_GENERAL_RX_MSGS_UNHANDLED] = { "mgcp:rx_msgs_unhandled", "number of unhandled MGCP messages." }, + [MGCP_GENERAL_RX_FAIL_MSG_PARSE] = { "mgcp:err_rx_msg_parse", "error parsing MGCP message." }, + [MGCP_GENERAL_RX_FAIL_NO_ENDPOINT] = + { "mgcp:err_rx_no_endpoint", "can't find MGCP endpoint, probably we've used all allocated endpoints." }, +}; + +const static struct rate_ctr_group_desc mgcp_general_ctr_group_desc = { + .group_name_prefix = "mgcp", + .group_description = "mgcp general statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_general_ctr_desc), + .ctr_desc = mgcp_general_ctr_desc +}; + +static const struct rate_ctr_desc mgcp_crcx_ctr_desc[] = { + [MGCP_CRCX_SUCCESS] = { "crcx:success", "CRCX command processed successfully." }, + [MGCP_CRCX_FAIL_BAD_ACTION] = { "crcx:bad_action", "bad action in CRCX command." }, + [MGCP_CRCX_FAIL_UNHANDLED_PARAM] = { "crcx:unhandled_param", "unhandled parameter in CRCX command." }, + [MGCP_CRCX_FAIL_MISSING_CALLID] = { "crcx:missing_callid", "missing CallId in CRCX command." }, + [MGCP_CRCX_FAIL_INVALID_MODE] = { "crcx:invalid_mode", "invalid connection mode in CRCX command." }, + [MGCP_CRCX_FAIL_LIMIT_EXCEEDED] = { "crcx:limit_exceeded", "limit of concurrent connections was reached." }, + [MGCP_CRCX_FAIL_UNKNOWN_CALLID] = { "crcx:unkown_callid", "unknown CallId in CRCX command." }, + [MGCP_CRCX_FAIL_ALLOC_CONN] = { "crcx:alloc_conn_fail", "connection allocation failure." }, + [MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC] = + { "crcx:no_remote_conn_desc", "no opposite end specified for connection." }, + [MGCP_CRCX_FAIL_START_RTP] = { "crcx:start_rtp_failure", "failure to start RTP processing." }, + [MGCP_CRCX_FAIL_REJECTED_BY_POLICY] = { "crcx:conn_rejected", "connection rejected by policy." }, + [MGCP_CRCX_FAIL_NO_OSMUX] = { "crcx:no_osmux", "no osmux offered by peer." }, + [MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS] = { "crcx:conn_opt", "connection options invalid." }, + [MGCP_CRCX_FAIL_CODEC_NEGOTIATION] = { "crcx:codec_nego", "codec negotiation failure." }, + [MGCP_CRCX_FAIL_BIND_PORT] = { "crcx:bind_port", "port bind failure." }, +}; + +const static struct rate_ctr_group_desc mgcp_crcx_ctr_group_desc = { + .group_name_prefix = "crcx", + .group_description = "crxc statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_crcx_ctr_desc), + .ctr_desc = mgcp_crcx_ctr_desc +}; + +static const struct rate_ctr_desc mgcp_mdcx_ctr_desc[] = { + [MGCP_MDCX_SUCCESS] = { "mdcx:success", "MDCX command processed successfully." }, + [MGCP_MDCX_FAIL_WILDCARD] = { "mdcx:wildcard", "wildcard endpoint names in MDCX commands are unsupported." }, + [MGCP_MDCX_FAIL_NO_CONN] = { "mdcx:no_conn", "endpoint specified in MDCX command has no active connections." }, + [MGCP_MDCX_FAIL_INVALID_CALLID] = { "mdcx:callid", "invalid CallId specified in MDCX command." }, + [MGCP_MDCX_FAIL_INVALID_CONNID] = { "mdcx:connid", "invalid connection ID specified in MDCX command." }, + [MGCP_MDCX_FAIL_UNHANDLED_PARAM] = { "crcx:unhandled_param", "unhandled parameter in MDCX command." }, + [MGCP_MDCX_FAIL_NO_CONNID] = { "mdcx:no_connid", "no connection ID specified in MDCX command." }, + [MGCP_MDCX_FAIL_CONN_NOT_FOUND] = + { "mdcx:conn_not_found", "connection specified in MDCX command does not exist." }, + [MGCP_MDCX_FAIL_INVALID_MODE] = { "mdcx:invalid_mode", "invalid connection mode in MDCX command." }, + [MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS] = { "mdcx:conn_opt", "connection options invalid." }, + [MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC] = + { "mdcx:no_remote_conn_desc", "no opposite end specified for connection." }, + [MGCP_MDCX_FAIL_START_RTP] = { "mdcx:start_rtp_failure", "failure to start RTP processing." }, + [MGCP_MDCX_FAIL_REJECTED_BY_POLICY] = { "mdcx:conn_rejected", "connection rejected by policy." }, + [MGCP_MDCX_DEFERRED_BY_POLICY] = { "mdcx:conn_deferred", "connection deferred by policy." }, +}; + +const static struct rate_ctr_group_desc mgcp_mdcx_ctr_group_desc = { + .group_name_prefix = "mdcx", + .group_description = "mdcx statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_mdcx_ctr_desc), + .ctr_desc = mgcp_mdcx_ctr_desc +}; + +static const struct rate_ctr_desc mgcp_dlcx_ctr_desc[] = { + [MGCP_DLCX_SUCCESS] = { "dlcx:success", "DLCX command processed successfully." }, + [MGCP_DLCX_FAIL_WILDCARD] = { "dlcx:wildcard", "wildcard names in DLCX commands are unsupported." }, + [MGCP_DLCX_FAIL_NO_CONN] = { "dlcx:no_conn", "endpoint specified in DLCX command has no active connections." }, + [MGCP_DLCX_FAIL_INVALID_CALLID] = + { "dlcx:callid", "CallId specified in DLCX command mismatches endpoint's CallId ." }, + [MGCP_DLCX_FAIL_INVALID_CONNID] = + { "dlcx:connid", "connection ID specified in DLCX command does not exist on endpoint." }, + [MGCP_DLCX_FAIL_UNHANDLED_PARAM] = { "dlcx:unhandled_param", "unhandled parameter in DLCX command." }, + [MGCP_DLCX_FAIL_REJECTED_BY_POLICY] = { "dlcx:rejected", "connection deletion rejected by policy." }, + [MGCP_DLCX_DEFERRED_BY_POLICY] = { "dlcx:deferred", "connection deletion deferred by policy." }, +}; + +const static struct rate_ctr_group_desc mgcp_dlcx_ctr_group_desc = { + .group_name_prefix = "dlcx", + .group_description = "dlcx statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_dlcx_ctr_desc), + .ctr_desc = mgcp_dlcx_ctr_desc +}; + +const static struct rate_ctr_group_desc all_rtp_conn_rate_ctr_group_desc = { + .group_name_prefix = "all_rtp_conn", + .group_description = "aggregated statistics for all rtp connections", + .class_id = 1, + .num_ctr = ARRAY_SIZE(all_rtp_conn_rate_ctr_desc), + .ctr_desc = all_rtp_conn_rate_ctr_desc +}; + +static int free_rate_counter_group(struct rate_ctr_group *rate_ctr_group) +{ + rate_ctr_group_free(rate_ctr_group); + return 0; +} + +/*! allocate rate counters into a given rate counter struct + * (called once at startup by VTY) + * \param[in] ctx talloc context. + * \param[out] ratectr struct that holds the counters + * \returns 0 on success, -EINVAL on failure */ +int mgcp_ratectr_alloc(void *ctx, struct mgcp_ratectr *ratectr) +{ + /* FIXME: Each new rate counter group requires a unique index. At the + * moment we generate an index using a counter, but perhaps there is + * a better way of assigning indices? */ + static unsigned int general_rate_ctr_index = 0; + static unsigned int crcx_rate_ctr_index = 0; + static unsigned int mdcx_rate_ctr_index = 0; + static unsigned int dlcx_rate_ctr_index = 0; + static unsigned int all_rtp_conn_rate_ctr_index = 0; + + if (ratectr->mgcp_general_ctr_group == NULL) { + ratectr->mgcp_general_ctr_group = + rate_ctr_group_alloc(ctx, &mgcp_general_ctr_group_desc, general_rate_ctr_index); + if (!ratectr->mgcp_general_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_general_ctr_group, free_rate_counter_group); + general_rate_ctr_index++; + } + if (ratectr->mgcp_crcx_ctr_group == NULL) { + ratectr->mgcp_crcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index); + if (!ratectr->mgcp_crcx_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_crcx_ctr_group, free_rate_counter_group); + crcx_rate_ctr_index++; + } + if (ratectr->mgcp_mdcx_ctr_group == NULL) { + ratectr->mgcp_mdcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index); + if (!ratectr->mgcp_mdcx_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_mdcx_ctr_group, free_rate_counter_group); + mdcx_rate_ctr_index++; + } + if (ratectr->mgcp_dlcx_ctr_group == NULL) { + ratectr->mgcp_dlcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index); + if (!ratectr->mgcp_dlcx_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_dlcx_ctr_group, free_rate_counter_group); + dlcx_rate_ctr_index++; + } + if (ratectr->all_rtp_conn_stats == NULL) { + ratectr->all_rtp_conn_stats = rate_ctr_group_alloc(ctx, &all_rtp_conn_rate_ctr_group_desc, + all_rtp_conn_rate_ctr_index); + if (!ratectr->all_rtp_conn_stats) + return -EINVAL; + talloc_set_destructor(ratectr->all_rtp_conn_stats, free_rate_counter_group); + all_rtp_conn_rate_ctr_index++; + } + return 0; +} diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 428bde6..f80ebb8 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -358,10 +359,11 @@ break; default: if (p->endp) + /* TODO: Check spec: We used the bare endpoint number before, + * now we use the endpoint name as a whole? Is this allowed? */ LOGP(DLMGCP, LOGL_NOTICE, - "Unhandled SDP option: '%c'/%d on 0x%x\n", - line[0], line[0], - ENDPOINT_NUMBER(p->endp)); + "Unhandled SDP option: '%c'/%d on %s\n", + line[0], line[0], endp->name); else LOGP(DLMGCP, LOGL_NOTICE, "Unhandled SDP option: '%c'/%d\n", @@ -381,7 +383,7 @@ codec_param = param_by_pt(codecs[i].payload_type, fmtp_params, fmtp_used); rc = mgcp_codec_add(conn, codecs[i].payload_type, codecs[i].map_line, codec_param); if (rc < 0) - LOGP(DLMGCP, LOGL_NOTICE, "endpoint:0x%x, failed to add codec\n", ENDPOINT_NUMBER(p->endp)); + LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "failed to add codec\n"); } talloc_free(tmp_ctx); diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c new file mode 100644 index 0000000..76d2e97 --- /dev/null +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -0,0 +1,181 @@ +/* Trunk handling */ + +/* + * (C) 2009-2012 by Holger Hans Peter Freyther + * (C) 2009-2012 by On-Waves + * (C) 2017-2020 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +/*! allocate trunk and add it (if required) to the trunk list + * (called once at startup by VTY) + * \param[in] cfg mgcp configuration + * \param[in] nr trunk number + * \param[in] ttype trunk type + * \returns pointer to allocated trunk, NULL on failure */ +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) +{ + struct mgcp_trunk *trunk; + + trunk = talloc_zero(cfg, struct mgcp_trunk); + if (!trunk) { + LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate.\n"); + return NULL; + } + + trunk->cfg = cfg; + trunk->trunk_type = ttype; + trunk->trunk_nr = nr; + + trunk->audio_send_ptime = 1; + trunk->audio_send_name = 1; + trunk->vty_number_endpoints = 33; + trunk->omit_rtcp = 0; + + mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); + + /* Note: Trunk Nr.0 is reserved as "virtual trunk", + * it is not stored using a separate pointer and + * not in the trunk list. */ + if (nr > 0) + llist_add_tail(&trunk->entry, &cfg->trunks); + + return trunk; +} + +/*! allocate endpoints and set default values. + * (called once at startup by VTY) + * \param[in] trunk trunk configuration + * \returns 0 on success, -1 on failure */ +int mgcp_trunk_alloc_endpts(struct mgcp_trunk *trunk) +{ + int i; + char ep_name_buf[MGCP_ENDPOINT_MAXLEN]; + struct mgcp_endpoint *endp; + + /* Make sure the amount of requested endpoints does not execeed + * sane limits. The VTY already limits the possible amount, + * however miss-initalation of the struct or memory corruption + * could still lead to an excessive allocation of endpoints, so + * better stop early if that is the case. */ + OSMO_ASSERT(trunk->vty_number_endpoints < 65534); + + /* This function is called once on startup by the VTY to allocate the + * endpoints. The number of endpoints must not change througout the + * runtime of the MGW */ + OSMO_ASSERT(trunk->number_endpoints == 0); + OSMO_ASSERT(trunk->endpoints == NULL); + + /* allocate pointer array for the endpoints */ + trunk->endpoints = _talloc_zero_array(trunk->cfg, + sizeof(struct mgcp_endpoint *), trunk->vty_number_endpoints, "endpoints"); + if (!trunk->endpoints) + return -1; + + /* create endpoints */ + for (i = 0; i < trunk->vty_number_endpoints; ++i) { + switch (trunk->trunk_type) { + case MGCP_TRUNK_VIRTUAL: + snprintf(ep_name_buf, sizeof(ep_name_buf), "%s%x@%s", MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, i, + trunk->cfg->domain); + break; + case MGCP_TRUNK_E1: + /* FIXME: E1 trunk implementation is work in progress, this endpoint + * name is incomplete (subslots) */ + snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x", MGCP_ENDPOINT_PREFIX_E1_TRUNK, i); + break; + default: + osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", + trunk->trunk_type, __FILE__, __LINE__); + } + + endp = mgcp_endp_alloc(trunk, ep_name_buf); + if (!endp) { + talloc_free(trunk->endpoints); + return -1; + } + trunk->endpoints[i] = endp; + } + + /* make the endpoints we just created available to the MGW code */ + trunk->number_endpoints = trunk->vty_number_endpoints; + + return 0; +} + +/*! get trunk configuration by trunk number (index). + * \param[in] cfg mgcp configuration + * \param[in] index trunk number + * \returns pointer to trunk configuration, NULL on error */ +struct mgcp_trunk *mgcp_trunk_by_num(struct mgcp_config *cfg, int index) +{ + struct mgcp_trunk *trunk; + + llist_for_each_entry(trunk, &cfg->trunks, entry) + if (trunk->trunk_nr == index) + return trunk; + + return NULL; +} + +/*! Find a trunk by the trunk prefix in the endpoint name. + * \param[in] epname endpoint name with trunk prefix to look up. + * \param[in] cfg that contains the trunks where the endpoint is located. + * \returns trunk or NULL if endpoint was not found. */ +struct mgcp_trunk *mgcp_trunk_by_name(const char *epname, struct mgcp_config *cfg) +{ + size_t prefix_len; + char epname_lc[MGCP_ENDPOINT_MAXLEN]; + + osmo_str_tolower_buf(epname_lc, sizeof(epname_lc), epname); + epname = epname_lc; + + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; + if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, prefix_len) == 0) { + return cfg->virt_trunk; + } + + /* E1 trunks are not implemented yet, so we deny any request for an + * e1 trunk for now. */ + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; + if (strncmp(epname, MGCP_ENDPOINT_PREFIX_E1_TRUNK, prefix_len) == 0) { + LOGP(DLMGCP, LOGL_ERROR, + "endpoint name \"%s\" suggests an E1 trunk, but E1 trunks are not implemented in this version of osmo-mgw!\n", epname); + return NULL; + } + + /* Earlier versions of osmo-mgw were accepting endpoint names + * without trunk prefix. This is normally not allowed, each MGCP + * request should supply an endpoint name with trunk prefix. + * However in order to stay compatible with old versions of + * osmo-bsc and osmo-msc we still accept endpoint names without + * trunk prefix and just assume that the virtual trunk should + * be selected. There is even a TTCN3 test for this, see also: + * MGCP_Test.TC_crcx_noprefix */ + if ((epname[0] >= '0' && epname[0] <= '9') || (epname[0] >= 'a' && epname[0] <= 'f')) { + LOGP(DLMGCP, LOGL_ERROR, "missing trunk prefix in endpoint name \"%s\", assuming trunk \"%s\"!\n", epname, + MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK); + return cfg->virt_trunk; + } + + LOGP(DLMGCP, LOGL_ERROR, "unable to find trunk for endpoint name \"%s\"!\n", epname); + return NULL; +} diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 7278c1c..d332d75 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -49,7 +50,7 @@ if (nr == 0) trunk = cfg->virt_trunk; else - trunk = mgcp_trunk_num(cfg, nr); + trunk = mgcp_trunk_by_num(cfg, nr); return trunk; } @@ -208,15 +209,13 @@ end->force_output_ptime, VTY_NEWLINE); } -static void dump_endpoint(struct vty *vty, struct mgcp_endpoint *endp, int epidx, +static void dump_endpoint(struct vty *vty, struct mgcp_endpoint *endp, int trunk_nr, enum mgcp_trunk_type trunk_type, int show_stats) { struct mgcp_conn *conn; - vty_out(vty, "%s trunk %d endpoint %s%.2x:%s", - trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", trunk_nr, - trunk_type == MGCP_TRUNK_VIRTUAL ? MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK : "", - epidx, VTY_NEWLINE); + vty_out(vty, "%s trunk %d endpoint %s:%s", + trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", trunk_nr, endp->name, VTY_NEWLINE); if (llist_empty(&endp->conns)) { vty_out(vty, " No active connections%s", VTY_NEWLINE); @@ -244,50 +243,73 @@ } } -static void dump_trunk(struct vty *vty, struct mgcp_trunk *cfg, int show_stats) +static void dump_ratectr(struct vty *vty, struct mgcp_ratectr *ratectr) +{ + vty_out(vty, "%s", VTY_NEWLINE); + vty_out(vty, "Rate counters:%s", VTY_NEWLINE); + + if (ratectr->mgcp_general_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_general_ctr_group->desc-> + group_description, VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_general_ctr_group); + } + if (ratectr->mgcp_crcx_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_crcx_ctr_group->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_crcx_ctr_group); + } + if (ratectr->mgcp_dlcx_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_dlcx_ctr_group->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_dlcx_ctr_group); + } + if (ratectr->mgcp_mdcx_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_mdcx_ctr_group->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_mdcx_ctr_group); + } + if (ratectr->all_rtp_conn_stats) { + vty_out(vty, " %s:%s", + ratectr->all_rtp_conn_stats->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->all_rtp_conn_stats); + } +} + +static void dump_trunk(struct vty *vty, struct mgcp_trunk *trunk, int show_stats) { int i; vty_out(vty, "%s trunk %d with %d endpoints:%s", - cfg->trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", - cfg->trunk_nr, cfg->number_endpoints - 1, VTY_NEWLINE); + trunk->trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", + trunk->trunk_nr, trunk->number_endpoints - 1, VTY_NEWLINE); - if (!cfg->endpoints) { + if (!trunk->endpoints) { vty_out(vty, "No endpoints allocated yet.%s", VTY_NEWLINE); return; } - for (i = 0; i < cfg->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &cfg->endpoints[i]; - dump_endpoint(vty, endp, i, cfg->trunk_nr, cfg->trunk_type, show_stats); - if (i < cfg->number_endpoints - 1) + for (i = 0; i < trunk->number_endpoints; ++i) { + struct mgcp_endpoint *endp = trunk->endpoints[i]; + dump_endpoint(vty, endp, trunk->trunk_nr, trunk->trunk_type, + show_stats); + if (i < trunk->number_endpoints - 1) vty_out(vty, "%s", VTY_NEWLINE); } - - if (show_stats) { - vty_out(vty, "%s", VTY_NEWLINE); - vty_out(vty, "Rate counters:%s", VTY_NEWLINE); - } - if (show_stats && cfg->mgcp_general_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_general_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_general_ctr_group); - } - if (show_stats && cfg->mgcp_crcx_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_crcx_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_crcx_ctr_group); - } - if (show_stats && cfg->mgcp_dlcx_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_dlcx_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_dlcx_ctr_group); - } - if (show_stats && cfg->mgcp_mdcx_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_mdcx_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_mdcx_ctr_group); - } - if (show_stats && cfg->all_rtp_conn_stats) { - vty_out(vty, " %s:%s", cfg->all_rtp_conn_stats->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->all_rtp_conn_stats); - } } #define SHOW_MGCP_STR "Display information about the MGCP Media Gateway\n" @@ -304,44 +326,41 @@ dump_trunk(vty, g_cfg->virt_trunk, show_stats); llist_for_each_entry(trunk, &g_cfg->trunks, entry) - dump_trunk(vty, trunk, show_stats); + dump_trunk(vty, trunk, show_stats); if (g_cfg->osmux) vty_out(vty, "Osmux used CID: %d%s", osmux_cid_pool_count_used(), VTY_NEWLINE); + if (show_stats) + dump_ratectr(vty, &g_cfg->ratectr); + return CMD_SUCCESS; } static void dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk *trunk, const char *epname) { - const size_t virt_prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; - unsigned long epidx; - char *endp; - int i; + struct mgcp_endpoint *endp; - if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, virt_prefix_len) == 0) - epname += virt_prefix_len; - errno = 0; - epidx = strtoul(epname, &endp, 16); - if (epname[0] == '\0' || *endp != '\0') { - vty_out(vty, "endpoint name '%s' is not a hex number%s", epname, VTY_NEWLINE); - return; - } - if ((errno == ERANGE && epidx == ULONG_MAX) /* parsed value out of range */ - || epidx >= trunk->number_endpoints) { - vty_out(vty, "endpoint %.2lx not configured on trunk %d%s", epidx, trunk->trunk_nr, VTY_NEWLINE); - return; - } - - for (i = 0; i < trunk->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &trunk->endpoints[i]; - if (i == epidx) { - dump_endpoint(vty, endp, i, trunk->trunk_nr, trunk->trunk_type, true); - break; + if (trunk) { + /* If a trunk is given, search on that specific trunk only */ + endp = mgcp_endp_by_name_trunk(NULL, epname, trunk); + if (!endp) { + vty_out(vty, "endpoint %s not configured on trunk %d%s", epname, trunk->trunk_nr, VTY_NEWLINE); + return; + } + } else { + /* If no trunk is given, search on all possible trunks */ + endp = mgcp_endp_by_name(NULL, epname, g_cfg); + if (!endp) { + vty_out(vty, "endpoint %s not configured%s", epname, VTY_NEWLINE); + return; } } + + trunk = endp->trunk; + dump_endpoint(vty, endp, trunk->trunk_nr, trunk->trunk_type, true); } DEFUN(show_mcgp_endpoint, show_mgcp_endpoint_cmd, @@ -350,12 +369,7 @@ SHOW_MGCP_STR "Display information about an endpoint\n" "The name of the endpoint\n") { - struct mgcp_trunk *trunk; - - dump_mgcp_endpoint(vty, g_cfg->virt_trunk, argv[0]); - llist_for_each_entry(trunk, &g_cfg->trunks, entry) - dump_mgcp_endpoint(vty, trunk, argv[0]); - + dump_mgcp_endpoint(vty, NULL, argv[0]); return CMD_SUCCESS; } @@ -810,7 +824,7 @@ struct mgcp_trunk *trunk; int index = atoi(argv[0]); - trunk = mgcp_trunk_num(g_cfg, index); + trunk = mgcp_trunk_by_num(g_cfg, index); if (!trunk) { trunk = mgcp_trunk_alloc(g_cfg, MGCP_TRUNK_E1, index); if (!trunk) { @@ -1138,7 +1152,7 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; + endp = trunk->endpoints[endp_no]; int loop = atoi(argv[2]); llist_for_each_entry(conn, &endp->conns, entry) { if (conn->type == MGCP_CONN_TYPE_RTP) @@ -1197,7 +1211,7 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; + endp = trunk->endpoints[endp_no]; conn_id = argv[2]; conn = mgcp_conn_get_rtp(endp, conn_id); @@ -1250,7 +1264,7 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; + endp = trunk->endpoints[endp_no]; mgcp_endp_release(endp); return CMD_SUCCESS; } @@ -1283,8 +1297,8 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; - rc = mgcp_send_reset_ep(endp, ENDPOINT_NUMBER(endp)); + endp = trunk->endpoints[endp_no]; + rc = mgcp_send_reset_ep(endp); if (rc < 0) { vty_out(vty, "Error %d sending reset.%s", rc, VTY_NEWLINE); return CMD_WARNING; @@ -1521,7 +1535,7 @@ return -1; } - if (mgcp_endpoints_allocate(g_cfg->virt_trunk) != 0) { + if (mgcp_trunk_alloc_endpts(g_cfg->virt_trunk) != 0) { LOGP(DLMGCP, LOGL_ERROR, "Failed to initialize the virtual trunk (%d endpoints)\n", g_cfg->virt_trunk->number_endpoints); @@ -1529,7 +1543,7 @@ } llist_for_each_entry(trunk, &g_cfg->trunks, entry) { - if (mgcp_endpoints_allocate(trunk) != 0) { + if (mgcp_trunk_alloc_endpts(trunk) != 0) { LOGP(DLMGCP, LOGL_ERROR, "Failed to initialize trunk %d (%d endpoints)\n", trunk->trunk_nr, trunk->number_endpoints); diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index 22f2ab8..99e2499 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -203,7 +204,7 @@ /* Walk over all endpoints and trigger a release, this will release all * endpoints, possible open connections are forcefully dropped */ for (i = 1; i < reset_trunk->number_endpoints; ++i) - mgcp_endp_release(&reset_trunk->endpoints[i]); + mgcp_endp_release(reset_trunk->endpoints[i]); } return 0; diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index fa38296..ed0fda0 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -70,7 +71,7 @@ } #define AUEP1 "AUEP 158663169 ds/e1-1/2 at mgw MGCP 1.0\r\n" -#define AUEP1_RET "200 158663169 OK\r\n" +#define AUEP1_RET "500 158663169 FAIL\r\n" #define AUEP2 "AUEP 18983213 ds/e1-2/1 at mgw MGCP 1.0\r\n" #define AUEP2_RET "500 18983213 FAIL\r\n" #define EMPTY "\r\n" @@ -81,7 +82,7 @@ #define MDCX_WRONG_EP "MDCX 18983213 ds/e1-3/1 at mgw MGCP 1.0\r\n" #define MDCX_ERR_RET "500 18983213 FAIL\r\n" #define MDCX_UNALLOCATED "MDCX 18983214 ds/e1-1/2 at mgw MGCP 1.0\r\n" -#define MDCX_RET "400 18983214 FAIL\r\n" +#define MDCX_RET "500 18983214 FAIL\r\n" #define MDCX3 \ "MDCX 18983215 1 at mgw MGCP 1.0\r\n" \ @@ -593,12 +594,22 @@ static int last_endpoint = -1; -static int mgcp_test_policy_cb(struct mgcp_trunk *cfg, int endpoint, - int state, const char *transactio_id) +static int mgcp_test_policy_cb(struct mgcp_endpoint *endp, + int state, const char *transaction_id) { - fprintf(stderr, "Policy CB got state %d on endpoint 0x%x\n", - state, endpoint); - last_endpoint = endpoint; + unsigned int i; + struct mgcp_trunk *trunk; + + fprintf(stderr, "Policy CB got state %d on endpoint %s\n", + state, endp->name); + + trunk = endp->trunk; + last_endpoint = -1; + for (i = 0; i < trunk->vty_number_endpoints; i++) { + if (strcmp(endp->name, trunk->endpoints[i]->name) == 0) + last_endpoint = i; + } + return MGCP_POLICY_CONT; } @@ -645,7 +656,7 @@ { int i; for (i = 1; i < trunk->number_endpoints; i++) - mgcp_endp_release(&trunk->endpoints[i]); + mgcp_endp_release(trunk->endpoints[i]); } #define CONN_UNMODIFIED (0x1000) @@ -758,13 +769,13 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); cfg->policy_cb = mgcp_test_policy_cb; memset(last_conn_id, 0, sizeof(last_conn_id)); trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); for (i = 0; i < ARRAY_SIZE(tests); i++) { const struct mgcp_test *t = &tests[i]; @@ -810,7 +821,7 @@ printf("Dummy packets: %d\n", dummy_packets); if (last_endpoint != -1) { - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, "1"); if (conn) { @@ -866,7 +877,7 @@ /* Check detected payload type */ if (conn && t->ptype != PTYPE_IGNORE) { OSMO_ASSERT(last_endpoint != -1); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; fprintf(stderr, "endpoint 0x%x: " "payload type %d (expected %d)\n", @@ -898,12 +909,12 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); memset(last_conn_id, 0, sizeof(last_conn_id)); trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); for (i = 0; i < ARRAY_SIZE(retransmit); i++) { const struct mgcp_test *t = &retransmit[i]; @@ -966,10 +977,10 @@ cfg->rqnt_cb = rqnt_cb; cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); inp = create_msg(CRCX, NULL); msg = mgcp_handle_message(cfg, inp); @@ -1035,6 +1046,7 @@ { int i; struct mgcp_endpoint endp; + struct mgcp_endpoint *endpoints[1]; struct mgcp_config cfg = {0}; struct mgcp_trunk trunk; @@ -1046,7 +1058,8 @@ endp.cfg = &cfg; endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; - trunk.endpoints = &endp; + trunk.endpoints = endpoints; + trunk.endpoints[0] = &endp; endp.trunk = &trunk; INIT_LLIST_HEAD(&endp.conns); @@ -1264,6 +1277,7 @@ struct mgcp_trunk trunk; struct mgcp_endpoint endp; + struct mgcp_endpoint *endpoints[1]; struct mgcp_config cfg = {0}; struct mgcp_rtp_state state; struct mgcp_rtp_end *rtp; @@ -1296,7 +1310,8 @@ endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; - trunk.endpoints = &endp; + trunk.endpoints = endpoints; + trunk.endpoints[0] = &endp; trunk.force_constant_ssrc = patch_ssrc; trunk.force_aligned_timing = patch_ts; @@ -1372,11 +1387,11 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); cfg->policy_cb = mgcp_test_policy_cb; trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); /* Allocate endpoint 1 at mgw with two codecs */ last_endpoint = -1; @@ -1388,7 +1403,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 1); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1403,7 +1418,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 2); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1423,7 +1438,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 3); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 0); @@ -1438,7 +1453,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 4); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1456,7 +1471,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 3); @@ -1467,7 +1482,7 @@ msgb_free(inp); msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 3); @@ -1497,7 +1512,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 0); @@ -1518,9 +1533,9 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); - endp = &cfg->virt_trunk->endpoints[1]; + endp = cfg->virt_trunk->endpoints[1]; _conn = mgcp_conn_alloc(NULL, endp, MGCP_CONN_TYPE_RTP, "test-connection"); @@ -1567,12 +1582,12 @@ cfg->virt_trunk->vty_number_endpoints = 64; cfg->virt_trunk->audio_send_name = 0; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); cfg->policy_cb = mgcp_test_policy_cb; trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); inp = create_msg(CRCX, NULL); msg = mgcp_handle_message(cfg, inp); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 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 Jun 3 14:10:15 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 14:10:15 +0000 Subject: Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payloa References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18645 ) Change subject: mgcp_trunk: remove audio_name and audio_payloa ...................................................................... mgcp_trunk: remove audio_name and audio_payloa get rid of deprecated trunk parameters which seem to be leftovers from the old osmo-bsc_mgcp implementation. This is in particular audio_name and audio_payload in struct mgcp_trunk_config which allowed the user to "hardcode" an andio name and payload type via VTY configuration The removal of the struct members above also require a change to mgcp_codec.c. The code that is is never actively used and even causes wrong behavior when activated (set the no-transcoding flag in VTY). Since the code is removed also the unit tests also require to be changed to match the new behavior. Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Related: OS#2659 --- M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 4 files changed, 9 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18645/1 diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h index 71d89ac..386e540 100644 --- a/include/osmocom/mgcp/mgcp_trunk.h +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -9,8 +9,6 @@ int trunk_type; char *audio_fmtp_extra; - char *audio_name; - int audio_payload; int audio_send_ptime; int audio_send_name; int audio_loop; diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index c251317..9ac5fbb 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -280,36 +280,16 @@ * Helper function for mgcp_codec_decide() */ static bool is_codec_compatible(const struct mgcp_endpoint *endp, const struct mgcp_rtp_codec *codec) { - char codec_name[64]; - /* A codec name must be set, if not, this might mean that the codec * (payload type) that was assigned is unknown to us so we must stop * here. */ if (!codec->subtype_name) return false; - /* We now extract the codec_name (letters before the /, e.g. "GSM" - * from the audio name that is stored in the trunk configuration. - * We do not compare to the full audio_name because we expect that - * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the - * audio name of the codec is set to "GSM" */ - if (sscanf(endp->trunk->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) - return false; + /* FIXME: implement meaningful checks to make sure that the given codec + * is compatible with the given endpoint */ - /* Finally we check if the subtype_name we have generated from the - * audio_name in the trunc struct patches the codec_name of the - * given codec */ - if (strcasecmp(codec_name, codec->subtype_name) == 0) - return true; - - /* FIXME: It is questinable that the method to pick a compatible - * codec can work properly. Since this useses trunk->audio_name, as - * a reference, which is set to "AMR/8000" permanently. - * trunk->audio_name must be updated by the first connection that - * has been made on an endpoint, so that the second connection - * can make a meaningful decision here */ - - return false; + return true; } /*! Decide for one suitable codec diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index d332d75..f10f326 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -114,12 +114,6 @@ VTY_NEWLINE); } else vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); - if (trunk->audio_payload != -1) - vty_out(vty, " sdp audio-payload number %d%s", - trunk->audio_payload, VTY_NEWLINE); - if (trunk->audio_name) - vty_out(vty, " sdp audio-payload name %s%s", - trunk->audio_name, VTY_NEWLINE); if (trunk->audio_fmtp_extra) vty_out(vty, " sdp audio fmtp-extra %s%s", trunk->audio_fmtp_extra, VTY_NEWLINE); @@ -600,13 +594,11 @@ #define SDP_STR "SDP File related options\n" #define AUDIO_STR "Audio payload options\n" -DEFUN(cfg_mgcp_sdp_payload_number, +DEFUN_DEPRECATED(cfg_mgcp_sdp_payload_number, cfg_mgcp_sdp_payload_number_cmd, "sdp audio-payload number <0-255>", SDP_STR AUDIO_STR "Number\n" "Payload number\n") { - unsigned int payload = atoi(argv[0]); - g_cfg->virt_trunk->audio_payload = payload; return CMD_SUCCESS; } @@ -615,12 +607,11 @@ "sdp audio payload number <0-255>", SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload number\n") -DEFUN(cfg_mgcp_sdp_payload_name, +DEFUN_DEPRECATED(cfg_mgcp_sdp_payload_name, cfg_mgcp_sdp_payload_name_cmd, "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Name\n" "Payload name\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->virt_trunk->audio_name, argv[0]); return CMD_SUCCESS; } @@ -845,10 +836,6 @@ llist_for_each_entry(trunk, &g_cfg->trunks, entry) { vty_out(vty, " trunk %d%s", trunk->trunk_nr, VTY_NEWLINE); - vty_out(vty, " sdp audio-payload number %d%s", - trunk->audio_payload, VTY_NEWLINE); - vty_out(vty, " sdp audio-payload name %s%s", - trunk->audio_name, VTY_NEWLINE); vty_out(vty, " %ssdp audio-payload send-ptime%s", trunk->audio_send_ptime ? "" : "no ", VTY_NEWLINE); vty_out(vty, " %ssdp audio-payload send-name%s", @@ -909,15 +896,11 @@ return CMD_SUCCESS; } -DEFUN(cfg_trunk_payload_number, +DEFUN_DEPRECATED(cfg_trunk_payload_number, cfg_trunk_payload_number_cmd, "sdp audio-payload number <0-255>", SDP_STR AUDIO_STR "Number\n" "Payload Number\n") { - struct mgcp_trunk *trunk = vty->index; - unsigned int payload = atoi(argv[0]); - - trunk->audio_payload = payload; return CMD_SUCCESS; } @@ -925,14 +908,11 @@ "sdp audio payload number <0-255>", SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload Number\n") -DEFUN(cfg_trunk_payload_name, +DEFUN_DEPRECATED(cfg_trunk_payload_name, cfg_trunk_payload_name_cmd, "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Payload\n" "Payload Name\n") { - struct mgcp_trunk *trunk = vty->index; - - osmo_talloc_replace_string(g_cfg, &trunk->audio_name, argv[0]); return CMD_SUCCESS; } diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index ed0fda0..d0da18b 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -1458,11 +1458,9 @@ OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); - /* Allocate 5 at mgw at select GSM.. */ + /* Allocate 5 at mgw and let osmo-mgw pick a codec from the list */ last_endpoint = -1; inp = create_msg(CRCX_MULT_GSM_EXACT, NULL); - talloc_free(cfg->virt_trunk->audio_name); - cfg->virt_trunk->audio_name = "GSM/8000"; cfg->virt_trunk->no_audio_transcoding = 1; resp = mgcp_handle_message(cfg, inp); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, @@ -1474,7 +1472,7 @@ endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec->payload_type == 3); + OSMO_ASSERT(conn->end.codec->payload_type == 0); inp = create_msg(MDCX_NAT_DUMMY, conn_id); last_endpoint = -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Gerrit-Change-Number: 18645 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 Jun 3 14:11:07 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 14:11:07 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18372 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: (21 comments) @neels: Thanks for commenting on this patch. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7//COMMIT_MSG at 21 PS7, Line 21: symbol name "tcfg" to "trunk" in order to better match the reality. > (maybe do renames in a separate patch) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7//COMMIT_MSG at 28 PS7, Line 28: longer allocate them per trunk. Allocate them globally instead. > I'm wondering whether anyone would miss per-trunk counters in the future. [?] up to now osmo-mgw was only used with the virtual trunk since E1 trunks never worked. There is already a discussion going on whether we should have the counters per trunk or not. See also: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/6//COMMIT_MSG#28 We probably might have a closer look and see for which counters it would make sense to have them per trunk. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp.h at a189 PS7, Line 189: char *audio_name; : int audio_payload; > these are no longer present in struct mgcp_trunk, maybe explain why in the commit log? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp_trunk.h File include/osmocom/mgcp/mgcp_trunk.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/include/osmocom/mgcp/mgcp_trunk.h at 38 PS7, Line 38: struct mgcp_endpoint **endpoints; > changing this from 'struct mgcp_endpoint*' to 'struct mgcp_endpoint**'. [?] I just changed the array to a pointer array and allocate the the endpoints dynamically. This allows me to have a mgcp_endp_alloc() which can allocate everything an endpoint needs. I find it more logical when there is an alloc function for the endp that takes care of everything, including the memory. However, the alternative would be to have some mgcp_endp_init() and call that for each array element but this approach looks less clean to me. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_codec.c File src/libosmo-mgcp/mgcp_codec.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_codec.c at a289 PS7, Line 289: > this removal is not mentioned in the commit log. [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_conn.c File src/libosmo-mgcp/mgcp_conn.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_conn.c at 259 PS7, Line 259: aggregate_rtp_conn_stats(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn_rtp) > This function does not access the individual endp, but accesses the single global struct mgcp_ratect [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/3/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/3/src/libosmo-mgcp/mgcp_endp.c at 100 PS3, Line 100: if (strlen(epname) <= prefix_len) > so why not simply using strcmp() if they are both guaranteed to be null terminated? I am not sure, but I think it was correct in the beginning. What the function does is to return a pointer advanced to the position where the endpoint name begins. The check strlen(epname) <= prefix_len is not necessary since strncmp will also return a value other than 0 when the strings have different length. I have to use strncmp because I only want to check the prefix, the epname sting usually contains the prefix and then some endpoint name. The endpoint name has to be omitted for the check of course. Since I am confused now I have done an experiment, AAA is the prefix, AAABBB is the endpoint name with the prefix in front: This prints 1: printf("%u\n",strcmp("AAABBB", "AAA")); This prints 0: printf("%u\n",strncmp("AAABBB", "AAA", 3)); (also the tests fail when I use strcmp ;-) https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 90 PS7, Line 90: /* Check if the endpoint name contains the prefix, and chop it off, if it > (would be nice to include an example string for a prefix to make it easier to understand for uninfor [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 140 PS7, Line 140: * \param[out] cause, pointer to store cause code, can be NULL. > (I think doxygen wants no comma after 'cause'?) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 141 PS7, Line 141: * \param[in] epname endpoint name to lookup (may lack trunk prefix and domain name). > wildcard should be explained Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 164 PS7, Line 164: if (strncmp(epname_ch, "*", epname_ch_len) == 0) { > If I get this right, with a full name, this function finds an existing (used?) endpoint. [?] When we get a full endpoint name (one that is not wildcarded such as rtpbridge/1 at mgw) we search for that specifc endpoint. If we do not find it we return NULL If the endpoint is part of a wildcarded request (e.g. rtpbridge/*@mgw) then we search for the next free endpoint and return that one. I have now cleaned up the function a bit and also splitted the wildcarded part and the non wildcarded part. However, it still needs to come together in one function. The idea behind this to agregate the evaluation of the endpoint name at one central point. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 184 PS7, Line 184: /* Find an enspoint by its name (if wildcarded request is not > ("enspoint") Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 201 PS7, Line 201: trunk->trunk_nr, epname); > (might be better to leave the logging to callers. [?] I do not think that this would change much. I think its ok to log here, this way it is centralized and the caller does not have to care about it. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_endp.c at 214 PS7, Line 214: domain_to_check = strstr(epname, "@"); > (could be nice for the future to keep a single implementation for separating epname from domain, may [?] I think this is ok, I also removed epname_len() now. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_network.c at 1439 PS7, Line 1439: struct mgcp_rtp_end *rtp_end, struct mgcp_endpoint *endp) > endp is only used for logging. [?] Unfortunately there is no way to determine the endp with the rtp_end, there is no backpointer or something. I see also that endp is only used for logging, but if we get rid of it we have no logging reference. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_trunk.c at 77 PS7, Line 77: talloc_free(trunk->endpoints); > the comment says "(re)allocate", but free+alloc loses all endpoint data. [?] mgcp_trunk_alloc_endpts() is called once on startup when the VTY parses the config file. It is not intended to be called multiple times. I have now added an OSMO_ASSERT to ensure one can not call it multiple times. https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_trunk.c at 79 PS7, Line 79: sizeof(struct mgcp_endpoint *), trunk->vty_number_endpoints, "endpoints"); > before this, maybe we should validate vty_number_endpoints > 0 (and maybe smaller than some sane max [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 597 PS7, Line 597: DEFUN(cfg_mgcp_sdp_payload_number, > DEFUN_DEPRECATED Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 610 PS7, Line 610: DEFUN(cfg_mgcp_sdp_payload_name, > DEFUN_DEPRECATED Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 899 PS7, Line 899: DEFUN(cfg_trunk_payload_number, > DEFUN_DEPRECATED Done https://gerrit.osmocom.org/c/osmo-mgw/+/18372/7/src/libosmo-mgcp/mgcp_vty.c at 911 PS7, Line 911: DEFUN(cfg_trunk_payload_name, > DEFUN_DEPRECATED Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ice8aaf03faa2fd99074f8665eea3a696d30c5eb3 Gerrit-Change-Number: 18372 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 03 Jun 2020 14:11:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:11:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 14:11:38 +0000 Subject: Change in osmo-bts[master]: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18646 ) Change subject: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() ...................................................................... bts-trx: phy_link: Improve logging fmt in phy_link_state_set() Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790 --- M include/osmo-bts/phy_link.h M src/common/phy_link.c 2 files changed, 16 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/18646/1 diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index cf877bd..2bed8ea 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -157,6 +157,7 @@ struct phy_link *phy_link_by_num(int num); struct phy_link *phy_link_create(void *ctx, int num); void phy_link_destroy(struct phy_link *plink); +const char *phy_link_name(struct phy_link *plink); void phy_link_state_set(struct phy_link *plink, enum phy_link_state state); enum phy_link_state phy_link_state_get(struct phy_link *plink); const char *phy_link_state_name(enum phy_link_state state); @@ -178,4 +179,5 @@ int bts_model_phy_link_open(struct phy_link *plink); +#define LOGPPHL(plink, section, lvl, fmt, args...) LOGP(section, lvl, "%s: " fmt, phy_link_name(plink), ##args) #define LOGPPHI(pinst, section, lvl, fmt, args...) LOGP(section, lvl, "%s: " fmt, phy_instance_name(pinst), ##args) diff --git a/src/common/phy_link.c b/src/common/phy_link.c index 85f9e14..b5055a5 100644 --- a/src/common/phy_link.c +++ b/src/common/phy_link.c @@ -53,9 +53,9 @@ { struct phy_instance *pinst; - LOGP(DL1C, LOGL_INFO, "PHY link state change %s -> %s\n", - get_value_string(phy_link_state_vals, plink->state), - get_value_string(phy_link_state_vals, state)); + LOGPPHL(plink, DL1C, LOGL_INFO, "PHY link state change %s -> %s\n", + get_value_string(phy_link_state_vals, plink->state), + get_value_string(phy_link_state_vals, state)); /* notify all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { @@ -65,11 +65,11 @@ switch (state) { case PHY_LINK_CONNECTED: - LOGP(DL1C, LOGL_INFO, "trx_set_avail(1)\n"); + LOGPPHI(pinst, DL1C, LOGL_INFO, "trx_set_avail(1)\n"); trx_set_available(trx, 1); break; case PHY_LINK_SHUTDOWN: - LOGP(DL1C, LOGL_INFO, "trx_set_avail(0)\n"); + LOGPPHI(pinst, DL1C, LOGL_INFO, "trx_set_avail(0)\n"); trx_set_available(trx, 0); break; case PHY_LINK_CONNECTING: @@ -148,6 +148,13 @@ talloc_free(plink); } +static char name_buf[32]; +const char *phy_link_name(struct phy_link *plink) +{ + snprintf(name_buf, sizeof(name_buf), "phy%u", plink->num); + return name_buf; +} + int phy_links_open(void) { struct phy_link *plink; @@ -165,9 +172,7 @@ const char *phy_instance_name(struct phy_instance *pinst) { - static char buf[32]; - - snprintf(buf, sizeof(buf), "phy%u.%u", pinst->phy_link->num, + snprintf(name_buf, sizeof(name_buf), "phy%u.%u", pinst->phy_link->num, pinst->num); - return buf; + return name_buf; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790 Gerrit-Change-Number: 18646 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 Jun 3 14:20:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 14:20:11 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18506/2/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/18506/2/src/gsm/gsm23236.c at 36 PS2, Line 36: int16_t > The function itself returns an error code: [?] whether this function fails or not is a separate aspect of whether, say, osmo-bsc's VTY config wants to indicate that a stored nri_v is invalid or not. For example, we may need to configure a separate NULL-NRI for each MSC. If I want to indicate in the config that some MSC has no NULL-NRI configured, I can set it negative (or need a separate bool). So I choose to have negative NRI to indicate invalid, and then of course I want to have one consistent data type everywhere. We can also use uint16_t with a #define OSMO_NRI_INVALID, if you prefer that, but using a signed integer is less code. Or I could add 'typedef int16_t osmo_nri_v'? Before, I had the nri_v as return value, being negative on error, but some review didn't like that. It is IMHO also nicer with a separate return value, consistently for both this and osmo_tmsi_nri_set(). So I will not go back to returning the nri_v. re "confusing": the api doc explains everything, which part do you find confusing? Should I add "is always positive" to the 'nri_v' api doc? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:20:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Vadim Yanitskiy Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:32:30 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 14:32:30 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 4: > one *could* (not saying you must if you don't like it) create a 'osmo_nri_range_list' or 'osmo_nri_ranges' struct which stores the master llist_head, the nri_bitlen and which also serves as talloc context for any osmo_nri_range allocations. This way the function signatures (and hence usage) would be simplified without having to manually specify ctx and/or nri_bitlen. If the osmo_nri_range had a back-pointer to the ramnge_list/ranges "parent", then even functions only receiving a single osmo_nri_range as argument can get to the nri_Bitlen. Putting the nri_bitlen in a 'osmo_nri_ranges' struct is not so good, because e.g. in osmo-bsc there will be one global nri_bitlen for all ranges, and duplicating that global value across several ranges is inviting trouble. (It must be one single value for the entire MSC pool, otherwise the logic doesn't work out.) Using a 'struct osmo_nri_ranges' as talloc ctx: I've used that pattern before, thinking of struct neighbor_ident_list. There I also wanted to keep as much of the structs opaque, which ended up more trouble than gain. Now I swerve the other way, I kind of like the simplicity of just using a non-dynamic llist_head. Thinking about it, it makes for cleaner API to make the head a dynamic struct; but that struct will only contain an llist_head and that's it. We can only save the ctx argument. OTOH if we want future additions to a struct osmo_nri_ranges, then an llist_head is less future proof. So seems worth it to go for a dynamic struct osmo_nri_ranges with only an llist_head member... I am also considering to combine a list of NULL-NRI in a struct osmo_nri_ranges, but that makes NULL-NRI handling less flexible. (e.g. a NULL-NRI is kept per PLMN and not per MSC, but we have a separate NULL-NRI list for each MSC of the same PLMN, doesn't match well) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:32: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 Jun 3 14:37:45 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Wed, 3 Jun 2020 14:37:45 +0000 Subject: Change in pysim[master]: commands.py: fix read_binary for lengths > 256 In-Reply-To: References: Message-ID: guilly at gmail.com has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/17848 ) Change subject: commands.py: fix read_binary for lengths > 256 ...................................................................... Patch Set 8: can this be merged please? I am struggling with a SIM with long files :-) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a Gerrit-Change-Number: 17848 Gerrit-PatchSet: 8 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: guilly at gmail.com Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 03 Jun 2020 14:37:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:48:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 14:48:17 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18643 ) Change subject: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I02889dbf8149e139b1bd0326e13ce4c1aec867d1 Gerrit-Change-Number: 18643 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:48: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 Jun 3 14:48:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 14:48:45 +0000 Subject: Change in osmo-mgw[master]: mgcp_vty: fix indentation in VTY config write In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18593 ) Change subject: mgcp_vty: fix indentation in VTY config write ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2aefeaf3d7ad4a98b7bfcdc7cbc1ce6ebcbe0537 Gerrit-Change-Number: 18593 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:48:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:50:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 14:50:03 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:50:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:50:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 14:50:37 +0000 Subject: Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payloa In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18645 ) Change subject: mgcp_trunk: remove audio_name and audio_payloa ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Gerrit-Change-Number: 18645 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:50:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 14:52:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 14:52:04 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 14:52: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 Jun 3 15:21:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:21:45 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18506 to look at the new patch set (#5). Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... add gsm23236: MSC pooling: TMSI and NRI utility functions These utilities will be used by osmo-bsc to determine the Network Resource Indicator seen in the TMSI, and (potentially) by osmo-msc to compose a TMSI with a specific NRI, for osmo-bsc's load balancing between several MSCs. Add utility functions to: - extract an NRI value from a TMSI. - overwrite the NRI value in a TMSI. - limit an NRI in a (random) TMSI to a given list of ranges. - add NRI value ranges to a list. - remove them from a list. - match NRI value (range) to a list. - parse NRI values from string, for VTY. - common VTY functionality of adding/removing NRI values from argv. Add C tests for the above. Why we need public API for NRI ranges: In osmo-bsc alone, we need the same NRI API twice, 1: to manage/list NRI value ranges per-MSC, and 2: to manage/list NULL-NRI values. If we also consider (potentially) adding NRI support to osmo-msc, we need the same API twice again there. Hence it is useful to define re-used API up here in libosmocore. Related: OS#3682 Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 --- M include/Makefile.am A include/osmocom/gsm/gsm23236.h M src/gsm/Makefile.am A src/gsm/gsm23236.c M src/gsm/libosmogsm.map M tests/Makefile.am A tests/gsm23236/gsm23236_test.c A tests/gsm23236/gsm23236_test.ok M tests/testsuite.at 9 files changed, 1,762 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/18506/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 15:23:48 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:23:48 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 5: (I changed the order of the functions in this patch set to better group them, sorry about the unclean diff to the previous patch set. All else that has changed is that I'm now using struct osmo_nri_ranges instead of llist_head as argument, added osmo_nri_ranges_alloc() and osmo_nri_ranges_free(), and some ctx arguments have disappeared.) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 15:23:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 15:29:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:29:42 +0000 Subject: Change in osmo-bsc[master]: CTRL: determine MSC connection status from RESET-ACK, not AS_ACTIVE In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18501 ) Change subject: CTRL: determine MSC connection status from RESET-ACK, not AS_ACTIVE ...................................................................... CTRL: determine MSC connection status from RESET-ACK, not AS_ACTIVE Change-Id: I264ba6a72ea93297cfbc99602eccfbf4a890f703 --- M src/osmo-bsc/osmo_bsc_ctrl.c 1 file changed, 2 insertions(+), 10 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/osmo_bsc_ctrl.c b/src/osmo-bsc/osmo_bsc_ctrl.c index 12b2f4d..b94a749 100644 --- a/src/osmo-bsc/osmo_bsc_ctrl.c +++ b/src/osmo-bsc/osmo_bsc_ctrl.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -179,21 +180,12 @@ static int get_msc_connection_status(struct ctrl_cmd *cmd, void *data) { struct bsc_msc_data *msc = (struct bsc_msc_data *)cmd->node; - struct osmo_ss7_as *as; - const char *as_state_name; if (msc == NULL) { cmd->reply = "msc not found"; return CTRL_CMD_ERROR; } - as = msc_get_ss7_as(msc); - if (!as) { - cmd->reply = "AS not found for MSC"; - return CTRL_CMD_ERROR; - } - - as_state_name = osmo_fsm_inst_state_name(as->fi); - if (!strcmp(as_state_name, "AS_ACTIVE")) + if (a_reset_conn_ready(msc)) cmd->reply = "connected"; else cmd->reply = "disconnected"; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I264ba6a72ea93297cfbc99602eccfbf4a890f703 Gerrit-Change-Number: 18501 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 15:30:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:30:55 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 to look at the new patch set (#4). Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... refactor bsc_find_msc()'s round-robin Prepare for MSC pooling by NRI. Before introducing actual NRI decoding and MSC matching, fix the bsc_find_msc() implementation. (Indicate the places relevant for NRI by "TODO" comments). bsc_find_msc() puts an MSC to the end of the internal list of MSCs when it was used. This has problems: - Modifying the list affects VTY output, e.g. 'show running-config' and 'show mscs' change their order in which MSCs are shown, depending on how often a round-robin selection has taken place. - Emergency calls and normal calls potentially pick quite different sets of eligible MSCs. When the round-robin choices between these sets affect each other, the choice is not balanced. For example, if only the first MSC is allow_emerg == true, every emergency call would reset the round-robin state to the first MSC in the list, also for normal calls. If there are regular emergency calls, normal calls will then tend to load more onto the first few MSCs after those picked for emergency calls. Fix: Never affect the ordering of MSCs in the internal list of MSCs. Instead, keep a "next_nr" MSC index and determine the next round-robin target like that. Keep a separate "next_emerg_nr" MSC index so that emergency call round-robin does no longer cause normal round-robin to skip MSCs. Further problems in current bsc_find_msc(): - The "blind:" label should also do round-robin. - The "paging:" part should not attempt to use disconnected MSCs. - Both should also heed NRI matches (when they are added). Fix: instead of code dup, determine Paging Response matching with an earlier Paging Request right at the start. If that yields no usable MSC, continue into the normal NRI and round-robin selection. The loop in this patch is inspired by the upcoming implementation of MSC pooling by NRI, as indicated by the two TODO comments. The point is that, in the presence of an NRI from a TMSI identity, we always need to iterate all of the MSCs to find possible NRI matches. The two round-robin sets (Emergency and non-Emergency) are determined in the same loop iteration for cases that have no or match no NRI, or where a matching MSC is currently disconnected. Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/gsm_08_08.c 2 files changed, 69 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/05/18505/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 15:30:56 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:30:56 +0000 Subject: Change in osmo-bsc[master]: cosmetic: tweak rc type of is_cm_service_for_emerg() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18647 ) Change subject: cosmetic: tweak rc type of is_cm_service_for_emerg() ...................................................................... cosmetic: tweak rc type of is_cm_service_for_emerg() Change-Id: Id752d3882645708b5b8e1058b6799d3d285286c4 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/47/18647/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 7789d49..0765d1d 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -105,7 +105,7 @@ return 0; } -static int is_cm_service_for_emerg(struct msgb *msg) +static bool is_cm_service_for_emerg(struct msgb *msg) { struct gsm48_service_request *cm; struct gsm48_hdr *gh = msgb_l3(msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id752d3882645708b5b8e1058b6799d3d285286c4 Gerrit-Change-Number: 18647 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 Jun 3 15:30:56 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:30:56 +0000 Subject: Change in osmo-bsc[master]: gsm0408_test.c: drop test_mi_functionality() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18648 ) Change subject: gsm0408_test.c: drop test_mi_functionality() ...................................................................... gsm0408_test.c: drop test_mi_functionality() Testing these functions is actually done in libosmocore. Also, with new osmo_mobile_identity API, the functions being tested are marked deprecated. So drop the test. BTW, the test contained an IMSI of 16 digits, which is too long, yet was expected to succeed. GSM23003_IMSI_MAX_DIGITS == 15. I first considered fixing the test data, but the test is in the wrong place here anyway. Change-Id: I902d31ecd72d71892fad7945f695a9f1fb403bf2 --- M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok 2 files changed, 0 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/18648/1 diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index f850274..5ff9491 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -269,34 +269,6 @@ bts_del(bts); } -static void test_mi_functionality(void) -{ - const char *imsi_odd = "987654321098763"; - const char *imsi_even = "9876543210987654"; - const uint32_t tmsi = 0xfabeacd0; - uint8_t mi[128]; - unsigned int mi_len; - char mi_parsed[GSM48_MI_SIZE]; - - printf("Testing parsing and generating TMSI/IMSI\n"); - - /* tmsi code */ - mi_len = gsm48_generate_mid_from_tmsi(mi, tmsi); - gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len - 2); - COMPARE((uint32_t)strtoul(mi_parsed, NULL, 10), ==, tmsi); - - /* imsi code */ - mi_len = gsm48_generate_mid_from_imsi(mi, imsi_odd); - gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len -2); - printf("hex: %s\n", osmo_hexdump(mi, mi_len)); - COMPARE_STR(mi_parsed, imsi_odd); - - mi_len = gsm48_generate_mid_from_imsi(mi, imsi_even); - gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len -2); - printf("hex: %s\n", osmo_hexdump(mi, mi_len)); - COMPARE_STR(mi_parsed, imsi_even); -} - struct { int range; int arfcns_num; @@ -924,8 +896,6 @@ return EXIT_FAILURE; } - test_mi_functionality(); - test_si_range_helpers(); test_arfcn_filter(); test_print_encoding(); diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index e3290b5..bad8aef 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -1,6 +1,3 @@ -Testing parsing and generating TMSI/IMSI -hex: 17 08 99 78 56 34 12 90 78 36 -hex: 17 09 91 78 56 34 12 90 78 56 f4 Element is: 2 => freqs[i] = 121 Element is: 2 => freqs[i] = 1 Element is: 0 => freqs[i] = 68 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I902d31ecd72d71892fad7945f695a9f1fb403bf2 Gerrit-Change-Number: 18648 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 Jun 3 15:35:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:35:54 +0000 Subject: Change in osmo-bsc[master]: create only one SCCP user per SCCP instance In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18504 ) Change subject: create only one SCCP user per SCCP instance ...................................................................... Patch Set 4: ah, actually didn't check that. Looking now, we don't even seem to have an osmo_sccp_user_free/remove/... function in the first place, and we also don't have a 'no msc N' command in osmo-bsc. So whoever adds that will have to take care of sccp_user cleanup. (The sccp_sap_up() uses get_msc_by_addr() every time, so that part should be fine.) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6a2710edeb9ba047ae70e6b49d4c2e5f06d41a4e Gerrit-Change-Number: 18504 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 15:35: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 Jun 3 15:36:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:36:08 +0000 Subject: Change in osmo-bsc[master]: create only one SCCP user per SCCP instance In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18504 ) Change subject: create only one SCCP user per SCCP instance ...................................................................... Patch Set 4: Code-Review+2 combining votes -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6a2710edeb9ba047ae70e6b49d4c2e5f06d41a4e Gerrit-Change-Number: 18504 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 15:36:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 15:36:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 15:36:20 +0000 Subject: Change in pysim[master]: Add support for ADF_USIM/EF_EHPLMN References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/18649 ) Change subject: Add support for ADF_USIM/EF_EHPLMN ...................................................................... Add support for ADF_USIM/EF_EHPLMN If the EF.EHPLMN exists, it contains the "Equivalent Home PLMN List". The odd part of that list is that it is not just a list of additional PLMN identities, but if the first digits of the IMSI are *not* listed in EF.EHPLMN, then the MCC/MNC of the IMSI prefix is suddently no longer considered the home network, but the subscriber is roaming. See TS 23.122: "If the HPLMN code derived from the IMSI is not present in the EHPLMN list, then it shall be treated as a Visited PLMN for PLMN selection purposes." Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 --- M pySim-read.py M pySim/cards.py M pySim/utils.py 3 files changed, 51 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/49/18649/1 diff --git a/pySim-read.py b/pySim-read.py index b23e6ee..92fbd7b 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -241,6 +241,15 @@ # 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(): + # EF.EHPLMN + try: + (res, sw) = card.read_ehplmn() + if sw == '9000': + print("EHPLMN:\n%s" % (res)) + else: + print("EHPLMN: Can't read, response code = %s" % (sw,)) + except Exception as e: + print("EHPLMN: Can't read file -- " + str(e)) # EF.UST (res, sw) = card.read_binary(EF_USIM_ADF_map['UST']) if sw == '9000': diff --git a/pySim/cards.py b/pySim/cards.py index 808fde1..302c886 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -24,6 +24,7 @@ # from pySim.ts_51_011 import EF, DF +from pySim.ts_31_102 import EF_USIM_ADF_map from pySim.utils import * from smartcard.util import toBytes @@ -77,6 +78,20 @@ else: return (None, sw) + def read_ehplmn(self): + (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['EHPLMN']) + if sw == '9000': + return (format_xplmn(res), sw) + else: + return (None, sw) + + def update_ehplmn(self, mcc, mnc): + data = self._scc.read_binary(EF_USIM_ADF_map['EHPLMN'], length=None, offset=0) + size = len(data[0]) // 2 + ehplmn = enc_plmn(mcc, mnc) + data, sw = self._scc.update_binary(EF_USIM_ADF_map['EHPLMN'], ehplmn) + return sw + def update_hplmn_act(self, mcc, mnc, access_tech='FFFF'): """ Update Home PLMN with access technology bit-field @@ -1144,16 +1159,20 @@ if p.get('opc'): self._scc.update_binary('af20', p['opc'], 17) - # update EF-USIM_AUTH_KEY in ADF.USIM self._scc.select_file(['3f00']) aid = self.read_aid() if (aid): + # update EF-USIM_AUTH_KEY in ADF.USIM self._scc.select_adf(aid) if p.get('ki'): self._scc.update_binary('af20', p['ki'], 1) if p.get('opc'): self._scc.update_binary('af20', p['opc'], 17) + # update EF.EHPLMN in ADF.USIM + if p.get('mcc') and p.get('mnc'): + sw = self.update_ehplmn(p['mcc'], p['mnc']) + # igoring any error as the file may not be present depending on the profile. return diff --git a/pySim/utils.py b/pySim/utils.py index 496b918..d7ff617 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -125,6 +125,9 @@ def hexstr_to_fivebytearr(s): return [s[i:i+10] for i in range(0, len(s), 10) ] +def hexstr_to_threebytearr(s): + return [s[i:i+6] for i in range(0, len(s), 6) ] + # Accepts hex string representing three bytes def dec_mcc_from_plmn(plmn): ia = h2i(plmn) @@ -183,6 +186,25 @@ s += "\t%s # %s\n" % (rec_data, rec_str) return s +def dec_xplmn(threehexbytes): + res = {'mcc': 0, 'mnc': 0, 'act': []} + plmn_chars = 6 + plmn_str = threehexbytes[:plmn_chars] # first three bytes (six ascii hex chars) + res['mcc'] = dec_mcc_from_plmn(plmn_str) + res['mnc'] = dec_mnc_from_plmn(plmn_str) + return res + +def format_xplmn(hexstr): + s = "" + for rec_data in hexstr_to_threebytearr(hexstr): + rec_info = dec_xplmn(rec_data) + if rec_info['mcc'] == 0xFFF and rec_info['mnc'] == 0xFFF: + rec_str = "unused" + else: + rec_str = "MCC: %03d MNC: %03d" % (rec_info['mcc'], rec_info['mnc']) + s += "\t%s # %s\n" % (rec_data, rec_str) + return s + def derive_milenage_opc(ki_hex, op_hex): """ Run the milenage algorithm to calculate OPC from Ki and OP -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 Gerrit-Change-Number: 18649 Gerrit-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 Jun 3 15:36:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 15:36:33 +0000 Subject: Change in osmo-bsc[master]: cosmetic: tweak rc type of is_cm_service_for_emerg() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18647 ) Change subject: cosmetic: tweak rc type of is_cm_service_for_emerg() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id752d3882645708b5b8e1058b6799d3d285286c4 Gerrit-Change-Number: 18647 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 03 Jun 2020 15:36: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 Jun 3 15:37:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 15:37:04 +0000 Subject: Change in osmo-bsc[master]: gsm0408_test.c: drop test_mi_functionality() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18648 ) Change subject: gsm0408_test.c: drop test_mi_functionality() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I902d31ecd72d71892fad7945f695a9f1fb403bf2 Gerrit-Change-Number: 18648 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 03 Jun 2020 15:37: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 Jun 3 15:40:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:40:35 +0000 Subject: Change in osmo-msc[master]: vlr_subscr_rx_id_resp(): dont assert on received MI type In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18635 ) Change subject: vlr_subscr_rx_id_resp(): dont assert on received MI type ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/18635/1/src/libvlr/vlr.c File src/libvlr/vlr.c: https://gerrit.osmocom.org/c/osmo-msc/+/18635/1/src/libvlr/vlr.c at 1175 PS1, Line 1175: return -EINVAL; > AFAIU since you return above in this caase, you can drop the default case altogether here. yea I know, doing this mostly for coverity "you haven't dealt with all enum values" (though this isn't an enum, come to think of it), but also for paranoia of future changes. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I2b2e25ef8e878e91a165018ba49f1609cfb5cbd0 Gerrit-Change-Number: 18635 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 15:40: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 Wed Jun 3 15:40:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:40:40 +0000 Subject: Change in osmo-msc[master]: vlr_subscr_rx_id_resp(): dont assert on received MI type In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18635 ) Change subject: vlr_subscr_rx_id_resp(): dont assert on received MI type ...................................................................... vlr_subscr_rx_id_resp(): dont assert on received MI type The Mobile Identity type is received on the wire, we asserting on its type constitutes a DoS vector. Change-Id: I2b2e25ef8e878e91a165018ba49f1609cfb5cbd0 --- M src/libvlr/vlr.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 887ceb8..019e657 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1146,6 +1146,8 @@ case GSM_MI_TYPE_IMEISV: vlr_subscr_set_imeisv(vsub, mi_string); break; + default: + return -EINVAL; } if (vsub->auth_fsm) { @@ -1170,8 +1172,7 @@ event = VLR_ULA_E_ID_IMEISV; break; default: - OSMO_ASSERT(0); - break; + return -EINVAL; } osmo_fsm_inst_dispatch(vsub->lu_fsm, event, mi_string); } -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I2b2e25ef8e878e91a165018ba49f1609cfb5cbd0 Gerrit-Change-Number: 18635 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 Wed Jun 3 15:41:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:41:03 +0000 Subject: Change in osmo-bsc[master]: create only one SCCP user per SCCP instance In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18504 ) Change subject: create only one SCCP user per SCCP instance ...................................................................... create only one SCCP user per SCCP instance Depends: I9ecbab16b45268f626950303d6ff8296dd6acda0 (libosmo-sccp) Change-Id: I6a2710edeb9ba047ae70e6b49d4c2e5f06d41a4e --- M src/osmo-bsc/osmo_bsc_sigtran.c 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c index cbf0fec..f5489e4 100644 --- a/src/osmo-bsc/osmo_bsc_sigtran.c +++ b/src/osmo-bsc/osmo_bsc_sigtran.c @@ -547,8 +547,12 @@ LOGP(DMSC, LOGL_NOTICE, "(%s) A-interface: remote (MSC) SCCP address: %s\n", msc_name, osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.msc_addr)); - /* Bind SCCP user */ - msc->a.sccp_user = osmo_sccp_user_bind(msc->a.sccp, msc_name, sccp_sap_up, msc->a.bsc_addr.ssn); + /* Bind SCCP user. Bind only one user per sccp_instance. */ + msc->a.sccp_user = osmo_sccp_user_find(msc->a.sccp, msc->a.bsc_addr.ssn, msc->a.bsc_addr.pc); + LOGP(DMSC, LOGL_NOTICE, "(%s) A-interface: %s\n", msc_name, + msc->a.sccp_user ? "user already bound for this SCCP instance" : "binding SCCP user"); + if (!msc->a.sccp_user) + msc->a.sccp_user = osmo_sccp_user_bind(msc->a.sccp, msc_name, sccp_sap_up, msc->a.bsc_addr.ssn); if (!msc->a.sccp_user) return -EINVAL; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6a2710edeb9ba047ae70e6b49d4c2e5f06d41a4e Gerrit-Change-Number: 18504 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 15:41:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:41:04 +0000 Subject: Change in osmo-bsc[master]: cosmetic: tweak rc type of is_cm_service_for_emerg() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18647 ) Change subject: cosmetic: tweak rc type of is_cm_service_for_emerg() ...................................................................... cosmetic: tweak rc type of is_cm_service_for_emerg() Change-Id: Id752d3882645708b5b8e1058b6799d3d285286c4 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 7789d49..0765d1d 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -105,7 +105,7 @@ return 0; } -static int is_cm_service_for_emerg(struct msgb *msg) +static bool is_cm_service_for_emerg(struct msgb *msg) { struct gsm48_service_request *cm; struct gsm48_hdr *gh = msgb_l3(msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id752d3882645708b5b8e1058b6799d3d285286c4 Gerrit-Change-Number: 18647 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder 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 Jun 3 15:43:21 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:43:21 +0000 Subject: Change in osmo-bsc[master]: is_cm_service_for_emerg(): return false, not 0 References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18650 ) Change subject: is_cm_service_for_emerg(): return false, not 0 ...................................................................... is_cm_service_for_emerg(): return false, not 0 Change-Id: Ife25ed26214abf7aea95b0b7943d9fa585868529 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/50/18650/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 0765d1d..d8e33d6 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -112,7 +112,7 @@ if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*cm)) { LOGP(DMSC, LOGL_ERROR, "CM ServiceRequest does not fit.\n"); - return 0; + return false; } cm = (struct gsm48_service_request *) &gh->data[0]; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ife25ed26214abf7aea95b0b7943d9fa585868529 Gerrit-Change-Number: 18650 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 Jun 3 15:44:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 15:44:04 +0000 Subject: Change in osmo-bsc[master]: is_cm_service_for_emerg(): return false, not 0 In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18650 ) Change subject: is_cm_service_for_emerg(): return false, not 0 ...................................................................... Patch Set 1: Code-Review+2 missed a comment, should have been part of the previous patch, triviality +2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ife25ed26214abf7aea95b0b7943d9fa585868529 Gerrit-Change-Number: 18650 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 03 Jun 2020 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 Wed Jun 3 16:08:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 16:08:17 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... Patch Set 4: I'm still asking why aren't you making use of linked list by simply keeping a ptr to last/next struct llist_head of the msc. You can simply iterate with that until you reach the end and continue at start until you match the initial pointer. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 16:08: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 Wed Jun 3 16:39:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 16:39:04 +0000 Subject: Change in osmo-hlr[master]: osmo-mslookup-client: fix segfault for respond_error() caller References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/18651 ) Change subject: osmo-mslookup-client: fix segfault for respond_error() caller ...................................................................... osmo-mslookup-client: fix segfault for respond_error() caller respond_error() passes r == 0. On error, consider it the last response for that request. Change-Id: I1acb0b8aa00c098d1f1f1cc17035daa38ce29fd3 --- M src/mslookup/osmo-mslookup-client.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/51/18651/1 diff --git a/src/mslookup/osmo-mslookup-client.c b/src/mslookup/osmo-mslookup-client.c index 4a9e587..a200a7e 100644 --- a/src/mslookup/osmo-mslookup-client.c +++ b/src/mslookup/osmo-mslookup-client.c @@ -584,11 +584,11 @@ llist_for_each_entry_safe(c, n, &globals.socket_clients, entry) { if (!strcmp(query_str, c->query_str)) { socket_client_respond_result(c, g_buf); - if (r->last) + if (!r || r->last) socket_client_close(c); } } - if (r->last) + if (!r || r->last) globals.requests_handled++; } -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/18651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I1acb0b8aa00c098d1f1f1cc17035daa38ce29fd3 Gerrit-Change-Number: 18651 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 Jun 3 17:17:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 17:17:37 +0000 Subject: Change in osmo-hlr[master]: osmo-mslookup-client: fix segfault for respond_error() caller In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/18651 ) Change subject: osmo-mslookup-client: fix segfault for respond_error() caller ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-hlr/+/18651/1/src/mslookup/osmo-mslookup-client.c File src/mslookup/osmo-mslookup-client.c: https://gerrit.osmocom.org/c/osmo-hlr/+/18651/1/src/mslookup/osmo-mslookup-client.c at 587 PS1, Line 587: if (!r || r->last) would be nice documenting this behavior (like r=NULL being passed by error. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/18651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I1acb0b8aa00c098d1f1f1cc17035daa38ce29fd3 Gerrit-Change-Number: 18651 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17:17: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 Wed Jun 3 17:20:59 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 17:20:59 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 8: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17:20: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 Jun 3 17:24:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:24:49 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17:24:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:25:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:25:09 +0000 Subject: Change in osmo-hlr[master]: osmo-mslookup-client: fix segfault for respond_error() caller In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/18651 ) Change subject: osmo-mslookup-client: fix segfault for respond_error() caller ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/18651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I1acb0b8aa00c098d1f1f1cc17035daa38ce29fd3 Gerrit-Change-Number: 18651 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17:25:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:26:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:26:25 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Vadim Yanitskiy Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17: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 Wed Jun 3 17:26:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:26:54 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18643 ) Change subject: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I02889dbf8149e139b1bd0326e13ce4c1aec867d1 Gerrit-Change-Number: 18643 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17:26: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 Jun 3 17:27:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:27:06 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18643 ) Change subject: osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg ...................................................................... osmo-mgw: rename struct mgcp_trunk_config and symbol tcfg rename struct mgcp_trunk_config to struct mgcp_trunk and the related symbol name "tcfg" to "trunk" in order to better match the reality. Change-Id: I02889dbf8149e139b1bd0326e13ce4c1aec867d1 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 12 files changed, 162 insertions(+), 162 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 27b1e35..538c907 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -42,7 +42,7 @@ */ struct mgcp_endpoint; struct mgcp_config; -struct mgcp_trunk_config; +struct mgcp_trunk; struct mgcp_rtp_end; #define MGCP_ENDP_CRCX 1 @@ -59,9 +59,9 @@ #define MGCP_POLICY_REJECT 5 #define MGCP_POLICY_DEFER 6 -typedef int (*mgcp_change)(struct mgcp_trunk_config *cfg, int endpoint, int state); -typedef int (*mgcp_policy)(struct mgcp_trunk_config *cfg, int endpoint, int state, const char *transactio_id); -typedef int (*mgcp_reset)(struct mgcp_trunk_config *cfg); +typedef int (*mgcp_change)(struct mgcp_trunk *cfg, int endpoint, int state); +typedef int (*mgcp_policy)(struct mgcp_trunk *cfg, int endpoint, int state, const char *transactio_id); +typedef int (*mgcp_reset)(struct mgcp_trunk *cfg); typedef int (*mgcp_rqnt)(struct mgcp_endpoint *endp, char tone); /** @@ -177,7 +177,7 @@ MGCP_DLCX_DEFERRED_BY_POLICY, }; -struct mgcp_trunk_config { +struct mgcp_trunk { struct llist_head entry; struct mgcp_config *cfg; @@ -263,7 +263,7 @@ /* trunk handling */ /* virtual trunk for RTP - RTP endpoints */ - struct mgcp_trunk_config *virt_trunk; + struct mgcp_trunk *virt_trunk; /* physical trunks with underlying E1 endpoints */ struct llist_head trunks; @@ -302,8 +302,8 @@ int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg, enum mgcp_role role); int mgcp_vty_init(void); -int mgcp_endpoints_allocate(struct mgcp_trunk_config *cfg); -void mgcp_trunk_set_keepalive(struct mgcp_trunk_config *tcfg, int interval); +int mgcp_endpoints_allocate(struct mgcp_trunk *cfg); +void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval); /* * format helper functions diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 4c2caad..8fa8390 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -81,7 +81,7 @@ struct mgcp_config *cfg; /*! Backpointer to the Trunk specific configuration */ - struct mgcp_trunk_config *tcfg; + struct mgcp_trunk *trunk; /*! Endpoint properties (see above) */ const struct mgcp_endpoint_type *type; @@ -101,6 +101,6 @@ }; /*! Extract endpoint number for a given endpoint */ -#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->tcfg->endpoints)) +#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->trunk->endpoints)) void mgcp_endp_release(struct mgcp_endpoint *endp); diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 670332d..b2e2210 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -282,8 +282,8 @@ return endpoint + 60; } -struct mgcp_trunk_config *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index); -struct mgcp_trunk_config *mgcp_trunk_num(struct mgcp_config *cfg, int index); +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index); +struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index); char *get_lco_identifier(const char *options); int check_local_cx_options(void *ctx, const char *options); diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index 9e55ab0..3cea495 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -292,7 +292,7 @@ * We do not compare to the full audio_name because we expect that * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the * audio name of the codec is set to "GSM" */ - if (sscanf(endp->tcfg->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) + if (sscanf(endp->trunk->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) return false; /* Finally we check if the subtype_name we have generated from the @@ -302,9 +302,9 @@ return true; /* FIXME: It is questinable that the method to pick a compatible - * codec can work properly. Since this useses tcfg->audio_name, as + * codec can work properly. Since this useses trunk->audio_name, as * a reference, which is set to "AMR/8000" permanently. - * tcfg->audio_name must be updated by the first connection that + * trunk->audio_name must be updated by the first connection that * has been made on an endpoint, so that the second connection * can make a meaningful decision here */ @@ -335,7 +335,7 @@ for (i = 0; i < rtp->codecs_assigned; i++) { /* When no transcoding is available, avoid codecs that would * require transcoding. */ - if (endp->tcfg->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) { + if (endp->trunk->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) { LOGP(DLMGCP, LOGL_NOTICE, "transcoding not available, skipping codec: %d/%s\n", rtp->codecs[i].payload_type, rtp->codecs[i].subtype_name); continue; diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 7a86274..0b499b4 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -255,7 +255,7 @@ } static void -aggregate_rtp_conn_stats(struct mgcp_trunk_config *trunk, struct mgcp_conn_rtp *conn_rtp) +aggregate_rtp_conn_stats(struct mgcp_trunk *trunk, struct mgcp_conn_rtp *conn_rtp) { struct rate_ctr_group *all_stats = trunk->all_rtp_conn_stats; struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; @@ -296,7 +296,7 @@ switch (conn->type) { case MGCP_CONN_TYPE_RTP: - aggregate_rtp_conn_stats(endp->tcfg, &conn->u.rtp); + aggregate_rtp_conn_stats(endp->trunk, &conn->u.rtp); mgcp_rtp_conn_cleanup(&conn->u.rtp); break; default: diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c index b0d1a9f..7124a39 100644 --- a/src/libosmo-mgcp/mgcp_msg.c +++ b/src/libosmo-mgcp/mgcp_msg.c @@ -136,12 +136,12 @@ const char *mgcp) { char *rest = NULL; - struct mgcp_trunk_config *tcfg; - int trunk, endp; + struct mgcp_trunk *trunk; + int trunk_index, endp; struct mgcp_endpoint *endp_ptr; - trunk = strtoul(mgcp + 6, &rest, 10); - if (rest == NULL || rest[0] != '/' || trunk < 1) { + trunk_index = strtoul(mgcp + 6, &rest, 10); + if (rest == NULL || rest[0] != '/' || trunk_index < 1) { LOGP(DLMGCP, LOGL_ERROR, "Wrong trunk name '%s'\n", mgcp); return NULL; } @@ -156,26 +156,26 @@ if (endp == 1) return NULL; - tcfg = mgcp_trunk_num(cfg, trunk); - if (!tcfg) { + trunk = mgcp_trunk_num(cfg, trunk_index); + if (!trunk) { LOGP(DLMGCP, LOGL_ERROR, "The trunk %d is not declared.\n", - trunk); + trunk_index); return NULL; } - if (!tcfg->endpoints) { + if (!trunk->endpoints) { LOGP(DLMGCP, LOGL_ERROR, - "Endpoints of trunk %d not allocated.\n", trunk); + "Endpoints of trunk %d not allocated.\n", trunk_index); return NULL; } - if (endp < 1 || endp >= tcfg->number_endpoints) { + if (endp < 1 || endp >= trunk->number_endpoints) { LOGP(DLMGCP, LOGL_ERROR, "Failed to find endpoint '%s'\n", mgcp); return NULL; } - endp_ptr = &tcfg->endpoints[endp]; + endp_ptr = &trunk->endpoints[endp]; endp_ptr->wildcarded_req = false; return endp_ptr; } @@ -235,7 +235,7 @@ unsigned int gw = INT_MAX; const char *endpoint_number_str; struct mgcp_endpoint *endp; - struct mgcp_trunk_config *virt_trunk = cfg->virt_trunk; + struct mgcp_trunk *virt_trunk = cfg->virt_trunk; *cause = 0; diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 3b8e736..2d3fdc3 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -61,7 +61,7 @@ int id, int inc) { struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; - struct rate_ctr_group *trunk_stats = endp->tcfg->all_rtp_conn_stats; + struct rate_ctr_group *trunk_stats = endp->trunk->all_rtp_conn_stats; /* add to both the per-connection and the per-trunk global stats */ rate_ctr_add(&conn_stats->ctr[id], inc); @@ -187,7 +187,7 @@ if (rc == -1) goto failed; - if (endp->tcfg->omit_rtcp) + if (endp->trunk->omit_rtcp) return rc; was_rtcp = 1; @@ -819,7 +819,7 @@ * connection in loopback mode exists), then the source connection * shall be specified as destination connection */ - struct mgcp_trunk_config *tcfg = endp->tcfg; + struct mgcp_trunk *trunk = endp->trunk; struct mgcp_rtp_end *rtp_end; struct mgcp_rtp_state *rtp_state; char *dest_name; @@ -835,7 +835,7 @@ } LOGPENDP(endp, DRTP, LOGL_DEBUG, "loop:%d, mode:%d%s\n", - tcfg->audio_loop, conn_src->conn->mode, + trunk->audio_loop, conn_src->conn->mode, conn_src->conn->mode == MGCP_CONN_LOOPBACK ? " (loopback)" : ""); /* FIXME: It is legal that the payload type on the egress connection is @@ -947,7 +947,7 @@ buflen = cont; } while (buflen > 0); return nbytes; - } else if (!tcfg->omit_rtcp) { + } else if (!trunk->omit_rtcp) { LOGPENDP(endp, DRTP, LOGL_DEBUG, "send to %s %s rtp_port:%u rtcp_port:%u\n", dest_name, inet_ntoa(rtp_end->addr), @@ -1150,12 +1150,12 @@ { struct mgcp_endpoint *endp; struct mgcp_conn_rtp *conn; - struct mgcp_trunk_config *tcfg; + struct mgcp_trunk *trunk; int rc; conn = (struct mgcp_conn_rtp*) fd->data; endp = conn->conn->endp; - tcfg = endp->tcfg; + trunk = endp->trunk; LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "receiving RTP/RTCP packet...\n"); @@ -1190,7 +1190,7 @@ LOGPENDP(endp, DRTP, LOGL_DEBUG, "conn:%s\n", mgcp_conn_dump(conn->conn)); /* Check if the origin of the RTP packet seems plausible */ - if (tcfg->rtp_accept_all == 0) { + if (trunk->rtp_accept_all == 0) { if (check_rtp_origin(conn, addr) != 0) return -1; } diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index caed0b7..4d77a4c 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -254,11 +254,11 @@ * Remember the last transmission per endpoint. */ if (endp) { - struct mgcp_trunk_config *tcfg = endp->tcfg; + struct mgcp_trunk *trunk = endp->trunk; talloc_free(endp->last_response); talloc_free(endp->last_trans); - endp->last_trans = talloc_strdup(tcfg->endpoints, trans); - endp->last_response = talloc_strndup(tcfg->endpoints, + endp->last_trans = talloc_strdup(trunk->endpoints, trans); + endp->last_response = talloc_strndup(trunk->endpoints, (const char *)res->l2h, msgb_l2len(res)); } @@ -296,7 +296,7 @@ /* NOTE: Only in the virtual trunk we allow dynamic endpoint names */ if (endp->wildcarded_req - && endp->tcfg->trunk_type == MGCP_TRUNK_VIRTUAL) { + && endp->trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { rc = msgb_printf(msg, "Z: %s%x@%s\r\n", MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, ENDPOINT_NUMBER(endp), endp->cfg->domain); @@ -379,8 +379,8 @@ * - or a response (three numbers, space, transaction id) */ struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg) { - struct mgcp_trunk_config *tcfg = cfg->virt_trunk; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_general_ctr_group; + struct mgcp_trunk *trunk = cfg->virt_trunk; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_general_ctr_group; struct mgcp_parse_data pdata; int rc, i, code, handled = 0; struct msgb *resp = NULL; @@ -692,13 +692,13 @@ void mgcp_rtp_end_config(struct mgcp_endpoint *endp, int expect_ssrc_change, struct mgcp_rtp_end *rtp) { - struct mgcp_trunk_config *tcfg = endp->tcfg; + struct mgcp_trunk *trunk = endp->trunk; - int patch_ssrc = expect_ssrc_change && tcfg->force_constant_ssrc; + int patch_ssrc = expect_ssrc_change && trunk->force_constant_ssrc; - rtp->force_aligned_timing = tcfg->force_aligned_timing; + rtp->force_aligned_timing = trunk->force_aligned_timing; rtp->force_constant_ssrc = patch_ssrc ? 1 : 0; - rtp->rfc5993_hr_convert = tcfg->rfc5993_hr_convert; + rtp->rfc5993_hr_convert = trunk->rfc5993_hr_convert; LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "Configuring RTP endpoint: local port %d%s%s\n", @@ -830,9 +830,9 @@ /* CRCX command handler, processes the received command */ static struct msgb *handle_create_con(struct mgcp_parse_data *p) { - struct mgcp_trunk_config *tcfg = p->endp->tcfg; + struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_crcx_ctr_group; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_crcx_ctr_group; int error_code = 400; const char *local_options = NULL; const char *callid = NULL; @@ -915,7 +915,7 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: endpoint full, max. %i connections allowed!\n", endp->type->max_conns); - if (tcfg->force_realloc) { + if (trunk->force_realloc) { /* There is no more room for a connection, make some * room by blindly tossing the oldest of the two two * connections */ @@ -934,7 +934,7 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: already seized by other call (%s)\n", endp->callid); - if (tcfg->force_realloc) + if (trunk->force_realloc) /* This is not our call, toss everything by releasing * the entire endpoint. (rude!) */ mgcp_endp_release(endp); @@ -949,10 +949,10 @@ /* Set the callid, creation of another connection will only be possible * when the callid matches up. (Connections are distinguished by their * connection ids) */ - endp->callid = talloc_strdup(tcfg->endpoints, callid); + endp->callid = talloc_strdup(trunk->endpoints, callid); snprintf(conn_name, sizeof(conn_name), "%s", callid); - _conn = mgcp_conn_alloc(tcfg->endpoints, endp, MGCP_CONN_TYPE_RTP, conn_name); + _conn = mgcp_conn_alloc(trunk->endpoints, endp, MGCP_CONN_TYPE_RTP, conn_name); if (!_conn) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: unable to allocate RTP connection\n"); @@ -987,7 +987,7 @@ /* Set local connection options, if present */ if (local_options) { - rc = set_local_cx_options(endp->tcfg->endpoints, + rc = set_local_cx_options(endp->trunk->endpoints, &endp->local_options, local_options); if (rc != 0) { LOGPCONN(_conn, DLMGCP, LOGL_ERROR, @@ -1007,8 +1007,8 @@ goto error2; } - conn->end.fmtp_extra = talloc_strdup(tcfg->endpoints, - tcfg->audio_fmtp_extra); + conn->end.fmtp_extra = talloc_strdup(trunk->endpoints, + trunk->audio_fmtp_extra); if (p->cfg->force_ptime) { conn->end.packet_duration_ms = p->cfg->force_ptime; @@ -1043,7 +1043,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(tcfg, ENDPOINT_NUMBER(endp), + rc = p->cfg->policy_cb(trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: @@ -1066,12 +1066,12 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "CRCX: Creating connection: port: %u\n", conn->end.local_port); if (p->cfg->change_cb) - p->cfg->change_cb(tcfg, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX); + p->cfg->change_cb(trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ - OSMO_ASSERT(tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE); + OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); if (conn->conn->mode & MGCP_CONN_RECV_ONLY - && tcfg->keepalive_interval != MGCP_KEEPALIVE_NEVER) + && trunk->keepalive_interval != MGCP_KEEPALIVE_NEVER) send_dummy(endp, conn); LOGPCONN(_conn, DLMGCP, LOGL_NOTICE, @@ -1088,9 +1088,9 @@ /* MDCX command handler, processes the received command */ static struct msgb *handle_modify_con(struct mgcp_parse_data *p) { - struct mgcp_trunk_config *tcfg = p->endp->tcfg; + struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_mdcx_ctr_group; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_mdcx_ctr_group; int error_code = 500; int silent = 0; int have_sdp = 0; @@ -1198,7 +1198,7 @@ /* Set local connection options, if present */ if (local_options) { - rc = set_local_cx_options(endp->tcfg->endpoints, + rc = set_local_cx_options(endp->trunk->endpoints, &endp->local_options, local_options); if (rc != 0) { LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR, @@ -1257,7 +1257,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_MDCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: @@ -1287,13 +1287,13 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "MDCX: modified conn:%s\n", mgcp_conn_dump(conn->conn)); if (p->cfg->change_cb) - p->cfg->change_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_MDCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ - OSMO_ASSERT(endp->tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE); + OSMO_ASSERT(endp->trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); if (conn->conn->mode & MGCP_CONN_RECV_ONLY - && endp->tcfg->keepalive_interval != MGCP_KEEPALIVE_NEVER) + && endp->trunk->keepalive_interval != MGCP_KEEPALIVE_NEVER) send_dummy(endp, conn); rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_SUCCESS]); @@ -1314,9 +1314,9 @@ /* DLCX command handler, processes the received command */ static struct msgb *handle_delete_con(struct mgcp_parse_data *p) { - struct mgcp_trunk_config *tcfg = p->endp->tcfg; + struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = tcfg->mgcp_dlcx_ctr_group; + struct rate_ctr_group *rate_ctrs = trunk->mgcp_dlcx_ctr_group; int error_code = 400; int silent = 0; char *line; @@ -1377,7 +1377,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_DLCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: @@ -1442,7 +1442,7 @@ } if (p->cfg->change_cb) - p->cfg->change_cb(endp->tcfg, ENDPOINT_NUMBER(endp), + p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_DLCX); rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_SUCCESS]); @@ -1472,7 +1472,7 @@ LOGP(DLMGCP, LOGL_NOTICE, "RSIP: resetting all endpoints ...\n"); if (p->cfg->reset_cb) - p->cfg->reset_cb(p->endp->tcfg); + p->cfg->reset_cb(p->endp->trunk); return NULL; } @@ -1518,37 +1518,37 @@ /* Connection keepalive timer, will take care that dummy packets are send * regularly, so that NAT connections stay open */ -static void mgcp_keepalive_timer_cb(void *_tcfg) +static void mgcp_keepalive_timer_cb(void *_trunk) { - struct mgcp_trunk_config *tcfg = _tcfg; + struct mgcp_trunk *trunk = _trunk; struct mgcp_conn *conn; int i; LOGP(DLMGCP, LOGL_DEBUG, "triggered trunk %d keepalive timer\n", - tcfg->trunk_nr); + trunk->trunk_nr); /* Do not accept invalid configuration values * valid is MGCP_KEEPALIVE_NEVER, MGCP_KEEPALIVE_ONCE and * values greater 0 */ - OSMO_ASSERT(tcfg->keepalive_interval >= MGCP_KEEPALIVE_ONCE); + OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); /* The dummy packet functionality has been disabled, we will exit * immediately, no further timer is scheduled, which means we will no * longer send dummy packets even when we did before */ - if (tcfg->keepalive_interval == MGCP_KEEPALIVE_NEVER) + if (trunk->keepalive_interval == MGCP_KEEPALIVE_NEVER) return; /* In cases where only one dummy packet is sent, we do not need * the timer since the functions that handle the CRCX and MDCX are * triggering the sending of the dummy packet. So we behave like in * the MGCP_KEEPALIVE_NEVER case */ - if (tcfg->keepalive_interval == MGCP_KEEPALIVE_ONCE) + if (trunk->keepalive_interval == MGCP_KEEPALIVE_ONCE) return; /* Send walk over all endpoints and send out dummy packets through * every connection present on each endpoint */ - for (i = 1; i < tcfg->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &tcfg->endpoints[i]; + for (i = 1; i < trunk->number_endpoints; ++i) { + struct mgcp_endpoint *endp = &trunk->endpoints[i]; llist_for_each_entry(conn, &endp->conns, entry) { if (conn->mode == MGCP_CONN_RECV_ONLY) send_dummy(endp, &conn->u.rtp); @@ -1557,21 +1557,21 @@ /* Schedule the keepalive timer for the next round */ LOGP(DLMGCP, LOGL_DEBUG, "rescheduling trunk %d keepalive timer\n", - tcfg->trunk_nr); - osmo_timer_schedule(&tcfg->keepalive_timer, tcfg->keepalive_interval, + trunk->trunk_nr); + osmo_timer_schedule(&trunk->keepalive_timer, trunk->keepalive_interval, 0); } -void mgcp_trunk_set_keepalive(struct mgcp_trunk_config *tcfg, int interval) +void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval) { - tcfg->keepalive_interval = interval; - osmo_timer_setup(&tcfg->keepalive_timer, mgcp_keepalive_timer_cb, tcfg); + trunk->keepalive_interval = interval; + osmo_timer_setup(&trunk->keepalive_timer, mgcp_keepalive_timer_cb, trunk); if (interval <= 0) - osmo_timer_del(&tcfg->keepalive_timer); + osmo_timer_del(&trunk->keepalive_timer); else - osmo_timer_schedule(&tcfg->keepalive_timer, - tcfg->keepalive_interval, 0); + osmo_timer_schedule(&trunk->keepalive_timer, + trunk->keepalive_interval, 0); } static int free_rate_counter_group(struct rate_ctr_group *rate_ctr_group) @@ -1580,7 +1580,7 @@ return 0; } -static int alloc_mgcp_rate_counters(struct mgcp_trunk_config *trunk, void *ctx) +static int alloc_mgcp_rate_counters(struct mgcp_trunk *trunk, void *ctx) { /* FIXME: Each new rate counter group requires a unique index. At the * moment we generate an index using a counter, but perhaps there is @@ -1676,11 +1676,11 @@ * \param[in] cfg mgcp configuration * \param[in] nr trunk number * \returns pointer to allocated trunk configuration */ -struct mgcp_trunk_config *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; - trunk = talloc_zero(cfg, struct mgcp_trunk_config); + trunk = talloc_zero(cfg, struct mgcp_trunk); if (!trunk) { LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate.\n"); return NULL; @@ -1709,9 +1709,9 @@ * \param[in] cfg mgcp configuration * \param[in] index trunk number * \returns pointer to trunk configuration, NULL on error */ -struct mgcp_trunk_config *mgcp_trunk_num(struct mgcp_config *cfg, int index) +struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; llist_for_each_entry(trunk, &cfg->trunks, entry) if (trunk->trunk_nr == index) @@ -1722,27 +1722,27 @@ /*! allocate endpoints and set default values. * (called once at startup by VTY) - * \param[in] tcfg trunk configuration + * \param[in] trunk trunk configuration * \returns 0 on success, -1 on failure */ -int mgcp_endpoints_allocate(struct mgcp_trunk_config *tcfg) +int mgcp_endpoints_allocate(struct mgcp_trunk *trunk) { int i; - tcfg->endpoints = _talloc_zero_array(tcfg->cfg, + trunk->endpoints = _talloc_zero_array(trunk->cfg, sizeof(struct mgcp_endpoint), - tcfg->vty_number_endpoints, + trunk->vty_number_endpoints, "endpoints"); - if (!tcfg->endpoints) + if (!trunk->endpoints) return -1; - for (i = 0; i < tcfg->vty_number_endpoints; ++i) { - INIT_LLIST_HEAD(&tcfg->endpoints[i].conns); - tcfg->endpoints[i].cfg = tcfg->cfg; - tcfg->endpoints[i].tcfg = tcfg; + for (i = 0; i < trunk->vty_number_endpoints; ++i) { + INIT_LLIST_HEAD(&trunk->endpoints[i].conns); + trunk->endpoints[i].cfg = trunk->cfg; + trunk->endpoints[i].trunk = trunk; - switch (tcfg->trunk_type) { + switch (trunk->trunk_type) { case MGCP_TRUNK_VIRTUAL: - tcfg->endpoints[i].type = &ep_typeset.rtp; + trunk->endpoints[i].type = &ep_typeset.rtp; break; case MGCP_TRUNK_E1: /* FIXME: Implement E1 allocation */ @@ -1750,12 +1750,12 @@ break; default: osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", - tcfg->trunk_type, __FILE__, __LINE__); + trunk->trunk_type, __FILE__, __LINE__); } } - tcfg->number_endpoints = tcfg->vty_number_endpoints; - alloc_mgcp_rate_counters(tcfg, tcfg->cfg); + trunk->number_endpoints = trunk->vty_number_endpoints; + alloc_mgcp_rate_counters(trunk, trunk->cfg); return 0; } diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 01e7968..428bde6 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -557,7 +557,7 @@ if (rc < 0) goto buffer_too_small; - if (endp->tcfg->audio_send_name) { + if (endp->trunk->audio_send_name) { rc = add_rtpmap(sdp, payload_type, audio_name); if (rc < 0) goto buffer_too_small; @@ -573,7 +573,7 @@ if (rc < 0) goto buffer_too_small; } - if (conn->end.packet_duration_ms > 0 && endp->tcfg->audio_send_ptime) { + if (conn->end.packet_duration_ms > 0 && endp->trunk->audio_send_ptime) { rc = msgb_printf(sdp, "a=ptime:%u\r\n", conn->end.packet_duration_ms); if (rc < 0) diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 856c971..137d5de 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -42,9 +42,9 @@ static struct mgcp_config *g_cfg = NULL; -static struct mgcp_trunk_config *find_trunk(struct mgcp_config *cfg, int nr) +static struct mgcp_trunk *find_trunk(struct mgcp_config *cfg, int nr) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; if (nr == 0) trunk = cfg->virt_trunk; @@ -68,7 +68,7 @@ static int config_write_mgcp(struct vty *vty) { - struct mgcp_trunk_config *trunk = g_cfg->virt_trunk; + struct mgcp_trunk *trunk = g_cfg->virt_trunk; vty_out(vty, "mgcp%s", VTY_NEWLINE); vty_out(vty, " domain %s%s", g_cfg->domain, VTY_NEWLINE); @@ -244,7 +244,7 @@ } } -static void dump_trunk(struct vty *vty, struct mgcp_trunk_config *cfg, int show_stats) +static void dump_trunk(struct vty *vty, struct mgcp_trunk *cfg, int show_stats) { int i; @@ -298,7 +298,7 @@ SHOW_MGCP_STR "Include Statistics\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; int show_stats = argc >= 1; dump_trunk(vty, g_cfg->virt_trunk, show_stats); @@ -314,7 +314,7 @@ } static void -dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk_config *trunk, const char *epname) +dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk *trunk, const char *epname) { const size_t virt_prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; unsigned long epidx; @@ -350,7 +350,7 @@ SHOW_MGCP_STR "Display information about an endpoint\n" "The name of the endpoint\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; dump_mgcp_endpoint(vty, g_cfg->virt_trunk, argv[0]); llist_for_each_entry(trunk, &g_cfg->trunks, entry) @@ -366,7 +366,7 @@ "Display information about a trunk\n" "Trunk number\n" "Display information about an endpoint\n" "The name of the endpoint\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; int trunkidx = atoi(argv[0]); trunk = find_trunk(g_cfg, trunkidx); @@ -807,7 +807,7 @@ DEFUN(cfg_mgcp_trunk, cfg_mgcp_trunk_cmd, "trunk <1-64>", "Configure a SS7 trunk\n" "Trunk Nr\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; int index = atoi(argv[0]); trunk = mgcp_trunk_num(g_cfg, index); @@ -827,7 +827,7 @@ static int config_write_trunk(struct vty *vty) { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; llist_for_each_entry(trunk, &g_cfg->trunks, entry) { vty_out(vty, " trunk %d%s", trunk->trunk_nr, VTY_NEWLINE); @@ -885,7 +885,7 @@ "Add extra fmtp for the SDP file\n" "Audio\n" "Fmtp-extra\n" "Extra Information\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; char *txt = argv_concat(argv, argc, 0); if (!txt) return CMD_WARNING; @@ -900,7 +900,7 @@ "sdp audio-payload number <0-255>", SDP_STR AUDIO_STR "Number\n" "Payload Number\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; unsigned int payload = atoi(argv[0]); trunk->audio_payload = payload; @@ -916,7 +916,7 @@ "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Payload\n" "Payload Name\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; osmo_talloc_replace_string(g_cfg, &trunk->audio_name, argv[0]); return CMD_SUCCESS; @@ -931,7 +931,7 @@ "loop (0|1)", "Loop audio for all endpoints on this trunk\n" "Don't Loop\n" "Loop\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; if (g_cfg->osmux) { vty_out(vty, "Cannot use `loop' with `osmux'.%s", VTY_NEWLINE); @@ -946,7 +946,7 @@ "sdp audio-payload send-ptime", SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_ptime = 1; return CMD_SUCCESS; } @@ -956,7 +956,7 @@ "no sdp audio-payload send-ptime", NO_STR SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_ptime = 0; return CMD_SUCCESS; } @@ -966,7 +966,7 @@ "sdp audio-payload send-name", SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_name = 1; return CMD_SUCCESS; } @@ -976,14 +976,14 @@ "no sdp audio-payload send-name", NO_STR SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->audio_send_name = 0; return CMD_SUCCESS; } DEFUN(cfg_trunk_omit_rtcp, cfg_trunk_omit_rtcp_cmd, "rtcp-omit", RTCP_OMIT_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->omit_rtcp = 1; return CMD_SUCCESS; } @@ -991,7 +991,7 @@ DEFUN(cfg_trunk_no_omit_rtcp, cfg_trunk_no_omit_rtcp_cmd, "no rtcp-omit", NO_STR RTCP_OMIT_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->omit_rtcp = 0; return CMD_SUCCESS; } @@ -1000,7 +1000,7 @@ cfg_trunk_patch_rtp_ssrc_cmd, "rtp-patch ssrc", RTP_PATCH_STR "Force a fixed SSRC\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 1; return CMD_SUCCESS; } @@ -1009,7 +1009,7 @@ cfg_trunk_no_patch_rtp_ssrc_cmd, "no rtp-patch ssrc", NO_STR RTP_PATCH_STR "Force a fixed SSRC\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 0; return CMD_SUCCESS; } @@ -1018,7 +1018,7 @@ cfg_trunk_patch_rtp_ts_cmd, "rtp-patch timestamp", RTP_PATCH_STR "Adjust RTP timestamp\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_aligned_timing = 1; return CMD_SUCCESS; } @@ -1027,7 +1027,7 @@ cfg_trunk_no_patch_rtp_ts_cmd, "no rtp-patch timestamp", NO_STR RTP_PATCH_STR "Adjust RTP timestamp\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_aligned_timing = 0; return CMD_SUCCESS; } @@ -1036,7 +1036,7 @@ cfg_trunk_patch_rtp_rfc5993hr_cmd, "rtp-patch rfc5993hr", RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->rfc5993_hr_convert = true; return CMD_SUCCESS; } @@ -1045,7 +1045,7 @@ cfg_trunk_no_patch_rtp_rfc5993hr_cmd, "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->rfc5993_hr_convert = false; return CMD_SUCCESS; } @@ -1053,7 +1053,7 @@ DEFUN(cfg_trunk_no_patch_rtp, cfg_trunk_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 0; trunk->force_aligned_timing = 0; trunk->rfc5993_hr_convert = false; @@ -1065,7 +1065,7 @@ "rtp keep-alive <1-120>", RTP_STR RTP_KEEPALIVE_STR "Keep-alive interval in secs\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, atoi(argv[0])); return CMD_SUCCESS; } @@ -1075,7 +1075,7 @@ "rtp keep-alive once", RTP_STR RTP_KEEPALIVE_STR "Send dummy packet only once after CRCX/MDCX\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); return CMD_SUCCESS; } @@ -1084,7 +1084,7 @@ cfg_trunk_no_rtp_keepalive_cmd, "no rtp keep-alive", NO_STR RTP_STR RTP_KEEPALIVE_STR) { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, 0); return CMD_SUCCESS; } @@ -1093,7 +1093,7 @@ cfg_trunk_allow_transcoding_cmd, "allow-transcoding", "Allow transcoding\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->no_audio_transcoding = 0; return CMD_SUCCESS; } @@ -1102,7 +1102,7 @@ cfg_trunk_no_allow_transcoding_cmd, "no allow-transcoding", NO_STR "Allow transcoding\n") { - struct mgcp_trunk_config *trunk = vty->index; + struct mgcp_trunk *trunk = vty->index; trunk->no_audio_transcoding = 1; return CMD_SUCCESS; } @@ -1114,7 +1114,7 @@ "The name in hex of the endpoint\n" "Disable the loop\n" "Enable the loop\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; struct mgcp_conn *conn; @@ -1172,7 +1172,7 @@ "destination IP of the data\n" "destination port\n") { struct mgcp_rtp_tap *tap; - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; struct mgcp_conn_rtp *conn; const char *conn_id = NULL; @@ -1227,7 +1227,7 @@ "free-endpoint <0-64> NUMBER", "Free the given endpoint\n" "Trunk number\n" "Endpoint number in hex.\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; trunk = find_trunk(g_cfg, atoi(argv[0])); @@ -1259,7 +1259,7 @@ "reset-endpoint <0-64> NUMBER", "Reset the given endpoint\n" "Trunk number\n" "Endpoint number in hex.\n") { - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; int endp_no, rc; @@ -1502,7 +1502,7 @@ enum mgcp_role role) { int rc; - struct mgcp_trunk_config *trunk; + struct mgcp_trunk *trunk; cfg->osmux_port = OSMUX_PORT; cfg->osmux_batch = 4; diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index 48869c4..22f2ab8 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -71,7 +71,7 @@ /* FIXME: Make use of the rtp proxy code */ static struct mgcp_config *cfg; -static struct mgcp_trunk_config *reset_trunk; +static struct mgcp_trunk *reset_trunk; static int reset_endpoints = 0; static int daemonize = 0; @@ -148,13 +148,13 @@ /* Callback function to be called when the RSIP ("Reset in Progress") mgcp * command is received */ -static int mgcp_rsip_cb(struct mgcp_trunk_config *tcfg) +static int mgcp_rsip_cb(struct mgcp_trunk *trunk) { /* Set flag so that, when read_call_agent() is called next time * the reset can progress */ reset_endpoints = 1; - reset_trunk = tcfg; + reset_trunk = trunk; return 0; } diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index e0518a4..fa38296 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -593,7 +593,7 @@ static int last_endpoint = -1; -static int mgcp_test_policy_cb(struct mgcp_trunk_config *cfg, int endpoint, +static int mgcp_test_policy_cb(struct mgcp_trunk *cfg, int endpoint, int state, const char *transactio_id) { fprintf(stderr, "Policy CB got state %d on endpoint 0x%x\n", @@ -641,7 +641,7 @@ return real_clock_gettime(clk_id, tp); } -static void mgcp_endpoints_release(struct mgcp_trunk_config *trunk) +static void mgcp_endpoints_release(struct mgcp_trunk *trunk) { int i; for (i = 1; i < trunk->number_endpoints; i++) @@ -749,7 +749,7 @@ { struct mgcp_config *cfg; struct mgcp_endpoint *endp; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; int i; struct mgcp_conn_rtp *conn = NULL; char last_conn_id[256]; @@ -890,7 +890,7 @@ static void test_retransmission(void) { struct mgcp_config *cfg; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; int i; char last_conn_id[256]; int rc; @@ -958,7 +958,7 @@ static void test_rqnt_cb(void) { struct mgcp_config *cfg; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; struct msgb *inp, *msg; char conn_id[256]; @@ -1036,7 +1036,7 @@ int i; struct mgcp_endpoint endp; struct mgcp_config cfg = {0}; - struct mgcp_trunk_config trunk; + struct mgcp_trunk trunk; printf("Testing packet loss calculation.\n"); @@ -1047,7 +1047,7 @@ endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; trunk.endpoints = &endp; - endp.tcfg = &trunk; + endp.trunk = &trunk; INIT_LLIST_HEAD(&endp.conns); for (i = 0; i < ARRAY_SIZE(pl_test_dat); ++i) { @@ -1262,7 +1262,7 @@ { int i; - struct mgcp_trunk_config trunk; + struct mgcp_trunk trunk; struct mgcp_endpoint endp; struct mgcp_config cfg = {0}; struct mgcp_rtp_state state; @@ -1300,7 +1300,7 @@ trunk.force_constant_ssrc = patch_ssrc; trunk.force_aligned_timing = patch_ts; - endp.tcfg = &trunk; + endp.trunk = &trunk; INIT_LLIST_HEAD(&endp.conns); _conn = mgcp_conn_alloc(NULL, &endp, MGCP_CONN_TYPE_RTP, @@ -1361,7 +1361,7 @@ static void test_multilple_codec(void) { struct mgcp_config *cfg; - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; struct mgcp_endpoint *endp; struct msgb *inp, *resp; struct in_addr addr; @@ -1558,7 +1558,7 @@ static void test_no_name(void) { - struct mgcp_trunk_config *trunk2; + struct mgcp_trunk *trunk2; struct mgcp_config *cfg; struct msgb *inp, *msg; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I02889dbf8149e139b1bd0326e13ce4c1aec867d1 Gerrit-Change-Number: 18643 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:27:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:27:07 +0000 Subject: Change in osmo-mgw[master]: mgcp_vty: fix indentation in VTY config write In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18593 ) Change subject: mgcp_vty: fix indentation in VTY config write ...................................................................... mgcp_vty: fix indentation in VTY config write The config under the node mgcp is written with an indentation that has one space too much. Change-Id: I2aefeaf3d7ad4a98b7bfcdc7cbc1ce6ebcbe0537 Related: OS#2659 --- M src/libosmo-mgcp/mgcp_vty.c 1 file changed, 36 insertions(+), 36 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 137d5de..7278c1c 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -71,100 +71,100 @@ struct mgcp_trunk *trunk = g_cfg->virt_trunk; vty_out(vty, "mgcp%s", VTY_NEWLINE); - vty_out(vty, " domain %s%s", g_cfg->domain, VTY_NEWLINE); + vty_out(vty, " domain %s%s", g_cfg->domain, VTY_NEWLINE); if (g_cfg->local_ip) vty_out(vty, " local ip %s%s", g_cfg->local_ip, VTY_NEWLINE); - vty_out(vty, " bind ip %s%s", g_cfg->source_addr, VTY_NEWLINE); - vty_out(vty, " bind port %u%s", g_cfg->source_port, VTY_NEWLINE); - vty_out(vty, " rtp port-range %u %u%s", + vty_out(vty, " bind ip %s%s", g_cfg->source_addr, VTY_NEWLINE); + vty_out(vty, " bind port %u%s", g_cfg->source_port, VTY_NEWLINE); + vty_out(vty, " rtp port-range %u %u%s", g_cfg->net_ports.range_start, g_cfg->net_ports.range_end, VTY_NEWLINE); if (g_cfg->net_ports.bind_addr) - vty_out(vty, " rtp bind-ip %s%s", + vty_out(vty, " rtp bind-ip %s%s", g_cfg->net_ports.bind_addr, VTY_NEWLINE); if (g_cfg->net_ports.bind_addr_probe) - vty_out(vty, " rtp ip-probing%s", VTY_NEWLINE); + vty_out(vty, " rtp ip-probing%s", VTY_NEWLINE); 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); + 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 (trunk->keepalive_interval == MGCP_KEEPALIVE_ONCE) - vty_out(vty, " rtp keep-alive once%s", VTY_NEWLINE); + vty_out(vty, " rtp keep-alive once%s", VTY_NEWLINE); else if (trunk->keepalive_interval) - vty_out(vty, " rtp keep-alive %d%s", + vty_out(vty, " rtp keep-alive %d%s", trunk->keepalive_interval, VTY_NEWLINE); else - vty_out(vty, " no rtp keep-alive%s", VTY_NEWLINE); + vty_out(vty, " no rtp keep-alive%s", VTY_NEWLINE); if (trunk->omit_rtcp) - vty_out(vty, " rtcp-omit%s", VTY_NEWLINE); + vty_out(vty, " rtcp-omit%s", VTY_NEWLINE); else - vty_out(vty, " no rtcp-omit%s", VTY_NEWLINE); + vty_out(vty, " no rtcp-omit%s", VTY_NEWLINE); if (trunk->force_constant_ssrc || trunk->force_aligned_timing || trunk->rfc5993_hr_convert) { - vty_out(vty, " %srtp-patch ssrc%s", + vty_out(vty, " %srtp-patch ssrc%s", trunk->force_constant_ssrc ? "" : "no ", VTY_NEWLINE); - vty_out(vty, " %srtp-patch timestamp%s", + vty_out(vty, " %srtp-patch timestamp%s", trunk->force_aligned_timing ? "" : "no ", VTY_NEWLINE); - vty_out(vty, " %srtp-patch rfc5993hr%s", + vty_out(vty, " %srtp-patch rfc5993hr%s", trunk->rfc5993_hr_convert ? "" : "no ", VTY_NEWLINE); } else - vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); + vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); if (trunk->audio_payload != -1) - vty_out(vty, " sdp audio-payload number %d%s", + vty_out(vty, " sdp audio-payload number %d%s", trunk->audio_payload, VTY_NEWLINE); if (trunk->audio_name) - vty_out(vty, " sdp audio-payload name %s%s", + vty_out(vty, " sdp audio-payload name %s%s", trunk->audio_name, VTY_NEWLINE); if (trunk->audio_fmtp_extra) - vty_out(vty, " sdp audio fmtp-extra %s%s", + vty_out(vty, " sdp audio fmtp-extra %s%s", trunk->audio_fmtp_extra, VTY_NEWLINE); - vty_out(vty, " %ssdp audio-payload send-ptime%s", + vty_out(vty, " %ssdp audio-payload send-ptime%s", trunk->audio_send_ptime ? "" : "no ", VTY_NEWLINE); - vty_out(vty, " %ssdp audio-payload send-name%s", + vty_out(vty, " %ssdp audio-payload send-name%s", trunk->audio_send_name ? "" : "no ", VTY_NEWLINE); - vty_out(vty, " loop %u%s", ! !trunk->audio_loop, VTY_NEWLINE); - vty_out(vty, " number endpoints %u%s", + vty_out(vty, " loop %u%s", ! !trunk->audio_loop, VTY_NEWLINE); + vty_out(vty, " number endpoints %u%s", trunk->vty_number_endpoints - 1, VTY_NEWLINE); - vty_out(vty, " %sallow-transcoding%s", + vty_out(vty, " %sallow-transcoding%s", trunk->no_audio_transcoding ? "no " : "", VTY_NEWLINE); if (g_cfg->call_agent_addr) - vty_out(vty, " call-agent ip %s%s", g_cfg->call_agent_addr, + vty_out(vty, " call-agent ip %s%s", g_cfg->call_agent_addr, VTY_NEWLINE); if (g_cfg->force_ptime > 0) - vty_out(vty, " rtp force-ptime %d%s", g_cfg->force_ptime, + vty_out(vty, " rtp force-ptime %d%s", g_cfg->force_ptime, VTY_NEWLINE); switch (g_cfg->osmux) { case OSMUX_USAGE_ON: - vty_out(vty, " osmux on%s", VTY_NEWLINE); + vty_out(vty, " osmux on%s", VTY_NEWLINE); break; case OSMUX_USAGE_ONLY: - vty_out(vty, " osmux only%s", VTY_NEWLINE); + vty_out(vty, " osmux only%s", VTY_NEWLINE); break; case OSMUX_USAGE_OFF: default: - vty_out(vty, " osmux off%s", VTY_NEWLINE); + vty_out(vty, " osmux off%s", VTY_NEWLINE); break; } if (g_cfg->osmux) { - vty_out(vty, " osmux bind-ip %s%s", + vty_out(vty, " osmux bind-ip %s%s", g_cfg->osmux_addr, VTY_NEWLINE); - vty_out(vty, " osmux batch-factor %d%s", + vty_out(vty, " osmux batch-factor %d%s", g_cfg->osmux_batch, VTY_NEWLINE); - vty_out(vty, " osmux batch-size %u%s", + vty_out(vty, " osmux batch-size %u%s", g_cfg->osmux_batch_size, VTY_NEWLINE); - vty_out(vty, " osmux port %u%s", + vty_out(vty, " osmux port %u%s", g_cfg->osmux_port, VTY_NEWLINE); - vty_out(vty, " osmux dummy %s%s", + vty_out(vty, " osmux dummy %s%s", g_cfg->osmux_dummy ? "on" : "off", VTY_NEWLINE); } if (g_cfg->conn_timeout) - vty_out(vty, " conn-timeout %u%s", g_cfg->conn_timeout, VTY_NEWLINE); + vty_out(vty, " conn-timeout %u%s", g_cfg->conn_timeout, VTY_NEWLINE); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2aefeaf3d7ad4a98b7bfcdc7cbc1ce6ebcbe0537 Gerrit-Change-Number: 18593 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:28:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:28:55 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 1: Code-Review+1 like in the previous patch, I'm still not convinced that global rate counters are the way to go, but I don't want this to block the patchset from getting merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17: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 Wed Jun 3 17:29:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:29:23 +0000 Subject: Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payloa In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18645 ) Change subject: mgcp_trunk: remove audio_name and audio_payloa ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Gerrit-Change-Number: 18645 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17:29:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:29:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 17:29:26 +0000 Subject: Change in osmo-hlr[master]: osmo-mslookup-client: fix segfault for respond_error() caller In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/18651 ) Change subject: osmo-mslookup-client: fix segfault for respond_error() caller ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-hlr/+/18651/1/src/mslookup/osmo-mslookup-client.c File src/mslookup/osmo-mslookup-client.c: https://gerrit.osmocom.org/c/osmo-hlr/+/18651/1/src/mslookup/osmo-mslookup-client.c at 587 PS1, Line 587: if (!r || r->last) > would be nice documenting this behavior (like r=NULL being passed by error. see here... https://gerrit.osmocom.org/c/osmo-hlr/+/18651/1/src/mslookup/osmo-mslookup-client.c at 597 PS1, Line 597: respond_result(query_str, NULL); ...here. (This is "just" a cmdline tool, no public API/ABI) -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/18651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I1acb0b8aa00c098d1f1f1cc17035daa38ce29fd3 Gerrit-Change-Number: 18651 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17:29: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 Wed Jun 3 17:29:29 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 17:29:29 +0000 Subject: Change in osmo-hlr[master]: osmo-mslookup-client: fix segfault for respond_error() caller In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/18651 ) Change subject: osmo-mslookup-client: fix segfault for respond_error() caller ...................................................................... osmo-mslookup-client: fix segfault for respond_error() caller respond_error() passes r == 0. On error, consider it the last response for that request. Change-Id: I1acb0b8aa00c098d1f1f1cc17035daa38ce29fd3 --- M src/mslookup/osmo-mslookup-client.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/mslookup/osmo-mslookup-client.c b/src/mslookup/osmo-mslookup-client.c index 4a9e587..a200a7e 100644 --- a/src/mslookup/osmo-mslookup-client.c +++ b/src/mslookup/osmo-mslookup-client.c @@ -584,11 +584,11 @@ llist_for_each_entry_safe(c, n, &globals.socket_clients, entry) { if (!strcmp(query_str, c->query_str)) { socket_client_respond_result(c, g_buf); - if (r->last) + if (!r || r->last) socket_client_close(c); } } - if (r->last) + if (!r || r->last) globals.requests_handled++; } -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/18651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I1acb0b8aa00c098d1f1f1cc17035daa38ce29fd3 Gerrit-Change-Number: 18651 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 Wed Jun 3 17:29:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 17:29:45 +0000 Subject: Change in osmo-bsc[master]: is_cm_service_for_emerg(): return false, not 0 In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18650 ) Change subject: is_cm_service_for_emerg(): return false, not 0 ...................................................................... is_cm_service_for_emerg(): return false, not 0 Change-Id: Ife25ed26214abf7aea95b0b7943d9fa585868529 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 0765d1d..d8e33d6 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -112,7 +112,7 @@ if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*cm)) { LOGP(DMSC, LOGL_ERROR, "CM ServiceRequest does not fit.\n"); - return 0; + return false; } cm = (struct gsm48_service_request *) &gh->data[0]; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ife25ed26214abf7aea95b0b7943d9fa585868529 Gerrit-Change-Number: 18650 Gerrit-PatchSet: 1 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 Wed Jun 3 17:30:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:30:24 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17: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 Wed Jun 3 17:31:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:31:41 +0000 Subject: Change in osmo-bts[master]: bts-trx: vty: Add 'nominal-tx-power' cmd In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18579 ) Change subject: bts-trx: vty: Add 'nominal-tx-power' cmd ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4 Gerrit-Change-Number: 18579 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 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 Jun 3 17:32:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:32:18 +0000 Subject: Change in osmo-bts[master]: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from os... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18589 ) Change subject: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from osmo-trx ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I682211f3d664c21f923ca4a530e0464ca383b6d9 Gerrit-Change-Number: 18589 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Hoernchen Gerrit-Comment-Date: Wed, 03 Jun 2020 17:32:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:32:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:32:46 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if.adoc: Document cmd NOMTXPOWER In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 ) Change subject: trx_if.adoc: Document cmd NOMTXPOWER ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 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: Idb5bb56fc039c7393922243c761f3395a094a55b Gerrit-Change-Number: 18630 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 03 Jun 2020 17:32: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 Jun 3 17:32:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:32:49 +0000 Subject: Change in osmo-gsm-manuals[master]: trx_if.adoc: Document cmd NOMTXPOWER In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 ) Change subject: trx_if.adoc: Document cmd NOMTXPOWER ...................................................................... trx_if.adoc: Document cmd NOMTXPOWER TRXC message is implemented in: osmo-bts.git I682211f3d664c21f923ca4a530e0464ca383b6d9 osmo-trx.git I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Change-Id: Idb5bb56fc039c7393922243c761f3395a094a55b --- M common/chapters/trx_if.adoc 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved laforge: Looks good to me, approved diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc index fc42eed..95c00c7 100644 --- a/common/chapters/trx_if.adoc +++ b/common/chapters/trx_if.adoc @@ -75,6 +75,14 @@ RSP POWERON ---- +`NOMTXPOWER` is used by the BTS to retrieve the nominal output transmit power of +the transceiver. `SETPOWER/ADJPOWER` attenuations (dB) are expected to be +applied based on this value (dBm). +---- +CMD NOMTXPOWER +RSP NOMTXPOWER +---- + `SETPOWER` sets transmit power attenuation wrt the nominal transmit power of the transceiver, in dB. ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18630 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: Idb5bb56fc039c7393922243c761f3395a094a55b Gerrit-Change-Number: 18630 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:33:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:33:14 +0000 Subject: Change in osmo-bts[master]: bts-trx: vty: Add 'nominal-tx-power' cmd In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18579 ) Change subject: bts-trx: vty: Add 'nominal-tx-power' cmd ...................................................................... bts-trx: vty: Add 'nominal-tx-power' cmd This value will be soon acquired automatically by osmo-bts-trx by asking over TRXC to new versions of osmo-trx which is the nominal tx power for a given trx. However, to still be able to work correctly against older versions of osmo-trx or other TRX implementation (older or current) not supporting this new TRX comamnd, let's allow the user to force a given value through VTY for Tx power to work correctly. Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4 --- M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_vty.c 3 files changed, 45 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 7370999..42452d2 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -78,6 +78,8 @@ int power_oml; int power_sent; + bool nominal_power_set_by_vty; /* whether nominal trx power was enforced/retreived from VTY config "nominal-tx-power" */ + int maxdly_valid; int maxdly; int maxdly_sent; diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index ab0472e..3c1c892 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -104,8 +104,10 @@ bts->variant = BTS_OSMO_TRX; bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3); - /* FIXME: this needs to be overridden with the real hardrware - * value */ + /* The nominal value is later overwritten through VTY cmd + * 'nominal-tx-power' if present. + * FIXME: In the future, we want osmo-trx to provide us with this info + * through TRXC. */ bts->c0->nominal_power = 23; gsm_bts_set_feature(bts, BTS_FEAT_GPRS); diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 9c67a7f..6dddfe2 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -160,6 +160,36 @@ return CMD_SUCCESS; } +DEFUN(cfg_trx_nominal_power, cfg_trx_nominal_power_cmd, + "nominal-tx-power <-10-100>", + "Manually set (force) the nominal transmit output power in dBm\n" + "Nominal transmit output power level in dBm\n") +{ + struct gsm_bts_trx *trx = vty->index; + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + int val = atoi(argv[0]); + + trx->nominal_power = val; + l1h->config.nominal_power_set_by_vty = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_trx_no_nominal_power, cfg_trx_no_nominal_power_cmd, + "no nominal-tx-power", + NO_STR + "Manually set (force) the nominal transmit output power; ask the TRX instead (default)\n") +{ + struct gsm_bts_trx *trx = vty->index; + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + + l1h->config.nominal_power_set_by_vty = false; + + return CMD_SUCCESS; +} + DEFUN_DEPRECATED(cfg_phy_ms_power_loop, cfg_phy_ms_power_loop_cmd, "osmotrx ms-power-loop <-127-127>", OSMOTRX_STR "Enable MS power control loop\nTarget RSSI value (transceiver specific, " @@ -574,6 +604,12 @@ void bts_model_config_write_trx(struct vty *vty, struct gsm_bts_trx *trx) { + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + + if (l1h->config.nominal_power_set_by_vty) + vty_out(vty, " nominal-tx-power %d%s", trx->nominal_power, + VTY_NEWLINE); } int bts_model_vty_init(struct gsm_bts *bts) @@ -583,6 +619,9 @@ install_element_ve(&show_transceiver_cmd); install_element_ve(&show_phy_cmd); + install_element(TRX_NODE, &cfg_trx_nominal_power_cmd); + install_element(TRX_NODE, &cfg_trx_no_nominal_power_cmd); + install_element(PHY_NODE, &cfg_phy_ms_power_loop_cmd); install_element(PHY_NODE, &cfg_phy_no_ms_power_loop_cmd); install_element(PHY_NODE, &cfg_phy_timing_advance_loop_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4 Gerrit-Change-Number: 18579 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:47:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 17:47:39 +0000 Subject: Change in osmo-bsc[master]: gsm0408_test.c: drop test_mi_functionality() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18648 ) Change subject: gsm0408_test.c: drop test_mi_functionality() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I902d31ecd72d71892fad7945f695a9f1fb403bf2 Gerrit-Change-Number: 18648 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 17: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 Wed Jun 3 17:49:04 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 17:49:04 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 to look at the new patch set (#2). Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 903 insertions(+), 629 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/18644/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:49:04 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 3 Jun 2020 17:49:04 +0000 Subject: Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payload In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 to look at the new patch set (#2). Change subject: mgcp_trunk: remove audio_name and audio_payload ...................................................................... mgcp_trunk: remove audio_name and audio_payload get rid of deprecated trunk parameters which seem to be leftovers from the old osmo-bsc_mgcp implementation. This is in particular audio_name and audio_payload in struct mgcp_trunk_config which allowed the user to "hardcode" an andio name and payload type via VTY configuration The removal of the struct members above also require a change to mgcp_codec.c. The code that is is never actively used and even causes wrong behavior when activated (set the no-transcoding flag in VTY). Since the code is removed also the unit tests also require to be changed to match the new behavior. Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Related: OS#2659 --- M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 4 files changed, 9 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18645/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Gerrit-Change-Number: 18645 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 17:59:00 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 3 Jun 2020 17:59:00 +0000 Subject: Change in pysim[master]: commands.py: fix read_binary for lengths > 256 In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/17848 ) Change subject: commands.py: fix read_binary for lengths > 256 ...................................................................... Patch Set 8: > Patch Set 8: > > can this be merged please? I am struggling with a SIM with long files :-) Could you clarify which files? Maybe we can add a unit test to our set up. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a Gerrit-Change-Number: 17848 Gerrit-PatchSet: 8 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: guilly at gmail.com Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 03 Jun 2020 17:59:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 18:17:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:17:51 +0000 Subject: Change in osmo-bts[master]: bts-trx: Re-apply tx power if nominal power is receives after POWERON References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18652 ) Change subject: bts-trx: Re-apply tx power if nominal power is receives after POWERON ...................................................................... bts-trx: Re-apply tx power if nominal power is receives after POWERON it was preceived that sometimes based on order of events (OML attr setup and timing of RSL connections, etc.), the NOMTXPOWER for TRX!=0 can come after the RSP POWERON, and hence the target power level for TRX!=0 is not done correcty. This can be seen by running any test using the ttcn3-bts setup of docker-playgrounds.git. Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad --- M src/osmo-bts-trx/l1_if.c 1 file changed, 24 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/52/18652/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 9cdbd6c..703cc43 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -140,11 +140,34 @@ LID_SACCH, 0); } +static void l1if_trx_start_power_ramp(struct gsm_bts_trx *trx) +{ + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + + if (l1h->config.forced_max_power_red == -1) + power_ramp_start(trx, get_p_nominal_mdBm(trx), 0); + else + power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1); +} + /* Sets the nominal power, in dB */ void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power) { + struct phy_instance *pinst = trx_phy_instance(trx); + bool nom_pwr_changed = trx->nominal_power != nominal_power; + trx->nominal_power = nominal_power; trx->power_params.trx_p_max_out_mdBm = to_mdB(nominal_power); + + /* If TRX is not yet powered, delay ramping until it's ON */ + if (!nom_pwr_changed || !pinst->phy_link->u.osmotrx.powered) + return; + + /* We are already ON and we got new information about nominal power, so + * let's make sure we adapt the tx power to it + */ + l1if_trx_start_power_ramp(trx); } static void l1if_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc) @@ -199,11 +222,7 @@ /* Begin to ramp up the power on all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { - struct gsm_bts_trx *trx = pinst->trx; - if (l1h->config.forced_max_power_red == -1) - power_ramp_start(trx, get_p_nominal_mdBm(trx), 0); - else - power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1); + l1if_trx_start_power_ramp(pinst->trx); } } else if (rc != 0 && pinst->phy_link->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad Gerrit-Change-Number: 18652 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 Jun 3 18:22:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:22:09 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 5: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 18:22: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 Jun 3 18:23:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:23:48 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds 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/+/18641 to look at the new patch set (#6). Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds By default RSSI on the Rx side is computed based on transmitter's tx power and then substracting the the Rx path loss. If FAKE_RSSI is used, then the values in there are used instead. A default hardcoded value of tx nominal power = 50 dBm is set to keep old behavior of RSSI=-60dB after calculations. Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 --- M src/target/trx_toolkit/ctrl_if_trx.py M src/target/trx_toolkit/fake_trx.py 2 files changed, 40 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/41/18641/6 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin 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 Jun 3 18:26:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:26:05 +0000 Subject: Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payload In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18645 ) Change subject: mgcp_trunk: remove audio_name and audio_payload ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Gerrit-Change-Number: 18645 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 18:26: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 Jun 3 18:26:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:26:34 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 18:26: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 Jun 3 18:38:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:38:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Fix trailing whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18653 ) Change subject: bts: Fix trailing whitespace ...................................................................... bts: Fix trailing whitespace Change-Id: I5164212fee7e94bc98f65e60d00ccd77b4d9e01d --- M bts/BTS_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/53/18653/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 80804ec..367351e 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -2701,7 +2701,7 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } -/* establish DChan, verify that the BTS sets the TA in the first SACCH L1 header. +/* establish DChan, verify that the BTS sets the TA in the first SACCH L1 header. TA for the IMM ASS messages is still controlled by g_pars.l1_pars.ms_actual_ta! */ function f_tc_rsl_chan_initial_ta(charstring id) runs on ConnHdlr { var L1ctlDlMessage l1_dl; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5164212fee7e94bc98f65e60d00ccd77b4d9e01d Gerrit-Change-Number: 18653 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 Jun 3 18:38:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:38:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_up_bcch References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_up_bcch ...................................................................... bts: Introduce test TC_tx_power_start_ramp_up_bcch This test verifies power ramping (up) is working fine during BTS startup. config files are updated to make sense: * "nominal power" in osmo-bsc.cfg reflects correct default nominal tx power of fake_trx. * "osmotrx tx-attenuation" in osmo-bts.cfg is removed to let osmo-bts use the value received through OML (max_power_red 20). * "power-ramp step-size" in osmo-bts.cfg is increased to speed up the test. There's no good reason to keep it lower. Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 --- M bts/BTS_Tests.ttcn M bts/osmo-bsc.cfg M bts/osmo-bts.cfg 3 files changed, 82 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/54/18654/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 367351e..6a2fb87 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -100,6 +100,8 @@ integer mp_rxlev_exp := 57; integer mp_ul_rxlev_exp := 10; integer mp_ms_power_level_exp := 7; + integer mp_bts_tx_nom_pwr_exp := 50; /* Expected Tx Nominal Output Power of the BTS, in dBm */ + integer mp_bts_tx_pwr_att_exp := 20; /* Expected Tx Power attenuation wrt to Tx Nominal Output Power, in dB */ integer mp_ms_actual_ta_exp := 0; integer mp_timing_offset_256syms_exp := 512; /* Time to wait for RSL conn from BTS during startup of test */ @@ -1998,6 +2000,83 @@ f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr); } +/* Verify Tx power reduction and ramping up during BTS bring up */ +function f_TC_tx_power_start_ramp_up_bcch(charstring id) runs on ConnHdlr { + var L1ctlDlMessage l1_dl; + f_l1_tune(L1CTL); + RSL.clear; + + var integer initial_rx_lvl := -1; + var integer last_rx_lvl := -1; + var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp; + + timer T := 2.0; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level; + log("Received rx_level=", rx_lvl); + if (initial_rx_lvl == -1) { + initial_rx_lvl := rx_lvl; + last_rx_lvl := rx_lvl; + + /* Expect a somehow low value during first received messages */ + if (initial_rx_lvl >= max_rx_lvl / 2) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected high initial tx power during ramp up: ", + initial_rx_lvl , ", full power is", max_rx_lvl)); + } + } + + /* received Rx level bigger than maximum allowed power by CN */ + if (rx_lvl > max_rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power higher than full power: ", + rx_lvl , " > ", max_rx_lvl)); + } + + /* Make sure it never decreases, since we are rumping up */ + if (last_rx_lvl > rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power decrease during ramp up: ", + last_rx_lvl , " -> ", rx_lvl)); + } + + if (rx_lvl == max_rx_lvl and not T.running) { + /* We reached the maximum power, start timer and receive + /* a few more to make sure we don't surpass it */ + log("Reached full power, wating a bit more until success"); + T.start; + } + + last_rx_lvl := rx_lvl; + repeat; + } + [] L1CTL.receive { repeat; } + [] T.timeout { } + } + + /* We didn't increase tx power during ramp up */ + if (initial_rx_lvl < last_rx_lvl) { + log("Tx power increased during ramp up: ", initial_rx_lvl , " -> ", last_rx_lvl); + } else { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("No Tx power increase during whole ramp up: ", + initial_rx_lvl , " -> ", last_rx_lvl)); + } + + setverdict(pass); +} +testcase TC_tx_power_start_ramp_up_bcch() runs on test_CT { + var ConnHdlr vc_conn; + var ConnHdlrPars pars; + f_init(); + pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN)); + vc_conn := f_start_handler(refers(f_TC_tx_power_start_ramp_up_bcch), pars, + pcu_comp := false, trxc_comp := true); + vc_conn.done; + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + function f_check_meas_bs_power_level(integer level) runs on ConnHdlr { timer T := 8.0; T.start; @@ -6424,6 +6503,7 @@ execute( TC_meas_res_sign_sdcch4() ); execute( TC_meas_res_sign_sdcch8() ); execute( TC_meas_res_sign_tchh_toa256() ); + execute( TC_tx_power_start_ramp_up_bcch() ); execute( TC_rsl_bs_pwr_static_ass() ); execute( TC_rsl_bs_pwr_static_power_control() ); execute( TC_rsl_ms_pwr_ctrl() ); diff --git a/bts/osmo-bsc.cfg b/bts/osmo-bsc.cfg index 3b31eb7..9025fe4 100644 --- a/bts/osmo-bsc.cfg +++ b/bts/osmo-bsc.cfg @@ -106,7 +106,7 @@ trx 0 rf_locked 0 arfcn 871 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 0 timeslot 0 diff --git a/bts/osmo-bts.cfg b/bts/osmo-bts.cfg index a9867bf..c2cd0bd 100644 --- a/bts/osmo-bts.cfg +++ b/bts/osmo-bts.cfg @@ -28,7 +28,6 @@ osmotrx rts-advance 5 instance 0 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 bts 0 band DCS1800 ipa unit-id 1234 0 @@ -49,7 +48,7 @@ pcu-socket /tmp/pcu_sock trx 0 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 ms-power-control dsp phy 0 instance 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 Gerrit-Change-Number: 18654 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 Jun 3 18:40:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:40:53 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18655 ) Change subject: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch ...................................................................... ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch The test mentioned above is added in osmo-ttcn3-hacks.git Ieb7444c6312bbeab64da2732393b3facf3e1f003. config files are updated to make sense: * "nominal power" in osmo-bsc.cfg reflects correct default nominal tx power of fake_trx. * "osmotrx tx-attenuation" in osmo-bts.cfg is removed to let osmo-bts use the value received through OML (max_power_red 20). * "power-ramp step-size" in osmo-bts.cfg is increased to speed up the test. There's no good reason to keep it lower. Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 --- M ttcn3-bts-test/osmo-bsc.cfg M ttcn3-bts-test/osmo-bts.cfg 2 files changed, 8 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/55/18655/1 diff --git a/ttcn3-bts-test/osmo-bsc.cfg b/ttcn3-bts-test/osmo-bsc.cfg index 3d025c0..3064595 100644 --- a/ttcn3-bts-test/osmo-bsc.cfg +++ b/ttcn3-bts-test/osmo-bsc.cfg @@ -138,7 +138,7 @@ trx 0 rf_locked 0 arfcn 871 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 0 timeslot 0 @@ -168,7 +168,7 @@ trx 1 rf_locked 0 arfcn 873 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 1 timeslot 0 @@ -198,7 +198,7 @@ trx 2 rf_locked 0 arfcn 875 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 2 timeslot 0 @@ -228,7 +228,7 @@ trx 3 rf_locked 0 arfcn 877 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 3 timeslot 0 diff --git a/ttcn3-bts-test/osmo-bts.cfg b/ttcn3-bts-test/osmo-bts.cfg index 8ada1ba..45e491c 100644 --- a/ttcn3-bts-test/osmo-bts.cfg +++ b/ttcn3-bts-test/osmo-bts.cfg @@ -60,16 +60,12 @@ osmotrx rts-advance 5 instance 0 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 instance 1 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 instance 2 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 instance 3 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 bts 0 band DCS1800 ipa unit-id 1234 0 @@ -90,22 +86,22 @@ pcu-socket /data/unix/pcu_sock trx 0 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 0 trx 1 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 1 trx 2 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 2 trx 3 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 3 ctrl -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 Gerrit-Change-Number: 18655 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 Jun 3 18:42:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:42:10 +0000 Subject: Change in osmo-bts[master]: bts-trx: Re-apply tx power if nominal power is received after POWERON In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/18652 ) Change subject: bts-trx: Re-apply tx power if nominal power is received after POWERON ...................................................................... bts-trx: Re-apply tx power if nominal power is received after POWERON it was perceived that sometimes based on order of events (OML attr setup and timing of RSL connections, etc.), the NOMTXPOWER for TRX!=0 can come after the RSP POWERON, and hence the target power level for TRX!=0 is not done correcty. This can be seen by running any test using the ttcn3-bts setup of docker-playgrounds.git. Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad --- M src/osmo-bts-trx/l1_if.c 1 file changed, 24 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/52/18652/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad Gerrit-Change-Number: 18652 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 Wed Jun 3 18:51:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 18:51:41 +0000 Subject: Change in osmo-ci[master]: remove openbsc from nightly and latest builds References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/18656 ) Change subject: remove openbsc from nightly and latest builds ...................................................................... remove openbsc from nightly and latest builds The only part that we haven't migrated elsewhere is osmo-bsc_nat, which is also really unmaintained at this point. Let's not confuse people into thinking they should actually use this software anymore. Change-Id: Icee165422a52bfe04be103a5b7ebb5c8909c0321 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 0 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/56/18656/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 46d8a0f..6566951 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -134,7 +134,6 @@ checkout osmo-iuh checkout osmo-ggsn checkout osmo-sgsn - checkout openbsc checkout osmo-pcap checkout osmo-trx checkout osmo-sip-connector @@ -172,7 +171,6 @@ build osmo-iuh build osmo-ggsn build osmo-sgsn - build openbsc build osmo-pcap build osmo-trx build osmo-sip-connector diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 4a0bc80..0e5dcbf 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -217,7 +217,6 @@ checkout osmo-iuh checkout osmo-ggsn checkout osmo-sgsn - checkout openbsc checkout osmo-pcap checkout osmo-trx checkout osmo-sip-connector @@ -259,7 +258,6 @@ build osmo-iuh build osmo-ggsn build osmo-sgsn - build openbsc build osmo-pcap build osmo-trx build osmo-trx-debian8 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icee165422a52bfe04be103a5b7ebb5c8909c0321 Gerrit-Change-Number: 18656 Gerrit-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 Jun 3 18:53:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:53:48 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18655 ) Change subject: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 Gerrit-Change-Number: 18655 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 18:53: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 Jun 3 18:54:09 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 3 Jun 2020 18:54:09 +0000 Subject: Change in osmo-ci[master]: remove openbsc from nightly and latest builds In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18656 ) Change subject: remove openbsc from nightly and latest builds ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icee165422a52bfe04be103a5b7ebb5c8909c0321 Gerrit-Change-Number: 18656 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 03 Jun 2020 18:54:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 18:59:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 18:59:14 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18642 ) Change subject: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18 Gerrit-Change-Number: 18642 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 18:59: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 Jun 3 19:32:54 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Wed, 3 Jun 2020 19:32:54 +0000 Subject: Change in pysim[master]: commands.py: fix read_binary for lengths > 256 In-Reply-To: References: Message-ID: guilly at gmail.com has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/17848 ) Change subject: commands.py: fix read_binary for lengths > 256 ...................................................................... Patch Set 8: > Patch Set 8: > > > Patch Set 8: > > > > can this be merged please? I am struggling with a SIM with long files :-) > > Could you clarify which files? Maybe we can add a unit test to our set up. I got a couple of SIMs with the PLMN lists with 300 bytes. I am happy to add the test if needed, is just that I was told this is tested with real HW only? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a Gerrit-Change-Number: 17848 Gerrit-PatchSet: 8 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: guilly at gmail.com Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 03 Jun 2020 19:32: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 Jun 3 19:43:03 2020 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 3 Jun 2020 19:43:03 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py File src/target/trx_toolkit/fake_trx.py: https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py at 241 PS6, Line 241: # Apply RSSI based on transmitter: : if not self.fake_rssi_enabled: : msg.rssi = src_trx.tx_power - src_msg.pwr - self.PATH_LOSS_DEFAULT : else: # Apply fake RSSI : msg.rssi = self.rssi Feel free to move this computation to @property self.rssi (line 156). -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 19:43: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 Jun 3 20:03:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 3 Jun 2020 20:03:44 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py File src/target/trx_toolkit/fake_trx.py: https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py at 241 PS6, Line 241: # Apply RSSI based on transmitter: : if not self.fake_rssi_enabled: : msg.rssi = src_trx.tx_power - src_msg.pwr - self.PATH_LOSS_DEFAULT : else: # Apply fake RSSI : msg.rssi = self.rssi > Feel free to move this computation to @property self.rssi (line 156). I'm sorry but I don't understand what do you mean. If you mean somehow encapsulating "src_trx.tx_power - src_msg.pwr - self.PATH_LOSS_DEFAULT" so that it comes when you use self.rssi, I think it doesn't make sense, since one thing is rssi of a message (which requires src_msg and src_trx) and the other is the rssi calculated independently when fake_rssi is in use. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 20:03:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Vadim Yanitskiy Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 20:50:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 3 Jun 2020 20:50:22 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py File src/target/trx_toolkit/fake_trx.py: https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py at 241 PS6, Line 241: # Apply RSSI based on transmitter: : if not self.fake_rssi_enabled: : msg.rssi = src_trx.tx_power - src_msg.pwr - self.PATH_LOSS_DEFAULT : else: # Apply fake RSSI : msg.rssi = self.rssi > I'm sorry but I don't understand what do you mean. [?] Ah, you're right. Sorry for confusion. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 20:50:22 +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 Jun 3 20:52:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 3 Jun 2020 20:52:00 +0000 Subject: Change in osmo-bsc[master]: gsm0408_test.c: drop test_mi_functionality() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18648 ) Change subject: gsm0408_test.c: drop test_mi_functionality() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I902d31ecd72d71892fad7945f695a9f1fb403bf2 Gerrit-Change-Number: 18648 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 20:52:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 20:55:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 3 Jun 2020 20:55:06 +0000 Subject: Change in osmo-msc[master]: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18640 ) Change subject: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I223be7a735e97b32f7c0ff246cf826f109b0f686 Gerrit-Change-Number: 18640 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 03 Jun 2020 20:55: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 Jun 3 20:57:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 3 Jun 2020 20:57:37 +0000 Subject: Change in pysim[master]: commands.py: fix read_binary for lengths > 256 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/17848 ) Change subject: commands.py: fix read_binary for lengths > 256 ...................................................................... Patch Set 8: > I got a couple of SIMs with the PLMN lists with 300 bytes. I am happy to add the test if needed, is just that I was told this is tested with real HW only? At sysmocom, we can create a SIM card profile card with larger files for our test environment. It would just be good if we don't create a completely artificial test, but reproduce something that you actually saw on real SIM Cards. So if you can make it work on your side and send us some APDU logs, and/or even the related test - great. we then simply create a SIM card with the same-sized file and identical content here. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a Gerrit-Change-Number: 17848 Gerrit-PatchSet: 8 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: guilly at gmail.com Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 03 Jun 2020 20:57:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 23:48:48 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 23:48:48 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 5: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 03 Jun 2020 23:48:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 3 23:51:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 3 Jun 2020 23:51:42 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... Patch Set 4: > Patch Set 4: > > I'm still asking why aren't you making use of linked list by simply keeping a ptr to last/next struct llist_head of the msc. You can simply iterate with that until you reach the end and continue at start until you match the initial pointer. please read my very elaborate response to that, it is reasoned about both in the commit log and in the response to your initial question. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 03 Jun 2020 23:51:42 +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 Jun 4 01:35:19 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 04 Jun 2020 01:35:19 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ed84fe921c59_7b332b170425c600101314a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 166s] touch libfx2.lib [ 166s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 166s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 166s] Making all in src [ 166s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 166s] Making all in common [ 166s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 166s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 166s] /usr/bin/env: 'python': No such file or directory [ 166s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 166s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 166s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 166s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 166s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 166s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 166s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 166s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 166s] make[1]: *** [Makefile:554: all] Error 2 [ 166s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 166s] dh_auto_build: error: make -j1 returned exit code 2 [ 166s] make: *** [debian/rules:13: build] Error 25 [ 166s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 166s] ### VM INTERACTION START ### [ 169s] [ 156.847175] sysrq: SysRq : Power Off [ 169s] [ 156.849522] reboot: Power down [ 169s] ### VM INTERACTION END ### [ 169s] [ 169s] build81 failed "build libusrp_3.4.4.7.50ce.dsc" at Thu Jun 4 01:35:16 UTC 2020. [ 169s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jun 4 04:37:15 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 4 Jun 2020 04:37:15 +0000 Subject: Change in pysim[master]: commands.py: fix read_binary for lengths > 256 In-Reply-To: References: Message-ID: herlesupreeth has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/17848 ) Change subject: commands.py: fix read_binary for lengths > 256 ...................................................................... Patch Set 8: > Patch Set 8: > > > I got a couple of SIMs with the PLMN lists with 300 bytes. I am happy to add the test if needed, is just that I was told this is tested with real HW only? > > At sysmocom, we can create a SIM card profile card with larger files for our test environment. It would just be good if we don't create a completely artificial test, but reproduce something that you actually saw on real SIM Cards. So if you can make it work on your side and send us some APDU logs, and/or even the related test - great. we then simply create a SIM card with the same-sized file and identical content here. Just couple of tests/inputs from my side. I can verify the working of this patch on a real commercial USIM from Vodafone DE. Before the patch ~/pysim$ ./pySim-read.py -p 0 Using PC/SC reader interface Reading ... Autodetection failed ICCID: 89xxxxxxx7603xxxx429 IMSI: 262xxxxxx87xxxx GID1: ff GID2: ff SMSP: fffffffffffffffffffffffffffffffffffffdffffffffffffffffffffffff0791947122723033ffffffffffffff SPN: Not available Display HPLMN: True Display OPLMN: True PLMNsel: 32f21012f41022f20132f45102f80102f44022f81082f62052f01006f22012f90132f03062f01002f61025f09925f00025f04004f43404f41104f40204f47204f45032f81052f51042f08002f25072f07703021622f05042f21012f60754f44054f43062f81025f55005f53056f51022f61072f62082f41042f45072f21032f11012f80972f81092f30433085024f72043f00204f40314f20206f33042f75042f62042f82014f92037f01052f72024f01015f53024f62014f32016f70192f71014f61092f43005f29182f35046f04072f42082f01036f92004f01026f510ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff PLMNwAcT: Can't read file -- list index out of range OPLMNwAcT: Can't read file -- list index out of range HPLMNAcT: 62f220c080 # MCC: 262 MNC: 002 AcT: UTRAN, E-UTRAN, GSM ffffff0000 # unused ACC: 0100 ..... ----------------------------------------------------------------------------- After the patch ~/pysim$ ./pySim-read.py -p 0 Using PC/SC reader interface Reading ... Autodetection failed ICCID: 89xxxxxxx7603xxxx429 IMSI: 262xxxxxx87xxxx GID1: ff GID2: ff SMSP: fffffffffffffffffffffffffffffffffffffdffffffffffffffffffffffff0791947122723033ffffffffffffff SPN: Not available Display HPLMN: True Display OPLMN: True PLMNsel: 32f21012f41022f20132f45102f80102f44022f81082f62052f01006f22012f90132f03062f01002f61025f09925f00025f04004f43404f41104f40204f47204f45032f81052f51042f08002f25072f07703021622f05042f21012f60754f44054f43062f81025f55005f53056f51022f61072f62082f41042f45072f21032f11012f80972f81092f30433085024f72043f00204f40314f20206f33042f75042f62042f82014f92037f01052f72024f01015f53024f62014f32016f70192f71014f61092f43005f29182f35046f04072f42082f01036f92004f01026f510ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff PLMNwAcT: 32f210c080 # MCC: 232 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 12f410c080 # MCC: 214 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 22f201c080 # MCC: 222 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 32f451c080 # MCC: 234 MNC: 015 AcT: UTRAN, E-UTRAN, GSM 02f801c080 # MCC: 208 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 02f440c080 # MCC: 204 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 22f810c080 # MCC: 228 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 32f210c080 # MCC: 232 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 82f620c080 # MCC: 286 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 52f010c080 # MCC: 250 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 06f220c080 # MCC: 602 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 12f901c080 # MCC: 219 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 32f030c080 # MCC: 230 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 62f010c080 # MCC: 260 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 02f610c080 # MCC: 206 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 25f099c080 # MCC: 520 MNC: 099 AcT: UTRAN, E-UTRAN, GSM 25f000c080 # MCC: 520 MNC: 000 AcT: UTRAN, E-UTRAN, GSM 25f040c080 # MCC: 520 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 04f434c080 # MCC: 404 MNC: 043 AcT: UTRAN, E-UTRAN, GSM 04f411c080 # MCC: 404 MNC: 011 AcT: UTRAN, E-UTRAN, GSM 04f402c080 # MCC: 404 MNC: 020 AcT: UTRAN, E-UTRAN, GSM 04f472c080 # MCC: 404 MNC: 027 AcT: UTRAN, E-UTRAN, GSM 04f450c080 # MCC: 404 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 32f810c080 # MCC: 238 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 52f510c080 # MCC: 255 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 42f080c080 # MCC: 240 MNC: 008 AcT: UTRAN, E-UTRAN, GSM 02f250c080 # MCC: 202 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 72f077c080 # MCC: 270 MNC: 077 AcT: UTRAN, E-UTRAN, GSM 030216c080 # MCC: 302 MNC: 610 AcT: UTRAN, E-UTRAN, GSM 22f050c080 # MCC: 220 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 42f210c080 # MCC: 242 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 12f607c080 # MCC: 216 MNC: 070 AcT: UTRAN, E-UTRAN, GSM 54f440c080 # MCC: 454 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 54f430c080 # MCC: 454 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 62f810c080 # MCC: 268 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 25f550c080 # MCC: 525 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 05f530c080 # MCC: 505 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 56f510c080 # MCC: 655 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 22f610c080 # MCC: 226 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 72f620c080 # MCC: 276 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 82f410c080 # MCC: 284 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 42f450c080 # MCC: 244 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 72f210c080 # MCC: 272 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 32f110c080 # MCC: 231 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 12f809c080 # MCC: 218 MNC: 090 AcT: UTRAN, E-UTRAN, GSM 72f810c080 # MCC: 278 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 92f304c080 # MCC: 293 MNC: 040 AcT: UTRAN, E-UTRAN, GSM 330850c080 # MCC: 338 MNC: 050 AcT: UTRAN, E-UTRAN, GSM 24f720c080 # MCC: 427 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 43f002c080 # MCC: 340 MNC: 020 AcT: UTRAN, E-UTRAN, GSM 04f403c080 # MCC: 404 MNC: 030 AcT: UTRAN, E-UTRAN, GSM 14f202c080 # MCC: 412 MNC: 020 AcT: UTRAN, E-UTRAN, GSM 06f330c080 # MCC: 603 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 42f750c080 # MCC: 247 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 42f620c080 # MCC: 246 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 42f820c080 # MCC: 248 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 14f920c080 # MCC: 419 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 37f010c080 # MCC: 730 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 52f720c080 # MCC: 257 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 24f010c080 # MCC: 420 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 15f530c080 # MCC: 515 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 24f620c080 # MCC: 426 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 14f320c080 # MCC: 413 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 16f701c080 # MCC: 617 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 92f710c080 # MCC: 297 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 14f610c080 # MCC: 416 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 92f430c080 # MCC: 294 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 05f291c080 # MCC: 502 MNC: 019 AcT: UTRAN, E-UTRAN, GSM 82f350c080 # MCC: 283 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 46f040c080 # MCC: 640 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 72f420c080 # MCC: 274 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 82f010c080 # MCC: 280 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 36f920c080 # MCC: 639 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 04f010c080 # MCC: 400 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 26f510c080 # MCC: 625 MNC: 001 AcT: UTRAN, E-UTRAN, GSM ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused OPLMNwAcT: 32f210c080 # MCC: 232 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 12f410c080 # MCC: 214 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 22f201c080 # MCC: 222 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 32f451c080 # MCC: 234 MNC: 015 AcT: UTRAN, E-UTRAN, GSM 02f801c080 # MCC: 208 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 02f440c080 # MCC: 204 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 22f810c080 # MCC: 228 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 32f210c080 # MCC: 232 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 82f620c080 # MCC: 286 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 52f010c080 # MCC: 250 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 06f220c080 # MCC: 602 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 12f901c080 # MCC: 219 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 32f030c080 # MCC: 230 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 62f010c080 # MCC: 260 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 02f610c080 # MCC: 206 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 25f099c080 # MCC: 520 MNC: 099 AcT: UTRAN, E-UTRAN, GSM 25f000c080 # MCC: 520 MNC: 000 AcT: UTRAN, E-UTRAN, GSM 25f040c080 # MCC: 520 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 04f434c080 # MCC: 404 MNC: 043 AcT: UTRAN, E-UTRAN, GSM 04f411c080 # MCC: 404 MNC: 011 AcT: UTRAN, E-UTRAN, GSM 04f402c080 # MCC: 404 MNC: 020 AcT: UTRAN, E-UTRAN, GSM 04f472c080 # MCC: 404 MNC: 027 AcT: UTRAN, E-UTRAN, GSM 04f450c080 # MCC: 404 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 32f810c080 # MCC: 238 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 52f510c080 # MCC: 255 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 42f080c080 # MCC: 240 MNC: 008 AcT: UTRAN, E-UTRAN, GSM 02f250c080 # MCC: 202 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 72f077c080 # MCC: 270 MNC: 077 AcT: UTRAN, E-UTRAN, GSM 030216c080 # MCC: 302 MNC: 610 AcT: UTRAN, E-UTRAN, GSM 22f050c080 # MCC: 220 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 42f210c080 # MCC: 242 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 12f607c080 # MCC: 216 MNC: 070 AcT: UTRAN, E-UTRAN, GSM 54f440c080 # MCC: 454 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 54f430c080 # MCC: 454 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 62f810c080 # MCC: 268 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 25f550c080 # MCC: 525 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 05f530c080 # MCC: 505 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 56f510c080 # MCC: 655 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 22f610c080 # MCC: 226 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 72f620c080 # MCC: 276 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 82f410c080 # MCC: 284 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 42f450c080 # MCC: 244 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 72f210c080 # MCC: 272 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 32f110c080 # MCC: 231 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 12f809c080 # MCC: 218 MNC: 090 AcT: UTRAN, E-UTRAN, GSM 72f810c080 # MCC: 278 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 92f304c080 # MCC: 293 MNC: 040 AcT: UTRAN, E-UTRAN, GSM 330850c080 # MCC: 338 MNC: 050 AcT: UTRAN, E-UTRAN, GSM 24f720c080 # MCC: 427 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 43f002c080 # MCC: 340 MNC: 020 AcT: UTRAN, E-UTRAN, GSM 04f403c080 # MCC: 404 MNC: 030 AcT: UTRAN, E-UTRAN, GSM 14f202c080 # MCC: 412 MNC: 020 AcT: UTRAN, E-UTRAN, GSM 06f330c080 # MCC: 603 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 42f750c080 # MCC: 247 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 42f620c080 # MCC: 246 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 42f820c080 # MCC: 248 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 14f920c080 # MCC: 419 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 37f010c080 # MCC: 730 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 52f720c080 # MCC: 257 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 24f010c080 # MCC: 420 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 15f530c080 # MCC: 515 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 24f620c080 # MCC: 426 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 14f320c080 # MCC: 413 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 16f701c080 # MCC: 617 MNC: 010 AcT: UTRAN, E-UTRAN, GSM 92f710c080 # MCC: 297 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 14f610c080 # MCC: 416 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 92f430c080 # MCC: 294 MNC: 003 AcT: UTRAN, E-UTRAN, GSM 05f291c080 # MCC: 502 MNC: 019 AcT: UTRAN, E-UTRAN, GSM 82f350c080 # MCC: 283 MNC: 005 AcT: UTRAN, E-UTRAN, GSM 46f040c080 # MCC: 640 MNC: 004 AcT: UTRAN, E-UTRAN, GSM 72f420c080 # MCC: 274 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 82f010c080 # MCC: 280 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 36f920c080 # MCC: 639 MNC: 002 AcT: UTRAN, E-UTRAN, GSM 04f010c080 # MCC: 400 MNC: 001 AcT: UTRAN, E-UTRAN, GSM 26f510c080 # MCC: 625 MNC: 001 AcT: UTRAN, E-UTRAN, GSM ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused ffffff0000 # unused HPLMNAcT: 62f220c080 # MCC: 262 MNC: 002 AcT: UTRAN, E-UTRAN, GSM ffffff0000 # unused ACC: 0100 ...... -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a Gerrit-Change-Number: 17848 Gerrit-PatchSet: 8 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: guilly at gmail.com Gerrit-CC: dexter Gerrit-CC: herlesupreeth Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 04:37:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 11:18:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 11:18:20 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... Patch Set 4: Code-Review+1 > please read my very elaborate response to that, it is reasoned about both in the commit log and in the response to your initial question. I don't agree with your point about using a number instead of a pointer because it's "safer". If that was the case, then we'd be dropping lots of pointers everywhere and using c++ with references or other programming language. That being said, I'm not going to block this patch, so +1. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 04 Jun 2020 11:18: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 Jun 4 14:47:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 14:47:29 +0000 Subject: Change in osmo-gsm-tester[master]: process: Fix wrong use of log.ctx(self) References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18657 ) Change subject: process: Fix wrong use of log.ctx(self) ...................................................................... process: Fix wrong use of log.ctx(self) That's not needed and will produce some parent loop detection in log.find_on_stack() if logging is called under that stack frame. Change-Id: I4ab7e8977fa9bad5c8956b7c1df1513b27bb5aa2 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/process.py 2 files changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/57/18657/1 diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index d60bf0b..8ae55d9 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -318,8 +318,12 @@ f = sys._getframe(2) if origin_or_str is None: f.f_locals.pop(LOG_CTX_VAR, None) - else: - f.f_locals[LOG_CTX_VAR] = origin_or_str + return + if isinstance(origin_or_str, Origin) and origin_or_str is f.f_locals.get('self'): + # Avoid adding log ctx in stack frame where Origin it is already "self", + # it is not needed and will make find_on_stack() to malfunction + raise Error('Don\'t use log.ctx(self), it\'s not needed!') + f.f_locals[LOG_CTX_VAR] = origin_or_str class OriginLoopError(Error): pass diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 320f9ec..36ed057 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -196,7 +196,6 @@ self.terminate() raise e if raise_nonsuccess and self.result != 0: - log.ctx(self) raise log.Error('Exited in error %d' % self.result) return self.result -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18657 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: I4ab7e8977fa9bad5c8956b7c1df1513b27bb5aa2 Gerrit-Change-Number: 18657 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 Jun 4 14:47:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 14:47:29 +0000 Subject: Change in osmo-gsm-tester[master]: log: Improve log ctx information in log.Error exception References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18658 ) Change subject: log: Improve log ctx information in log.Error exception ...................................................................... log: Improve log ctx information in log.Error exception Before, it would show somethig like: """ osmo_gsm_tester.core.log.Error: Exited in error 255 """ Now: """ osmo_gsm_tester.core.log.Error: rm-remote-dir(pid=24820): Exited in error 255 [trial?4g:srsue-rftype at zmq+srsenb-rftype@zmq+mod-enb-nprb at 6?ping.py:9?ping.py?srsepc_10.42.42.118?host-jenkins at 10.42.42.110?rm-remote-dir(pid=24820)] """ Change-Id: I8873f67a2f3df21c4dd552c92510535bf95e2c9d --- M src/osmo_gsm_tester/core/log.py 1 file changed, 11 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/58/18658/1 diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 8ae55d9..2cf1af0 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -88,8 +88,17 @@ get_process_id = lambda: '%d-%d' % (os.getpid(), time.time()) class Error(Exception): - def __init__(self, *messages, **named_items): - super().__init__(compose_message(messages, named_items)) + def __init__(self, *messages, origin=None, **named_items): + msg = '' + if origin is None: + origin = Origin.find_on_stack(f=sys._getframe(1)) + if origin: + msg += origin.name() + ': ' + msg += compose_message(messages, named_items) + if origin and origin._parent is not None: + deeper_origins = origin.ancestry_str() + msg += ' [%s]' % deeper_origins + super().__init__(msg) class LogTarget: all_targets = [] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18658 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: I8873f67a2f3df21c4dd552c92510535bf95e2c9d Gerrit-Change-Number: 18658 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 Jun 4 14:47:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 14:47:30 +0000 Subject: Change in osmo-gsm-tester[master]: process: Improve launch_sync() exception due to process failing References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18659 ) Change subject: process: Improve launch_sync() exception due to process failing ...................................................................... process: Improve launch_sync() exception due to process failing After this commit, in some situations ssh related errors are printed directly in the exception to quickly find cause of the issue. Example: FAIL: ping.py (5.0 sec) Error: rm-remote-dir(pid=25913): launch_sync(): local ssh process exited with status 255 (ssh: connect to host 10.42.42.110 port 22: No route to host) [trial?4g:srsue-rftype at zmq+srsenb-rftype@zmq+mod-enb-nprb at 6?ping.py:9?ping.py?srsepc_10.42.42.118?host-jenkins at 10.42.42.110?rm-remote-dir(pid=25913)] Change-Id: Ia16c7dec96f70d761600ad6a50d9df8382d9c2c8 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/59/18659/1 diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 36ed057..33ae69a 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -196,7 +196,7 @@ self.terminate() raise e if raise_nonsuccess and self.result != 0: - raise log.Error('Exited in error %d' % self.result) + raise self.RunError('launch_sync()') return self.result def respawn(self): @@ -357,6 +357,11 @@ self.process_obj.stdin.write(cmd.encode("utf-8")) self.process_obj.stdin.flush() + def RunError(self, msg_prefix): + 'Get a log.Error filled in with Result information. Use when program is terminated and result !=0' + msg = '%s: local process exited with status %d' % (msg_prefix, self.result) + return log.Error(msg) + class RemoteProcess(Process): def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, popen_args, remote_env={}, **popen_kwargs): @@ -382,6 +387,17 @@ ' '.join(self.popen_args))] self.dbg(self.popen_args, dir=self.run_dir, conf=self.popen_kwargs, remote_env=self.remote_env) + def RunError(self, msg_prefix): + 'Overwrite Process method with ssh extra information' + # man ssh states it returns 255 if an ssh error occurred: + msg = msg_prefix + ': ' + if self.result == 255: + tail = ' (' + (self.get_stderr_tail(tail=1, prefix='') or '').rstrip() + ')' + msg += 'local ssh process exited with status %d%s' % (self.result, tail if 'ssh' in tail else '') + else: + msg += 'remote process exited with status %d' % (self.result) + return log.Error(msg) + class NetNSProcess(Process): NETNS_EXEC_BIN = 'osmo-gsm-tester_netns_exec.sh' def __init__(self, name, run_dir, netns, popen_args, **popen_kwargs): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18659 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: Ia16c7dec96f70d761600ad6a50d9df8382d9c2c8 Gerrit-Change-Number: 18659 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 Jun 4 15:09:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 15:09:20 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Get rid of 'resources' global variable References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18660 ) Change subject: testenv: Get rid of 'resources' global variable ...................................................................... testenv: Get rid of 'resources' global variable Change-Id: Id7576d21d0f9de29dd9bc4211eaf9b9ec634c990 --- M selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py M selftest/suite_test/suitedirA/test_suite/mo_sms.py M src/osmo_gsm_tester/testenv.py 3 files changed, 14 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/60/18660/1 diff --git a/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py b/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py index c9558d8..c3a1dd5 100644 --- a/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py +++ b/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py @@ -1,14 +1,14 @@ -ip_address = resources.ip_address() -nitb = resources.nitb() -bts = resources.bts() -ms_mo = resources.modem() -ms_mt = resources.modem() +ip_address = tenv.ip_address() +nitb = tenv.nitb() +bts = tenv.bts() +ms_mo = tenv.modem() +ms_mt = tenv.modem() nitb.start(ip_address) bts.start(nitb) -nitb.add_subscriber(ms_mo, resources.msisdn()) -nitb.add_subscriber(ms_mt, resources.msisdn()) +nitb.add_subscriber(ms_mo, tenv.msisdn()) +nitb.add_subscriber(ms_mt, tenv.msisdn()) ms_mo.start() ms_mt.start() diff --git a/selftest/suite_test/suitedirA/test_suite/mo_sms.py b/selftest/suite_test/suitedirA/test_suite/mo_sms.py index 768a99c..48923d2 100644 --- a/selftest/suite_test/suitedirA/test_suite/mo_sms.py +++ b/selftest/suite_test/suitedirA/test_suite/mo_sms.py @@ -1,9 +1,9 @@ -ip_address = resources.ip_address() -nitb = resources.nitb() -bts = resources.bts() -ms_ext = resources.msisdn() -fake_ext = resources.msisdn() -ms = resources.modem() +ip_address = tenv.ip_address() +nitb = tenv.nitb() +bts = tenv.bts() +ms_ext = tenv.msisdn() +fake_ext = tenv.msisdn() +ms = tenv.modem() nitb.configure(ip_address, bts) bts.configure(nitb) diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 789e291..f3ac02e 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -30,7 +30,6 @@ from .core.event_loop import MainLoop suite = None -resources = None log = None dbg = None err = None @@ -330,10 +329,9 @@ from .core.event_loop import MainLoop from .obj.sms import Sms as Sms_class - global test, resources, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv + global test, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv test = _test - resources = suite_run.reserved_resources # TODO: remove this global, only used in selftest log = test.log dbg = test.dbg err = test.err -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18660 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: Id7576d21d0f9de29dd9bc4211eaf9b9ec634c990 Gerrit-Change-Number: 18660 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 Jun 4 15:39:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 15:39:14 +0000 Subject: Change in osmo-gsm-tester[master]: WIP References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 ) Change subject: WIP ...................................................................... WIP Change-Id: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309 --- A selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl A selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl D selftest/template_test/osmo-nitb.cfg.tmpl M selftest/template_test/template_test.ok M selftest/template_test/template_test.py M src/osmo_gsm_tester/core/template.py 6 files changed, 214 insertions(+), 85 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/61/18661/1 diff --git a/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl b/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl new file mode 100644 index 0000000..efafbca --- /dev/null +++ b/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl @@ -0,0 +1 @@ +test-overlay-works-fine-only-available ${one.two.works} diff --git a/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl b/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl new file mode 100644 index 0000000..5c9400b --- /dev/null +++ b/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl @@ -0,0 +1 @@ +test-overlay-works-fine ${foo.bar.works} diff --git a/selftest/template_test/osmo-nitb.cfg.tmpl b/selftest/template_test/osmo-nitb.cfg.tmpl deleted file mode 100644 index c0a5c46..0000000 --- a/selftest/template_test/osmo-nitb.cfg.tmpl +++ /dev/null @@ -1,82 +0,0 @@ -! -! OpenBSC configuration saved from vty -! -password foo -! -log stderr - logging filter all 1 - logging color 0 - logging print category 0 - logging print extended-timestamp 1 - logging level set-all debug -! -line vty - no login - bind ${vty_bind_ip} -! -e1_input - e1_line 0 driver ipa - ipa bind ${abis_bind_ip} -network - network country code ${mcc} - mobile network code ${mnc} - short name ${net_name_short} - long name ${net_name_long} - auth policy ${net_auth_policy} - location updating reject cause 13 - encryption ${encryption} - neci 1 - rrlp mode none - mm info 1 - handover 0 - handover window rxlev averaging 10 - handover window rxqual averaging 1 - handover window rxlev neighbor averaging 10 - handover power budget interval 6 - handover power budget hysteresis 3 - handover maximum distance 9999 -smpp - local-tcp-ip ${nitb.ip_address.addr} 2775 - system-id test-nitb - policy ${smsc.policy} - %for esme in esme_list: - esme ${esme.system_id} - % if esme.password == '': - no password - % else: - password ${esme.password} - % endif - default-route - %endfor -ctrl - bind ${ctrl_bind_ip} -%for bts in bts_list: - bts ${loop.index} - type ${bts.type} - band ${bts.band} - cell_identity ${bts.cell_identity} - location_area_code ${bts.location_area_code} - training_sequence_code 7 - base_station_id_code ${bts.base_station_id_code} - ms max power 15 - cell reselection hysteresis 4 - rxlev access min 0 - channel allocator ascending - rach tx integer 9 - rach max transmission 7 - ip.access unit_id ${bts.unit_id} 0 - oml ip.access stream_id ${bts.stream_id} line 0 - gprs mode none -% for trx in bts.trx_list: - trx ${loop.index} - rf_locked 0 - arfcn ${trx.arfcn} - nominal power 23 - max_power_red ${trx.max_power_red} - rsl e1 tei 0 -% for ts in trx.timeslot_list: - timeslot ${loop.index} - phys_chan_config ${ts.phys_chan_config} -% endfor -% endfor -%endfor diff --git a/selftest/template_test/template_test.ok b/selftest/template_test/template_test.ok index 88b77b0..718ef6e 100644 --- a/selftest/template_test/template_test.ok +++ b/selftest/template_test/template_test.ok @@ -191,3 +191,201 @@ - Testing: expect to fail on invalid templates dir sucess: setting non-existing templates dir raised RuntimeError +- Testing: template directory overlay (still can find default one?) +cnf Templates: DBG: rendering osmo-nitb.cfg.tmpl +! Configuration rendered by osmo-gsm-tester +password foo +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print extended-timestamp 1 + logging level set-all debug +! +line vty + no login + bind val_ip_address +! +e1_input + e1_line 0 driver ipa + ipa bind val_ip_address +network + network country code val_mcc + mobile network code val_mnc + short name val_short_name + long name val_long_name + auth policy val_auth_policy + location updating reject cause 13 + encryption val_encryption + neci 1 + rrlp mode none + mm info 1 + handover 0 + handover window rxlev averaging 10 + handover window rxqual averaging 1 + handover window rxlev neighbor averaging 10 + handover power budget interval 6 + handover power budget hysteresis 3 + handover maximum distance 9999 + bts 0 + type val_type_bts0 + band val_band_bts0 + cell_identity val_bts.cell_identity_bts0 + location_area_code val_bts.location_area_code_bts0 + training_sequence_code 7 + base_station_id_code val_bts.base_station_id_code_bts0 + ms max power 33 + cell reselection hysteresis 4 + rxlev access min 0 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + ip.access unit_id val_bts.unit_id_bts0 0 + oml ip.access stream_id val_bts.stream_id_bts0 line 0 + gprs mode gprs + gprs routing area val_bts.routing_area_code_bts0 + gprs network-control-order nc1 + gprs cell bvci val_bts.bvci_bts0 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei val_bts.bvci_bts0 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci val_bts.bvci_bts0 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts0 + trx 0 + rf_locked 0 + arfcn val_trx_arfcn_trx0 + nominal power val_trx_nominal_power_trx0 + max_power_red val_trx_max_power_red_trx0 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + trx 1 + rf_locked 0 + arfcn val_trx_arfcn_trx1 + nominal power val_trx_nominal_power_trx1 + max_power_red val_trx_max_power_red_trx1 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + bts 1 + type val_type_bts1 + band val_band_bts1 + cell_identity val_bts.cell_identity_bts1 + location_area_code val_bts.location_area_code_bts1 + training_sequence_code 7 + base_station_id_code val_bts.base_station_id_code_bts1 + ms max power 33 + cell reselection hysteresis 4 + rxlev access min 0 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + ip.access unit_id val_bts.unit_id_bts1 0 + oml ip.access stream_id val_bts.stream_id_bts1 line 0 + gprs mode gprs + gprs routing area val_bts.routing_area_code_bts1 + gprs network-control-order nc1 + gprs cell bvci val_bts.bvci_bts1 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei val_bts.bvci_bts1 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci val_bts.bvci_bts1 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts1 + trx 0 + rf_locked 0 + arfcn val_trx_arfcn_trx0 + nominal power val_trx_nominal_power_trx0 + max_power_red val_trx_max_power_red_trx0 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + trx 1 + rf_locked 0 + arfcn val_trx_arfcn_trx1 + nominal power val_trx_nominal_power_trx1 + max_power_red val_trx_max_power_red_trx1 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 +smpp + local-tcp-ip val_ip_address 2775 + system-id test-nitb + policy val_smsc_policy + esme val_system_id_esme0 + password val_password_esme0 + default-route + esme val_system_id_esme1 + no password + default-route +ctrl + bind val_ip_address + +- Testing: template directory overlay (present in both dirs) +cnf Templates: DBG: rendering osmo-bsc.cfg.tmpl +test-overlay-works-fine yes + +- Testing: template directory overlay (present only on overlay dir) +cnf Templates: DBG: rendering mytemplate.cfg.tmpl +test-overlay-works-fine-only-available yes + diff --git a/selftest/template_test/template_test.py b/selftest/template_test/template_test.py index 747d508..52976e5 100755 --- a/selftest/template_test/template_test.py +++ b/selftest/template_test/template_test.py @@ -92,4 +92,13 @@ print('sucess: setting non-existing templates dir raised RuntimeError\n') pass +mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') +template.set_templates_dir(mytemplatedir, template.default_templates_dir()) +print('- Testing: template directory overlay (still can find default one?)') +print(template.render('osmo-nitb.cfg', vals)) +print('- Testing: template directory overlay (present in both dirs)') +print(template.render('osmo-bsc.cfg', dict(foo=dict(bar=dict(works='yes'))))) +print('- Testing: template directory overlay (present only on overlay dir)') +print(template.render('mytemplate.cfg', dict(one=dict(two=dict(works='yes'))))) + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/core/template.py b/src/osmo_gsm_tester/core/template.py index 2bf4fed..82985ef 100644 --- a/src/osmo_gsm_tester/core/template.py +++ b/src/osmo_gsm_tester/core/template.py @@ -27,12 +27,14 @@ _lookup = None _logger = log.Origin(log.C_CNF, 'no templates dir set') +def default_templates_dir(): + return os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates') + def set_templates_dir(*templates_dirs): global _lookup global _logger if not templates_dirs: - # default templates dir is relative to this source file - templates_dirs = [os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates')] + raise RuntimeError('templates dir list is empty!') for d in templates_dirs: if not os.path.isdir(d): raise RuntimeError('templates dir is not a dir: %r' @@ -45,7 +47,7 @@ ".tmpl" is added to the name to look it up in the templates dir.''' global _lookup if _lookup is None: - set_templates_dir() + set_templates_dir(default_templates_dir()) tmpl_name = name + '.tmpl' log.ctx(tmpl_name) template = _lookup.get_template(tmpl_name) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 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: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309 Gerrit-Change-Number: 18661 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 Jun 4 15:39:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 15:39:51 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: template: Test existing overlay dir features In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 ) Change subject: selftest: template: Test existing overlay dir features ...................................................................... selftest: template: Test existing overlay dir features Change-Id: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309 --- A selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl A selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl D selftest/template_test/osmo-nitb.cfg.tmpl M selftest/template_test/template_test.ok M selftest/template_test/template_test.py M src/osmo_gsm_tester/core/template.py 6 files changed, 214 insertions(+), 85 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/61/18661/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 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: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309 Gerrit-Change-Number: 18661 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 17:45:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 17:45:19 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Support test overlaying a directory to look for templates References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 ) Change subject: testenv: Support test overlaying a directory to look for templates ...................................................................... testenv: Support test overlaying a directory to look for templates This way tests which require a very specific config file can override specific template files used by object classes. Change-Id: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd --- M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirB/suiteC/suite.conf A selftest/suite_test/suitedirB/suiteC/test_template_overlay.py M src/osmo_gsm_tester/core/template.py M src/osmo_gsm_tester/obj/stp_osmo.py M src/osmo_gsm_tester/testenv.py 6 files changed, 70 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/62/18662/1 diff --git a/selftest/suite_test/suite_test.py b/selftest/suite_test/suite_test.py index 4b32439..260b9c4 100755 --- a/selftest/suite_test/suite_test.py +++ b/selftest/suite_test/suite_test.py @@ -105,6 +105,13 @@ results = s.run_tests('test_suite_params.py') print(report.suite_to_text(s)) +print('- test with template overlay') +trial = FakeTrial() +s_def = suite.load('suiteC') +s = suite.SuiteRun(trial, 'suiteC', s_def) +results = s.run_tests('test_template_overlay.py') +print(report.suite_to_text(s)) + print('\n- graceful exit.') #deleting generated tmp trial dir: shutil.rmtree(example_trial_dir, ignore_errors=True) diff --git a/selftest/suite_test/suitedirB/suiteC/suite.conf b/selftest/suite_test/suitedirB/suiteC/suite.conf new file mode 100644 index 0000000..44be3fc --- /dev/null +++ b/selftest/suite_test/suitedirB/suiteC/suite.conf @@ -0,0 +1,6 @@ +resources: + ip_address: + - addr: 10.42.42.2 # stp + +defaults: + timeout: 60s diff --git a/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py new file mode 100644 index 0000000..2dd9378 --- /dev/null +++ b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * + +import os +import sys + +print('- Testing: expect to fail on invalid templates overlay dir') +try: + #stp.configure() + tenv.set_overlay_template_dir(os.path.join(os.path.dirname(__file__), 'nonexistent-templatedir')) + sys.stderr.write('Error: setting non-existing templates dir should raise RuntimeError\n') + assert(False) +except RuntimeError: + print('sucess: setting non-existing templates dir raised RuntimeError\n') + pass + +mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') +tenv.set_overlay_template_dir(mytemplatedir) + +stp = tenv.stp() +print('- Testing: original template') +stp.configure() + +print('- Testing:overlay template') +mytemplatefile = os.path.join(mytemplatedir, 'osmo-stp.cfg.tmpl') +try: + with open(mytemplatefile, 'w') as f: + r = """! Overlay Config file genreated by test +line vty + no login + bind ${stp.ip_address.addr} + """ + f.write(r) + + # After creating the new template, it won\'t be used until + # set_overlay_template_dir() is called again because the templates are + # somehow cached by mako. + print('- After creating the new template, still old template is used' ) + stp.configure() + print('- New template is used after re-generating cache with set_overlay_template_dir:') + tenv.set_overlay_template_dir(mytemplatedir) + stp.configure() +finally: + os.remove(mytemplatefile) diff --git a/src/osmo_gsm_tester/core/template.py b/src/osmo_gsm_tester/core/template.py index 82985ef..8178c13 100644 --- a/src/osmo_gsm_tester/core/template.py +++ b/src/osmo_gsm_tester/core/template.py @@ -31,6 +31,8 @@ return os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates') def set_templates_dir(*templates_dirs): + '''Set a lit of directories to look for templates. It must be called + everytime a template file is updated.''' global _lookup global _logger if not templates_dirs: diff --git a/src/osmo_gsm_tester/obj/stp_osmo.py b/src/osmo_gsm_tester/obj/stp_osmo.py index 1382016..83a2f75 100644 --- a/src/osmo_gsm_tester/obj/stp_osmo.py +++ b/src/osmo_gsm_tester/obj/stp_osmo.py @@ -35,7 +35,6 @@ def start(self): self.log('Starting osmo-stp') - self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.configure() inst = util.Dir(os.path.abspath(self.testenv.suite().trial().get_inst('osmo-stp'))) @@ -61,6 +60,7 @@ self.process.launch() def configure(self): + self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.config_file = self.run_dir.new_file('osmo-stp.cfg') self.dbg(config_file=self.config_file) diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index f3ac02e..7ca854b 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -24,6 +24,7 @@ import sys from .core import process +from .core import template from .core import log as log_module from .core import process as process_module from .core import resource @@ -139,6 +140,7 @@ self.suite_run.reserved_resources.put_all() MainLoop.unregister_poll_func(self.poll) self.test_import_modules_cleanup() + self.set_overlay_template_dir(None) def config_suite_specific(self): return self.suite_run.config_suite_specific() @@ -146,6 +148,14 @@ def config_test_specific(self): return self.suite_run.config_suite_specific().get(self._test.module_name(), {}) + def set_overlay_template_dir(self, template_dir=None): + '''Overlay a directory on top of default one when looking for + directories. It must be called everytime a template file is updated.''' + if template_dir is None: + template.set_templates_dir(template.default_templates_dir()) + else: + template.set_templates_dir(template_dir, template.default_templates_dir()) + def prompt(self, *msgs, **msg_details): 'ask for user interaction. Do not use in tests that should run automatically!' if msg_details: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 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: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd Gerrit-Change-Number: 18662 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 Jun 4 17:45:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 17:45:20 +0000 Subject: Change in osmo-gsm-tester[master]: doc: manual: Write initial Test API section References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18663 ) Change subject: doc: manual: Write initial Test API section ...................................................................... doc: manual: Write initial Test API section Change-Id: I86bc9a8a0b5ff50e72c21a4bd8a857830bd84c4c --- M doc/manuals/chapters/test_api.adoc 1 file changed, 105 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/63/18663/1 diff --git a/doc/manuals/chapters/test_api.adoc b/doc/manuals/chapters/test_api.adoc index f541231..f159348 100644 --- a/doc/manuals/chapters/test_api.adoc +++ b/doc/manuals/chapters/test_api.adoc @@ -1,4 +1,107 @@ == Test API -*TODO* (in the meantime, look at src/osmo_gsm_tester/test.py, as well as -suite.py, which calls the test's setup() function to get an idea) +All tests run by {app-name} are python script files. On top of usual python +standard features, {app-name} provides a set of public APIs and tools that +these tests can use in order to interact with the core of {app-name}, like +creating object classes, run processes synchronously or asynchronously, wait for +events, retrieve specific configuration, etc. This section aims at documenting +the most relevant tools available for tests. + +First of all, it is important to avoid blocking out of the core's main event loop in +the test, since doing that will prevent {app-name} core functionalities to work +properly, such as control of asynchronous processes. + +To get access to those functionalities, a test must import a test environment +previously prepared by {app-name} before the test was started: +[source,python] +---- +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * +---- + +After the test environment is imported, aome usual functionalities are available +directly under the global scope. Specially noticeable is the existence of object +_tenv_, which provides access to most of the functionalities. + +The test can simply ask {app-name} to sleep some time, while giving control back +to {app-name} core's mainloop: +[source,python] +---- +sleep(3) # sleep for 3 seconds +---- + +One can also wait for events in the background, for instance launch a child +process locally in the same host and wait for its termination: +[source,python] +---- +proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') <1> +tenv.remember_to_stop(proc) <2> +proc.launch() <3> +proc.wait() <4> +---- +<1> Create process object. This line doesn't yet runs it. +<2> Make sure the core will kill the process if this test fails +<3> Start process asynchronously +<4> wait until process is done. One could waiting generically here too: _wait(proc.terminated)_ + +If running asynchronously is not needed, one can run synchronously in an easy +way: +[source,python] +---- +proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') +proc.launch_sync() +---- + +One can also log output using either the regular _print_ function from python, +or using {app-name} specific functions available: +[source,python] +---- +log('this is a regular log message') +dbg('this is a dbg message, only printed on outputs where dbg is enabled') +err('outputs log message for non-expected events') +print('this is the same as log()') +---- + +The test also gains access to suite and/or test specific configuration through +different APIs: +[source,python] +---- +test_config = tenv.config_test_specific() +threshold = int(test_config.get('threshold', 2)) +suite_config = tenv.config_suite_specific() +foobar = suite_config['foobar'] +---- + +A test requiring a really specific config file for an object class it is going +to run can provide its own template files by overlaying an own directory +containing them on top of the usual default directory where object class +templates are (_osmo-gsm-tester.git/src/osmo_gsm_tester/obj/templates/_): +[source,python] +---- +tenv.set_overlay_template_dir(os.path.join(os.path.dirname(__file__), 'mytemplatedir')) +---- + +Several tests in a suite can also share code by using some APIs provided by +{app-names}. The shared python code must be placed in files under the 'lib/' +subdirectory in the suite directory where the test belongs to. +[source,python] +---- +# File containing function foobar() available under ${suite_dir}/lib/testlib.py: +import testlib +tenv.test_import_modules_register_for_cleanup(testlib) +from testlib import foobar +---- + +For a complete set of features and how to use them, one can have a look at real +examples present in {app-name} git repository under the _sysmocom/_ directory. +Besides those, have a look too a _testenv.py_ file, which implements the 'tenv' +object available to tests. + +=== Test verdict + +In general, a test reaching the end of the file and returning control to +{app-name} core will be flagged as a successful test (PASS). + +If an exception is thrown from within the test file and propagated to +{app-name}, the test will be considered as failed and {app-name} will store all +failure related information from the caught exception. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18663 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: I86bc9a8a0b5ff50e72c21a4bd8a857830bd84c4c Gerrit-Change-Number: 18663 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 Jun 4 17:55:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 17:55:19 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Support test overlaying a directory to look for templates In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 to look at the new patch set (#2). Change subject: testenv: Support test overlaying a directory to look for templates ...................................................................... testenv: Support test overlaying a directory to look for templates This way tests which require a very specific config file can override specific template files used by object classes. Change-Id: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirB/suiteC/suite.conf A selftest/suite_test/suitedirB/suiteC/test_template_overlay.py M src/osmo_gsm_tester/core/template.py M src/osmo_gsm_tester/obj/stp_osmo.py M src/osmo_gsm_tester/testenv.py 8 files changed, 175 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/62/18662/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 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: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd Gerrit-Change-Number: 18662 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 Jun 4 18:03:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 4 Jun 2020 18:03:36 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Support test overlaying a directory to look for templates In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 to look at the new patch set (#3). Change subject: testenv: Support test overlaying a directory to look for templates ...................................................................... testenv: Support test overlaying a directory to look for templates This way tests which require a very specific config file can override specific template files used by object classes. Change-Id: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirB/suiteC/mytemplatedir/.gitignore A selftest/suite_test/suitedirB/suiteC/suite.conf A selftest/suite_test/suitedirB/suiteC/test_template_overlay.py M src/osmo_gsm_tester/core/template.py M src/osmo_gsm_tester/obj/stp_osmo.py M src/osmo_gsm_tester/testenv.py 9 files changed, 181 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/62/18662/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 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: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd Gerrit-Change-Number: 18662 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 Jun 4 19:15:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:02 +0000 Subject: Change in osmo-bts[master]: vty: get rid of unused ournode_{exit, end}_cmd declarations References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18664 ) Change subject: vty: get rid of unused ournode_{exit,end}_cmd declarations ...................................................................... vty: get rid of unused ournode_{exit,end}_cmd declarations Change-Id: Id6fde5976d31dff4cee72473c597638b3c08dbb2 --- M include/osmo-bts/vty.h 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/64/18664/1 diff --git a/include/osmo-bts/vty.h b/include/osmo-bts/vty.h index eab58d6..8eb76a8 100644 --- a/include/osmo-bts/vty.h +++ b/include/osmo-bts/vty.h @@ -14,9 +14,6 @@ TRX_NODE, }; -extern struct cmd_element ournode_exit_cmd; -extern struct cmd_element ournode_end_cmd; - extern struct cmd_element cfg_bts_auto_band_cmd; extern struct cmd_element cfg_bts_no_auto_band_cmd; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id6fde5976d31dff4cee72473c597638b3c08dbb2 Gerrit-Change-Number: 18664 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 Jun 4 19:15:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:03 +0000 Subject: Change in osmo-bts[master]: vty: cosmetic: make an error message more informative References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18665 ) Change subject: vty: cosmetic: make an error message more informative ...................................................................... vty: cosmetic: make an error message more informative Change-Id: I9aeb1780b6a64f7bec80ecb243bd01b47cf4ef24 --- M src/common/vty.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/18665/1 diff --git a/src/common/vty.c b/src/common/vty.c index c2cbeb5..d94a927 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -414,9 +414,11 @@ struct gsm_bts *bts = vty->index; int band = gsm_band_parse(argv[0]); + /* This should not happen with the recent versions of libosmovty, + * but old versions may pass incomplete choice values like 'GSM9'. */ if (band < 0) { - vty_out(vty, "%% BAND %d is not a valid GSM band%s", - band, VTY_NEWLINE); + vty_out(vty, "%% BAND '%s' is not a valid GSM band%s", + argv[0], VTY_NEWLINE); return CMD_WARNING; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9aeb1780b6a64f7bec80ecb243bd01b47cf4ef24 Gerrit-Change-Number: 18665 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 Jun 4 19:15:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:03 +0000 Subject: Change in osmo-bts[master]: vty: use gsm48_chan_mode_name() from libosmocore References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18666 ) Change subject: vty: use gsm48_chan_mode_name() from libosmocore ...................................................................... vty: use gsm48_chan_mode_name() from libosmocore Change-Id: I18cdaa26a674bd9279a4ea1946aefc6969404139 --- M src/common/vty.c 1 file changed, 1 insertion(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/66/18666/1 diff --git a/src/common/vty.c b/src/common/vty.c index d94a927..a57f3b5 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1106,19 +1106,6 @@ return CMD_SUCCESS; } -/* FIXME: move this to libosmogsm */ -static const struct value_string gsm48_cmode_names[] = { - { GSM48_CMODE_SIGN, "signalling" }, - { GSM48_CMODE_SPEECH_V1, "FR or HR" }, - { GSM48_CMODE_SPEECH_EFR, "EFR" }, - { GSM48_CMODE_SPEECH_AMR, "AMR" }, - { GSM48_CMODE_DATA_14k5, "CSD(14k5)" }, - { GSM48_CMODE_DATA_12k0, "CSD(12k0)" }, - { GSM48_CMODE_DATA_6k0, "CSD(6k0)" }, - { GSM48_CMODE_DATA_3k6, "CSD(3k6)" }, - { 0, NULL } -}; - /* call vty_out() to print a string like " as TCH/H" for dynamic timeslots. * Don't do anything if the ts is not dynamic. */ static void vty_out_dyn_ts_status(struct vty *vty, struct gsm_bts_trx_ts *ts) @@ -1185,7 +1172,7 @@ ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), VTY_NEWLINE); vty_out(vty, " Channel Mode / Codec: %s%s", - get_value_string(gsm48_cmode_names, lchan->tch_mode), + gsm48_chan_mode_name(lchan->tch_mode), VTY_NEWLINE); if (lchan->abis_ip.bound_ip) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I18cdaa26a674bd9279a4ea1946aefc6969404139 Gerrit-Change-Number: 18666 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 Jun 4 19:15:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:04 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused supports_egprs_11bit_rach References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18667 ) Change subject: gsm_data_shared: drop unused supports_egprs_11bit_rach ...................................................................... gsm_data_shared: drop unused supports_egprs_11bit_rach Change-Id: I5fa3aa1cb384f72a9deb3715ba78c199307dd6ec --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/18667/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 53a6d7a..c6e6440 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -640,7 +640,6 @@ /* Not entirely sure how ip.access specific this is */ struct { - uint8_t supports_egprs_11bit_rach; enum bts_gprs_mode mode; struct { struct gsm_abis_mo mo; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5fa3aa1cb384f72a9deb3715ba78c199307dd6ec Gerrit-Change-Number: 18667 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 Jun 4 19:15:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:04 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused enum bts_gprs_mode References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18668 ) Change subject: gsm_data_shared: drop unused enum bts_gprs_mode ...................................................................... gsm_data_shared: drop unused enum bts_gprs_mode Change-Id: Ied91acd3ae480c2e7c85f8d5436babf5a8329a04 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/18668/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index c6e6440..2fdcb81 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -65,12 +65,6 @@ GSM_HOOK_RR_SECURITY, }; -enum bts_gprs_mode { - BTS_GPRS_NONE = 0, - BTS_GPRS_GPRS = 1, - BTS_GPRS_EGPRS = 2, -}; - struct gsm_lchan; struct osmo_rtp_socket; struct pcu_sock_state; @@ -640,7 +634,6 @@ /* Not entirely sure how ip.access specific this is */ struct { - enum bts_gprs_mode mode; struct { struct gsm_abis_mo mo; uint16_t nsei; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ied91acd3ae480c2e7c85f8d5436babf5a8329a04 Gerrit-Change-Number: 18668 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 Jun 4 19:15:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:04 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused channel request reason definitions References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18669 ) Change subject: gsm_data_shared: drop unused channel request reason definitions ...................................................................... gsm_data_shared: drop unused channel request reason definitions Change-Id: I9a680d4a60dbdd82dc31fbd06c6ecd2240945c68 --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c 2 files changed, 0 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/69/18669/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 2fdcb81..b5c6000 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -30,16 +30,6 @@ #define SI2Q_MAX_LEN 160 #define SI2Q_MIN_LEN 18 -/* Channel Request reason */ -enum gsm_chreq_reason_t { - GSM_CHREQ_REASON_EMERG, - GSM_CHREQ_REASON_PAG, - GSM_CHREQ_REASON_CALL, - GSM_CHREQ_REASON_LOCATION_UPD, - GSM_CHREQ_REASON_OTHER, - GSM_CHREQ_REASON_PDCH, -}; - /* lchans 0..3 are SDCCH in combined channel configuration, use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */ #define CCCH_LCHAN 4 @@ -790,13 +780,11 @@ enum gsm_bts_type_variant str2btsvariant(const char *arg); const char *btsvariant2str(enum gsm_bts_type_variant v); -extern const struct value_string gsm_chreq_descs[]; extern const struct value_string gsm_pchant_names[13]; extern const struct value_string gsm_pchant_descs[13]; const char *gsm_pchan_name(enum gsm_phys_chan_config c); enum gsm_phys_chan_config gsm_pchan_parse(const char *name); const char *gsm_lchant_name(enum gsm_chan_t c); -const char *gsm_chreq_name(enum gsm_chreq_reason_t c); char *gsm_trx_name(const struct gsm_bts_trx *trx); char *gsm_ts_name(const struct gsm_bts_trx_ts *ts); char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts); diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index d141282..dc27e4f 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -113,16 +113,6 @@ { 0, NULL } }; -const struct value_string gsm_chreq_descs[] = { - { GSM_CHREQ_REASON_EMERG, "emergency call" }, - { GSM_CHREQ_REASON_PAG, "answer to paging" }, - { GSM_CHREQ_REASON_CALL, "call re-establishment" }, - { GSM_CHREQ_REASON_LOCATION_UPD,"Location updating" }, - { GSM_CHREQ_REASON_PDCH, "one phase packet access" }, - { GSM_CHREQ_REASON_OTHER, "other" }, - { 0, NULL } -}; - const struct value_string gsm_pchant_names[13] = { { GSM_PCHAN_NONE, "NONE" }, { GSM_PCHAN_CCCH, "CCCH" }, @@ -188,20 +178,6 @@ return get_value_string(lchan_s_names, s); } -static const struct value_string chreq_names[] = { - { GSM_CHREQ_REASON_EMERG, "EMERGENCY" }, - { GSM_CHREQ_REASON_PAG, "PAGING" }, - { GSM_CHREQ_REASON_CALL, "CALL" }, - { GSM_CHREQ_REASON_LOCATION_UPD,"LOCATION_UPDATE" }, - { GSM_CHREQ_REASON_OTHER, "OTHER" }, - { 0, NULL } -}; - -const char *gsm_chreq_name(enum gsm_chreq_reason_t c) -{ - return get_value_string(chreq_names, c); -} - struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num) { struct gsm_bts *bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9a680d4a60dbdd82dc31fbd06c6ecd2240945c68 Gerrit-Change-Number: 18669 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 Jun 4 19:15:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:05 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused HARDCODED_{ARFCN, BSIC} References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18670 ) Change subject: gsm_data_shared: get rid of unused HARDCODED_{ARFCN,BSIC} ...................................................................... gsm_data_shared: get rid of unused HARDCODED_{ARFCN,BSIC} Change-Id: I7e7298bc661d3d3160f03c32d36e98484c8aa79c --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/70/18670/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index b5c6000..1fe79d0 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -37,9 +37,6 @@ #define TRX_NR_TS 8 #define TS_MAX_LCHAN 8 -#define HARDCODED_ARFCN 123 -#define HARDCODED_BSIC 0x3f /* NCC = 7 / BCC = 7 */ - /* for multi-drop config */ #define HARDCODED_BTS0_TS 1 #define HARDCODED_BTS1_TS 6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7e7298bc661d3d3160f03c32d36e98484c8aa79c Gerrit-Change-Number: 18670 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 Jun 4 19:15:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:05 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused HARDCODED_BTS{0, 1, 2}_TS References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18671 ) Change subject: gsm_data_shared: get rid of unused HARDCODED_BTS{0,1,2}_TS ...................................................................... gsm_data_shared: get rid of unused HARDCODED_BTS{0,1,2}_TS Change-Id: I8f91681d9102f9a2ab09e75c4f8b44c37dd8c0d4 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/18671/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 1fe79d0..8113a34 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -37,11 +37,6 @@ #define TRX_NR_TS 8 #define TS_MAX_LCHAN 8 -/* for multi-drop config */ -#define HARDCODED_BTS0_TS 1 -#define HARDCODED_BTS1_TS 6 -#define HARDCODED_BTS2_TS 11 - #define MAX_VERSION_LENGTH 64 #define MAX_BTS_FEATURES 128 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f91681d9102f9a2ab09e75c4f8b44c37dd8c0d4 Gerrit-Change-Number: 18671 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 Jun 4 19:15:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:05 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused enum gsm_hooks References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18672 ) Change subject: gsm_data_shared: get rid of unused enum gsm_hooks ...................................................................... gsm_data_shared: get rid of unused enum gsm_hooks Change-Id: Ib35fc7772babd3bf09dedf1a44e16a07bcc089f0 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/18672/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 8113a34..45feda6 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -41,12 +41,6 @@ #define MAX_BTS_FEATURES 128 -enum gsm_hooks { - GSM_HOOK_NM_SWLOAD, - GSM_HOOK_RR_PAGING, - GSM_HOOK_RR_SECURITY, -}; - struct gsm_lchan; struct osmo_rtp_socket; struct pcu_sock_state; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib35fc7772babd3bf09dedf1a44e16a07bcc089f0 Gerrit-Change-Number: 18672 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 Jun 4 19:15:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:05 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop declaration of non-existing gsm_parse_reg() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18673 ) Change subject: gsm_data_shared: drop declaration of non-existing gsm_parse_reg() ...................................................................... gsm_data_shared: drop declaration of non-existing gsm_parse_reg() Change-Id: I2a53ec4b599a7845e49d484f4cd061d7e67c3a28 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/18673/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 45feda6..ee73952 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -1,7 +1,6 @@ #ifndef _GSM_DATA_SHAREDH #define _GSM_DATA_SHAREDH -#include #include #include @@ -814,12 +813,6 @@ /* return the gsm_lchan for the CBCH (if it exists at all) */ struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts); -/* - * help with parsing regexps - */ -int gsm_parse_reg(void *ctx, regex_t *reg, char **str, - int argc, const char **argv) __attribute__ ((warn_unused_result)); - #define BSIC2BCC(bsic) ((bsic) & 0x3) static inline uint8_t gsm_ts_tsc(const struct gsm_bts_trx_ts *ts) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2a53ec4b599a7845e49d484f4cd061d7e67c3a28 Gerrit-Change-Number: 18673 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 Jun 4 19:15:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:06 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused A38_XOR_{MIN, MAX, COMP128}_KEY_LEN References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18674 ) Change subject: gsm_data_shared: drop unused A38_XOR_{MIN,MAX,COMP128}_KEY_LEN ...................................................................... gsm_data_shared: drop unused A38_XOR_{MIN,MAX,COMP128}_KEY_LEN Change-Id: If4802d30f7c40a359c4d130a754dd762181f122e --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/18674/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index ee73952..1788ac6 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -70,9 +70,6 @@ }; #define MAX_A5_KEY_LEN (128/8) -#define A38_XOR_MIN_KEY_LEN 12 -#define A38_XOR_MAX_KEY_LEN 16 -#define A38_COMP128_KEY_LEN 16 #define RSL_ENC_ALG_A5(x) (x+1) #define MAX_EARFCN_LIST 32 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If4802d30f7c40a359c4d130a754dd762181f122e Gerrit-Change-Number: 18674 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 Jun 4 19:15:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:06 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused MAX_EARFCN_LIST References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18675 ) Change subject: gsm_data_shared: drop unused MAX_EARFCN_LIST ...................................................................... gsm_data_shared: drop unused MAX_EARFCN_LIST Change-Id: I8927ee178fe204c3598d574391e1cabfe5d6334a --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/75/18675/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 1788ac6..9b12d41 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -71,7 +71,6 @@ #define MAX_A5_KEY_LEN (128/8) #define RSL_ENC_ALG_A5(x) (x+1) -#define MAX_EARFCN_LIST 32 /* is the data link established? who established it? */ #define LCHAN_SAPI_UNUSED 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8927ee178fe204c3598d574391e1cabfe5d6334a Gerrit-Change-Number: 18675 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 Jun 4 19:15:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:06 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED, MS, NET, REL} References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18676 ) Change subject: gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED,MS,NET,REL} ...................................................................... gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED,MS,NET,REL} Change-Id: I431844fa69245fca43b1acdaf91229a172878db0 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/76/18676/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 9b12d41..453a1eb 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -72,12 +72,6 @@ #define MAX_A5_KEY_LEN (128/8) #define RSL_ENC_ALG_A5(x) (x+1) -/* is the data link established? who established it? */ -#define LCHAN_SAPI_UNUSED 0 -#define LCHAN_SAPI_MS 1 -#define LCHAN_SAPI_NET 2 -#define LCHAN_SAPI_REL 3 - /* state of a logical channel */ enum gsm_lchan_state { LCHAN_S_NONE, /* channel is not active */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I431844fa69245fca43b1acdaf91229a172878db0 Gerrit-Change-Number: 18676 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 Jun 4 19:15:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:06 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused struct bts_codec_conf References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18677 ) Change subject: gsm_data_shared: drop unused struct bts_codec_conf ...................................................................... gsm_data_shared: drop unused struct bts_codec_conf Change-Id: Ic7187eeb252b327a4d8d1d593758587007d8b891 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/77/18677/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 453a1eb..d914733 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -102,12 +102,6 @@ uint8_t inv_rssi; }; -struct bts_codec_conf { - uint8_t hr; - uint8_t efr; - uint8_t amr; -}; - struct amr_mode { uint8_t mode; uint8_t threshold; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic7187eeb252b327a4d8d1d593758587007d8b891 Gerrit-Change-Number: 18677 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 Jun 4 19:15:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:07 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop meaningless comments References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18678 ) Change subject: gsm_data_shared: drop meaningless comments ...................................................................... gsm_data_shared: drop meaningless comments Change-Id: I8bf88249ef88c283df16fd21a0ad5613801a826f --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/78/18678/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index d914733..da1dc36 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -83,7 +83,6 @@ LCHAN_S_INACTIVE, /* channel is set inactive */ }; -/* BTS ONLY */ #define MAX_NUM_UL_MEAS 104 #define LC_UL_M_F_L1_VALID (1 << 0) #define LC_UL_M_F_RES_VALID (1 << 1) @@ -114,7 +113,6 @@ struct amr_mode bts_mode[4]; uint8_t num_modes; }; -/* /BTS ONLY */ enum lchan_csd_mode { LCHAN_CSD_M_NT, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8bf88249ef88c283df16fd21a0ad5613801a826f Gerrit-Change-Number: 18678 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 Jun 4 19:15:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:07 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18679 ) Change subject: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan ...................................................................... gsm_data_shared: drop unused sacch_deact from struct gsm_lchan Change-Id: I93c6bebbf715076c774248596089c77511733acc --- M include/osmo-bts/gsm_data_shared.h M src/common/l1sap.c 2 files changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/79/18679/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index da1dc36..d830758 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -160,9 +160,6 @@ /* AMR bits */ uint8_t mr_bts_lv[7]; - /* Established data link layer services */ - int sacch_deact; - struct { uint32_t bound_ip; uint32_t connect_ip; diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 99aa11b..84d4859 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1749,7 +1749,6 @@ } } - lchan->sacch_deact = 0; lchan->s = lchan->ts->trx->bts->radio_link_timeout; rc = l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_ACTIVATE, 0); @@ -1796,8 +1795,6 @@ LOGPLCHAN(lchan, DL1C, LOGL_INFO, "deactivating sacch chan_nr=%s trx=%d\n", rsl_chan_nr_str(chan_nr), trx->nr); - lchan->sacch_deact = 1; - return l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_DEACTIVATE, 1); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c6bebbf715076c774248596089c77511733acc Gerrit-Change-Number: 18679 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 Jun 4 19:15:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:15:08 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... rsl: refactor handling of RSL_IE_MR_CONFIG - get rid of gsm_lchan::mr_bts_lv, it's never used anyway, - check IE length in amr_parse_mr_conf() before parsing, - check return code of amr_parse_mr_conf(). Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca --- M include/osmo-bts/gsm_data_shared.h M src/common/amr.c M src/common/rsl.c 3 files changed, 21 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/80/18680/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index d830758..0300592 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -157,9 +157,6 @@ uint8_t key[MAX_A5_KEY_LEN]; } encr; - /* AMR bits */ - uint8_t mr_bts_lv[7]; - struct { uint32_t bound_ip; uint32_t connect_ip; diff --git a/src/common/amr.c b/src/common/amr.c index 05d1aaa..494bf67 100644 --- a/src/common/amr.c +++ b/src/common/amr.c @@ -78,13 +78,17 @@ int amr_parse_mr_conf(struct amr_multirate_conf *amr_mrc, const uint8_t *mr_conf, unsigned int len) { - uint8_t mr_version = mr_conf[0] >> 5; uint8_t num_codecs = 0; int i, j = 0; - if (mr_version != 1) { - LOGP(DRSL, LOGL_ERROR, "AMR Multirate Version %u unknown\n", - mr_version); + /* Length restrictions as per 10.5.2.21aa */ + if (len < 4 || len > 8) { + LOGP(DRSL, LOGL_ERROR, "AMR Multirate Version has odd length (%u)\n", len); + goto ret_einval; + } + + if ((mr_conf[0] >> 5) != 1) { + LOGP(DRSL, LOGL_ERROR, "AMR Multirate Version %u unknown\n", (mr_conf[0] >> 5)); goto ret_einval; } diff --git a/src/common/rsl.c b/src/common/rsl.c index 41dd243..f057a89 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1209,17 +1209,16 @@ } /* 9.3.52 MultiRate Configuration */ if (TLVP_PRESENT(&tp, RSL_IE_MR_CONFIG)) { - if (TLVP_LEN(&tp, RSL_IE_MR_CONFIG) > sizeof(lchan->mr_bts_lv) - 1) { + rc = amr_parse_mr_conf(&lchan->tch.amr_mr, + TLVP_VAL(&tp, RSL_IE_MR_CONFIG), + TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); + if (rc < 0) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Error parsing MultiRate conf IE\n"); rsl_tx_error_report(msg->trx, RSL_ERR_IE_CONTENT, &dch->chan_nr, NULL, msg); return rsl_tx_chan_act_acknack(lchan, RSL_ERR_IE_CONTENT); } - memcpy(lchan->mr_bts_lv, TLVP_VAL(&tp, RSL_IE_MR_CONFIG) - 1, - TLVP_LEN(&tp, RSL_IE_MR_CONFIG) + 1); - amr_parse_mr_conf(&lchan->tch.amr_mr, TLVP_VAL(&tp, RSL_IE_MR_CONFIG), - TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); - amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), - &lchan->tch.amr_mr); + + amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), &lchan->tch.amr_mr); lchan->tch.last_cmr = AMR_CMR_NONE; } /* 9.3.53 MultiRate Control */ @@ -1556,6 +1555,7 @@ struct gsm_lchan *lchan = msg->lchan; struct rsl_ie_chan_mode *cm; struct tlv_parsed tp; + int rc; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1588,17 +1588,16 @@ /* 9.3.52 MultiRate Configuration */ if (TLVP_PRESENT(&tp, RSL_IE_MR_CONFIG)) { - if (TLVP_LEN(&tp, RSL_IE_MR_CONFIG) > sizeof(lchan->mr_bts_lv) - 1) { + rc = amr_parse_mr_conf(&lchan->tch.amr_mr, + TLVP_VAL(&tp, RSL_IE_MR_CONFIG), + TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); + if (rc < 0) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Error parsing MultiRate conf IE\n"); rsl_tx_error_report(msg->trx, RSL_ERR_IE_CONTENT, &dch->chan_nr, NULL, msg); return rsl_tx_mode_modif_nack(lchan, RSL_ERR_IE_CONTENT);; } - memcpy(lchan->mr_bts_lv, TLVP_VAL(&tp, RSL_IE_MR_CONFIG) - 1, - TLVP_LEN(&tp, RSL_IE_MR_CONFIG) + 1); - amr_parse_mr_conf(&lchan->tch.amr_mr, TLVP_VAL(&tp, RSL_IE_MR_CONFIG), - TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); - amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), - &lchan->tch.amr_mr); + + amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), &lchan->tch.amr_mr); lchan->tch.last_cmr = AMR_CMR_NONE; } /* 9.3.53 MultiRate Control */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 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 Jun 4 19:34:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:34:07 +0000 Subject: Change in osmo-bts[master]: doc/examples: remove virtual/openbsc-virtual.cfg References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18681 ) Change subject: doc/examples: remove virtual/openbsc-virtual.cfg ...................................................................... doc/examples: remove virtual/openbsc-virtual.cfg This is not the right place to ship configuration examples for other projects, and definitely not for abandoned ones. Change-Id: Ib165b16f948126df8023bb42ad5d6d4b2fc11e6a --- D doc/examples/virtual/openbsc-virtual.cfg 1 file changed, 0 insertions(+), 151 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/81/18681/1 diff --git a/doc/examples/virtual/openbsc-virtual.cfg b/doc/examples/virtual/openbsc-virtual.cfg deleted file mode 100644 index be79d58..0000000 --- a/doc/examples/virtual/openbsc-virtual.cfg +++ /dev/null @@ -1,151 +0,0 @@ -! -! OpenBSC (0.15.0.629-34f0-dirty) configuration saved from vty -!! -! -log stderr - logging filter all 1 - logging color 0 - logging print category 1 - logging timestamp 1 - logging level all info - logging level rll notice - logging level cc notice - logging level mm debug - logging level rr notice - logging level rsl notice - logging level nm info - logging level mncc notice - logging level pag notice - logging level meas notice - logging level sccp notice - logging level msc notice - logging level mgcp notice - logging level ho notice - logging level db notice - logging level ref notice - logging level gprs debug - logging level ns info - logging level bssgp debug - logging level llc debug - logging level sndcp debug - logging level nat notice - logging level ctrl notice - logging level smpp debug - logging level filter debug - logging level ranap debug - logging level sua debug - 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 -! -stats interval 5 -! -line vty - no login -! -e1_input - e1_line 0 driver ipa - e1_line 0 port 0 - no e1_line 0 keepalive -network - network country code 262 - mobile network code 42 - short name OpenBSC - long name OpenBSC - auth policy accept-all - authorized-regexp .* - location updating reject cause 13 - encryption a5 0 - neci 1 - paging any use tch 0 - rrlp mode ms-based - mm info 1 - handover 0 - handover window rxlev averaging 10 - handover window rxqual averaging 1 - handover window rxlev neighbor averaging 10 - handover power budget interval 6 - handover power budget hysteresis 3 - handover maximum distance 9999 - timer t3101 10 - timer t3103 0 - timer t3105 0 - timer t3107 0 - timer t3109 4 - timer t3111 0 - timer t3113 60 - timer t3115 0 - timer t3117 0 - timer t3119 0 - timer t3122 10 - timer t3141 0 - subscriber-keep-in-ram 0 - bts 0 - type sysmobts - band DCS1800 - cell_identity 6969 - location_area_code 1 - base_station_id_code 63 - ms max power 0 - cell reselection hysteresis 4 - rxlev access min 0 - periodic location update 30 - radio-link-timeout 32 - channel allocator descending - rach tx integer 9 - rach max transmission 7 - channel-descrption attach 1 - channel-descrption bs-pa-mfrms 5 - channel-descrption bs-ag-blks-res 1 - ip.access unit_id 6969 0 - oml ip.access stream_id 255 line 0 - neighbor-list mode automatic - codec-support fr - gprs mode none - no force-combined-si - trx 0 - rf_locked 0 - arfcn 666 - nominal power 0 - max_power_red 0 - rsl e1 tei 0 - timeslot 0 - phys_chan_config CCCH+SDCCH4 - hopping enabled 0 - timeslot 1 - phys_chan_config SDCCH8 - hopping enabled 0 - timeslot 2 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 3 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 4 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 5 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 6 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 7 - phys_chan_config TCH/F - hopping enabled 0 -mncc-int - default-codec tch-f fr - default-codec tch-h hr -nitb - subscriber-create-on-demand - subscriber-create-on-demand random 1 24 - assign-tmsi -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib165b16f948126df8023bb42ad5d6d4b2fc11e6a Gerrit-Change-Number: 18681 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 Jun 4 19:47:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 19:47:43 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop forward declaration of struct vty References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18682 ) Change subject: gsm_data_shared: drop forward declaration of struct vty ...................................................................... gsm_data_shared: drop forward declaration of struct vty Change-Id: I12b178d73e19761d16a6ef8e2a16243a23e1bf04 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/82/18682/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 0300592..2d45e2f 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -402,8 +402,6 @@ TRX_PHY_VERSION, }; -struct vty; - /* N. B: always add new features to the end of the list (right before _NUM_BTS_FEAT) to avoid breaking compatibility with BTS compiled against earlier version of this header. Also make sure that the description strings gsm_bts_features_descs[] in gsm_data_shared.c are also updated accordingly! */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I12b178d73e19761d16a6ef8e2a16243a23e1bf04 Gerrit-Change-Number: 18682 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 Jun 4 20:20:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 20:20:50 +0000 Subject: Change in osmo-bts[master]: vty: fix bts_dump_vty(): properly print OML stream ID (TEI) References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18683 ) Change subject: vty: fix bts_dump_vty(): properly print OML stream ID (TEI) ...................................................................... vty: fix bts_dump_vty(): properly print OML stream ID (TEI) Change-Id: I80ceba60e4b48d5bc68de71a2b2a2036b1e78f57 --- M include/osmo-bts/gsm_data_shared.h M src/common/vty.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/83/18683/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 2d45e2f..dda7cf0 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -533,7 +533,6 @@ int ms_max_power; /* how do we talk OML with this TRX? */ - uint8_t oml_tei; struct e1inp_sign_link *oml_link; struct timespec oml_conn_established_timestamp; diff --git a/src/common/vty.c b/src/common/vty.c index a57f3b5..1d74b36 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -856,7 +856,8 @@ bts->description ? bts->description : "(null)", VTY_NEWLINE); vty_out(vty, " Unit ID: %u/%u/0, OML Stream ID 0x%02x%s", bts->ip_access.site_id, bts->ip_access.bts_id, - bts->oml_tei, VTY_NEWLINE); + bts->oml_link ? bts->oml_link->tei : 0x00, + VTY_NEWLINE); vty_out(vty, " NM State: "); net_dump_nmstate(vty, &bts->mo.nm_state); vty_out(vty, " Site Mgr NM State: "); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I80ceba60e4b48d5bc68de71a2b2a2036b1e78f57 Gerrit-Change-Number: 18683 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 Jun 4 20:20:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 20:20:50 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused *nmh from struct gsm_bts References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18684 ) Change subject: gsm_data_shared: drop unused *nmh from struct gsm_bts ...................................................................... gsm_data_shared: drop unused *nmh from struct gsm_bts Change-Id: I57e9146cfc3274847b50caa44b09b5f06f0cf00b --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/84/18684/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index dda7cf0..2a0e222 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -537,8 +537,6 @@ struct timespec oml_conn_established_timestamp; /* Abis network management O&M handle */ - struct abis_nm_h *nmh; - struct gsm_abis_mo mo; /* number of this BTS on given E1 link */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57e9146cfc3274847b50caa44b09b5f06f0cf00b Gerrit-Change-Number: 18684 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 Jun 4 20:20:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 20:20:51 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused dtxu from struct gsm_bts References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18685 ) Change subject: gsm_data_shared: drop unused dtxu from struct gsm_bts ...................................................................... gsm_data_shared: drop unused dtxu from struct gsm_bts Change-Id: Ic2ddbf04bac7ced900a4e5e532206652dae64059 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/85/18685/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 2a0e222..9f95f1f 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -543,7 +543,6 @@ uint8_t bts_nr; /* DTX features of this BTS */ - enum gsm48_dtx_mode dtxu; bool dtxd; /* CCCH is on C0 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic2ddbf04bac7ced900a4e5e532206652dae64059 Gerrit-Change-Number: 18685 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 Jun 4 20:20:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 20:20:51 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18686 ) Change subject: gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord ...................................................................... gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord Change-Id: I7c8ddc4a9cfbbd1983e89fa261eaf4f32e15c6bd --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/86/18686/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 9f95f1f..a9d358b 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -592,8 +592,6 @@ } cell; struct gsm_bts_gprs_nsvc nsvc[2]; uint8_t rac; - uint8_t net_ctrl_ord; - bool ctrl_ack_type_use_block; } gprs; /* RACH NM values */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7c8ddc4a9cfbbd1983e89fa261eaf4f32e15c6bd Gerrit-Change-Number: 18686 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 Jun 4 20:20:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 20:20:51 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18687 ) Change subject: gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots ...................................................................... gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots Change-Id: I75ffc5c0c1f683adf0632bfe71ac51d1adfd97bd --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c 2 files changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/87/18687/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index a9d358b..2e10b67 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -594,10 +594,6 @@ uint8_t rac; } gprs; - /* RACH NM values */ - int rach_b_thresh; - int rach_ldavg_slots; - /* transceivers */ int num_trx; struct llist_head trx_list; diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index dc27e4f..dcf40d1 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -322,8 +322,6 @@ } bts->c0->ts[0].pchan = GSM_PCHAN_CCCH_SDCCH4; - bts->rach_b_thresh = -1; - bts->rach_ldavg_slots = -1; bts->features.data = &bts->_features_data[0]; bts->features.data_len = sizeof(bts->_features_data); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I75ffc5c0c1f683adf0632bfe71ac51d1adfd97bd Gerrit-Change-Number: 18687 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 Jun 4 20:20:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 20:20:52 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop force_combined_si & bcch_change_mark References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18688 ) Change subject: gsm_data_shared: drop force_combined_si & bcch_change_mark ...................................................................... gsm_data_shared: drop force_combined_si & bcch_change_mark Change-Id: I997ab5e9801af50708ce6dc35004da5e11cb926b --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c 2 files changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/88/18688/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 2e10b67..dc7d39f 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -598,10 +598,6 @@ int num_trx; struct llist_head trx_list; - /* SI related items */ - int force_combined_si; - int bcch_change_mark; - struct rate_ctr_group *ctrs; bool supp_meas_toa256; diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index dcf40d1..c05f59d 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -325,9 +325,6 @@ bts->features.data = &bts->_features_data[0]; bts->features.data_len = sizeof(bts->_features_data); - /* si handling */ - bts->bcch_change_mark = 1; - return bts; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I997ab5e9801af50708ce6dc35004da5e11cb926b Gerrit-Change-Number: 18688 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 Jun 4 20:41:55 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 4 Jun 2020 20:41:55 +0000 Subject: Change in osmo-bts[master]: scheduler: drop non-existing extern declarations References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18689 ) Change subject: scheduler: drop non-existing extern declarations ...................................................................... scheduler: drop non-existing extern declarations Change-Id: Ifa6fc5947e8fb7ec071a6567c275f5db5ab385f9 --- M include/osmo-bts/scheduler.h 1 file changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/89/18689/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index c026411..7a9da8f 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -148,13 +148,6 @@ struct l1sched_ts *l1sched_trx_get_ts(struct l1sched_trx *l1t, uint8_t tn); -/*! \brief how many frame numbers in advance we should send bursts to PHY */ -extern uint32_t trx_clock_advance; -/*! \brief advance RTS.ind to L2 by that many clocks */ -extern uint32_t trx_rts_advance; -/*! \brief last frame number as received from PHY */ -extern uint32_t transceiver_last_fn; - /*! \brief Initialize the scheduler data structures */ int trx_sched_init(struct l1sched_trx *l1t, struct gsm_bts_trx *trx); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifa6fc5947e8fb7ec071a6567c275f5db5ab385f9 Gerrit-Change-Number: 18689 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 Jun 4 22:13:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:13:42 +0000 Subject: Change in pysim[master]: commands.py: fix read_binary for lengths > 256 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/17848 ) Change subject: commands.py: fix read_binary for lengths > 256 ...................................................................... Patch Set 8: Code-Review+2 I just created a SIM card with 500 bytes large EF.OPLMNwAcT and I can coform it is working. We should move that card into the test setup as a second step. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a Gerrit-Change-Number: 17848 Gerrit-PatchSet: 8 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: guilly at gmail.com Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: herlesupreeth Gerrit-Comment-Date: Thu, 04 Jun 2020 22:13:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:13:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:13:47 +0000 Subject: Change in pysim[master]: commands.py: fix read_binary for lengths > 256 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/17848 ) Change subject: commands.py: fix read_binary for lengths > 256 ...................................................................... commands.py: fix read_binary for lengths > 256 fixed commit with commented changes Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a --- M pySim/commands.py 1 file changed, 11 insertions(+), 2 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/commands.py b/pySim/commands.py index e077289..7288b19 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -119,8 +119,17 @@ return (None, None) if length is None: length = self.__len(r) - offset - pdu = self.cla_byte + 'b0%04x%02x' % (offset, (min(256, length) & 0xff)) - return self._tp.send_apdu(pdu) + total_data = '' + while offset < length: + chunk_len = min(255, length-offset) + pdu = self.cla_byte + 'b0%04x%02x' % (offset, chunk_len) + data,sw = self._tp.send_apdu(pdu) + if sw == '9000': + total_data += data + offset += chunk_len + else: + raise ValueError('Failed to read (offset %d)' % (offset)) + return total_data, sw def update_binary(self, ef, data, offset=0, verify=False): self.select_file(ef) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie9c61caa1412606254b44a3a24f26ad44950e73a Gerrit-Change-Number: 17848 Gerrit-PatchSet: 8 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: guilly at gmail.com Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: herlesupreeth Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:14:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:14:30 +0000 Subject: Change in osmo-bts[master]: vty: get rid of unused ournode_{exit, end}_cmd declarations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18664 ) Change subject: vty: get rid of unused ournode_{exit,end}_cmd declarations ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id6fde5976d31dff4cee72473c597638b3c08dbb2 Gerrit-Change-Number: 18664 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:14: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 Jun 4 22:14:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:14:51 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused enum bts_gprs_mode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18668 ) Change subject: gsm_data_shared: drop unused enum bts_gprs_mode ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ied91acd3ae480c2e7c85f8d5436babf5a8329a04 Gerrit-Change-Number: 18668 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22: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 Jun 4 22:14:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:14:59 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused channel request reason definitions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18669 ) Change subject: gsm_data_shared: drop unused channel request reason definitions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9a680d4a60dbdd82dc31fbd06c6ecd2240945c68 Gerrit-Change-Number: 18669 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:14: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 Jun 4 22:15:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:09 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused HARDCODED_{ARFCN, BSIC} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18670 ) Change subject: gsm_data_shared: get rid of unused HARDCODED_{ARFCN,BSIC} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7e7298bc661d3d3160f03c32d36e98484c8aa79c Gerrit-Change-Number: 18670 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:15:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:15:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:14 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused HARDCODED_BTS{0, 1, 2}_TS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18671 ) Change subject: gsm_data_shared: get rid of unused HARDCODED_BTS{0,1,2}_TS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f91681d9102f9a2ab09e75c4f8b44c37dd8c0d4 Gerrit-Change-Number: 18671 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:15: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 Jun 4 22:15:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:21 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused enum gsm_hooks In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18672 ) Change subject: gsm_data_shared: get rid of unused enum gsm_hooks ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib35fc7772babd3bf09dedf1a44e16a07bcc089f0 Gerrit-Change-Number: 18672 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:15: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 Jun 4 22:15:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:31 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop declaration of non-existing gsm_parse_reg() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18673 ) Change subject: gsm_data_shared: drop declaration of non-existing gsm_parse_reg() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2a53ec4b599a7845e49d484f4cd061d7e67c3a28 Gerrit-Change-Number: 18673 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:15:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:15:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:35 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused A38_XOR_{MIN, MAX, COMP128}_KEY_LEN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18674 ) Change subject: gsm_data_shared: drop unused A38_XOR_{MIN,MAX,COMP128}_KEY_LEN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If4802d30f7c40a359c4d130a754dd762181f122e Gerrit-Change-Number: 18674 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22: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 Thu Jun 4 22:15:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:40 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused MAX_EARFCN_LIST In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18675 ) Change subject: gsm_data_shared: drop unused MAX_EARFCN_LIST ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8927ee178fe204c3598d574391e1cabfe5d6334a Gerrit-Change-Number: 18675 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:15:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:15:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:45 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED, MS, NET, REL} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18676 ) Change subject: gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED,MS,NET,REL} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I431844fa69245fca43b1acdaf91229a172878db0 Gerrit-Change-Number: 18676 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:15: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 Jun 4 22:15:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:48 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused struct bts_codec_conf In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18677 ) Change subject: gsm_data_shared: drop unused struct bts_codec_conf ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic7187eeb252b327a4d8d1d593758587007d8b891 Gerrit-Change-Number: 18677 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22: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 Thu Jun 4 22:15:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:15:57 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop meaningless comments In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18678 ) Change subject: gsm_data_shared: drop meaningless comments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8bf88249ef88c283df16fd21a0ad5613801a826f Gerrit-Change-Number: 18678 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:15:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:16:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:16:02 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18679 ) Change subject: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c6bebbf715076c774248596089c77511733acc Gerrit-Change-Number: 18679 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:16:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:16:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:16:43 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18679 ) Change subject: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan ...................................................................... Patch Set 1: you should actually remove gsm_data_shared.h; it dates back to ancient days where it actually was shared with the BSC. we have given up on this a long time ago and it should probably be merged into gsm_data.h -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c6bebbf715076c774248596089c77511733acc Gerrit-Change-Number: 18679 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:16: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 Thu Jun 4 22:17:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:17:37 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:17: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 Jun 4 22:17:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:17:43 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop forward declaration of struct vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18682 ) Change subject: gsm_data_shared: drop forward declaration of struct vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I12b178d73e19761d16a6ef8e2a16243a23e1bf04 Gerrit-Change-Number: 18682 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:17: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 Jun 4 22:17:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:17:56 +0000 Subject: Change in osmo-bts[master]: vty: fix bts_dump_vty(): properly print OML stream ID (TEI) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18683 ) Change subject: vty: fix bts_dump_vty(): properly print OML stream ID (TEI) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I80ceba60e4b48d5bc68de71a2b2a2036b1e78f57 Gerrit-Change-Number: 18683 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:17: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 Jun 4 22:18:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:18:04 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused *nmh from struct gsm_bts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18684 ) Change subject: gsm_data_shared: drop unused *nmh from struct gsm_bts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57e9146cfc3274847b50caa44b09b5f06f0cf00b Gerrit-Change-Number: 18684 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:18: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 Jun 4 22:18:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:18:07 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused dtxu from struct gsm_bts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18685 ) Change subject: gsm_data_shared: drop unused dtxu from struct gsm_bts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic2ddbf04bac7ced900a4e5e532206652dae64059 Gerrit-Change-Number: 18685 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:18: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 Jun 4 22:18:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:18:11 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18686 ) Change subject: gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7c8ddc4a9cfbbd1983e89fa261eaf4f32e15c6bd Gerrit-Change-Number: 18686 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:18: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 Jun 4 22:18:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:18:18 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18687 ) Change subject: gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I75ffc5c0c1f683adf0632bfe71ac51d1adfd97bd Gerrit-Change-Number: 18687 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 04 Jun 2020 22: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 Thu Jun 4 22:18:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:18:24 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop force_combined_si & bcch_change_mark In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18688 ) Change subject: gsm_data_shared: drop force_combined_si & bcch_change_mark ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I997ab5e9801af50708ce6dc35004da5e11cb926b Gerrit-Change-Number: 18688 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:18: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 Jun 4 22:18:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:18:33 +0000 Subject: Change in osmo-bts[master]: scheduler: drop non-existing extern declarations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18689 ) Change subject: scheduler: drop non-existing extern declarations ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifa6fc5947e8fb7ec071a6567c275f5db5ab385f9 Gerrit-Change-Number: 18689 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:18: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 Jun 4 22:19:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:19:27 +0000 Subject: Change in osmo-bts[master]: vty: cosmetic: make an error message more informative In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18665 ) Change subject: vty: cosmetic: make an error message more informative ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9aeb1780b6a64f7bec80ecb243bd01b47cf4ef24 Gerrit-Change-Number: 18665 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:19: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 Jun 4 22:19:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:19:39 +0000 Subject: Change in osmo-bts[master]: vty: use gsm48_chan_mode_name() from libosmocore In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18666 ) Change subject: vty: use gsm48_chan_mode_name() from libosmocore ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I18cdaa26a674bd9279a4ea1946aefc6969404139 Gerrit-Change-Number: 18666 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:19:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:19:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:19:48 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused supports_egprs_11bit_rach In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18667 ) Change subject: gsm_data_shared: drop unused supports_egprs_11bit_rach ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5fa3aa1cb384f72a9deb3715ba78c199307dd6ec Gerrit-Change-Number: 18667 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 04 Jun 2020 22:19:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 4 22:20:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:05 +0000 Subject: Change in osmo-bts[master]: vty: get rid of unused ournode_{exit, end}_cmd declarations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18664 ) Change subject: vty: get rid of unused ournode_{exit,end}_cmd declarations ...................................................................... vty: get rid of unused ournode_{exit,end}_cmd declarations Change-Id: Id6fde5976d31dff4cee72473c597638b3c08dbb2 --- M include/osmo-bts/vty.h 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/vty.h b/include/osmo-bts/vty.h index eab58d6..8eb76a8 100644 --- a/include/osmo-bts/vty.h +++ b/include/osmo-bts/vty.h @@ -14,9 +14,6 @@ TRX_NODE, }; -extern struct cmd_element ournode_exit_cmd; -extern struct cmd_element ournode_end_cmd; - extern struct cmd_element cfg_bts_auto_band_cmd; extern struct cmd_element cfg_bts_no_auto_band_cmd; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id6fde5976d31dff4cee72473c597638b3c08dbb2 Gerrit-Change-Number: 18664 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 Thu Jun 4 22:20:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:06 +0000 Subject: Change in osmo-bts[master]: vty: cosmetic: make an error message more informative In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18665 ) Change subject: vty: cosmetic: make an error message more informative ...................................................................... vty: cosmetic: make an error message more informative Change-Id: I9aeb1780b6a64f7bec80ecb243bd01b47cf4ef24 --- M src/common/vty.c 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/vty.c b/src/common/vty.c index c2cbeb5..d94a927 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -414,9 +414,11 @@ struct gsm_bts *bts = vty->index; int band = gsm_band_parse(argv[0]); + /* This should not happen with the recent versions of libosmovty, + * but old versions may pass incomplete choice values like 'GSM9'. */ if (band < 0) { - vty_out(vty, "%% BAND %d is not a valid GSM band%s", - band, VTY_NEWLINE); + vty_out(vty, "%% BAND '%s' is not a valid GSM band%s", + argv[0], VTY_NEWLINE); return CMD_WARNING; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9aeb1780b6a64f7bec80ecb243bd01b47cf4ef24 Gerrit-Change-Number: 18665 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 Thu Jun 4 22:20:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:07 +0000 Subject: Change in osmo-bts[master]: vty: use gsm48_chan_mode_name() from libosmocore In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18666 ) Change subject: vty: use gsm48_chan_mode_name() from libosmocore ...................................................................... vty: use gsm48_chan_mode_name() from libosmocore Change-Id: I18cdaa26a674bd9279a4ea1946aefc6969404139 --- M src/common/vty.c 1 file changed, 1 insertion(+), 14 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/vty.c b/src/common/vty.c index d94a927..a57f3b5 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1106,19 +1106,6 @@ return CMD_SUCCESS; } -/* FIXME: move this to libosmogsm */ -static const struct value_string gsm48_cmode_names[] = { - { GSM48_CMODE_SIGN, "signalling" }, - { GSM48_CMODE_SPEECH_V1, "FR or HR" }, - { GSM48_CMODE_SPEECH_EFR, "EFR" }, - { GSM48_CMODE_SPEECH_AMR, "AMR" }, - { GSM48_CMODE_DATA_14k5, "CSD(14k5)" }, - { GSM48_CMODE_DATA_12k0, "CSD(12k0)" }, - { GSM48_CMODE_DATA_6k0, "CSD(6k0)" }, - { GSM48_CMODE_DATA_3k6, "CSD(3k6)" }, - { 0, NULL } -}; - /* call vty_out() to print a string like " as TCH/H" for dynamic timeslots. * Don't do anything if the ts is not dynamic. */ static void vty_out_dyn_ts_status(struct vty *vty, struct gsm_bts_trx_ts *ts) @@ -1185,7 +1172,7 @@ ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), VTY_NEWLINE); vty_out(vty, " Channel Mode / Codec: %s%s", - get_value_string(gsm48_cmode_names, lchan->tch_mode), + gsm48_chan_mode_name(lchan->tch_mode), VTY_NEWLINE); if (lchan->abis_ip.bound_ip) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I18cdaa26a674bd9279a4ea1946aefc6969404139 Gerrit-Change-Number: 18666 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 Thu Jun 4 22:20:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:07 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused supports_egprs_11bit_rach In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18667 ) Change subject: gsm_data_shared: drop unused supports_egprs_11bit_rach ...................................................................... gsm_data_shared: drop unused supports_egprs_11bit_rach Change-Id: I5fa3aa1cb384f72a9deb3715ba78c199307dd6ec --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 53a6d7a..c6e6440 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -640,7 +640,6 @@ /* Not entirely sure how ip.access specific this is */ struct { - uint8_t supports_egprs_11bit_rach; enum bts_gprs_mode mode; struct { struct gsm_abis_mo mo; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5fa3aa1cb384f72a9deb3715ba78c199307dd6ec Gerrit-Change-Number: 18667 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 Thu Jun 4 22:20:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:07 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused enum bts_gprs_mode In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18668 ) Change subject: gsm_data_shared: drop unused enum bts_gprs_mode ...................................................................... gsm_data_shared: drop unused enum bts_gprs_mode Change-Id: Ied91acd3ae480c2e7c85f8d5436babf5a8329a04 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index c6e6440..2fdcb81 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -65,12 +65,6 @@ GSM_HOOK_RR_SECURITY, }; -enum bts_gprs_mode { - BTS_GPRS_NONE = 0, - BTS_GPRS_GPRS = 1, - BTS_GPRS_EGPRS = 2, -}; - struct gsm_lchan; struct osmo_rtp_socket; struct pcu_sock_state; @@ -640,7 +634,6 @@ /* Not entirely sure how ip.access specific this is */ struct { - enum bts_gprs_mode mode; struct { struct gsm_abis_mo mo; uint16_t nsei; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ied91acd3ae480c2e7c85f8d5436babf5a8329a04 Gerrit-Change-Number: 18668 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 Thu Jun 4 22:20:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:08 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused channel request reason definitions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18669 ) Change subject: gsm_data_shared: drop unused channel request reason definitions ...................................................................... gsm_data_shared: drop unused channel request reason definitions Change-Id: I9a680d4a60dbdd82dc31fbd06c6ecd2240945c68 --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c 2 files changed, 0 insertions(+), 36 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 2fdcb81..b5c6000 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -30,16 +30,6 @@ #define SI2Q_MAX_LEN 160 #define SI2Q_MIN_LEN 18 -/* Channel Request reason */ -enum gsm_chreq_reason_t { - GSM_CHREQ_REASON_EMERG, - GSM_CHREQ_REASON_PAG, - GSM_CHREQ_REASON_CALL, - GSM_CHREQ_REASON_LOCATION_UPD, - GSM_CHREQ_REASON_OTHER, - GSM_CHREQ_REASON_PDCH, -}; - /* lchans 0..3 are SDCCH in combined channel configuration, use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */ #define CCCH_LCHAN 4 @@ -790,13 +780,11 @@ enum gsm_bts_type_variant str2btsvariant(const char *arg); const char *btsvariant2str(enum gsm_bts_type_variant v); -extern const struct value_string gsm_chreq_descs[]; extern const struct value_string gsm_pchant_names[13]; extern const struct value_string gsm_pchant_descs[13]; const char *gsm_pchan_name(enum gsm_phys_chan_config c); enum gsm_phys_chan_config gsm_pchan_parse(const char *name); const char *gsm_lchant_name(enum gsm_chan_t c); -const char *gsm_chreq_name(enum gsm_chreq_reason_t c); char *gsm_trx_name(const struct gsm_bts_trx *trx); char *gsm_ts_name(const struct gsm_bts_trx_ts *ts); char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts); diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index d141282..dc27e4f 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -113,16 +113,6 @@ { 0, NULL } }; -const struct value_string gsm_chreq_descs[] = { - { GSM_CHREQ_REASON_EMERG, "emergency call" }, - { GSM_CHREQ_REASON_PAG, "answer to paging" }, - { GSM_CHREQ_REASON_CALL, "call re-establishment" }, - { GSM_CHREQ_REASON_LOCATION_UPD,"Location updating" }, - { GSM_CHREQ_REASON_PDCH, "one phase packet access" }, - { GSM_CHREQ_REASON_OTHER, "other" }, - { 0, NULL } -}; - const struct value_string gsm_pchant_names[13] = { { GSM_PCHAN_NONE, "NONE" }, { GSM_PCHAN_CCCH, "CCCH" }, @@ -188,20 +178,6 @@ return get_value_string(lchan_s_names, s); } -static const struct value_string chreq_names[] = { - { GSM_CHREQ_REASON_EMERG, "EMERGENCY" }, - { GSM_CHREQ_REASON_PAG, "PAGING" }, - { GSM_CHREQ_REASON_CALL, "CALL" }, - { GSM_CHREQ_REASON_LOCATION_UPD,"LOCATION_UPDATE" }, - { GSM_CHREQ_REASON_OTHER, "OTHER" }, - { 0, NULL } -}; - -const char *gsm_chreq_name(enum gsm_chreq_reason_t c) -{ - return get_value_string(chreq_names, c); -} - struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num) { struct gsm_bts *bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9a680d4a60dbdd82dc31fbd06c6ecd2240945c68 Gerrit-Change-Number: 18669 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 Thu Jun 4 22:20:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:08 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused HARDCODED_{ARFCN, BSIC} In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18670 ) Change subject: gsm_data_shared: get rid of unused HARDCODED_{ARFCN,BSIC} ...................................................................... gsm_data_shared: get rid of unused HARDCODED_{ARFCN,BSIC} Change-Id: I7e7298bc661d3d3160f03c32d36e98484c8aa79c --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index b5c6000..1fe79d0 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -37,9 +37,6 @@ #define TRX_NR_TS 8 #define TS_MAX_LCHAN 8 -#define HARDCODED_ARFCN 123 -#define HARDCODED_BSIC 0x3f /* NCC = 7 / BCC = 7 */ - /* for multi-drop config */ #define HARDCODED_BTS0_TS 1 #define HARDCODED_BTS1_TS 6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7e7298bc661d3d3160f03c32d36e98484c8aa79c Gerrit-Change-Number: 18670 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 Thu Jun 4 22:20:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:08 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused HARDCODED_BTS{0, 1, 2}_TS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18671 ) Change subject: gsm_data_shared: get rid of unused HARDCODED_BTS{0,1,2}_TS ...................................................................... gsm_data_shared: get rid of unused HARDCODED_BTS{0,1,2}_TS Change-Id: I8f91681d9102f9a2ab09e75c4f8b44c37dd8c0d4 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 1fe79d0..8113a34 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -37,11 +37,6 @@ #define TRX_NR_TS 8 #define TS_MAX_LCHAN 8 -/* for multi-drop config */ -#define HARDCODED_BTS0_TS 1 -#define HARDCODED_BTS1_TS 6 -#define HARDCODED_BTS2_TS 11 - #define MAX_VERSION_LENGTH 64 #define MAX_BTS_FEATURES 128 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f91681d9102f9a2ab09e75c4f8b44c37dd8c0d4 Gerrit-Change-Number: 18671 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 Thu Jun 4 22:20:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:08 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: get rid of unused enum gsm_hooks In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18672 ) Change subject: gsm_data_shared: get rid of unused enum gsm_hooks ...................................................................... gsm_data_shared: get rid of unused enum gsm_hooks Change-Id: Ib35fc7772babd3bf09dedf1a44e16a07bcc089f0 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 8113a34..45feda6 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -41,12 +41,6 @@ #define MAX_BTS_FEATURES 128 -enum gsm_hooks { - GSM_HOOK_NM_SWLOAD, - GSM_HOOK_RR_PAGING, - GSM_HOOK_RR_SECURITY, -}; - struct gsm_lchan; struct osmo_rtp_socket; struct pcu_sock_state; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib35fc7772babd3bf09dedf1a44e16a07bcc089f0 Gerrit-Change-Number: 18672 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 Thu Jun 4 22:20:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:09 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop declaration of non-existing gsm_parse_reg() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18673 ) Change subject: gsm_data_shared: drop declaration of non-existing gsm_parse_reg() ...................................................................... gsm_data_shared: drop declaration of non-existing gsm_parse_reg() Change-Id: I2a53ec4b599a7845e49d484f4cd061d7e67c3a28 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 45feda6..ee73952 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -1,7 +1,6 @@ #ifndef _GSM_DATA_SHAREDH #define _GSM_DATA_SHAREDH -#include #include #include @@ -814,12 +813,6 @@ /* return the gsm_lchan for the CBCH (if it exists at all) */ struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts); -/* - * help with parsing regexps - */ -int gsm_parse_reg(void *ctx, regex_t *reg, char **str, - int argc, const char **argv) __attribute__ ((warn_unused_result)); - #define BSIC2BCC(bsic) ((bsic) & 0x3) static inline uint8_t gsm_ts_tsc(const struct gsm_bts_trx_ts *ts) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2a53ec4b599a7845e49d484f4cd061d7e67c3a28 Gerrit-Change-Number: 18673 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 Thu Jun 4 22:20:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:09 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused A38_XOR_{MIN, MAX, COMP128}_KEY_LEN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18674 ) Change subject: gsm_data_shared: drop unused A38_XOR_{MIN,MAX,COMP128}_KEY_LEN ...................................................................... gsm_data_shared: drop unused A38_XOR_{MIN,MAX,COMP128}_KEY_LEN Change-Id: If4802d30f7c40a359c4d130a754dd762181f122e --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index ee73952..1788ac6 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -70,9 +70,6 @@ }; #define MAX_A5_KEY_LEN (128/8) -#define A38_XOR_MIN_KEY_LEN 12 -#define A38_XOR_MAX_KEY_LEN 16 -#define A38_COMP128_KEY_LEN 16 #define RSL_ENC_ALG_A5(x) (x+1) #define MAX_EARFCN_LIST 32 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If4802d30f7c40a359c4d130a754dd762181f122e Gerrit-Change-Number: 18674 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 Thu Jun 4 22:20:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:09 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused MAX_EARFCN_LIST In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18675 ) Change subject: gsm_data_shared: drop unused MAX_EARFCN_LIST ...................................................................... gsm_data_shared: drop unused MAX_EARFCN_LIST Change-Id: I8927ee178fe204c3598d574391e1cabfe5d6334a --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 1788ac6..9b12d41 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -71,7 +71,6 @@ #define MAX_A5_KEY_LEN (128/8) #define RSL_ENC_ALG_A5(x) (x+1) -#define MAX_EARFCN_LIST 32 /* is the data link established? who established it? */ #define LCHAN_SAPI_UNUSED 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8927ee178fe204c3598d574391e1cabfe5d6334a Gerrit-Change-Number: 18675 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 Thu Jun 4 22:20:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:09 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED, MS, NET, REL} In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18676 ) Change subject: gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED,MS,NET,REL} ...................................................................... gsm_data_shared: drop unused LCHAN_SAPI_{UNUSED,MS,NET,REL} Change-Id: I431844fa69245fca43b1acdaf91229a172878db0 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 9b12d41..453a1eb 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -72,12 +72,6 @@ #define MAX_A5_KEY_LEN (128/8) #define RSL_ENC_ALG_A5(x) (x+1) -/* is the data link established? who established it? */ -#define LCHAN_SAPI_UNUSED 0 -#define LCHAN_SAPI_MS 1 -#define LCHAN_SAPI_NET 2 -#define LCHAN_SAPI_REL 3 - /* state of a logical channel */ enum gsm_lchan_state { LCHAN_S_NONE, /* channel is not active */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I431844fa69245fca43b1acdaf91229a172878db0 Gerrit-Change-Number: 18676 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 Thu Jun 4 22:20:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:10 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused struct bts_codec_conf In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18677 ) Change subject: gsm_data_shared: drop unused struct bts_codec_conf ...................................................................... gsm_data_shared: drop unused struct bts_codec_conf Change-Id: Ic7187eeb252b327a4d8d1d593758587007d8b891 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 453a1eb..d914733 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -102,12 +102,6 @@ uint8_t inv_rssi; }; -struct bts_codec_conf { - uint8_t hr; - uint8_t efr; - uint8_t amr; -}; - struct amr_mode { uint8_t mode; uint8_t threshold; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic7187eeb252b327a4d8d1d593758587007d8b891 Gerrit-Change-Number: 18677 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 Thu Jun 4 22:20:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:11 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop meaningless comments In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18678 ) Change subject: gsm_data_shared: drop meaningless comments ...................................................................... gsm_data_shared: drop meaningless comments Change-Id: I8bf88249ef88c283df16fd21a0ad5613801a826f --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index d914733..da1dc36 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -83,7 +83,6 @@ LCHAN_S_INACTIVE, /* channel is set inactive */ }; -/* BTS ONLY */ #define MAX_NUM_UL_MEAS 104 #define LC_UL_M_F_L1_VALID (1 << 0) #define LC_UL_M_F_RES_VALID (1 << 1) @@ -114,7 +113,6 @@ struct amr_mode bts_mode[4]; uint8_t num_modes; }; -/* /BTS ONLY */ enum lchan_csd_mode { LCHAN_CSD_M_NT, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8bf88249ef88c283df16fd21a0ad5613801a826f Gerrit-Change-Number: 18678 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 Thu Jun 4 22:20:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 4 Jun 2020 22:20:11 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18679 ) Change subject: gsm_data_shared: drop unused sacch_deact from struct gsm_lchan ...................................................................... gsm_data_shared: drop unused sacch_deact from struct gsm_lchan Change-Id: I93c6bebbf715076c774248596089c77511733acc --- M include/osmo-bts/gsm_data_shared.h M src/common/l1sap.c 2 files changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index da1dc36..d830758 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -160,9 +160,6 @@ /* AMR bits */ uint8_t mr_bts_lv[7]; - /* Established data link layer services */ - int sacch_deact; - struct { uint32_t bound_ip; uint32_t connect_ip; diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 99aa11b..84d4859 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1749,7 +1749,6 @@ } } - lchan->sacch_deact = 0; lchan->s = lchan->ts->trx->bts->radio_link_timeout; rc = l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_ACTIVATE, 0); @@ -1796,8 +1795,6 @@ LOGPLCHAN(lchan, DL1C, LOGL_INFO, "deactivating sacch chan_nr=%s trx=%d\n", rsl_chan_nr_str(chan_nr), trx->nr); - lchan->sacch_deact = 1; - return l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_DEACTIVATE, 1); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I93c6bebbf715076c774248596089c77511733acc Gerrit-Change-Number: 18679 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 admin at opensuse.org Fri Jun 5 01:35:48 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 01:35:48 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ed9a18b3b20d_24392ae3da26c5f838534a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 200s] [1933/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/timer.c.o' -MF 'src/udm/udm at sta/timer.c.o.d' -o 'src/udm/udm at sta/timer.c.o' -c ../src/udm/timer.c [ 200s] [1934/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 200s] FAILED: src/udm/udm at sta/context.c.o [ 200s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 200s] ../src/udm/context.c: In function ?udm_ue_add?: [ 200s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 200s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 200s] ~~^ [ 200s] %d [ 200s] cc1: some warnings being treated as errors [ 200s] [1935/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 200s] [1936/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-build.c.o' -MF 'src/udm/udm at sta/nudr-build.c.o.d' -o 'src/udm/udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 200s] [1937/2112] cc -Isrc/pcrf/pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 200s] [1938/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 200s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 200s] [1940/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 200s] [1941/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 200s] ninja: build stopped: subcommand failed. [ 200s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 200s] debian/rules:11: recipe for target 'binary' failed [ 200s] make: *** [binary] Error 1 [ 200s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 200s] ### VM INTERACTION START ### [ 203s] [ 194.356481] sysrq: SysRq : Power Off [ 203s] [ 194.361061] reboot: Power down [ 204s] ### VM INTERACTION END ### [ 204s] [ 204s] lamb09 failed "build open5gs_1.2.5.20200605.dsc" at Fri Jun 5 01:35:41 UTC 2020. [ 204s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 5 01:36:22 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 01:36:22 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ed9a1a874b72_24392ae3da26c5f838546e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 253s] [1923/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 253s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 253s] [1925/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 253s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 253s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 253s] ../src/udm/context.c: In function ?udm_ue_add?: [ 253s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 253s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 253s] ~~^ [ 253s] %d [ 253s] cc1: some warnings being treated as errors [ 254s] [1926/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 254s] [1927/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 254s] [1928/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 254s] [1929/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 254s] [1930/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 254s] [1931/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/init.c.o' -MF 'src/udr/src at udr@@udr at sta/init.c.o.d' -o 'src/udr/src at udr@@udr at sta/init.c.o' -c ../src/udr/init.c [ 254s] [1932/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 254s] ninja: build stopped: subcommand failed. [ 254s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 254s] make: *** [debian/rules:11: binary] Error 1 [ 254s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 254s] ### VM INTERACTION START ### [ 258s] [ 248.373054] sysrq: SysRq : Power Off [ 258s] [ 248.387873] reboot: Power down [ 258s] ### VM INTERACTION END ### [ 258s] [ 258s] lamb52 failed "build open5gs_1.2.5.20200605.dsc" at Fri Jun 5 01:36:18 UTC 2020. [ 258s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 5 01:42:22 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 01:42:22 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ed9a31048ddc_24392ae3da26c5f8386327@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 222s] [1924/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -c ../src/udr/nnrf-handler.c [ 222s] [1925/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 222s] [1926/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 222s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 222s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 222s] ../src/udm/context.c: In function ?udm_ue_add?: [ 222s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 222s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 222s] ~~^ [ 222s] %d [ 222s] cc1: some warnings being treated as errors [ 222s] [1927/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 222s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 222s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 222s] [1930/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 222s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 222s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 223s] [1933/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 223s] ninja: build stopped: subcommand failed. [ 223s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 223s] make: *** [debian/rules:11: binary] Error 1 [ 223s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 223s] ### VM INTERACTION START ### [ 226s] [ 214.043409] sysrq: SysRq : Power Off [ 226s] [ 214.048201] reboot: Power down [ 226s] ### VM INTERACTION END ### [ 226s] [ 226s] lamb08 failed "build open5gs_1.2.5.20200605.dsc" at Fri Jun 5 01:42:14 UTC 2020. [ 226s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 5 01:43:32 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 01:43:32 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ed9a35338c82_24392ae3da26c5f8386718@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 299s] touch libfx2.lib [ 299s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 299s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 299s] Making all in src [ 299s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 299s] Making all in common [ 299s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 299s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 299s] /usr/bin/env: 'python': No such file or directory [ 299s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 299s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 299s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 299s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 299s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 299s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 299s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 299s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 299s] make[1]: *** [Makefile:554: all] Error 2 [ 299s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 299s] dh_auto_build: error: make -j1 returned exit code 2 [ 299s] make: *** [debian/rules:13: build] Error 25 [ 299s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 299s] ### VM INTERACTION START ### [ 302s] [ 286.177616] sysrq: SysRq : Power Off [ 302s] [ 286.187744] reboot: Power down [ 302s] ### VM INTERACTION END ### [ 302s] [ 302s] lamb10 failed "build libusrp_3.4.4.7.50ce.dsc" at Fri Jun 5 01:43:25 UTC 2020. [ 302s] -- 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 Jun 5 06:24:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 06:24:25 +0000 Subject: Change in osmo-bts[master]: doc/examples: remove virtual/openbsc-virtual.cfg 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/+/18681 to look at the new patch set (#2). Change subject: doc/examples: remove virtual/openbsc-virtual.cfg ...................................................................... doc/examples: remove virtual/openbsc-virtual.cfg This is not the right place to ship configuration examples for other projects, and definitely not for abandoned ones. Change-Id: Ib165b16f948126df8023bb42ad5d6d4b2fc11e6a --- M contrib/osmo-bts.spec.in M debian/osmo-bts-virtual.install M doc/examples/Makefile.am D doc/examples/virtual/openbsc-virtual.cfg 4 files changed, 1 insertion(+), 155 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/81/18681/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib165b16f948126df8023bb42ad5d6d4b2fc11e6a Gerrit-Change-Number: 18681 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 Jun 5 08:51:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 08:51:34 +0000 Subject: Change in osmo-bts[master]: doc/examples: remove virtual/openbsc-virtual.cfg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18681 ) Change subject: doc/examples: remove virtual/openbsc-virtual.cfg ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib165b16f948126df8023bb42ad5d6d4b2fc11e6a Gerrit-Change-Number: 18681 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 08:51: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 Jun 5 08:57:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 08:57:09 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c File src/common/amr.c: https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c at 135 PS1, Line 135: amr_mrc->bts_mode[2].threshold = before doing this we should check if "len > 4" -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 08:57: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 Fri Jun 5 09:01:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:01:47 +0000 Subject: Change in osmo-gsm-tester[master]: process: Fix wrong use of log.ctx(self) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18657 ) Change subject: process: Fix wrong use of log.ctx(self) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18657 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: I4ab7e8977fa9bad5c8956b7c1df1513b27bb5aa2 Gerrit-Change-Number: 18657 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 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 Fri Jun 5 09:01:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:01:49 +0000 Subject: Change in osmo-gsm-tester[master]: log: Improve log ctx information in log.Error exception In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18658 ) Change subject: log: Improve log ctx information in log.Error exception ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18658 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: I8873f67a2f3df21c4dd552c92510535bf95e2c9d Gerrit-Change-Number: 18658 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 09:01: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 Jun 5 09:01:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:01:50 +0000 Subject: Change in osmo-gsm-tester[master]: process: Improve launch_sync() exception due to process failing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18659 ) Change subject: process: Improve launch_sync() exception due to process failing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18659 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: Ia16c7dec96f70d761600ad6a50d9df8382d9c2c8 Gerrit-Change-Number: 18659 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 09: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 Fri Jun 5 09:01:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:01:52 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Get rid of 'resources' global variable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18660 ) Change subject: testenv: Get rid of 'resources' global variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18660 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: Id7576d21d0f9de29dd9bc4211eaf9b9ec634c990 Gerrit-Change-Number: 18660 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 09:01:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 09:01:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:01:54 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: template: Test existing overlay dir features In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 ) Change subject: selftest: template: Test existing overlay dir features ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 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: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309 Gerrit-Change-Number: 18661 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 09:01: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 Jun 5 09:01:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:01:56 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Support test overlaying a directory to look for templates In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 ) Change subject: testenv: Support test overlaying a directory to look for templates ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 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: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd Gerrit-Change-Number: 18662 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 09:01: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 Jun 5 09:01:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:01:58 +0000 Subject: Change in osmo-gsm-tester[master]: doc: manual: Write initial Test API section In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18663 ) Change subject: doc: manual: Write initial Test API section ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18663 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: I86bc9a8a0b5ff50e72c21a4bd8a857830bd84c4c Gerrit-Change-Number: 18663 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 09:01:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 09:03:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:03:06 +0000 Subject: Change in osmo-gsm-tester[master]: process: Fix wrong use of log.ctx(self) In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18657 ) Change subject: process: Fix wrong use of log.ctx(self) ...................................................................... process: Fix wrong use of log.ctx(self) That's not needed and will produce some parent loop detection in log.find_on_stack() if logging is called under that stack frame. Change-Id: I4ab7e8977fa9bad5c8956b7c1df1513b27bb5aa2 --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/process.py 2 files changed, 6 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index d60bf0b..8ae55d9 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -318,8 +318,12 @@ f = sys._getframe(2) if origin_or_str is None: f.f_locals.pop(LOG_CTX_VAR, None) - else: - f.f_locals[LOG_CTX_VAR] = origin_or_str + return + if isinstance(origin_or_str, Origin) and origin_or_str is f.f_locals.get('self'): + # Avoid adding log ctx in stack frame where Origin it is already "self", + # it is not needed and will make find_on_stack() to malfunction + raise Error('Don\'t use log.ctx(self), it\'s not needed!') + f.f_locals[LOG_CTX_VAR] = origin_or_str class OriginLoopError(Error): pass diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 320f9ec..36ed057 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -196,7 +196,6 @@ self.terminate() raise e if raise_nonsuccess and self.result != 0: - log.ctx(self) raise log.Error('Exited in error %d' % self.result) return self.result -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18657 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: I4ab7e8977fa9bad5c8956b7c1df1513b27bb5aa2 Gerrit-Change-Number: 18657 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 Fri Jun 5 09:03:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:03:06 +0000 Subject: Change in osmo-gsm-tester[master]: log: Improve log ctx information in log.Error exception In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18658 ) Change subject: log: Improve log ctx information in log.Error exception ...................................................................... log: Improve log ctx information in log.Error exception Before, it would show somethig like: """ osmo_gsm_tester.core.log.Error: Exited in error 255 """ Now: """ osmo_gsm_tester.core.log.Error: rm-remote-dir(pid=24820): Exited in error 255 [trial?4g:srsue-rftype at zmq+srsenb-rftype@zmq+mod-enb-nprb at 6?ping.py:9?ping.py?srsepc_10.42.42.118?host-jenkins at 10.42.42.110?rm-remote-dir(pid=24820)] """ Change-Id: I8873f67a2f3df21c4dd552c92510535bf95e2c9d --- M src/osmo_gsm_tester/core/log.py 1 file changed, 11 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 8ae55d9..2cf1af0 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -88,8 +88,17 @@ get_process_id = lambda: '%d-%d' % (os.getpid(), time.time()) class Error(Exception): - def __init__(self, *messages, **named_items): - super().__init__(compose_message(messages, named_items)) + def __init__(self, *messages, origin=None, **named_items): + msg = '' + if origin is None: + origin = Origin.find_on_stack(f=sys._getframe(1)) + if origin: + msg += origin.name() + ': ' + msg += compose_message(messages, named_items) + if origin and origin._parent is not None: + deeper_origins = origin.ancestry_str() + msg += ' [%s]' % deeper_origins + super().__init__(msg) class LogTarget: all_targets = [] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18658 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: I8873f67a2f3df21c4dd552c92510535bf95e2c9d Gerrit-Change-Number: 18658 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 Fri Jun 5 09:03:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:03:06 +0000 Subject: Change in osmo-gsm-tester[master]: process: Improve launch_sync() exception due to process failing In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18659 ) Change subject: process: Improve launch_sync() exception due to process failing ...................................................................... process: Improve launch_sync() exception due to process failing After this commit, in some situations ssh related errors are printed directly in the exception to quickly find cause of the issue. Example: FAIL: ping.py (5.0 sec) Error: rm-remote-dir(pid=25913): launch_sync(): local ssh process exited with status 255 (ssh: connect to host 10.42.42.110 port 22: No route to host) [trial?4g:srsue-rftype at zmq+srsenb-rftype@zmq+mod-enb-nprb at 6?ping.py:9?ping.py?srsepc_10.42.42.118?host-jenkins at 10.42.42.110?rm-remote-dir(pid=25913)] Change-Id: Ia16c7dec96f70d761600ad6a50d9df8382d9c2c8 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 17 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 36ed057..33ae69a 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -196,7 +196,7 @@ self.terminate() raise e if raise_nonsuccess and self.result != 0: - raise log.Error('Exited in error %d' % self.result) + raise self.RunError('launch_sync()') return self.result def respawn(self): @@ -357,6 +357,11 @@ self.process_obj.stdin.write(cmd.encode("utf-8")) self.process_obj.stdin.flush() + def RunError(self, msg_prefix): + 'Get a log.Error filled in with Result information. Use when program is terminated and result !=0' + msg = '%s: local process exited with status %d' % (msg_prefix, self.result) + return log.Error(msg) + class RemoteProcess(Process): def __init__(self, name, run_dir, remote_user, remote_host, remote_cwd, popen_args, remote_env={}, **popen_kwargs): @@ -382,6 +387,17 @@ ' '.join(self.popen_args))] self.dbg(self.popen_args, dir=self.run_dir, conf=self.popen_kwargs, remote_env=self.remote_env) + def RunError(self, msg_prefix): + 'Overwrite Process method with ssh extra information' + # man ssh states it returns 255 if an ssh error occurred: + msg = msg_prefix + ': ' + if self.result == 255: + tail = ' (' + (self.get_stderr_tail(tail=1, prefix='') or '').rstrip() + ')' + msg += 'local ssh process exited with status %d%s' % (self.result, tail if 'ssh' in tail else '') + else: + msg += 'remote process exited with status %d' % (self.result) + return log.Error(msg) + class NetNSProcess(Process): NETNS_EXEC_BIN = 'osmo-gsm-tester_netns_exec.sh' def __init__(self, name, run_dir, netns, popen_args, **popen_kwargs): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18659 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: Ia16c7dec96f70d761600ad6a50d9df8382d9c2c8 Gerrit-Change-Number: 18659 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 Fri Jun 5 09:03:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:03:07 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Get rid of 'resources' global variable In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18660 ) Change subject: testenv: Get rid of 'resources' global variable ...................................................................... testenv: Get rid of 'resources' global variable Change-Id: Id7576d21d0f9de29dd9bc4211eaf9b9ec634c990 --- M selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py M selftest/suite_test/suitedirA/test_suite/mo_sms.py M src/osmo_gsm_tester/testenv.py 3 files changed, 14 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py b/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py index c9558d8..c3a1dd5 100644 --- a/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py +++ b/selftest/suite_test/suitedirA/test_suite/mo_mt_sms.py @@ -1,14 +1,14 @@ -ip_address = resources.ip_address() -nitb = resources.nitb() -bts = resources.bts() -ms_mo = resources.modem() -ms_mt = resources.modem() +ip_address = tenv.ip_address() +nitb = tenv.nitb() +bts = tenv.bts() +ms_mo = tenv.modem() +ms_mt = tenv.modem() nitb.start(ip_address) bts.start(nitb) -nitb.add_subscriber(ms_mo, resources.msisdn()) -nitb.add_subscriber(ms_mt, resources.msisdn()) +nitb.add_subscriber(ms_mo, tenv.msisdn()) +nitb.add_subscriber(ms_mt, tenv.msisdn()) ms_mo.start() ms_mt.start() diff --git a/selftest/suite_test/suitedirA/test_suite/mo_sms.py b/selftest/suite_test/suitedirA/test_suite/mo_sms.py index 768a99c..48923d2 100644 --- a/selftest/suite_test/suitedirA/test_suite/mo_sms.py +++ b/selftest/suite_test/suitedirA/test_suite/mo_sms.py @@ -1,9 +1,9 @@ -ip_address = resources.ip_address() -nitb = resources.nitb() -bts = resources.bts() -ms_ext = resources.msisdn() -fake_ext = resources.msisdn() -ms = resources.modem() +ip_address = tenv.ip_address() +nitb = tenv.nitb() +bts = tenv.bts() +ms_ext = tenv.msisdn() +fake_ext = tenv.msisdn() +ms = tenv.modem() nitb.configure(ip_address, bts) bts.configure(nitb) diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 789e291..f3ac02e 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -30,7 +30,6 @@ from .core.event_loop import MainLoop suite = None -resources = None log = None dbg = None err = None @@ -330,10 +329,9 @@ from .core.event_loop import MainLoop from .obj.sms import Sms as Sms_class - global test, resources, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv + global test, log, dbg, err, wait, wait_no_raise, sleep, poll, prompt, Sms, process, tenv test = _test - resources = suite_run.reserved_resources # TODO: remove this global, only used in selftest log = test.log dbg = test.dbg err = test.err -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18660 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: Id7576d21d0f9de29dd9bc4211eaf9b9ec634c990 Gerrit-Change-Number: 18660 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 Fri Jun 5 09:03:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:03:07 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: template: Test existing overlay dir features In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 ) Change subject: selftest: template: Test existing overlay dir features ...................................................................... selftest: template: Test existing overlay dir features Change-Id: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309 --- A selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl A selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl D selftest/template_test/osmo-nitb.cfg.tmpl M selftest/template_test/template_test.ok M selftest/template_test/template_test.py M src/osmo_gsm_tester/core/template.py 6 files changed, 214 insertions(+), 85 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl b/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl new file mode 100644 index 0000000..efafbca --- /dev/null +++ b/selftest/template_test/mytemplatedir/mytemplate.cfg.tmpl @@ -0,0 +1 @@ +test-overlay-works-fine-only-available ${one.two.works} diff --git a/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl b/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl new file mode 100644 index 0000000..5c9400b --- /dev/null +++ b/selftest/template_test/mytemplatedir/osmo-bsc.cfg.tmpl @@ -0,0 +1 @@ +test-overlay-works-fine ${foo.bar.works} diff --git a/selftest/template_test/osmo-nitb.cfg.tmpl b/selftest/template_test/osmo-nitb.cfg.tmpl deleted file mode 100644 index c0a5c46..0000000 --- a/selftest/template_test/osmo-nitb.cfg.tmpl +++ /dev/null @@ -1,82 +0,0 @@ -! -! OpenBSC configuration saved from vty -! -password foo -! -log stderr - logging filter all 1 - logging color 0 - logging print category 0 - logging print extended-timestamp 1 - logging level set-all debug -! -line vty - no login - bind ${vty_bind_ip} -! -e1_input - e1_line 0 driver ipa - ipa bind ${abis_bind_ip} -network - network country code ${mcc} - mobile network code ${mnc} - short name ${net_name_short} - long name ${net_name_long} - auth policy ${net_auth_policy} - location updating reject cause 13 - encryption ${encryption} - neci 1 - rrlp mode none - mm info 1 - handover 0 - handover window rxlev averaging 10 - handover window rxqual averaging 1 - handover window rxlev neighbor averaging 10 - handover power budget interval 6 - handover power budget hysteresis 3 - handover maximum distance 9999 -smpp - local-tcp-ip ${nitb.ip_address.addr} 2775 - system-id test-nitb - policy ${smsc.policy} - %for esme in esme_list: - esme ${esme.system_id} - % if esme.password == '': - no password - % else: - password ${esme.password} - % endif - default-route - %endfor -ctrl - bind ${ctrl_bind_ip} -%for bts in bts_list: - bts ${loop.index} - type ${bts.type} - band ${bts.band} - cell_identity ${bts.cell_identity} - location_area_code ${bts.location_area_code} - training_sequence_code 7 - base_station_id_code ${bts.base_station_id_code} - ms max power 15 - cell reselection hysteresis 4 - rxlev access min 0 - channel allocator ascending - rach tx integer 9 - rach max transmission 7 - ip.access unit_id ${bts.unit_id} 0 - oml ip.access stream_id ${bts.stream_id} line 0 - gprs mode none -% for trx in bts.trx_list: - trx ${loop.index} - rf_locked 0 - arfcn ${trx.arfcn} - nominal power 23 - max_power_red ${trx.max_power_red} - rsl e1 tei 0 -% for ts in trx.timeslot_list: - timeslot ${loop.index} - phys_chan_config ${ts.phys_chan_config} -% endfor -% endfor -%endfor diff --git a/selftest/template_test/template_test.ok b/selftest/template_test/template_test.ok index 88b77b0..718ef6e 100644 --- a/selftest/template_test/template_test.ok +++ b/selftest/template_test/template_test.ok @@ -191,3 +191,201 @@ - Testing: expect to fail on invalid templates dir sucess: setting non-existing templates dir raised RuntimeError +- Testing: template directory overlay (still can find default one?) +cnf Templates: DBG: rendering osmo-nitb.cfg.tmpl +! Configuration rendered by osmo-gsm-tester +password foo +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print extended-timestamp 1 + logging level set-all debug +! +line vty + no login + bind val_ip_address +! +e1_input + e1_line 0 driver ipa + ipa bind val_ip_address +network + network country code val_mcc + mobile network code val_mnc + short name val_short_name + long name val_long_name + auth policy val_auth_policy + location updating reject cause 13 + encryption val_encryption + neci 1 + rrlp mode none + mm info 1 + handover 0 + handover window rxlev averaging 10 + handover window rxqual averaging 1 + handover window rxlev neighbor averaging 10 + handover power budget interval 6 + handover power budget hysteresis 3 + handover maximum distance 9999 + bts 0 + type val_type_bts0 + band val_band_bts0 + cell_identity val_bts.cell_identity_bts0 + location_area_code val_bts.location_area_code_bts0 + training_sequence_code 7 + base_station_id_code val_bts.base_station_id_code_bts0 + ms max power 33 + cell reselection hysteresis 4 + rxlev access min 0 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + ip.access unit_id val_bts.unit_id_bts0 0 + oml ip.access stream_id val_bts.stream_id_bts0 line 0 + gprs mode gprs + gprs routing area val_bts.routing_area_code_bts0 + gprs network-control-order nc1 + gprs cell bvci val_bts.bvci_bts0 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei val_bts.bvci_bts0 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci val_bts.bvci_bts0 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts0 + trx 0 + rf_locked 0 + arfcn val_trx_arfcn_trx0 + nominal power val_trx_nominal_power_trx0 + max_power_red val_trx_max_power_red_trx0 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + trx 1 + rf_locked 0 + arfcn val_trx_arfcn_trx1 + nominal power val_trx_nominal_power_trx1 + max_power_red val_trx_max_power_red_trx1 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + bts 1 + type val_type_bts1 + band val_band_bts1 + cell_identity val_bts.cell_identity_bts1 + location_area_code val_bts.location_area_code_bts1 + training_sequence_code 7 + base_station_id_code val_bts.base_station_id_code_bts1 + ms max power 33 + cell reselection hysteresis 4 + rxlev access min 0 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + ip.access unit_id val_bts.unit_id_bts1 0 + oml ip.access stream_id val_bts.stream_id_bts1 line 0 + gprs mode gprs + gprs routing area val_bts.routing_area_code_bts1 + gprs network-control-order nc1 + gprs cell bvci val_bts.bvci_bts1 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei val_bts.bvci_bts1 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci val_bts.bvci_bts1 + gprs nsvc 0 local udp port 23020 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip val_bts.sgsn_ip_addr_bts1 + trx 0 + rf_locked 0 + arfcn val_trx_arfcn_trx0 + nominal power val_trx_nominal_power_trx0 + max_power_red val_trx_max_power_red_trx0 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 + trx 1 + rf_locked 0 + arfcn val_trx_arfcn_trx1 + nominal power val_trx_nominal_power_trx1 + max_power_red val_trx_max_power_red_trx1 + rsl e1 tei 0 + timeslot 0 + phys_chan_config val_phys_chan_config_0 + timeslot 1 + phys_chan_config val_phys_chan_config_1 + timeslot 2 + phys_chan_config val_phys_chan_config_2 + timeslot 3 + phys_chan_config val_phys_chan_config_3 +smpp + local-tcp-ip val_ip_address 2775 + system-id test-nitb + policy val_smsc_policy + esme val_system_id_esme0 + password val_password_esme0 + default-route + esme val_system_id_esme1 + no password + default-route +ctrl + bind val_ip_address + +- Testing: template directory overlay (present in both dirs) +cnf Templates: DBG: rendering osmo-bsc.cfg.tmpl +test-overlay-works-fine yes + +- Testing: template directory overlay (present only on overlay dir) +cnf Templates: DBG: rendering mytemplate.cfg.tmpl +test-overlay-works-fine-only-available yes + diff --git a/selftest/template_test/template_test.py b/selftest/template_test/template_test.py index 747d508..52976e5 100755 --- a/selftest/template_test/template_test.py +++ b/selftest/template_test/template_test.py @@ -92,4 +92,13 @@ print('sucess: setting non-existing templates dir raised RuntimeError\n') pass +mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') +template.set_templates_dir(mytemplatedir, template.default_templates_dir()) +print('- Testing: template directory overlay (still can find default one?)') +print(template.render('osmo-nitb.cfg', vals)) +print('- Testing: template directory overlay (present in both dirs)') +print(template.render('osmo-bsc.cfg', dict(foo=dict(bar=dict(works='yes'))))) +print('- Testing: template directory overlay (present only on overlay dir)') +print(template.render('mytemplate.cfg', dict(one=dict(two=dict(works='yes'))))) + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/core/template.py b/src/osmo_gsm_tester/core/template.py index 2bf4fed..82985ef 100644 --- a/src/osmo_gsm_tester/core/template.py +++ b/src/osmo_gsm_tester/core/template.py @@ -27,12 +27,14 @@ _lookup = None _logger = log.Origin(log.C_CNF, 'no templates dir set') +def default_templates_dir(): + return os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates') + def set_templates_dir(*templates_dirs): global _lookup global _logger if not templates_dirs: - # default templates dir is relative to this source file - templates_dirs = [os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates')] + raise RuntimeError('templates dir list is empty!') for d in templates_dirs: if not os.path.isdir(d): raise RuntimeError('templates dir is not a dir: %r' @@ -45,7 +47,7 @@ ".tmpl" is added to the name to look it up in the templates dir.''' global _lookup if _lookup is None: - set_templates_dir() + set_templates_dir(default_templates_dir()) tmpl_name = name + '.tmpl' log.ctx(tmpl_name) template = _lookup.get_template(tmpl_name) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18661 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: Iff1a4dafcbf2193e95b1fb6e5a6712f1bcdd6309 Gerrit-Change-Number: 18661 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 09:03:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:03:07 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Support test overlaying a directory to look for templates In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 ) Change subject: testenv: Support test overlaying a directory to look for templates ...................................................................... testenv: Support test overlaying a directory to look for templates This way tests which require a very specific config file can override specific template files used by object classes. Change-Id: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.ok.ign M selftest/suite_test/suite_test.py A selftest/suite_test/suitedirB/suiteC/mytemplatedir/.gitignore A selftest/suite_test/suitedirB/suiteC/suite.conf A selftest/suite_test/suitedirB/suiteC/test_template_overlay.py M src/osmo_gsm_tester/core/template.py M src/osmo_gsm_tester/obj/stp_osmo.py M src/osmo_gsm_tester/testenv.py 9 files changed, 181 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index fee07d0..a7c6422 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -619,5 +619,109 @@ skip: test_fail.py skip: test_fail_raise.py pass: test_suite_params.py (N.N sec) +- test with template overlay +cnf suiteC: DBG: reading suite.conf [suite.py:[LINENR]] + +--------------------------------------------------------------------- +trial suiteC +--------------------------------------------------------------------- +tst suiteC: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ... [suite.py:[LINENR]] +tst suiteC: DBG: {combining='resources'} [suite.py:[LINENR]] +tst {combining_scenarios='resources'}: DBG: {definition_conf={ip_address=[{'addr': '10.42.42.2'}]}} [suiteC?{combining_scenarios='resources'}] [suite.py:[LINENR]] +tst suiteC: DBG: {combining='modifiers'} [suite.py:[LINENR]] +tst {combining_scenarios='modifiers'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='modifiers'}] [suite.py:[LINENR]] +tst suiteC: Reserving 1 x ip_address (candidates: 3) [resource.py:[LINENR]] +tst suiteC: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c + addr: 10.42.42.2 + [resource.py:[LINENR]] + +---------------------------------------------- +trial suiteC test_template_overlay.py +---------------------------------------------- +tst test_template_overlay.py:[LINENR]: - Testing: expect to fail on invalid templates overlay dir [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: sucess: setting non-existing templates dir raised RuntimeError [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +--- ReservedResources: DBG: requesting use of ip_address {specifics={}} [resource.py:[LINENR]] +tst suiteC: Using 1 x ip_address (candidates: 1) [resource.py:[LINENR]] +tst suiteC: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c + _reserved_by: suiteC-[ID_NUM]-[ID_NUM] + addr: 10.42.42.2 + [resource.py:[LINENR]] +--- ReservedResources: DBG: {available=1} [resource.py:[LINENR]] +--- ReservedResources: DBG: {using={_hash='fd103b22c7cf2480d609150e06f4bbd92ac78d8c', _reserved_by='suiteC-[ID_NUM]-[ID_NUM]', addr='10.42.42.2'}} [resource.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: - Testing: original template [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42.2/osmo-stp.cfg'} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +tst suiteC: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] [suite.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: STP CONFIG: +{'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', + '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]', + '_used': True, + 'addr': '10.42.42.2'}}} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +cnf Templates: DBG: rendering osmo-stp.cfg.tmpl [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?Templates] [template.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: ! Configuration rendered by osmo-gsm-tester +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print extended-timestamp 1 + logging level set-all debug +line vty + no login + bind 10.42.42.2 +!ctrl +! bind 10.42.42.2 +cs7 instance 0 + xua rkm routing-key-allocation dynamic-permitted + listen m3ua 2905 + accept-asp-connections dynamic-permitted + local-ip 10.42.42.2 + [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: - Testing:overlay template [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: - After creating the new template, still old template is used [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42_2.2/osmo-stp.cfg'} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: STP CONFIG: +{'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', + '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]', + '_used': True, + 'addr': '10.42.42.2'}}} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +cnf Templates: DBG: rendering osmo-stp.cfg.tmpl [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?Templates] [template.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: ! Configuration rendered by osmo-gsm-tester +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print extended-timestamp 1 + logging level set-all debug +line vty + no login + bind 10.42.42.2 +!ctrl +! bind 10.42.42.2 +cs7 instance 0 + xua rkm routing-key-allocation dynamic-permitted + listen m3ua 2905 + accept-asp-connections dynamic-permitted + local-ip 10.42.42.2 + [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +tst test_template_overlay.py:[LINENR]: - New template is used after re-generating cache with set_overlay_template_dir: [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42_3.2/osmo-stp.cfg'} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: STP CONFIG: +{'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', + '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]', + '_used': True, + 'addr': '10.42.42.2'}}} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +cnf Templates: DBG: rendering osmo-stp.cfg.tmpl [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?Templates] [template.py:[LINENR]] +run osmo-stp_10.42.42.2: DBG: ! Overlay Config file genreated by test +line vty + no login + bind 10.42.42.2 + [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] +tst test_template_overlay.py:[LINENR] Test passed (N.N sec) [suiteC?test_template_overlay.py] [test.py:[LINENR]] +--------------------------------------------------------------------- +trial suiteC PASS +--------------------------------------------------------------------- +PASS: suiteC (pass: 1) + pass: test_template_overlay.py (N.N sec) - graceful exit. diff --git a/selftest/suite_test/suite_test.ok.ign b/selftest/suite_test/suite_test.ok.ign index 9bd168f..460da92 100644 --- a/selftest/suite_test/suite_test.ok.ign +++ b/selftest/suite_test/suite_test.ok.ign @@ -3,3 +3,4 @@ \([0-9.]+ sec\) (N.N sec) {combining_scenarios='resources', scenario='foo'}:.* {combining_scenarios='resources', scenario='foo'}: [RESOURCE_DICT] test_suite-[0-9]*-[0-9]* test_suite-[ID_NUM]-[ID_NUM] +suiteC-[0-9]*-[0-9]* suiteC-[ID_NUM]-[ID_NUM] diff --git a/selftest/suite_test/suite_test.py b/selftest/suite_test/suite_test.py index 4b32439..260b9c4 100755 --- a/selftest/suite_test/suite_test.py +++ b/selftest/suite_test/suite_test.py @@ -105,6 +105,13 @@ results = s.run_tests('test_suite_params.py') print(report.suite_to_text(s)) +print('- test with template overlay') +trial = FakeTrial() +s_def = suite.load('suiteC') +s = suite.SuiteRun(trial, 'suiteC', s_def) +results = s.run_tests('test_template_overlay.py') +print(report.suite_to_text(s)) + print('\n- graceful exit.') #deleting generated tmp trial dir: shutil.rmtree(example_trial_dir, ignore_errors=True) diff --git a/selftest/suite_test/suitedirB/suiteC/mytemplatedir/.gitignore b/selftest/suite_test/suitedirB/suiteC/mytemplatedir/.gitignore new file mode 100644 index 0000000..1e2640b --- /dev/null +++ b/selftest/suite_test/suitedirB/suiteC/mytemplatedir/.gitignore @@ -0,0 +1,6 @@ +# For 'test_template_overlay.py', it's fine having this directory completely +# empy. However, we need a file in this directory so it can be stored in git. +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/selftest/suite_test/suitedirB/suiteC/suite.conf b/selftest/suite_test/suitedirB/suiteC/suite.conf new file mode 100644 index 0000000..44be3fc --- /dev/null +++ b/selftest/suite_test/suitedirB/suiteC/suite.conf @@ -0,0 +1,6 @@ +resources: + ip_address: + - addr: 10.42.42.2 # stp + +defaults: + timeout: 60s diff --git a/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py new file mode 100644 index 0000000..2dd9378 --- /dev/null +++ b/selftest/suite_test/suitedirB/suiteC/test_template_overlay.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * + +import os +import sys + +print('- Testing: expect to fail on invalid templates overlay dir') +try: + #stp.configure() + tenv.set_overlay_template_dir(os.path.join(os.path.dirname(__file__), 'nonexistent-templatedir')) + sys.stderr.write('Error: setting non-existing templates dir should raise RuntimeError\n') + assert(False) +except RuntimeError: + print('sucess: setting non-existing templates dir raised RuntimeError\n') + pass + +mytemplatedir = os.path.join(os.path.dirname(__file__), 'mytemplatedir') +tenv.set_overlay_template_dir(mytemplatedir) + +stp = tenv.stp() +print('- Testing: original template') +stp.configure() + +print('- Testing:overlay template') +mytemplatefile = os.path.join(mytemplatedir, 'osmo-stp.cfg.tmpl') +try: + with open(mytemplatefile, 'w') as f: + r = """! Overlay Config file genreated by test +line vty + no login + bind ${stp.ip_address.addr} + """ + f.write(r) + + # After creating the new template, it won\'t be used until + # set_overlay_template_dir() is called again because the templates are + # somehow cached by mako. + print('- After creating the new template, still old template is used' ) + stp.configure() + print('- New template is used after re-generating cache with set_overlay_template_dir:') + tenv.set_overlay_template_dir(mytemplatedir) + stp.configure() +finally: + os.remove(mytemplatefile) diff --git a/src/osmo_gsm_tester/core/template.py b/src/osmo_gsm_tester/core/template.py index 82985ef..8178c13 100644 --- a/src/osmo_gsm_tester/core/template.py +++ b/src/osmo_gsm_tester/core/template.py @@ -31,6 +31,8 @@ return os.path.join(os.path.dirname(os.path.dirname(__file__)), 'templates') def set_templates_dir(*templates_dirs): + '''Set a lit of directories to look for templates. It must be called + everytime a template file is updated.''' global _lookup global _logger if not templates_dirs: diff --git a/src/osmo_gsm_tester/obj/stp_osmo.py b/src/osmo_gsm_tester/obj/stp_osmo.py index 1382016..83a2f75 100644 --- a/src/osmo_gsm_tester/obj/stp_osmo.py +++ b/src/osmo_gsm_tester/obj/stp_osmo.py @@ -35,7 +35,6 @@ def start(self): self.log('Starting osmo-stp') - self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.configure() inst = util.Dir(os.path.abspath(self.testenv.suite().trial().get_inst('osmo-stp'))) @@ -61,6 +60,7 @@ self.process.launch() def configure(self): + self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.config_file = self.run_dir.new_file('osmo-stp.cfg') self.dbg(config_file=self.config_file) diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index f3ac02e..7ca854b 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -24,6 +24,7 @@ import sys from .core import process +from .core import template from .core import log as log_module from .core import process as process_module from .core import resource @@ -139,6 +140,7 @@ self.suite_run.reserved_resources.put_all() MainLoop.unregister_poll_func(self.poll) self.test_import_modules_cleanup() + self.set_overlay_template_dir(None) def config_suite_specific(self): return self.suite_run.config_suite_specific() @@ -146,6 +148,14 @@ def config_test_specific(self): return self.suite_run.config_suite_specific().get(self._test.module_name(), {}) + def set_overlay_template_dir(self, template_dir=None): + '''Overlay a directory on top of default one when looking for + directories. It must be called everytime a template file is updated.''' + if template_dir is None: + template.set_templates_dir(template.default_templates_dir()) + else: + template.set_templates_dir(template_dir, template.default_templates_dir()) + def prompt(self, *msgs, **msg_details): 'ask for user interaction. Do not use in tests that should run automatically!' if msg_details: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18662 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: I65d1b1e826d2d430ee83810d998b98d0ccaa07cd Gerrit-Change-Number: 18662 Gerrit-PatchSet: 3 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 Fri Jun 5 09:03:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:03:08 +0000 Subject: Change in osmo-gsm-tester[master]: doc: manual: Write initial Test API section In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18663 ) Change subject: doc: manual: Write initial Test API section ...................................................................... doc: manual: Write initial Test API section Change-Id: I86bc9a8a0b5ff50e72c21a4bd8a857830bd84c4c --- M doc/manuals/chapters/test_api.adoc 1 file changed, 105 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/doc/manuals/chapters/test_api.adoc b/doc/manuals/chapters/test_api.adoc index f541231..f159348 100644 --- a/doc/manuals/chapters/test_api.adoc +++ b/doc/manuals/chapters/test_api.adoc @@ -1,4 +1,107 @@ == Test API -*TODO* (in the meantime, look at src/osmo_gsm_tester/test.py, as well as -suite.py, which calls the test's setup() function to get an idea) +All tests run by {app-name} are python script files. On top of usual python +standard features, {app-name} provides a set of public APIs and tools that +these tests can use in order to interact with the core of {app-name}, like +creating object classes, run processes synchronously or asynchronously, wait for +events, retrieve specific configuration, etc. This section aims at documenting +the most relevant tools available for tests. + +First of all, it is important to avoid blocking out of the core's main event loop in +the test, since doing that will prevent {app-name} core functionalities to work +properly, such as control of asynchronous processes. + +To get access to those functionalities, a test must import a test environment +previously prepared by {app-name} before the test was started: +[source,python] +---- +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * +---- + +After the test environment is imported, aome usual functionalities are available +directly under the global scope. Specially noticeable is the existence of object +_tenv_, which provides access to most of the functionalities. + +The test can simply ask {app-name} to sleep some time, while giving control back +to {app-name} core's mainloop: +[source,python] +---- +sleep(3) # sleep for 3 seconds +---- + +One can also wait for events in the background, for instance launch a child +process locally in the same host and wait for its termination: +[source,python] +---- +proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') <1> +tenv.remember_to_stop(proc) <2> +proc.launch() <3> +proc.wait() <4> +---- +<1> Create process object. This line doesn't yet runs it. +<2> Make sure the core will kill the process if this test fails +<3> Start process asynchronously +<4> wait until process is done. One could waiting generically here too: _wait(proc.terminated)_ + +If running asynchronously is not needed, one can run synchronously in an easy +way: +[source,python] +---- +proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') +proc.launch_sync() +---- + +One can also log output using either the regular _print_ function from python, +or using {app-name} specific functions available: +[source,python] +---- +log('this is a regular log message') +dbg('this is a dbg message, only printed on outputs where dbg is enabled') +err('outputs log message for non-expected events') +print('this is the same as log()') +---- + +The test also gains access to suite and/or test specific configuration through +different APIs: +[source,python] +---- +test_config = tenv.config_test_specific() +threshold = int(test_config.get('threshold', 2)) +suite_config = tenv.config_suite_specific() +foobar = suite_config['foobar'] +---- + +A test requiring a really specific config file for an object class it is going +to run can provide its own template files by overlaying an own directory +containing them on top of the usual default directory where object class +templates are (_osmo-gsm-tester.git/src/osmo_gsm_tester/obj/templates/_): +[source,python] +---- +tenv.set_overlay_template_dir(os.path.join(os.path.dirname(__file__), 'mytemplatedir')) +---- + +Several tests in a suite can also share code by using some APIs provided by +{app-names}. The shared python code must be placed in files under the 'lib/' +subdirectory in the suite directory where the test belongs to. +[source,python] +---- +# File containing function foobar() available under ${suite_dir}/lib/testlib.py: +import testlib +tenv.test_import_modules_register_for_cleanup(testlib) +from testlib import foobar +---- + +For a complete set of features and how to use them, one can have a look at real +examples present in {app-name} git repository under the _sysmocom/_ directory. +Besides those, have a look too a _testenv.py_ file, which implements the 'tenv' +object available to tests. + +=== Test verdict + +In general, a test reaching the end of the file and returning control to +{app-name} core will be flagged as a successful test (PASS). + +If an exception is thrown from within the test file and propagated to +{app-name}, the test will be considered as failed and {app-name} will store all +failure related information from the caught exception. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18663 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: I86bc9a8a0b5ff50e72c21a4bd8a857830bd84c4c Gerrit-Change-Number: 18663 Gerrit-PatchSet: 3 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 Fri Jun 5 09:56:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 09:56:54 +0000 Subject: Change in osmo-gsm-tester[master]: report: Add trial name to junit 'testsuites' node References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18690 ) Change subject: report: Add trial name to junit 'testsuites' node ...................................................................... report: Add trial name to junit 'testsuites' node Change-Id: I8cd62484bb67756e3d98d43a75731f4702acd2b7 --- M src/osmo_gsm_tester/core/report.py 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/90/18690/1 diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index f781695..121fbaf 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -70,6 +70,7 @@ testsuites.set('errors', str(num_errors)) testsuites.set('failures', str(num_failures)) testsuites.set('time', str(math.ceil(time))) + testsuites.set('name', trial.name()) return testsuites def suite_to_junit(suite): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18690 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: I8cd62484bb67756e3d98d43a75731f4702acd2b7 Gerrit-Change-Number: 18690 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 Jun 5 09:59:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 09:59:43 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c File src/common/amr.c: https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c at 135 PS1, Line 135: amr_mrc->bts_mode[2].threshold = > before doing this we should check if "len > 4" See lines 84 .. 88. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 09:59: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 Fri Jun 5 10:21:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 10:21:35 +0000 Subject: Change in osmo-gsm-tester[master]: report: Add trial name to junit 'testsuites' node In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18690 ) Change subject: report: Add trial name to junit 'testsuites' node ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18690 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: I8cd62484bb67756e3d98d43a75731f4702acd2b7 Gerrit-Change-Number: 18690 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 10:21: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 Jun 5 10:21:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 10:21:37 +0000 Subject: Change in osmo-gsm-tester[master]: report: Add trial name to junit 'testsuites' node In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18690 ) Change subject: report: Add trial name to junit 'testsuites' node ...................................................................... report: Add trial name to junit 'testsuites' node Change-Id: I8cd62484bb67756e3d98d43a75731f4702acd2b7 --- M src/osmo_gsm_tester/core/report.py 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index f781695..121fbaf 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -70,6 +70,7 @@ testsuites.set('errors', str(num_errors)) testsuites.set('failures', str(num_failures)) testsuites.set('time', str(math.ceil(time))) + testsuites.set('name', trial.name()) return testsuites def suite_to_junit(suite): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18690 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: I8cd62484bb67756e3d98d43a75731f4702acd2b7 Gerrit-Change-Number: 18690 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 Fri Jun 5 10:33:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 10:33:41 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c File src/common/amr.c: https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c at 135 PS1, Line 135: amr_mrc->bts_mode[2].threshold = > See lines 84 .. 88. So if len = 4, we still reach here, and access offset 5. Am I wrong? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 10:33:41 +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 Jun 5 11:37:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 11:37:58 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c File src/common/amr.c: https://gerrit.osmocom.org/c/osmo-bts/+/18680/1/src/common/amr.c at 135 PS1, Line 135: amr_mrc->bts_mode[2].threshold = > So if len = 4, we still reach here, and access offset 5. [?] I see the point now, thanks! I also just noticed that this functions already has some length checks (see lines 101 .. 111), so we only need to make sure that at least two bytes present. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 11:37:58 +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 Jun 5 12:11:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 12:11:22 +0000 Subject: Change in osmo-gsm-tester[master]: report: Add trial commit info to junit file References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18691 ) Change subject: report: Add trial commit info to junit file ...................................................................... report: Add trial commit info to junit file Change-Id: I997bbbeb3807af5cd927594a4155b824f0c6d03d --- M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/trial.py 2 files changed, 27 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/91/18691/1 diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index 121fbaf..5014bf5 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -46,6 +46,14 @@ replacement_char = '\uFFFD' # Unicode replacement character return invalid_xml_char_ranges_regex.sub(replacement_char, escape(str)) +def hash_info_to_junit(testsuite, hash_info): + properties = et.SubElement(testsuite, 'properties') + for key, val in hash_info.items(): + prop = et.SubElement(properties, 'property') + prop.set('name', 'ref:' + key) + prop.set('value', val) + + def trial_to_junit_write(trial, junit_path): elements = et.ElementTree(element=trial_to_junit(trial)) elements.write(junit_path) @@ -57,8 +65,10 @@ num_errors = 0 time = 0 id = 0 + hash_info = trial.get_all_inst_hash_info() for suite in trial.suites: testsuite = suite_to_junit(suite) + hash_info_to_junit(testsuite, hash_info) testsuite.set('id', str(id)) id += 1 testsuites.append(testsuite) diff --git a/src/osmo_gsm_tester/core/trial.py b/src/osmo_gsm_tester/core/trial.py index eaf18c3..001421f 100644 --- a/src/osmo_gsm_tester/core/trial.py +++ b/src/osmo_gsm_tester/core/trial.py @@ -21,6 +21,7 @@ import time import shutil import tarfile +import pathlib from . import log from . import util @@ -212,6 +213,22 @@ self.log('Storing JUnit report in', junit_path) report.trial_to_junit_write(self, junit_path) + def get_all_inst_hash_info(self): + d = {} + pathlist = pathlib.Path(str(self.inst_dir)).glob('**/*git_hashes.txt') + for path in pathlist: + # because path is object not string + abs_path_str = str(path) # because path is object not string + dir, file = os.path.split(abs_path_str) + reldir = os.path.relpath(dir, str(self.inst_dir)).rstrip(os.sep) + with open(abs_path_str, 'r') as f: + for line in [l.strip() for l in f.readlines()]: + if not line: + continue + hash, proj = tuple(line.split(' ', 1)) + d[os.path.join(reldir,proj)] = hash + return d + def log_report(self): log.large_separator(self.name(), self.status) self.log(report.trial_to_text(self)) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18691 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: I997bbbeb3807af5cd927594a4155b824f0c6d03d Gerrit-Change-Number: 18691 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 Jun 5 12:31:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 12:31:24 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: Hello pespin, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 to look at the new patch set (#2). Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... rsl: refactor handling of RSL_IE_MR_CONFIG - get rid of gsm_lchan::mr_bts_lv, it's never used anyway, - check IE length in amr_parse_mr_conf() before parsing, - check return code of amr_parse_mr_conf(). Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca --- M include/osmo-bts/gsm_data_shared.h M src/common/amr.c M src/common/rsl.c 3 files changed, 20 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/80/18680/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 12:47:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 12:47:15 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 12:47:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 12:47:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 12:47:56 +0000 Subject: Change in osmo-gsm-tester[master]: report: Add trial commit info to junit file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18691 ) Change subject: report: Add trial commit info to junit file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18691 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: I997bbbeb3807af5cd927594a4155b824f0c6d03d Gerrit-Change-Number: 18691 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 12:47:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 12:47:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 12:47:58 +0000 Subject: Change in osmo-gsm-tester[master]: report: Add trial commit info to junit file In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18691 ) Change subject: report: Add trial commit info to junit file ...................................................................... report: Add trial commit info to junit file Change-Id: I997bbbeb3807af5cd927594a4155b824f0c6d03d --- M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/trial.py 2 files changed, 27 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index 121fbaf..5014bf5 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -46,6 +46,14 @@ replacement_char = '\uFFFD' # Unicode replacement character return invalid_xml_char_ranges_regex.sub(replacement_char, escape(str)) +def hash_info_to_junit(testsuite, hash_info): + properties = et.SubElement(testsuite, 'properties') + for key, val in hash_info.items(): + prop = et.SubElement(properties, 'property') + prop.set('name', 'ref:' + key) + prop.set('value', val) + + def trial_to_junit_write(trial, junit_path): elements = et.ElementTree(element=trial_to_junit(trial)) elements.write(junit_path) @@ -57,8 +65,10 @@ num_errors = 0 time = 0 id = 0 + hash_info = trial.get_all_inst_hash_info() for suite in trial.suites: testsuite = suite_to_junit(suite) + hash_info_to_junit(testsuite, hash_info) testsuite.set('id', str(id)) id += 1 testsuites.append(testsuite) diff --git a/src/osmo_gsm_tester/core/trial.py b/src/osmo_gsm_tester/core/trial.py index eaf18c3..001421f 100644 --- a/src/osmo_gsm_tester/core/trial.py +++ b/src/osmo_gsm_tester/core/trial.py @@ -21,6 +21,7 @@ import time import shutil import tarfile +import pathlib from . import log from . import util @@ -212,6 +213,22 @@ self.log('Storing JUnit report in', junit_path) report.trial_to_junit_write(self, junit_path) + def get_all_inst_hash_info(self): + d = {} + pathlist = pathlib.Path(str(self.inst_dir)).glob('**/*git_hashes.txt') + for path in pathlist: + # because path is object not string + abs_path_str = str(path) # because path is object not string + dir, file = os.path.split(abs_path_str) + reldir = os.path.relpath(dir, str(self.inst_dir)).rstrip(os.sep) + with open(abs_path_str, 'r') as f: + for line in [l.strip() for l in f.readlines()]: + if not line: + continue + hash, proj = tuple(line.split(' ', 1)) + d[os.path.join(reldir,proj)] = hash + return d + def log_report(self): log.large_separator(self.name(), self.status) self.log(report.trial_to_text(self)) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18691 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: I997bbbeb3807af5cd927594a4155b824f0c6d03d Gerrit-Change-Number: 18691 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 Fri Jun 5 13:40:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:32 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop forward declaration of struct vty In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18682 ) Change subject: gsm_data_shared: drop forward declaration of struct vty ...................................................................... gsm_data_shared: drop forward declaration of struct vty Change-Id: I12b178d73e19761d16a6ef8e2a16243a23e1bf04 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index d830758..55c4f04 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -405,8 +405,6 @@ TRX_PHY_VERSION, }; -struct vty; - /* N. B: always add new features to the end of the list (right before _NUM_BTS_FEAT) to avoid breaking compatibility with BTS compiled against earlier version of this header. Also make sure that the description strings gsm_bts_features_descs[] in gsm_data_shared.c are also updated accordingly! */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I12b178d73e19761d16a6ef8e2a16243a23e1bf04 Gerrit-Change-Number: 18682 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 13:40:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:33 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused *nmh from struct gsm_bts In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18684 ) Change subject: gsm_data_shared: drop unused *nmh from struct gsm_bts ...................................................................... gsm_data_shared: drop unused *nmh from struct gsm_bts Change-Id: I57e9146cfc3274847b50caa44b09b5f06f0cf00b --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 55c4f04..12f1bd1 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -541,8 +541,6 @@ struct timespec oml_conn_established_timestamp; /* Abis network management O&M handle */ - struct abis_nm_h *nmh; - struct gsm_abis_mo mo; /* number of this BTS on given E1 link */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57e9146cfc3274847b50caa44b09b5f06f0cf00b Gerrit-Change-Number: 18684 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 13:40:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:34 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused dtxu from struct gsm_bts In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18685 ) Change subject: gsm_data_shared: drop unused dtxu from struct gsm_bts ...................................................................... gsm_data_shared: drop unused dtxu from struct gsm_bts Change-Id: Ic2ddbf04bac7ced900a4e5e532206652dae64059 --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 12f1bd1..9e45dad 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -547,7 +547,6 @@ uint8_t bts_nr; /* DTX features of this BTS */ - enum gsm48_dtx_mode dtxu; bool dtxd; /* CCCH is on C0 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic2ddbf04bac7ced900a4e5e532206652dae64059 Gerrit-Change-Number: 18685 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 13:40:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:34 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18686 ) Change subject: gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord ...................................................................... gsm_data_shared: drop unused ctrl_ack_type_use_block & net_ctrl_ord Change-Id: I7c8ddc4a9cfbbd1983e89fa261eaf4f32e15c6bd --- M include/osmo-bts/gsm_data_shared.h 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 9e45dad..75a4515 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -596,8 +596,6 @@ } cell; struct gsm_bts_gprs_nsvc nsvc[2]; uint8_t rac; - uint8_t net_ctrl_ord; - bool ctrl_ack_type_use_block; } gprs; /* RACH NM values */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7c8ddc4a9cfbbd1983e89fa261eaf4f32e15c6bd Gerrit-Change-Number: 18686 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 13:40:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:35 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18687 ) Change subject: gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots ...................................................................... gsm_data_shared: drop unused rach_b_thresh & rach_ldavg_slots Change-Id: I75ffc5c0c1f683adf0632bfe71ac51d1adfd97bd --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c 2 files changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 75a4515..bcc818a 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -598,10 +598,6 @@ uint8_t rac; } gprs; - /* RACH NM values */ - int rach_b_thresh; - int rach_ldavg_slots; - /* transceivers */ int num_trx; struct llist_head trx_list; diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index dc27e4f..dcf40d1 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -322,8 +322,6 @@ } bts->c0->ts[0].pchan = GSM_PCHAN_CCCH_SDCCH4; - bts->rach_b_thresh = -1; - bts->rach_ldavg_slots = -1; bts->features.data = &bts->_features_data[0]; bts->features.data_len = sizeof(bts->_features_data); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I75ffc5c0c1f683adf0632bfe71ac51d1adfd97bd Gerrit-Change-Number: 18687 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 13:40:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:35 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: drop force_combined_si & bcch_change_mark In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18688 ) Change subject: gsm_data_shared: drop force_combined_si & bcch_change_mark ...................................................................... gsm_data_shared: drop force_combined_si & bcch_change_mark Change-Id: I997ab5e9801af50708ce6dc35004da5e11cb926b --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c 2 files changed, 0 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index bcc818a..65e8bfa 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -602,10 +602,6 @@ int num_trx; struct llist_head trx_list; - /* SI related items */ - int force_combined_si; - int bcch_change_mark; - struct rate_ctr_group *ctrs; bool supp_meas_toa256; diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index dcf40d1..c05f59d 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -325,9 +325,6 @@ bts->features.data = &bts->_features_data[0]; bts->features.data_len = sizeof(bts->_features_data); - /* si handling */ - bts->bcch_change_mark = 1; - return bts; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I997ab5e9801af50708ce6dc35004da5e11cb926b Gerrit-Change-Number: 18688 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 13:40:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:36 +0000 Subject: Change in osmo-bts[master]: scheduler: drop non-existing extern declarations In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18689 ) Change subject: scheduler: drop non-existing extern declarations ...................................................................... scheduler: drop non-existing extern declarations Change-Id: Ifa6fc5947e8fb7ec071a6567c275f5db5ab385f9 --- M include/osmo-bts/scheduler.h 1 file changed, 0 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index c026411..7a9da8f 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -148,13 +148,6 @@ struct l1sched_ts *l1sched_trx_get_ts(struct l1sched_trx *l1t, uint8_t tn); -/*! \brief how many frame numbers in advance we should send bursts to PHY */ -extern uint32_t trx_clock_advance; -/*! \brief advance RTS.ind to L2 by that many clocks */ -extern uint32_t trx_rts_advance; -/*! \brief last frame number as received from PHY */ -extern uint32_t transceiver_last_fn; - /*! \brief Initialize the scheduler data structures */ int trx_sched_init(struct l1sched_trx *l1t, struct gsm_bts_trx *trx); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifa6fc5947e8fb7ec071a6567c275f5db5ab385f9 Gerrit-Change-Number: 18689 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 13:40:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 13:40:36 +0000 Subject: Change in osmo-bts[master]: vty: fix bts_dump_vty(): properly print OML stream ID (TEI) In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18683 ) Change subject: vty: fix bts_dump_vty(): properly print OML stream ID (TEI) ...................................................................... vty: fix bts_dump_vty(): properly print OML stream ID (TEI) Change-Id: I80ceba60e4b48d5bc68de71a2b2a2036b1e78f57 --- M include/osmo-bts/gsm_data_shared.h M src/common/vty.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 65e8bfa..f010dbc 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -536,7 +536,6 @@ int ms_max_power; /* how do we talk OML with this TRX? */ - uint8_t oml_tei; struct e1inp_sign_link *oml_link; struct timespec oml_conn_established_timestamp; diff --git a/src/common/vty.c b/src/common/vty.c index a57f3b5..1d74b36 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -856,7 +856,8 @@ bts->description ? bts->description : "(null)", VTY_NEWLINE); vty_out(vty, " Unit ID: %u/%u/0, OML Stream ID 0x%02x%s", bts->ip_access.site_id, bts->ip_access.bts_id, - bts->oml_tei, VTY_NEWLINE); + bts->oml_link ? bts->oml_link->tei : 0x00, + VTY_NEWLINE); vty_out(vty, " NM State: "); net_dump_nmstate(vty, &bts->mo.nm_state); vty_out(vty, " Site Mgr NM State: "); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I80ceba60e4b48d5bc68de71a2b2a2036b1e78f57 Gerrit-Change-Number: 18683 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 14:02:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 14:02:29 +0000 Subject: Change in osmo-bts[master]: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() 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/+/18646 to look at the new patch set (#2). Change subject: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() ...................................................................... bts-trx: phy_link: Improve logging fmt in phy_link_state_set() Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790 --- M include/osmo-bts/phy_link.h M src/common/phy_link.c 2 files changed, 16 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/18646/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790 Gerrit-Change-Number: 18646 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 5 14:25:13 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 14:25:13 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5eda55deb6471_24392ae3da26c5f86930f7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Unstable/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 235s] touch libfx2.lib [ 235s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 235s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 235s] Making all in src [ 235s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 235s] Making all in common [ 235s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 235s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 235s] /usr/bin/env: 'python': No such file or directory [ 235s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 235s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 235s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 235s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 235s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 235s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 235s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 235s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 235s] make[1]: *** [Makefile:547: all] Error 2 [ 235s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 235s] dh_auto_build: error: make -j1 returned exit code 2 [ 235s] make: *** [debian/rules:13: build] Error 25 [ 235s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 235s] ### VM INTERACTION START ### [ 239s] [ 224.311807] sysrq: SysRq : Power Off [ 239s] [ 224.317911] reboot: Power down [ 239s] ### VM INTERACTION END ### [ 239s] [ 239s] lamb19 failed "build libusrp_3.4.4.dsc" at Fri Jun 5 14:25:06 UTC 2020. [ 239s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 5 14:38:36 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 14:38:36 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5eda58fbcbc4b_24392ae3da26c5f869871f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 226s] touch libfx2.lib [ 226s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 226s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 226s] Making all in src [ 226s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 226s] Making all in common [ 226s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 226s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 226s] /usr/bin/env: 'python': No such file or directory [ 226s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 226s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 226s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 226s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 226s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 226s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 226s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 226s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 226s] make[1]: *** [Makefile:554: all] Error 2 [ 226s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 226s] dh_auto_build: error: make -j1 returned exit code 2 [ 226s] make: *** [debian/rules:13: build] Error 25 [ 226s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 226s] ### VM INTERACTION START ### [ 229s] [ 213.726648] sysrq: SysRq : Power Off [ 229s] [ 213.734931] reboot: Power down [ 229s] ### VM INTERACTION END ### [ 229s] [ 229s] goat07 failed "build libusrp_3.4.4.7.50ce.dsc" at Fri Jun 5 14:38:32 UTC 2020. [ 229s] -- 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 Jun 5 15:18:02 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 5 Jun 2020 15:18:02 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... msc_a: add callref as call id to ASSIGNMENT REQ. The BSSMAP message ASSIGNMENT REQUEST may contain an optional CALL IDENTIFIER IE. While this IE is optional some BSC implementions may require it. Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Related: OS#4582 --- M include/osmocom/msc/ran_msg.h M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c 3 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/18692/1 diff --git a/include/osmocom/msc/ran_msg.h b/include/osmocom/msc/ran_msg.h index 1b0e2e8..3b08b46 100644 --- a/include/osmocom/msc/ran_msg.h +++ b/include/osmocom/msc/ran_msg.h @@ -86,6 +86,8 @@ enum nsap_addr_enc rab_assign_addr_enc; bool osmux_present; uint8_t osmux_cid; + bool call_id_present; + uint32_t call_id; }; struct ran_cipher_mode_command { diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index bc5b7ea..85c92d0 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -541,6 +541,8 @@ .channel_type = &channel_type, .osmux_present = msc_a->cc.call_leg->rtp[RTP_TO_RAN]->use_osmux, .osmux_cid = msc_a->cc.call_leg->rtp[RTP_TO_RAN]->local_osmux_cid, + .call_id_present = true, + .call_id = cc_trans->callref }, }; if (msc_a_ran_down(msc_a, MSC_ROLE_I, &msg)) { diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index cb228ef..2859069 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -956,6 +956,7 @@ struct sockaddr_storage rtp_addr; struct sockaddr_storage *use_rtp_addr = NULL; struct msgb *msg; + const uint32_t *call_id = NULL; int rc; if (!ac->channel_type) { @@ -996,7 +997,10 @@ } } - msg = gsm0808_create_ass(ac->channel_type, NULL, use_rtp_addr, use_scl, NULL); + if(ac->call_id_present) + call_id = &ac->call_id; + + msg = gsm0808_create_ass(ac->channel_type, NULL, use_rtp_addr, use_scl, call_id); if (ac->osmux_present) _gsm0808_assignment_extend_osmux(msg, ac->osmux_cid); return msg; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 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 Jun 5 15:20:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 15:20:45 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: do not install unneeded dependencies References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18693 ) Change subject: debian-stretch-titan: do not install unneeded dependencies ...................................................................... debian-stretch-titan: do not install unneeded dependencies By default, Debian's package manager (apt) would install as many dependencies as possible, including optional (recommended and suggested) ones. Package 'eclipse-titan' recommends 'default-jdk', which is absolutely not needed for osmo-ttcn3-hacks, and in its turn depends on +100500 more packages like xorg, wayland, etc. This change significantly reduces total amount of dependencies and the overall build time by disabling installation of recommended and suggested dependencies. Change-Id: I56f0d0f37e212b15e8c19ddea96d1c999177eb17 --- M debian-stretch-titan/Dockerfile 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/93/18693/1 diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 0778db6..15e4492 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -14,8 +14,9 @@ echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-latest.list ADD $OSMOCOM_REPO/Release /tmp/Release -RUN apt-get update && apt-get install -y \ - eclipse-titan +RUN apt-get update && \ + apt-get install -y --no-install-recommends --no-install-suggests \ + eclipse-titan RUN apt-get update && \ apt-get upgrade -y && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f0d0f37e212b15e8c19ddea96d1c999177eb17 Gerrit-Change-Number: 18693 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 Jun 5 15:27:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 15:27:02 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: do not install unneeded dependencies In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18693 ) Change subject: debian-stretch-titan: do not install unneeded dependencies ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f0d0f37e212b15e8c19ddea96d1c999177eb17 Gerrit-Change-Number: 18693 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 15:27: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 Jun 5 15:29:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 15:29:41 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 15:29:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 16:17:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 16:17:01 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: do not install unneeded dependencies In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18693 ) Change subject: debian-stretch-titan: do not install unneeded dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f0d0f37e212b15e8c19ddea96d1c999177eb17 Gerrit-Change-Number: 18693 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 16:17:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 16:17:51 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 5 Jun 2020 16:17:51 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... gsm0808: fix endieness of call identifier The call identifier in the ASSIGNMENT COMMAND is encoded in the wrong endieness. Lets not swap the byte order since the endieness matches already. Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Related: OS#4582 --- M src/gsm/gsm0808.c 1 file changed, 2 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/18694/1 diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 23468c3..4c6aca9 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -480,7 +480,6 @@ /* See also: 3GPP TS 48.008 3.2.1.1 ASSIGNMENT REQUEST */ struct msgb *msg; uint16_t cic_sw; - uint32_t ci_sw; /* Mandatory emelent! */ OSMO_ASSERT(ct); @@ -515,9 +514,8 @@ /* AoIP: Call Identifier 3.2.2.105 */ if (ci) { - ci_sw = osmo_htonl(*ci); - msgb_tv_fixed_put(msg, GSM0808_IE_CALL_ID, sizeof(ci_sw), - (uint8_t *) & ci_sw); + msgb_tv_fixed_put(msg, GSM0808_IE_CALL_ID, sizeof(*ci), + (uint8_t *) ci); } if (kc) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 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 Jun 5 16:18:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 16:18:51 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... Patch Set 1: I would prefer to merge the addition of this IE to all relevant messages (I wrote it in the osmcoom issue), but if you prefer we can also do one commit per command - but let's make sure we don't forget about other messages besides ASSIGNMENT CMD -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 16:18: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 Jun 5 16:19:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 16:19:54 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... Patch Set 1: Is the integer expected to be sent in network byte order or host byte order? If network byte order is expected, I would expect the function to receive a host-byte-order integer and hence htonl() is needed. Which means the bug is probably somewhere else? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 16:19:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 16:21:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 16:21:45 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/msc_a.c File src/libmsc/msc_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/msc_a.c at 544 PS1, Line 544: call_id_present = true, : .call_id = cc_trans->callref you are adding it unconditionally here. If we only support AoIP, we can do this unconditionally. Should we still support SCCPlite (I know we do in the BSC, but do we in the MSC?), we would have to add call_id only in AoIP situations. https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/ran_msg_a.c File src/libmsc/ran_msg_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/ran_msg_a.c at 1000 PS1, Line 1000: if(ac->call_id_present) if if was a function... (sorry) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 16:21: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 Jun 5 16:23:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 16:23:21 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: do not install unneeded dependencies In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18693 ) Change subject: debian-stretch-titan: do not install unneeded dependencies ...................................................................... Patch Set 1: Verified+1 Tested, works for me. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f0d0f37e212b15e8c19ddea96d1c999177eb17 Gerrit-Change-Number: 18693 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 16:23:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 16:23:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 16:23:29 +0000 Subject: Change in docker-playground[master]: debian-stretch-titan: do not install unneeded dependencies In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18693 ) Change subject: debian-stretch-titan: do not install unneeded dependencies ...................................................................... debian-stretch-titan: do not install unneeded dependencies By default, Debian's package manager (apt) would install as many dependencies as possible, including optional (recommended and suggested) ones. Package 'eclipse-titan' recommends 'default-jdk', which is absolutely not needed for osmo-ttcn3-hacks, and in its turn depends on +100500 more packages like xorg, wayland, etc. This change significantly reduces total amount of dependencies and the overall build time by disabling installation of recommended and suggested dependencies. Change-Id: I56f0d0f37e212b15e8c19ddea96d1c999177eb17 --- M debian-stretch-titan/Dockerfile 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved fixeria: Verified diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile index 0778db6..15e4492 100644 --- a/debian-stretch-titan/Dockerfile +++ b/debian-stretch-titan/Dockerfile @@ -14,8 +14,9 @@ echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-latest.list ADD $OSMOCOM_REPO/Release /tmp/Release -RUN apt-get update && apt-get install -y \ - eclipse-titan +RUN apt-get update && \ + apt-get install -y --no-install-recommends --no-install-suggests \ + eclipse-titan RUN apt-get update && \ apt-get upgrade -y && \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I56f0d0f37e212b15e8c19ddea96d1c999177eb17 Gerrit-Change-Number: 18693 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria 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 Jun 5 16:24:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 16:24:05 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... Patch Set 1: I'm not convinced (yet). Normally, we pass values around in host byte order and only translate them to network byte order when generating messages. So why is that value already in netwokr byte order? Why can the caller not provide it in host byte order? Also, if we really want function arguments are not in native (host) byte order, I think it must clearly be documented in the doxygen part. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 16:24:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 5 16:24:01 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 16:24:01 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5eda71b343bfa_24392ae3da26c5f873893e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 735s] [1929/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 735s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 735s] [1931/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 735s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 735s] [1933/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 736s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 736s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 736s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 736s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 736s] ../src/udm/context.c: In function ?udm_ue_add?: [ 736s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 736s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 736s] ~~^ [ 736s] %d [ 736s] cc1: some warnings being treated as errors [ 736s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 736s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 736s] [1938/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 736s] ninja: build stopped: subcommand failed. [ 736s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 736s] make: *** [debian/rules:11: binary] Error 1 [ 736s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 736s] ### VM INTERACTION START ### [ 739s] [ 691.688688] sysrq: SysRq : Power Off [ 739s] [ 691.693812] reboot: Power down [ 740s] ### VM INTERACTION END ### [ 740s] [ 740s] armbuild21 failed "build open5gs_1.2.5.20200605.dsc" at Fri Jun 5 16:23:47 UTC 2020. [ 740s] -- 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 Jun 5 16:24:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 16:24:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: cosmetic: improve logging messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 ) Change subject: library/RSL_Emulation: cosmetic: improve logging messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iefb6bc96e57822e216f8d8480337e6b4afc4d892 Gerrit-Change-Number: 18638 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 16:24: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 Jun 5 16:28:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 16:28:10 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18695 ) Change subject: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end ...................................................................... ttcn3-bts-test/jenkins.sh: stop container with BSC in the end Otherwise it will be running until killed manually... Change-Id: Ia383febb3ca7ae6263853c68dc7b6d8700612b01 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/95/18695/1 diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 4974a34..7593143 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -148,6 +148,7 @@ docker container kill ${BUILD_TAG}-trxcon docker container kill ${BUILD_TAG}-fake_trx docker container kill ${BUILD_TAG}-bts +docker container kill ${BUILD_TAG}-bsc network_remove -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia383febb3ca7ae6263853c68dc7b6d8700612b01 Gerrit-Change-Number: 18695 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 Jun 5 16:42:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 16:42:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... Patch Set 4: Verified+1 Works for me (C). Tested on my own machine (my usual setup) and in a Docker'ized setup. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 16: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 Fri Jun 5 16:55:15 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 5 Jun 2020 16:55:15 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... Patch Set 1: > Patch Set 1: > > I'm not convinced (yet). Normally, we pass values around in host byte order and only translate them to network byte order when generating messages. > > So why is that value already in netwokr byte order? Why can the caller not provide it in host byte order? > > Also, if we really want function arguments are not in native (host) byte order, I think it must clearly be documented in the doxygen part. Hmm. I have checked it multiple times now. Network byte order is big endien, x86er is little endien. However 3GPP TS 48.008, section 3.2.2.105 wants the least significant byte transmitted first. I think thats why the endieness should already match the host byte order here. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 16:55:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 5 16:56:52 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 16:56:52 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5eda79703e8a3_24392ae3da26c5f874584c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 144s] touch libfx2.lib [ 144s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 144s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 144s] Making all in src [ 144s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 144s] Making all in common [ 144s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 144s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 144s] /usr/bin/env: 'python': No such file or directory [ 144s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 144s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 144s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 144s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 144s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 144s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 144s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 144s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 144s] make[1]: *** [Makefile:554: all] Error 2 [ 144s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 144s] dh_auto_build: error: make -j1 returned exit code 2 [ 144s] make: *** [debian/rules:13: build] Error 25 [ 144s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 144s] ### VM INTERACTION START ### [ 147s] [ 137.241082] sysrq: SysRq : Power Off [ 147s] [ 137.242437] reboot: Power down [ 147s] ### VM INTERACTION END ### [ 147s] [ 147s] build75 failed "build libusrp_3.4.4.7.50ce.dsc" at Fri Jun 5 16:56:47 UTC 2020. [ 147s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 5 16:57:09 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 16:57:09 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5eda7972c914b_24392ae3da26c5f8746079@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Unstable/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 830s] touch libfx2.lib [ 830s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 830s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 830s] Making all in src [ 830s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 830s] Making all in common [ 830s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 830s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 830s] /usr/bin/env: 'python': No such file or directory [ 830s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 830s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 830s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 830s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 830s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 830s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 830s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 830s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 830s] make[1]: *** [Makefile:547: all] Error 2 [ 830s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 830s] dh_auto_build: error: make -j1 returned exit code 2 [ 830s] make: *** [debian/rules:13: build] Error 25 [ 830s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 830s] ### VM INTERACTION START ### [ 834s] [ 791.344599] sysrq: SysRq : Power Off [ 834s] [ 791.354272] reboot: Power down [ 834s] ### VM INTERACTION END ### [ 834s] [ 834s] lamb03 failed "build libusrp_3.4.4.dsc" at Fri Jun 5 16:57:02 UTC 2020. [ 834s] -- 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 Jun 5 17:31:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 17:31:20 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: purify Makefile.am: make it git friendly References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18696 ) Change subject: osmo-bts-trx: purify Makefile.am: make it git friendly ...................................................................... osmo-bts-trx: purify Makefile.am: make it git friendly Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba --- M src/osmo-bts-trx/Makefile.am 1 file changed, 48 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/18696/1 diff --git a/src/osmo-bts-trx/Makefile.am b/src/osmo-bts-trx/Makefile.am index 1922240..85c1ff4 100644 --- a/src/osmo-bts-trx/Makefile.am +++ b/src/osmo-bts-trx/Makefile.am @@ -1,10 +1,52 @@ -AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -AM_CFLAGS = -Wall -fno-strict-aliasing $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOCODING_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBOSMOCTRL_CFLAGS) -LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOCODING_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) $(LIBOSMOABIS_LIBS) $(LIBOSMOCTRL_LIBS) -ldl +AM_CPPFLAGS = \ + $(all_includes) \ + -I$(top_srcdir)/include \ + $(NULL) -EXTRA_DIST = trx_if.h l1_if.h loops.h +AM_CFLAGS = \ + -Wall -fno-strict-aliasing \ + $(LIBOSMOCORE_CFLAGS) \ + $(LIBOSMOGSM_CFLAGS) \ + $(LIBOSMOCODEC_CFLAGS) \ + $(LIBOSMOCODING_CFLAGS) \ + $(LIBOSMOVTY_CFLAGS) \ + $(LIBOSMOTRAU_CFLAGS) \ + $(LIBOSMOABIS_CFLAGS) \ + $(LIBOSMOCTRL_CFLAGS) \ + $(NULL) + +LDADD = \ + $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCODEC_LIBS) \ + $(LIBOSMOCODING_LIBS) \ + $(LIBOSMOVTY_LIBS) \ + $(LIBOSMOTRAU_LIBS) \ + $(LIBOSMOABIS_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ + -ldl \ + $(NULL) + +# TODO: use noinst_HEADERS instead? +EXTRA_DIST = \ + trx_if.h \ + l1_if.h \ + loops.h \ + $(NULL) bin_PROGRAMS = osmo-bts-trx -osmo_bts_trx_SOURCES = main.c trx_if.c l1_if.c scheduler_trx.c trx_vty.c loops.c -osmo_bts_trx_LDADD = $(top_builddir)/src/common/libl1sched.a $(top_builddir)/src/common/libbts.a $(LDADD) +osmo_bts_trx_SOURCES = \ + main.c \ + trx_if.c \ + l1_if.c \ + scheduler_trx.c \ + trx_vty.c \ + loops.c \ + $(NULL) + +osmo_bts_trx_LDADD = \ + $(top_builddir)/src/common/libl1sched.a \ + $(top_builddir)/src/common/libbts.a \ + $(LDADD) \ + $(NULL) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba Gerrit-Change-Number: 18696 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 Jun 5 17:31:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 17:31:20 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18697 ) Change subject: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST ...................................................................... osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064 --- M src/osmo-bts-trx/Makefile.am 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/97/18697/1 diff --git a/src/osmo-bts-trx/Makefile.am b/src/osmo-bts-trx/Makefile.am index 85c1ff4..b2d9b19 100644 --- a/src/osmo-bts-trx/Makefile.am +++ b/src/osmo-bts-trx/Makefile.am @@ -27,8 +27,7 @@ -ldl \ $(NULL) -# TODO: use noinst_HEADERS instead? -EXTRA_DIST = \ +noinst_HEADERS = \ trx_if.h \ l1_if.h \ loops.h \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064 Gerrit-Change-Number: 18697 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 Jun 5 17:31:55 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 17:31:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: prettify Makefile.am: make it git friendly In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/18696 ) Change subject: osmo-bts-trx: prettify Makefile.am: make it git friendly ...................................................................... osmo-bts-trx: prettify Makefile.am: make it git friendly Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba --- M src/osmo-bts-trx/Makefile.am 1 file changed, 48 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/18696/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba Gerrit-Change-Number: 18696 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 17:31:55 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 17:31:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/18697 ) Change subject: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST ...................................................................... osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064 --- M src/osmo-bts-trx/Makefile.am 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/97/18697/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064 Gerrit-Change-Number: 18697 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 Fri Jun 5 18:34:18 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 18:34:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: cosmetic: improve logging messages In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 ) Change subject: library/RSL_Emulation: cosmetic: improve logging messages ...................................................................... library/RSL_Emulation: cosmetic: improve logging messages Change-Id: Iefb6bc96e57822e216f8d8480337e6b4afc4d892 --- M library/RSL_Emulation.ttcn 1 file changed, 4 insertions(+), 4 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/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index eeb5ed5..9a07417 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -183,7 +183,7 @@ return i; } } - log("No Dchan handler for ", comp_ref); + log("No Dchan handler for comp_ref=", comp_ref); return -1; } @@ -196,7 +196,7 @@ return i; } } - log("No Dchan handler for ", trx_nr, chan_nr); + log("No Dchan handler for trx_nr=", trx_nr, " and chan_nr=", chan_nr); return -1; } @@ -209,7 +209,7 @@ return i; } } - log("No Dchan handler for ", ra, fn); + log("No Dchan handler for ra=", ra, " and fn=", fn); return -1; } @@ -226,7 +226,7 @@ } } } - log("No Dchan handler for ", ra, fn); + log("No Dchan handler for ra=", ra, " and fn=", fn); return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iefb6bc96e57822e216f8d8480337e6b4afc4d892 Gerrit-Change-Number: 18638 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:11:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 20:11:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-virtual: cosmetic: use LID_SACCH instead of 0x40 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18698 ) Change subject: osmo-bts-virtual: cosmetic: use LID_SACCH instead of 0x40 ...................................................................... osmo-bts-virtual: cosmetic: use LID_SACCH instead of 0x40 Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993 --- M src/osmo-bts-virtual/l1_if.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/98/18698/1 diff --git a/src/osmo-bts-virtual/l1_if.c b/src/osmo-bts-virtual/l1_if.c index c5c526c..31ed46d 100644 --- a/src/osmo-bts-virtual/l1_if.c +++ b/src/osmo-bts-virtual/l1_if.c @@ -437,7 +437,7 @@ break; } /* deactivate associated channel */ - trx_sched_set_lchan(sched, chan_nr, 0x40, 0); + trx_sched_set_lchan(sched, chan_nr, LID_SACCH, 0); if (!l1sap->u.info.u.act_req.sacch_only) { /* set lchan inactive */ lchan_set_state(lchan, LCHAN_S_NONE); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993 Gerrit-Change-Number: 18698 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 Jun 5 20:11:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 20:11:22 +0000 Subject: Change in osmo-bts[master]: common/scheduler: fix unreachable code in trx_sched_set_lchan() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18699 ) Change subject: common/scheduler: fix unreachable code in trx_sched_set_lchan() ...................................................................... common/scheduler: fix unreachable code in trx_sched_set_lchan() Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918 --- M src/common/scheduler.c 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/99/18699/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index be3ae42..276f3fd 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -986,9 +986,6 @@ LOGP(DL1C, LOGL_NOTICE, "%s %s on trx=%d ts=%d\n", (active) ? "Activating" : "Deactivating", trx_chan_desc[i].name, l1t->trx->nr, tn); - if (active) - memset(chan_state, 0, sizeof(*chan_state)); - chan_state->active = active; /* free burst memory, to cleanly start with burst 0 */ if (chan_state->dl_bursts) { talloc_free(chan_state->dl_bursts); @@ -998,8 +995,12 @@ talloc_free(chan_state->ul_bursts); chan_state->ul_bursts = NULL; } - if (!active) + + if (active) + memset(chan_state, 0, sizeof(*chan_state)); + else chan_state->ho_rach_detect = 0; + chan_state->active = active; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918 Gerrit-Change-Number: 18699 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 Jun 5 20:11:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 20:11:22 +0000 Subject: Change in osmo-bts[master]: common/scheduler: use boolean for channel activation state References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18700 ) Change subject: common/scheduler: use boolean for channel activation state ...................................................................... common/scheduler: use boolean for channel activation state Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-virtual/l1_if.c 4 files changed, 12 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/00/18700/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index 7a9da8f..74102f3 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -72,7 +72,7 @@ /* States each channel on a multiframe */ struct l1sched_chan_state { /* scheduler */ - uint8_t active; /* Channel is active */ + 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 */ sbit_t *ul_bursts; /* burst buffer for RX */ @@ -175,8 +175,7 @@ enum gsm_phys_chan_config pchan); /*! \brief set all matching logical channels active/inactive */ -int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, - int active); +int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, bool active); /*! \brief set mode of all matching logical channels to given mode(s) */ int trx_sched_set_mode(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t rsl_cmode, diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 276f3fd..5b398d1 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -586,7 +586,7 @@ for (i = 0; i < ARRAY_SIZE(l1ts->chan_state); i++) { struct l1sched_chan_state *chan_state; chan_state = &l1ts->chan_state[i]; - chan_state->active = 0; + chan_state->active = false; } } @@ -960,8 +960,7 @@ } /* setting all logical channels given attributes to active/inactive */ -int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, - int active) +int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, bool active) { uint8_t tn = L1SAP_CHAN2TS(chan_nr); struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index b28c894..b67d8fa 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -128,16 +128,14 @@ /* set lchan inactive */ lchan_set_state(lchan, LCHAN_S_NONE); - return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), - LID_DEDIC, 0); + return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), LID_DEDIC, false); } int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) { struct phy_instance *pinst = trx_phy_instance(lchan->ts->trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; - return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), - LID_SACCH, 0); + return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), LID_SACCH, false); } static void l1if_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc) @@ -632,9 +630,9 @@ chan_nr = RSL_CHAN_OSMO_PDCH | (chan_nr & ~RSL_CHAN_NR_MASK); /* activate dedicated channel */ - trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_DEDIC, 1); + trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_DEDIC, true); /* activate associated channel */ - trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_SACCH, 1); + trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_SACCH, true); /* set mode */ trx_sched_set_mode(&l1h->l1s, chan_nr, lchan->rsl_cmode, lchan->tch_mode, diff --git a/src/osmo-bts-virtual/l1_if.c b/src/osmo-bts-virtual/l1_if.c index 31ed46d..5d3baf6 100644 --- a/src/osmo-bts-virtual/l1_if.c +++ b/src/osmo-bts-virtual/l1_if.c @@ -388,9 +388,9 @@ break; } /* activate dedicated channel */ - trx_sched_set_lchan(sched, chan_nr, LID_DEDIC, 1); + trx_sched_set_lchan(sched, chan_nr, LID_DEDIC, true); /* activate associated channel */ - trx_sched_set_lchan(sched, chan_nr, LID_SACCH, 1); + trx_sched_set_lchan(sched, chan_nr, LID_SACCH, true); /* set mode */ trx_sched_set_mode(sched, chan_nr, lchan->rsl_cmode, lchan->tch_mode, @@ -437,12 +437,12 @@ break; } /* deactivate associated channel */ - trx_sched_set_lchan(sched, chan_nr, LID_SACCH, 0); + trx_sched_set_lchan(sched, chan_nr, LID_SACCH, false); if (!l1sap->u.info.u.act_req.sacch_only) { /* set lchan inactive */ lchan_set_state(lchan, LCHAN_S_NONE); /* deactivate dedicated channel */ - trx_sched_set_lchan(sched, chan_nr, 0x00, 0); + trx_sched_set_lchan(sched, chan_nr, 0x00, false); /* confirm only on dedicated channel */ mph_info_chan_confirm(trx, chan_nr, PRIM_INFO_DEACTIVATE, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3 Gerrit-Change-Number: 18700 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 Jun 5 20:15:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 20:15:44 +0000 Subject: Change in osmo-bts[master]: osmo-bts-virtual: cosmetic: use LID_{SACCH, DEDIC} macros In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/18698 ) Change subject: osmo-bts-virtual: cosmetic: use LID_{SACCH,DEDIC} macros ...................................................................... osmo-bts-virtual: cosmetic: use LID_{SACCH,DEDIC} macros Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993 --- M src/osmo-bts-virtual/l1_if.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/98/18698/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993 Gerrit-Change-Number: 18698 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:15:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 5 Jun 2020 20:15:44 +0000 Subject: Change in osmo-bts[master]: common/scheduler: use boolean for channel activation state In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/18700 ) Change subject: common/scheduler: use boolean for channel activation state ...................................................................... common/scheduler: use boolean for channel activation state Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-virtual/l1_if.c 4 files changed, 12 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/00/18700/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3 Gerrit-Change-Number: 18700 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 Fri Jun 5 20:52:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:52:25 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... Patch Set 1: Code-Review-1 > Patch Set 1: > > > Patch Set 1: > > > > I'm not convinced (yet). Normally, we pass values around in host byte order and only translate them to network byte order when generating messages. > > > > So why is that value already in netwokr byte order? Why can the caller not provide it in host byte order? > > > > Also, if we really want function arguments are not in native (host) byte order, I think it must clearly be documented in the doxygen part. > > Hmm. I have checked it multiple times now. Network byte order is big endien, x86er is little endien. However 3GPP TS 48.008, section 3.2.2.105 wants the least significant byte transmitted first. I think thats why the endieness should already match the host byte order here. Thanks for pointing this out. That's of course quite unusual (probably a bug in the spec that was only discovered when it was too late and now everyone has to send little-endian uint32_t in a protocol that otherwise is always big-endian). But even in that case your patch is wrong. You need to do a portable conversion from host endianness (which can be either little or big) to little-endian. This conversion is so uncommon that we don't even have a libosmocore function for it. In the kernel there are macros like cpu_to_le32(x), but we don't have that. I guess you have to #include osmocom/core/endian.h and then do an #ifndef OSMO_IS_LITTLE_ENDIAN #else #endif clause. If the host is not LITTLE_ENDIAN, you need to do an osmo_swab32(). If the host is little endian, then nothing. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 20:52:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:52:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:52:50 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 20:52: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 Jun 5 20:53:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:53:01 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: prettify Makefile.am: make it git friendly In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18696 ) Change subject: osmo-bts-trx: prettify Makefile.am: make it git friendly ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba Gerrit-Change-Number: 18696 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 20:53:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:53:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:53:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18697 ) Change subject: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064 Gerrit-Change-Number: 18697 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 20: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 Fri Jun 5 20:53:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:53:35 +0000 Subject: Change in osmo-bts[master]: osmo-bts-virtual: cosmetic: use LID_{SACCH, DEDIC} macros In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18698 ) Change subject: osmo-bts-virtual: cosmetic: use LID_{SACCH,DEDIC} macros ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993 Gerrit-Change-Number: 18698 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 20:53:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:54:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:54:14 +0000 Subject: Change in osmo-bts[master]: rsl: refactor handling of RSL_IE_MR_CONFIG In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18680 ) Change subject: rsl: refactor handling of RSL_IE_MR_CONFIG ...................................................................... rsl: refactor handling of RSL_IE_MR_CONFIG - get rid of gsm_lchan::mr_bts_lv, it's never used anyway, - check IE length in amr_parse_mr_conf() before parsing, - check return code of amr_parse_mr_conf(). Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca --- M include/osmo-bts/gsm_data_shared.h M src/common/amr.c M src/common/rsl.c 3 files changed, 20 insertions(+), 21 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index f010dbc..dc7d39f 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -157,9 +157,6 @@ uint8_t key[MAX_A5_KEY_LEN]; } encr; - /* AMR bits */ - uint8_t mr_bts_lv[7]; - struct { uint32_t bound_ip; uint32_t connect_ip; diff --git a/src/common/amr.c b/src/common/amr.c index 05d1aaa..837757f 100644 --- a/src/common/amr.c +++ b/src/common/amr.c @@ -78,13 +78,16 @@ int amr_parse_mr_conf(struct amr_multirate_conf *amr_mrc, const uint8_t *mr_conf, unsigned int len) { - uint8_t mr_version = mr_conf[0] >> 5; uint8_t num_codecs = 0; int i, j = 0; - if (mr_version != 1) { - LOGP(DRSL, LOGL_ERROR, "AMR Multirate Version %u unknown\n", - mr_version); + if (len < 2) { + LOGP(DRSL, LOGL_ERROR, "AMR Multirate IE is too short (%u)\n", len); + goto ret_einval; + } + + if ((mr_conf[0] >> 5) != 1) { + LOGP(DRSL, LOGL_ERROR, "AMR Multirate Version %u unknown\n", (mr_conf[0] >> 5)); goto ret_einval; } diff --git a/src/common/rsl.c b/src/common/rsl.c index 41dd243..f057a89 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1209,17 +1209,16 @@ } /* 9.3.52 MultiRate Configuration */ if (TLVP_PRESENT(&tp, RSL_IE_MR_CONFIG)) { - if (TLVP_LEN(&tp, RSL_IE_MR_CONFIG) > sizeof(lchan->mr_bts_lv) - 1) { + rc = amr_parse_mr_conf(&lchan->tch.amr_mr, + TLVP_VAL(&tp, RSL_IE_MR_CONFIG), + TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); + if (rc < 0) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Error parsing MultiRate conf IE\n"); rsl_tx_error_report(msg->trx, RSL_ERR_IE_CONTENT, &dch->chan_nr, NULL, msg); return rsl_tx_chan_act_acknack(lchan, RSL_ERR_IE_CONTENT); } - memcpy(lchan->mr_bts_lv, TLVP_VAL(&tp, RSL_IE_MR_CONFIG) - 1, - TLVP_LEN(&tp, RSL_IE_MR_CONFIG) + 1); - amr_parse_mr_conf(&lchan->tch.amr_mr, TLVP_VAL(&tp, RSL_IE_MR_CONFIG), - TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); - amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), - &lchan->tch.amr_mr); + + amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), &lchan->tch.amr_mr); lchan->tch.last_cmr = AMR_CMR_NONE; } /* 9.3.53 MultiRate Control */ @@ -1556,6 +1555,7 @@ struct gsm_lchan *lchan = msg->lchan; struct rsl_ie_chan_mode *cm; struct tlv_parsed tp; + int rc; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1588,17 +1588,16 @@ /* 9.3.52 MultiRate Configuration */ if (TLVP_PRESENT(&tp, RSL_IE_MR_CONFIG)) { - if (TLVP_LEN(&tp, RSL_IE_MR_CONFIG) > sizeof(lchan->mr_bts_lv) - 1) { + rc = amr_parse_mr_conf(&lchan->tch.amr_mr, + TLVP_VAL(&tp, RSL_IE_MR_CONFIG), + TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); + if (rc < 0) { LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Error parsing MultiRate conf IE\n"); rsl_tx_error_report(msg->trx, RSL_ERR_IE_CONTENT, &dch->chan_nr, NULL, msg); return rsl_tx_mode_modif_nack(lchan, RSL_ERR_IE_CONTENT);; } - memcpy(lchan->mr_bts_lv, TLVP_VAL(&tp, RSL_IE_MR_CONFIG) - 1, - TLVP_LEN(&tp, RSL_IE_MR_CONFIG) + 1); - amr_parse_mr_conf(&lchan->tch.amr_mr, TLVP_VAL(&tp, RSL_IE_MR_CONFIG), - TLVP_LEN(&tp, RSL_IE_MR_CONFIG)); - amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), - &lchan->tch.amr_mr); + + amr_log_mr_conf(DRTP, LOGL_DEBUG, gsm_lchan_name(lchan), &lchan->tch.amr_mr); lchan->tch.last_cmr = AMR_CMR_NONE; } /* 9.3.53 MultiRate Control */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibfd5845ea429945b352dd14421e86562998d65ca Gerrit-Change-Number: 18680 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:54:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:54:14 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: prettify Makefile.am: make it git friendly In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18696 ) Change subject: osmo-bts-trx: prettify Makefile.am: make it git friendly ...................................................................... osmo-bts-trx: prettify Makefile.am: make it git friendly Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba --- M src/osmo-bts-trx/Makefile.am 1 file changed, 48 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/Makefile.am b/src/osmo-bts-trx/Makefile.am index 1922240..85c1ff4 100644 --- a/src/osmo-bts-trx/Makefile.am +++ b/src/osmo-bts-trx/Makefile.am @@ -1,10 +1,52 @@ -AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -AM_CFLAGS = -Wall -fno-strict-aliasing $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOCODING_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBOSMOCTRL_CFLAGS) -LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOCODING_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) $(LIBOSMOABIS_LIBS) $(LIBOSMOCTRL_LIBS) -ldl +AM_CPPFLAGS = \ + $(all_includes) \ + -I$(top_srcdir)/include \ + $(NULL) -EXTRA_DIST = trx_if.h l1_if.h loops.h +AM_CFLAGS = \ + -Wall -fno-strict-aliasing \ + $(LIBOSMOCORE_CFLAGS) \ + $(LIBOSMOGSM_CFLAGS) \ + $(LIBOSMOCODEC_CFLAGS) \ + $(LIBOSMOCODING_CFLAGS) \ + $(LIBOSMOVTY_CFLAGS) \ + $(LIBOSMOTRAU_CFLAGS) \ + $(LIBOSMOABIS_CFLAGS) \ + $(LIBOSMOCTRL_CFLAGS) \ + $(NULL) + +LDADD = \ + $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCODEC_LIBS) \ + $(LIBOSMOCODING_LIBS) \ + $(LIBOSMOVTY_LIBS) \ + $(LIBOSMOTRAU_LIBS) \ + $(LIBOSMOABIS_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ + -ldl \ + $(NULL) + +# TODO: use noinst_HEADERS instead? +EXTRA_DIST = \ + trx_if.h \ + l1_if.h \ + loops.h \ + $(NULL) bin_PROGRAMS = osmo-bts-trx -osmo_bts_trx_SOURCES = main.c trx_if.c l1_if.c scheduler_trx.c trx_vty.c loops.c -osmo_bts_trx_LDADD = $(top_builddir)/src/common/libl1sched.a $(top_builddir)/src/common/libbts.a $(LDADD) +osmo_bts_trx_SOURCES = \ + main.c \ + trx_if.c \ + l1_if.c \ + scheduler_trx.c \ + trx_vty.c \ + loops.c \ + $(NULL) + +osmo_bts_trx_LDADD = \ + $(top_builddir)/src/common/libl1sched.a \ + $(top_builddir)/src/common/libbts.a \ + $(LDADD) \ + $(NULL) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0991910e0ffa6140f20c49bd2f0ad9b42cf231ba Gerrit-Change-Number: 18696 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 Fri Jun 5 20:54:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:54:14 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18697 ) Change subject: osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST ...................................................................... osmo-bts-trx: fix: use noinst_HEADERS instead of EXTRA_DIST Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064 --- M src/osmo-bts-trx/Makefile.am 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/Makefile.am b/src/osmo-bts-trx/Makefile.am index 85c1ff4..b2d9b19 100644 --- a/src/osmo-bts-trx/Makefile.am +++ b/src/osmo-bts-trx/Makefile.am @@ -27,8 +27,7 @@ -ldl \ $(NULL) -# TODO: use noinst_HEADERS instead? -EXTRA_DIST = \ +noinst_HEADERS = \ trx_if.h \ l1_if.h \ loops.h \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c2fa21baae64e6537a2c74b97f1108b84099064 Gerrit-Change-Number: 18697 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 Fri Jun 5 20:54:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:54:15 +0000 Subject: Change in osmo-bts[master]: osmo-bts-virtual: cosmetic: use LID_{SACCH, DEDIC} macros In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18698 ) Change subject: osmo-bts-virtual: cosmetic: use LID_{SACCH,DEDIC} macros ...................................................................... osmo-bts-virtual: cosmetic: use LID_{SACCH,DEDIC} macros Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993 --- M src/osmo-bts-virtual/l1_if.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-virtual/l1_if.c b/src/osmo-bts-virtual/l1_if.c index c5c526c..289ef40 100644 --- a/src/osmo-bts-virtual/l1_if.c +++ b/src/osmo-bts-virtual/l1_if.c @@ -437,12 +437,12 @@ break; } /* deactivate associated channel */ - trx_sched_set_lchan(sched, chan_nr, 0x40, 0); + trx_sched_set_lchan(sched, chan_nr, LID_SACCH, 0); if (!l1sap->u.info.u.act_req.sacch_only) { /* set lchan inactive */ lchan_set_state(lchan, LCHAN_S_NONE); /* deactivate dedicated channel */ - trx_sched_set_lchan(sched, chan_nr, 0x00, 0); + trx_sched_set_lchan(sched, chan_nr, LID_DEDIC, 0); /* confirm only on dedicated channel */ mph_info_chan_confirm(trx, chan_nr, PRIM_INFO_DEACTIVATE, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idd37ca9ebf0d483cbea6f0e992211b9c3e2af993 Gerrit-Change-Number: 18698 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 Fri Jun 5 20:54:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:54:30 +0000 Subject: Change in osmo-bts[master]: common/scheduler: use boolean for channel activation state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18700 ) Change subject: common/scheduler: use boolean for channel activation state ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3 Gerrit-Change-Number: 18700 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 20:54:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:55:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:55:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 20:55:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:55:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:55:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 ) Change subject: BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect ...................................................................... BTS_Tests: fix f_init_rsl(): expect all 4 transceivers to connect Fixes TC_paging_{imsi,tmsi}_{200,80}percent test cases. Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Related: OS#4546 --- M bts/BTS_Tests.ttcn 1 file changed, 28 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Verified laforge: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 80804ec..e3d4beb 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -118,6 +118,7 @@ var RSL_Emulation_CT vc_RSL; /* Direct RSL_CCHAN_PT */ port RSL_CCHAN_PT RSL_CCHAN; + timer g_rslem_up_timer; /* L1CTL port (for classic tests) */ port L1CTL_PT L1CTL; @@ -180,9 +181,14 @@ port PCUIF_CODEC_PT PCU; } -function f_init_rsl(charstring id) runs on test_CT { - timer T := mp_ipa_up_timeout; +private altstep as_rsl_init_guard() runs on test_CT { + [] g_rslem_up_timer.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + "Timeout waiting for RSL bring up"); + } +} +function f_init_rsl(charstring id) runs on test_CT { vc_IPA := IPA_Emulation_CT.create(id & "-RSL-IPA"); vc_RSL := RSL_Emulation_CT.create(id & "-RSL"); @@ -193,14 +199,27 @@ vc_IPA.start(IPA_Emulation.main_server(mp_rsl_ip, mp_rsl_port)); vc_RSL.start(RSL_Emulation.main(false)); - T.start; - alt { - /* TODO: handle connection events from multiple transceivers */ - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP)); - [] T.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for ASP_IPA_EVENT_UP"); - } + /* TTCN-3 offers no way to guard 'interleave' statements */ + g_rslem_up_timer.start(mp_ipa_up_timeout); + var default d := activate(as_rsl_init_guard()); + + /* We expect all 4 transceivers to connect here (separate IPA/RSL connections). + * See https://gerrit.osmocom.org/q/Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b. */ + interleave { + /* These events are sent by the RSL_Emulation_CT */ + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX0)); + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX1)); + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX2)); + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX3)); + /* These messages (RF RESource INDication) are sent by the IUT itself */ + [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX0)); + [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX1)); + [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX2)); + [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX3)); } + + g_rslem_up_timer.stop; + deactivate(d); } type record ConnHdlrPars { @@ -2956,13 +2975,6 @@ integer num_overload } -/* receive + ignore RSL RF RES IND */ -altstep as_rsl_res_ind() runs on test_CT { - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND)) { - repeat; - } -} - /* Helper function for paging related testing */ private function f_TC_paging(PagingTestCfg cfg) runs on test_CT return PagingTestState { f_init(); @@ -3045,7 +3057,6 @@ } } [] T_total.timeout { } - [] as_rsl_res_ind(); } } @@ -3061,7 +3072,6 @@ [] T_wait.timeout { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Waiting for empty paging queue"); } - [] as_rsl_res_ind(); } log("num_paging_sent=", st.num_paging_sent, " rcvd_msgs=", st.num_paging_rcv_msgs, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I32bb6d37929cde420a547e18eeb2f940e833316b Gerrit-Change-Number: 18633 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 Jun 5 20:56:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:56:25 +0000 Subject: Change in osmo-bts[master]: doc/examples: remove virtual/openbsc-virtual.cfg In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18681 ) Change subject: doc/examples: remove virtual/openbsc-virtual.cfg ...................................................................... doc/examples: remove virtual/openbsc-virtual.cfg This is not the right place to ship configuration examples for other projects, and definitely not for abandoned ones. Change-Id: Ib165b16f948126df8023bb42ad5d6d4b2fc11e6a --- M contrib/osmo-bts.spec.in M debian/osmo-bts-virtual.install M doc/examples/Makefile.am D doc/examples/virtual/openbsc-virtual.cfg 4 files changed, 1 insertion(+), 155 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/osmo-bts.spec.in b/contrib/osmo-bts.spec.in index c155921..66213ff 100644 --- a/contrib/osmo-bts.spec.in +++ b/contrib/osmo-bts.spec.in @@ -99,7 +99,6 @@ %{_docdir}/%{name}/examples/osmo-bts-trx/osmo-bts-trx-calypso.cfg %{_docdir}/%{name}/examples/osmo-bts-trx/osmo-bts-trx.cfg %dir %{_docdir}/%{name}/examples/osmo-bts-virtual -%{_docdir}/%{name}/examples/osmo-bts-virtual/openbsc-virtual.cfg %{_docdir}/%{name}/examples/osmo-bts-virtual/osmo-bts-virtual.cfg %{_bindir}/osmo-bts-trx %dir %{_sysconfdir}/osmocom diff --git a/debian/osmo-bts-virtual.install b/debian/osmo-bts-virtual.install index f4d988f..63cc425 100644 --- a/debian/osmo-bts-virtual.install +++ b/debian/osmo-bts-virtual.install @@ -3,4 +3,3 @@ usr/bin/osmo-bts-virtual usr/bin/osmo-bts-omldummy usr/share/doc/osmo-bts/examples/osmo-bts-virtual/osmo-bts-virtual.cfg -usr/share/doc/osmo-bts/examples/osmo-bts-virtual/openbsc-virtual.cfg diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am index 3799069..25a2151 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/Makefile.am @@ -2,8 +2,7 @@ doc_virtualdir = $(docdir)/examples/osmo-bts-virtual doc_virtual_DATA = \ - virtual/osmo-bts-virtual.cfg \ - virtual/openbsc-virtual.cfg + virtual/osmo-bts-virtual.cfg EXTRA_DIST = $(doc_virtual_DATA) if ENABLE_SYSMOBTS diff --git a/doc/examples/virtual/openbsc-virtual.cfg b/doc/examples/virtual/openbsc-virtual.cfg deleted file mode 100644 index be79d58..0000000 --- a/doc/examples/virtual/openbsc-virtual.cfg +++ /dev/null @@ -1,151 +0,0 @@ -! -! OpenBSC (0.15.0.629-34f0-dirty) configuration saved from vty -!! -! -log stderr - logging filter all 1 - logging color 0 - logging print category 1 - logging timestamp 1 - logging level all info - logging level rll notice - logging level cc notice - logging level mm debug - logging level rr notice - logging level rsl notice - logging level nm info - logging level mncc notice - logging level pag notice - logging level meas notice - logging level sccp notice - logging level msc notice - logging level mgcp notice - logging level ho notice - logging level db notice - logging level ref notice - logging level gprs debug - logging level ns info - logging level bssgp debug - logging level llc debug - logging level sndcp debug - logging level nat notice - logging level ctrl notice - logging level smpp debug - logging level filter debug - logging level ranap debug - logging level sua debug - 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 -! -stats interval 5 -! -line vty - no login -! -e1_input - e1_line 0 driver ipa - e1_line 0 port 0 - no e1_line 0 keepalive -network - network country code 262 - mobile network code 42 - short name OpenBSC - long name OpenBSC - auth policy accept-all - authorized-regexp .* - location updating reject cause 13 - encryption a5 0 - neci 1 - paging any use tch 0 - rrlp mode ms-based - mm info 1 - handover 0 - handover window rxlev averaging 10 - handover window rxqual averaging 1 - handover window rxlev neighbor averaging 10 - handover power budget interval 6 - handover power budget hysteresis 3 - handover maximum distance 9999 - timer t3101 10 - timer t3103 0 - timer t3105 0 - timer t3107 0 - timer t3109 4 - timer t3111 0 - timer t3113 60 - timer t3115 0 - timer t3117 0 - timer t3119 0 - timer t3122 10 - timer t3141 0 - subscriber-keep-in-ram 0 - bts 0 - type sysmobts - band DCS1800 - cell_identity 6969 - location_area_code 1 - base_station_id_code 63 - ms max power 0 - cell reselection hysteresis 4 - rxlev access min 0 - periodic location update 30 - radio-link-timeout 32 - channel allocator descending - rach tx integer 9 - rach max transmission 7 - channel-descrption attach 1 - channel-descrption bs-pa-mfrms 5 - channel-descrption bs-ag-blks-res 1 - ip.access unit_id 6969 0 - oml ip.access stream_id 255 line 0 - neighbor-list mode automatic - codec-support fr - gprs mode none - no force-combined-si - trx 0 - rf_locked 0 - arfcn 666 - nominal power 0 - max_power_red 0 - rsl e1 tei 0 - timeslot 0 - phys_chan_config CCCH+SDCCH4 - hopping enabled 0 - timeslot 1 - phys_chan_config SDCCH8 - hopping enabled 0 - timeslot 2 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 3 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 4 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 5 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 6 - phys_chan_config TCH/F - hopping enabled 0 - timeslot 7 - phys_chan_config TCH/F - hopping enabled 0 -mncc-int - default-codec tch-f fr - default-codec tch-h hr -nitb - subscriber-create-on-demand - subscriber-create-on-demand random 1 24 - assign-tmsi -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib165b16f948126df8023bb42ad5d6d4b2fc11e6a Gerrit-Change-Number: 18681 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 Fri Jun 5 20:57:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:57:05 +0000 Subject: Change in osmo-bts[master]: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18646 ) Change subject: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790 Gerrit-Change-Number: 18646 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 20:57:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:57:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:57:08 +0000 Subject: Change in osmo-bts[master]: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18646 ) Change subject: bts-trx: phy_link: Improve logging fmt in phy_link_state_set() ...................................................................... bts-trx: phy_link: Improve logging fmt in phy_link_state_set() Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790 --- M include/osmo-bts/phy_link.h M src/common/phy_link.c 2 files changed, 16 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index cf877bd..2bed8ea 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -157,6 +157,7 @@ struct phy_link *phy_link_by_num(int num); struct phy_link *phy_link_create(void *ctx, int num); void phy_link_destroy(struct phy_link *plink); +const char *phy_link_name(struct phy_link *plink); void phy_link_state_set(struct phy_link *plink, enum phy_link_state state); enum phy_link_state phy_link_state_get(struct phy_link *plink); const char *phy_link_state_name(enum phy_link_state state); @@ -178,4 +179,5 @@ int bts_model_phy_link_open(struct phy_link *plink); +#define LOGPPHL(plink, section, lvl, fmt, args...) LOGP(section, lvl, "%s: " fmt, phy_link_name(plink), ##args) #define LOGPPHI(pinst, section, lvl, fmt, args...) LOGP(section, lvl, "%s: " fmt, phy_instance_name(pinst), ##args) diff --git a/src/common/phy_link.c b/src/common/phy_link.c index 85f9e14..38819eb 100644 --- a/src/common/phy_link.c +++ b/src/common/phy_link.c @@ -53,9 +53,9 @@ { struct phy_instance *pinst; - LOGP(DL1C, LOGL_INFO, "PHY link state change %s -> %s\n", - get_value_string(phy_link_state_vals, plink->state), - get_value_string(phy_link_state_vals, state)); + LOGPPHL(plink, DL1C, LOGL_INFO, "PHY link state change %s -> %s\n", + get_value_string(phy_link_state_vals, plink->state), + get_value_string(phy_link_state_vals, state)); /* notify all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { @@ -65,11 +65,11 @@ switch (state) { case PHY_LINK_CONNECTED: - LOGP(DL1C, LOGL_INFO, "trx_set_avail(1)\n"); + LOGPPHI(pinst, DL1C, LOGL_INFO, "trx_set_avail(1)\n"); trx_set_available(trx, 1); break; case PHY_LINK_SHUTDOWN: - LOGP(DL1C, LOGL_INFO, "trx_set_avail(0)\n"); + LOGPPHI(pinst, DL1C, LOGL_INFO, "trx_set_avail(0)\n"); trx_set_available(trx, 0); break; case PHY_LINK_CONNECTING: @@ -148,6 +148,13 @@ talloc_free(plink); } +static char name_buf[32]; +const char *phy_link_name(struct phy_link *plink) +{ + snprintf(name_buf, sizeof(name_buf), "phy%u", plink->num); + return name_buf; +} + int phy_links_open(void) { struct phy_link *plink; @@ -165,9 +172,7 @@ const char *phy_instance_name(struct phy_instance *pinst) { - static char buf[32]; - - snprintf(buf, sizeof(buf), "phy%u.%u", pinst->phy_link->num, + snprintf(name_buf, sizeof(name_buf), "phy%u.%u", pinst->phy_link->num, pinst->num); - return buf; + return name_buf; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4633dd81d0b4cc104ca9e0803993ba766cb23790 Gerrit-Change-Number: 18646 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:58:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:58:47 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18695 ) Change subject: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18695/1/ttcn3-bts-test/jenkins.sh File ttcn3-bts-test/jenkins.sh: https://gerrit.osmocom.org/c/docker-playground/+/18695/1/ttcn3-bts-test/jenkins.sh at 151 PS1, Line 151: docker container kill ${BUILD_TAG}-bsc actually, the container is killed above in line #139 when we set-up the OML tests which already run without the BSC. Sure, we can add the line if you prefer, but I really don't see any bug here. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia383febb3ca7ae6263853c68dc7b6d8700612b01 Gerrit-Change-Number: 18695 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 05 Jun 2020 20:58: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 Fri Jun 5 20:59:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:59:01 +0000 Subject: Change in osmo-ci[master]: remove openbsc from nightly and latest builds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18656 ) Change subject: remove openbsc from nightly and latest builds ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icee165422a52bfe04be103a5b7ebb5c8909c0321 Gerrit-Change-Number: 18656 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 05 Jun 2020 20:59:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 20:59:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 5 Jun 2020 20:59:04 +0000 Subject: Change in osmo-ci[master]: remove openbsc from nightly and latest builds In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18656 ) Change subject: remove openbsc from nightly and latest builds ...................................................................... remove openbsc from nightly and latest builds The only part that we haven't migrated elsewhere is osmo-bsc_nat, which is also really unmaintained at this point. Let's not confuse people into thinking they should actually use this software anymore. Change-Id: Icee165422a52bfe04be103a5b7ebb5c8909c0321 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 0 insertions(+), 4 deletions(-) Approvals: tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 46d8a0f..6566951 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -134,7 +134,6 @@ checkout osmo-iuh checkout osmo-ggsn checkout osmo-sgsn - checkout openbsc checkout osmo-pcap checkout osmo-trx checkout osmo-sip-connector @@ -172,7 +171,6 @@ build osmo-iuh build osmo-ggsn build osmo-sgsn - build openbsc build osmo-pcap build osmo-trx build osmo-sip-connector diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 4a0bc80..0e5dcbf 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -217,7 +217,6 @@ checkout osmo-iuh checkout osmo-ggsn checkout osmo-sgsn - checkout openbsc checkout osmo-pcap checkout osmo-trx checkout osmo-sip-connector @@ -259,7 +258,6 @@ build osmo-iuh build osmo-ggsn build osmo-sgsn - build openbsc build osmo-pcap build osmo-trx build osmo-trx-debian8 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icee165422a52bfe04be103a5b7ebb5c8909c0321 Gerrit-Change-Number: 18656 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 5 21:30:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 5 Jun 2020 21:30:30 +0000 Subject: Change in osmo-bts[master]: common/scheduler: fix unreachable code in trx_sched_set_lchan() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18699 ) Change subject: common/scheduler: fix unreachable code in trx_sched_set_lchan() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918 Gerrit-Change-Number: 18699 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 05 Jun 2020 21:30:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 5 21:52:08 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 05 Jun 2020 21:52:08 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5edabea483568_24392ae3da26c5f8839599@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 461s] [1933/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 461s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 461s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-build.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 461s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 461s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 461s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 461s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 461s] ../src/udm/context.c: In function ?udm_ue_add?: [ 461s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 461s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 461s] ~~^ [ 461s] %d [ 461s] cc1: some warnings being treated as errors [ 461s] [1938/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/pcrf:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/rx:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/common:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/gx [ 461s] [1939/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 461s] [1940/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 461s] [1941/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/ue-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/ue-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 462s] [1942/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/nf-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 462s] ninja: build stopped: subcommand failed. [ 462s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 462s] make: *** [debian/rules:11: binary] Error 1 [ 462s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 462s] ### VM INTERACTION START ### [ 465s] [ 442.282958] sysrq: SysRq : Power Off [ 465s] [ 442.287153] reboot: Power down [ 465s] ### VM INTERACTION END ### [ 465s] [ 465s] obs-arm-6 failed "build open5gs_1.2.5.20200605.dsc" at Fri Jun 5 21:51:50 UTC 2020. [ 465s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 6 01:52:37 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 01:52:37 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edaf70160f84_24392ae3da26c5f89123f8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 156s] touch libfx2.lib [ 156s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 156s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 156s] Making all in src [ 156s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 156s] Making all in common [ 156s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 156s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 156s] /usr/bin/env: 'python': No such file or directory [ 156s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 156s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 156s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 156s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 156s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 156s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 156s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 156s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 156s] make[1]: *** [Makefile:554: all] 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:13: build] Error 25 [ 156s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 156s] ### VM INTERACTION START ### [ 159s] [ 149.187880] sysrq: SysRq : Power Off [ 159s] [ 149.192357] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] sheep86 failed "build libusrp_3.4.4.7.50ce.dsc" at Sat Jun 6 01:52:32 UTC 2020. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 6 01:53:27 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 01:53:27 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5edaf72056a8a_24392ae3da26c5f891259e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: rror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 258s] [1927/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 258s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 258s] [1929/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 258s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 258s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 258s] ../src/udm/context.c: In function ?udm_ue_add?: [ 258s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 258s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 258s] ~~^ [ 258s] %d [ 258s] cc1: some warnings being treated as errors [ 258s] [1930/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 258s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 258s] [1932/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 258s] [1933/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 258s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 258s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 258s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 258s] ninja: build stopped: subcommand failed. [ 258s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 258s] make: *** [debian/rules:11: binary] Error 1 [ 258s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 258s] ### VM INTERACTION START ### [ 261s] [ 249.092206] sysrq: SysRq : Power Off [ 262s] [ 249.110726] reboot: Power down [ 262s] ### VM INTERACTION END ### [ 262s] [ 262s] lamb24 failed "build open5gs_1.2.5.20200606.dsc" at Sat Jun 6 01:53:10 UTC 2020. [ 262s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 6 02:01:44 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 02:01:44 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5edaf91d1ed47_24392ae3da26c5f8915061@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 174s] [1935/2112] rm -f src/pcrf/libpcrf.a && gcc-ar csrD src/pcrf/libpcrf.a 'src/pcrf/pcrf at sta/pcrf-init.c.o' 'src/pcrf/pcrf at sta/pcrf-context.c.o' 'src/pcrf/pcrf at sta/pcrf-fd-path.c.o' 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' 'src/pcrf/pcrf at sta/pcrf-rx-path.c.o' [ 175s] [1936/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 175s] FAILED: src/udm/udm at sta/context.c.o [ 175s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 175s] ../src/udm/context.c: In function ?udm_ue_add?: [ 175s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 175s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 175s] ~~^ [ 175s] %d [ 175s] cc1: some warnings being treated as errors [ 175s] [1937/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-build.c.o' -MF 'src/udm/udm at sta/nudr-build.c.o.d' -o 'src/udm/udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 175s] [1938/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 175s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 175s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 175s] [1941/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -lidn -ldl -lsctp -lgcrypt -lgnutls -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 175s] [1942/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 175s] [1943/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 175s] ninja: build stopped: subcommand failed. [ 175s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 175s] debian/rules:11: recipe for target 'binary' failed [ 175s] make: *** [binary] Error 1 [ 175s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 175s] ### VM INTERACTION START ### [ 178s] [ 169.502839] sysrq: SysRq : Power Off [ 178s] [ 169.513817] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] lamb16 failed "build open5gs_1.2.5.20200606.dsc" at Sat Jun 6 02:01:33 UTC 2020. [ 178s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 6 02:19:45 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 02:19:45 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5edafd5649718_24392ae3da26c5f891842d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: ameter/libfdproto/libfdproto.so.1.3.2 lib/gtp/libogsgtp.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/diameter/gx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/gtp' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp [ 245s] [1922/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 245s] [1923/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 245s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 245s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 245s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 245s] ../src/udm/context.c: In function ?udm_ue_add?: [ 245s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 245s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 245s] ~~^ [ 245s] %d [ 245s] cc1: some warnings being treated as errors [ 245s] [1925/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 245s] [1926/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 245s] [1927/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 245s] [1928/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 245s] [1929/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 246s] [1930/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 246s] [1931/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 246s] ninja: build stopped: subcommand failed. [ 246s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 246s] make: *** [debian/rules:11: binary] Error 1 [ 246s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 246s] ### VM INTERACTION START ### [ 249s] [ 239.872564] sysrq: SysRq : Power Off [ 249s] [ 239.884161] reboot: Power down [ 249s] ### VM INTERACTION END ### [ 249s] [ 249s] lamb54 failed "build open5gs_1.2.5.20200606.dsc" at Sat Jun 6 02:19:37 UTC 2020. [ 249s] -- 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 Jun 6 06:50:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 6 Jun 2020 06:50:10 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18695 ) Change subject: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18695/1/ttcn3-bts-test/jenkins.sh File ttcn3-bts-test/jenkins.sh: https://gerrit.osmocom.org/c/docker-playground/+/18695/1/ttcn3-bts-test/jenkins.sh at 151 PS1, Line 151: docker container kill ${BUILD_TAG}-bsc > actually, the container is killed above in line #139 when we set-up the OML tests which already run [?] Oh, right. I intentionally skipped (just removed) that segment with OML tests in my setup, so that's why it wasn't killed. I'll abandon this change. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia383febb3ca7ae6263853c68dc7b6d8700612b01 Gerrit-Change-Number: 18695 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 06 Jun 2020 06:50: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 Sat Jun 6 06:50:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 6 Jun 2020 06:50:20 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18695 ) Change subject: ttcn3-bts-test/jenkins.sh: stop container with BSC in the end ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia383febb3ca7ae6263853c68dc7b6d8700612b01 Gerrit-Change-Number: 18695 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 08:58:42 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 6 Jun 2020 08:58:42 +0000 Subject: Change in osmo-bts[master]: common/scheduler: fix unreachable code in trx_sched_set_lchan() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18699 ) Change subject: common/scheduler: fix unreachable code in trx_sched_set_lchan() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18699/2/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18699/2/src/common/scheduler.c at a990 PS2, Line 990: memset Interesting that Coverity did not warn us about that. We basically memset() the whole structure, including both 'dl_bursts' and 'ul_bursts' pointers. And after that check if they're not NULL. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918 Gerrit-Change-Number: 18699 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 06 Jun 2020 08:58: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 Sat Jun 6 10:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 10:00:39 +0000 Subject: Change in osmo-bsc[master]: stats: Add a BTS counter for paging requests responded elsewhere. In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18426 to look at the new patch set (#2). Change subject: stats: Add a BTS counter for paging requests responded elsewhere. ...................................................................... stats: Add a BTS counter for paging requests responded elsewhere. If we have several BTS in a single LAC, only one of them will respond to the paging. Without this counter this situation will lead to "lost" paging requests, i.e. in disparity between attempted pagings and expired/responded/etc pagings. Now the sum of all paging response counters should actually match the attempted counter. Change-Id: I4b27a0559ef2762e62bc3ac30000f17b89b0ed48 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/paging.c 2 files changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/26/18426/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4b27a0559ef2762e62bc3ac30000f17b89b0ed48 Gerrit-Change-Number: 18426 Gerrit-PatchSet: 2 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 10:00:40 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 10:00:40 +0000 Subject: Change in osmo-bsc[master]: chan_alloc: Fix typo in a comment. References: Message-ID: ipse has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18701 ) Change subject: chan_alloc: Fix typo in a comment. ...................................................................... chan_alloc: Fix typo in a comment. Change-Id: Iaed3fcd99ec8c08faa75e23af5b50a1d0e0905eb --- 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/01/18701/1 diff --git a/src/osmo-bsc/chan_alloc.c b/src/osmo-bsc/chan_alloc.c index f23a982..8b6e28c 100644 --- a/src/osmo-bsc/chan_alloc.c +++ b/src/osmo-bsc/chan_alloc.c @@ -45,7 +45,7 @@ llist_for_each_entry(trx, &bts->trx_list, list) { int i; - /* skip administratively deactivated tranxsceivers */ + /* skip administratively deactivated transceivers */ if (!trx_is_usable(trx)) continue; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iaed3fcd99ec8c08faa75e23af5b50a1d0e0905eb Gerrit-Change-Number: 18701 Gerrit-PatchSet: 1 Gerrit-Owner: ipse Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 10:00:40 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 10:00:40 +0000 Subject: Change in osmo-bsc[master]: timeslot_fsm: Name TS FSM instances on allocation. References: Message-ID: ipse has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18702 ) Change subject: timeslot_fsm: Name TS FSM instances on allocation. ...................................................................... timeslot_fsm: Name TS FSM instances on allocation. Before this patch FSM instances of configured but not connected BTS's look like this: FSM Instance Name: 'timeslot[0x612000004a20]', ID: '(null)' Log-Level: 'DEBUG', State: 'NOT_INITIALIZED' Now they look like this: FSM Instance Name: 'timeslot(0-0-7-NONE)[0x612000004a20]', ID: '0-0-7-NONE' Log-Level: 'DEBUG', State: 'NOT_INITIALIZED' which makes it possible to attribute them to where they belong. Otherwise, they look like lingering or leaking unattributed FSM instances. Change-Id: Idc74ea142b96323b48826f8a52e13e45d535512a --- M src/osmo-bsc/timeslot_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/02/18702/1 diff --git a/src/osmo-bsc/timeslot_fsm.c b/src/osmo-bsc/timeslot_fsm.c index 4816daf..b33e53e 100644 --- a/src/osmo-bsc/timeslot_fsm.c +++ b/src/osmo-bsc/timeslot_fsm.c @@ -62,6 +62,7 @@ OSMO_ASSERT(ts->trx); ts->fi = osmo_fsm_inst_alloc(&ts_fsm, ts->trx, ts, LOGL_DEBUG, NULL); OSMO_ASSERT(ts->fi); + ts_fsm_update_id(ts); } enum lchan_sanity { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idc74ea142b96323b48826f8a52e13e45d535512a Gerrit-Change-Number: 18702 Gerrit-PatchSet: 1 Gerrit-Owner: ipse Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 10:00:41 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 10:00:41 +0000 Subject: Change in osmo-bsc[master]: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR s... References: Message-ID: ipse has uploaded this change for review. ( 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, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/18703/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index d2f6c09..e184adc 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1416,6 +1416,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_TS_BORKEN_FROM_NOT_INITIALIZED, BTS_CTR_TS_BORKEN_FROM_UNUSED, BTS_CTR_TS_BORKEN_FROM_WAIT_PDCH_ACT, @@ -1466,6 +1467,7 @@ [BTS_CTR_LCHAN_BORKEN_EV_RF_CHAN_REL_ACK] = {"lchan_borken:event:rf_chan_rel_ack", "RF_CHAN_REL_ACK received in the lchan BORKEN state"}, [BTS_CTR_LCHAN_BORKEN_EV_VTY] = {"lchan_borken:event:vty", "VTY commands received in the lchan BORKEN state"}, [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"}, [BTS_CTR_TS_BORKEN_FROM_UNUSED] = {"ts_borken:from_state:unused", "Transitions from TS UNUSED state to BORKEN state"}, [BTS_CTR_TS_BORKEN_FROM_WAIT_PDCH_ACT] = {"ts_borken:from_state:wait_pdch_act", "Transitions from TS WAIT_PDCH_ACT state to BORKEN state"}, diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index a1bf857..1550ffb 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1327,8 +1327,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; + } default: return; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ice3379020039dc3634aa3887939740729d720dee Gerrit-Change-Number: 18703 Gerrit-PatchSet: 1 Gerrit-Owner: ipse Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 10:40:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 6 Jun 2020 10:40:13 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() If we do not enqueue a TRXC message, we should release memory. Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 12 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/18704/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index f717a0c..488aff6 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -211,9 +211,6 @@ struct trx_ctrl_msg *tcm; struct trx_ctrl_msg *prev = NULL; va_list ap; - int pending; - - pending = !llist_empty(&l1h->trx_ctrl_list); /* create message */ tcm = talloc_zero(tall_bts_ctx, struct trx_ctrl_msg); @@ -236,18 +233,22 @@ tcm->cb = cb; /* Avoid adding consecutive duplicate messages, eg: two consecutive POWEROFF */ - if(pending) + if (!llist_empty(&l1h->trx_ctrl_list)) prev = llist_entry(l1h->trx_ctrl_list.prev, struct trx_ctrl_msg, list); - - if (!pending || - !(strcmp(tcm->cmd, prev->cmd) == 0 && strcmp(tcm->params, prev->params) == 0)) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, "Enqueuing TRX control command 'CMD %s%s%s'\n", - tcm->cmd, tcm->params_len ? " ":"", tcm->params); - llist_add_tail(&tcm->list, &l1h->trx_ctrl_list); + if (prev != NULL && !strcmp(tcm->cmd, prev->cmd) + && !strcmp(tcm->params, prev->params)) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, + "Not sending duplicate command '%s'\n", tcm->cmd); + talloc_free(tcm); + return 0; } + LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, "Enqueuing TRX control command 'CMD %s%s%s'\n", + tcm->cmd, tcm->params_len ? " " : "", tcm->params); + llist_add_tail(&tcm->list, &l1h->trx_ctrl_list); + /* send message, if we didn't already have pending messages */ - if (!pending) + if (prev == NULL) trx_ctrl_send(l1h); return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 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 Jun 6 10:59:33 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 10:59:33 +0000 Subject: Change in osmo-bsc[master]: paging: Remove obsolete comment. In-Reply-To: References: Message-ID: ipse has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18428 ) Change subject: paging: Remove obsolete comment. ...................................................................... Patch Set 2: @neels Ping -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If2a0b15e360c44abc92fdeb9004be7ccc0537cdd Gerrit-Change-Number: 18428 Gerrit-PatchSet: 2 Gerrit-Owner: ipse Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: ipse Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 06 Jun 2020 10:59:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jun 6 11:02:41 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 11:02:41 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edb77e6ec8ed_24392ae3da26c5f81109093@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 360s] touch libfx2.lib [ 360s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 360s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 360s] Making all in src [ 360s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 360s] Making all in common [ 360s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 360s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 360s] /usr/bin/env: 'python': No such file or directory [ 360s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 360s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 360s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 360s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 360s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 360s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 360s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 360s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 360s] make[1]: *** [Makefile:554: all] Error 2 [ 360s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 360s] dh_auto_build: error: make -j1 returned exit code 2 [ 360s] make: *** [debian/rules:13: build] Error 25 [ 360s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 360s] ### VM INTERACTION START ### [ 363s] [ 348.052578] sysrq: SysRq : Power Off [ 363s] [ 348.058810] reboot: Power down [ 363s] ### VM INTERACTION END ### [ 363s] [ 363s] lamb06 failed "build libusrp_3.4.4.7.50ce.dsc" at Sat Jun 6 11:02:28 UTC 2020. [ 363s] -- 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 Jun 6 11:03:13 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 11:03:13 +0000 Subject: Change in osmo-bsc[master]: stats: Add a BTS counter for paging requests responded elsewhere. In-Reply-To: References: Message-ID: ipse has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18426 ) Change subject: stats: Add a BTS counter for paging requests responded elsewhere. ...................................................................... Patch Set 2: This is now working as expected. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4b27a0559ef2762e62bc3ac30000f17b89b0ed48 Gerrit-Change-Number: 18426 Gerrit-PatchSet: 2 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 06 Jun 2020 11:03: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 Sat Jun 6 11:08:54 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 11:08:54 +0000 Subject: Change in osmo-bsc[master]: stats: Add a BTS counter for paging requests responded elsewhere. In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18426 to look at the new patch set (#3). Change subject: stats: Add a BTS counter for paging requests responded elsewhere. ...................................................................... stats: Add a BTS counter for paging requests responded elsewhere. If we have several BTS in a single LAC, only one of them will respond to the paging. Without this counter this situation will lead to "lost" paging requests, i.e. in disparity between attempted pagings and expired/responded/etc pagings. That siad, even after this counter we're still observing some unaccounted ("lost") paging requests, so the saga for correctly counting paging is to continue... Change-Id: I4b27a0559ef2762e62bc3ac30000f17b89b0ed48 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/paging.c 2 files changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/26/18426/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4b27a0559ef2762e62bc3ac30000f17b89b0ed48 Gerrit-Change-Number: 18426 Gerrit-PatchSet: 3 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 12:41:50 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sat, 6 Jun 2020 12:41:50 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() In-Reply-To: References: Message-ID: ipse has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... Patch Set 1: (1 comment) The patch looks valid to me but I'm no specialist in this part of the code. I'm not sure whether this could fix the original issue with the leaking NOHANDOVER messages but happy to give it a try and see if this resolves the issue. https://gerrit.osmocom.org/c/osmo-bts/+/18704/1/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18704/1/src/osmo-bts-trx/trx_if.c at 205 PS1, Line 205: * The new ocommand will be added to the end of the control command Minor suggestion - fix a typo in the comment here in a separate commit? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 06 Jun 2020 12:41:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 12:44:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 6 Jun 2020 12:44:30 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18704/1/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18704/1/src/osmo-bts-trx/trx_if.c at 205 PS1, Line 205: * The new ocommand will be added to the end of the control command > Minor suggestion - fix a typo in the comment here in a separate commit? I'll submit a separate change, thanks! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 06 Jun 2020 12:44:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: ipse Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 12:45:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 6 Jun 2020 12:45:44 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18705 ) Change subject: osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ ...................................................................... osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ Change-Id: I06db72deb78cbab588de2103657b0722b67887a0 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/18705/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 488aff6..24d6b9b 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -202,7 +202,7 @@ * \param[in] fmt Format string (+ variable list of arguments) * \returns 0 on success; negative on error * - * The new ocommand will be added to the end of the control command + * The new command will be added to the end of the control command * queue. */ static int trx_ctrl_cmd_cb(struct trx_l1h *l1h, int critical, void *cb, const char *cmd, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I06db72deb78cbab588de2103657b0722b67887a0 Gerrit-Change-Number: 18705 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jun 6 15:27:15 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 15:27:15 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edbb5e540de_24392ae3da26c5f8119964c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 295s] touch libfx2.lib [ 295s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 295s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 295s] Making all in src [ 295s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 295s] Making all in common [ 295s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 295s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 295s] /usr/bin/env: 'python': No such file or directory [ 295s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 295s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 295s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 295s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 295s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 295s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 295s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 295s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 295s] make[1]: *** [Makefile:554: all] Error 2 [ 295s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 295s] dh_auto_build: error: make -j1 returned exit code 2 [ 295s] make: *** [debian/rules:13: build] Error 25 [ 295s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 295s] ### VM INTERACTION START ### [ 298s] [ 270.859708] sysrq: SysRq : Power Off [ 298s] [ 270.863451] reboot: Power down [ 298s] ### VM INTERACTION END ### [ 298s] [ 298s] cloud108 failed "build libusrp_3.4.4.7.50ce.dsc" at Sat Jun 6 15:26:58 UTC 2020. [ 298s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 6 17:05:58 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 17:05:58 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5edbcd154917e_24392ae3da26c5f8122559d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1208s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1209s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1210s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1210s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1210s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1211s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1211s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1211s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1212s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1213s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1213s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1213s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1213s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1213s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1213s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1213s] ~~^ [ 1213s] %d [ 1213s] cc1: some warnings being treated as errors [ 1213s] ninja: build stopped: subcommand failed. [ 1213s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1213s] make: *** [debian/rules:11: binary] Error 1 [ 1213s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1213s] ### VM INTERACTION START ### [ 1216s] [ 1176.344372] sysrq: SysRq : Power Off [ 1216s] [ 1176.346374] reboot: Power down [ 1216s] ### VM INTERACTION END ### [ 1216s] [ 1216s] armbuild15 failed "build open5gs_1.2.5.20200606.dsc" at Sat Jun 6 17:05:52 UTC 2020. [ 1216s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 6 19:14:54 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 19:14:54 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5edbeb4e31f86_24392ae3da26c5f812593a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 471s] [1932/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 471s] [1933/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 471s] [1934/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/pcrf:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/rx:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/common:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/gx [ 472s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 472s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 472s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 472s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 472s] ../src/udm/context.c: In function ?udm_ue_add?: [ 472s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 472s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 472s] ~~^ [ 472s] %d [ 472s] cc1: some warnings being treated as errors [ 472s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 472s] [1938/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-build.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 472s] [1939/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 472s] [1940/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 472s] [1941/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/nf-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 472s] ninja: build stopped: subcommand failed. [ 472s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 472s] make: *** [debian/rules:11: binary] Error 1 [ 472s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 473s] ### VM INTERACTION START ### [ 476s] [ 450.833742] sysrq: SysRq : Power Off [ 476s] [ 450.835910] reboot: Power down [ 477s] ### VM INTERACTION END ### [ 477s] [ 477s] obs-arm-6 failed "build open5gs_1.2.5.20200606.dsc" at Sat Jun 6 19:14:50 UTC 2020. [ 477s] -- 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 Jun 6 19:38:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:38:05 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 06 Jun 2020 19:38:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 19:38:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:38:22 +0000 Subject: Change in osmo-bsc[master]: chan_alloc: Fix typo in a comment. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18701 ) Change subject: chan_alloc: Fix typo in a comment. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iaed3fcd99ec8c08faa75e23af5b50a1d0e0905eb Gerrit-Change-Number: 18701 Gerrit-PatchSet: 1 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 06 Jun 2020 19:38: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 Sat Jun 6 19:38:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:38:57 +0000 Subject: Change in osmo-bsc[master]: timeslot_fsm: Name TS FSM instances on allocation. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18702 ) Change subject: timeslot_fsm: Name TS FSM instances on allocation. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idc74ea142b96323b48826f8a52e13e45d535512a Gerrit-Change-Number: 18702 Gerrit-PatchSet: 1 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 06 Jun 2020 19:38:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 19:39:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:39:19 +0000 Subject: Change in osmo-bsc[master]: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR s... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18703 ) Change subject: stats: Count transitions from BORKEN state due to LCHAN_EV_TS_ERROR signal. ...................................................................... Patch Set 1: 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: 1 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 06 Jun 2020 19: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 Sat Jun 6 19:40:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:40:02 +0000 Subject: Change in osmo-bsc[master]: stats: Add a BTS counter for paging requests responded elsewhere. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18426 ) Change subject: stats: Add a BTS counter for paging requests responded elsewhere. ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4b27a0559ef2762e62bc3ac30000f17b89b0ed48 Gerrit-Change-Number: 18426 Gerrit-PatchSet: 3 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 06 Jun 2020 19: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 Sat Jun 6 19:40:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:40:12 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18705 ) Change subject: osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I06db72deb78cbab588de2103657b0722b67887a0 Gerrit-Change-Number: 18705 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 06 Jun 2020 19:40:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 19:41:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:41:09 +0000 Subject: Change in osmo-bts[master]: common/scheduler: fix unreachable code in trx_sched_set_lchan() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18699 ) Change subject: common/scheduler: fix unreachable code in trx_sched_set_lchan() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918 Gerrit-Change-Number: 18699 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 06 Jun 2020 19:41:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 19:41:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:41:15 +0000 Subject: Change in osmo-bts[master]: common/scheduler: fix unreachable code in trx_sched_set_lchan() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18699 ) Change subject: common/scheduler: fix unreachable code in trx_sched_set_lchan() ...................................................................... common/scheduler: fix unreachable code in trx_sched_set_lchan() Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918 --- M src/common/scheduler.c 1 file changed, 5 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/common/scheduler.c b/src/common/scheduler.c index be3ae42..276f3fd 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -986,9 +986,6 @@ LOGP(DL1C, LOGL_NOTICE, "%s %s on trx=%d ts=%d\n", (active) ? "Activating" : "Deactivating", trx_chan_desc[i].name, l1t->trx->nr, tn); - if (active) - memset(chan_state, 0, sizeof(*chan_state)); - chan_state->active = active; /* free burst memory, to cleanly start with burst 0 */ if (chan_state->dl_bursts) { talloc_free(chan_state->dl_bursts); @@ -998,8 +995,12 @@ talloc_free(chan_state->ul_bursts); chan_state->ul_bursts = NULL; } - if (!active) + + if (active) + memset(chan_state, 0, sizeof(*chan_state)); + else chan_state->ho_rach_detect = 0; + chan_state->active = active; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie9d8f8ca86195be4408db717cd3194a7d2ddc918 Gerrit-Change-Number: 18699 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 6 19:41:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 19:41:15 +0000 Subject: Change in osmo-bts[master]: common/scheduler: use boolean for channel activation state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18700 ) Change subject: common/scheduler: use boolean for channel activation state ...................................................................... common/scheduler: use boolean for channel activation state Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-virtual/l1_if.c 4 files changed, 12 insertions(+), 16 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index 7a9da8f..74102f3 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -72,7 +72,7 @@ /* States each channel on a multiframe */ struct l1sched_chan_state { /* scheduler */ - uint8_t active; /* Channel is active */ + 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 */ sbit_t *ul_bursts; /* burst buffer for RX */ @@ -175,8 +175,7 @@ enum gsm_phys_chan_config pchan); /*! \brief set all matching logical channels active/inactive */ -int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, - int active); +int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, bool active); /*! \brief set mode of all matching logical channels to given mode(s) */ int trx_sched_set_mode(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t rsl_cmode, diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 276f3fd..5b398d1 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -586,7 +586,7 @@ for (i = 0; i < ARRAY_SIZE(l1ts->chan_state); i++) { struct l1sched_chan_state *chan_state; chan_state = &l1ts->chan_state[i]; - chan_state->active = 0; + chan_state->active = false; } } @@ -960,8 +960,7 @@ } /* setting all logical channels given attributes to active/inactive */ -int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, - int active) +int trx_sched_set_lchan(struct l1sched_trx *l1t, uint8_t chan_nr, uint8_t link_id, bool active) { uint8_t tn = L1SAP_CHAN2TS(chan_nr); struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index b28c894..b67d8fa 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -128,16 +128,14 @@ /* set lchan inactive */ lchan_set_state(lchan, LCHAN_S_NONE); - return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), - LID_DEDIC, 0); + return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), LID_DEDIC, false); } int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) { struct phy_instance *pinst = trx_phy_instance(lchan->ts->trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; - return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), - LID_SACCH, 0); + return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), LID_SACCH, false); } static void l1if_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc) @@ -632,9 +630,9 @@ chan_nr = RSL_CHAN_OSMO_PDCH | (chan_nr & ~RSL_CHAN_NR_MASK); /* activate dedicated channel */ - trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_DEDIC, 1); + trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_DEDIC, true); /* activate associated channel */ - trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_SACCH, 1); + trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_SACCH, true); /* set mode */ trx_sched_set_mode(&l1h->l1s, chan_nr, lchan->rsl_cmode, lchan->tch_mode, diff --git a/src/osmo-bts-virtual/l1_if.c b/src/osmo-bts-virtual/l1_if.c index 289ef40..8e84579 100644 --- a/src/osmo-bts-virtual/l1_if.c +++ b/src/osmo-bts-virtual/l1_if.c @@ -388,9 +388,9 @@ break; } /* activate dedicated channel */ - trx_sched_set_lchan(sched, chan_nr, LID_DEDIC, 1); + trx_sched_set_lchan(sched, chan_nr, LID_DEDIC, true); /* activate associated channel */ - trx_sched_set_lchan(sched, chan_nr, LID_SACCH, 1); + trx_sched_set_lchan(sched, chan_nr, LID_SACCH, true); /* set mode */ trx_sched_set_mode(sched, chan_nr, lchan->rsl_cmode, lchan->tch_mode, @@ -437,12 +437,12 @@ break; } /* deactivate associated channel */ - trx_sched_set_lchan(sched, chan_nr, LID_SACCH, 0); + trx_sched_set_lchan(sched, chan_nr, LID_SACCH, false); if (!l1sap->u.info.u.act_req.sacch_only) { /* set lchan inactive */ lchan_set_state(lchan, LCHAN_S_NONE); /* deactivate dedicated channel */ - trx_sched_set_lchan(sched, chan_nr, LID_DEDIC, 0); + trx_sched_set_lchan(sched, chan_nr, LID_DEDIC, false); /* confirm only on dedicated channel */ mph_info_chan_confirm(trx, chan_nr, PRIM_INFO_DEACTIVATE, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cb1d915db8787050cdec1802894f66e885a9bf3 Gerrit-Change-Number: 18700 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 Jun 6 20:26:56 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Sat, 6 Jun 2020 20:26:56 +0000 Subject: Change in pysim[master]: Add support for ADF_USIM/EF_EHPLMN In-Reply-To: References: Message-ID: guilly at gmail.com has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18649 ) Change subject: Add support for ADF_USIM/EF_EHPLMN ...................................................................... Patch Set 1: (1 comment) out of curiosity, the comment about the standard is interesting - so the EHPLMN list actually has priority to "void" the PLMN extracted from the IMSI in the PLMN search? I have seen MVNO SIMs, with the EHPLMN service enabled, but the list empty, what would be the HPLMN then? https://gerrit.osmocom.org/c/pysim/+/18649/1/pySim/cards.py File pySim/cards.py: https://gerrit.osmocom.org/c/pysim/+/18649/1/pySim/cards.py at 82 PS1, Line 82: (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['EHPLMN']) is it ok to put this USIM specific things in the generic Card class? I was thinking in adding a "genericUSIM" card type, at the end of the card specific type list, to pack all the USIM specific things, wouldn't that be a tidier approach? Also, are you OK by adding functions to read other fields, despite not being used in pySim-read? At the moment, I am using another script to read things like LOCI, PSLOCI, and others, not sure if submitting the change or not -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 Gerrit-Change-Number: 18649 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Sat, 06 Jun 2020 20:26: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 Sat Jun 6 20:35:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 6 Jun 2020 20:35:58 +0000 Subject: Change in libosmocore[master]: WIP: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18706 ) Change subject: WIP: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... WIP: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP 3GPP TS 48.016 is quite clear in that no NS-{RESET,BLOCK,UNBLOCK} procedures shalle be used over an IP based transport. They are only for use in Frame Relay based transport. However, as libosmogb was first developed against ip.access nanoBTS, and their Gb implementation mandates those procedures, we unconditionally implemented those procedures back then. Let's give the user the option of disabling this behavior to become more spec compliant (and interoperate with more other vendors out there). Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 --- M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/gprs_ns_vty.c 3 files changed, 57 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/18706/1 diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index 02faa50..94d3036 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -97,6 +97,8 @@ uint32_t remote_ip; uint16_t remote_port; int dscp; + /*! IPA compatibility: NS-RESET/BLOCK/UNBLOCK even on IP-SNS */ + bool use_reset_block_unblock; } nsip; /*! NS-over-FR-over-GRE-over-IP specific bits */ struct { diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 4e584ad..f1b36f4 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -327,7 +327,7 @@ nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = 1; /* before RESET procedure: BLOCKED and DEAD */ - if (nsi->bss_sns_fi) + if (nsi->bss_sns_fi || !nsi->nsip.use_reset_block_unblock) ns_set_state(nsvc, 0); else ns_set_state(nsvc, NSE_S_BLOCKED); @@ -793,7 +793,7 @@ nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) { /* mark as dead (and blocked unless IP-SNS) */ rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_DEAD]); - if (!nsvc->nsi->bss_sns_fi) { + if (!nsvc->nsi->bss_sns_fi && nsvc->nsi->nsip.use_reset_block_unblock) { ns_set_state(nsvc, NSE_S_BLOCKED); rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); } else @@ -804,7 +804,7 @@ nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]); ns_osmo_signal_dispatch(nsvc, S_NS_ALIVE_EXP, 0); /* FIXME: should we send this signal in case of SNS? */ - if (!nsvc->nsi->bss_sns_fi) + if (!nsvc->nsi->bss_sns_fi && nsvc->nsi->nsip.use_reset_block_unblock) ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, NS_CAUSE_NSVC_BLOCKED); return; } @@ -1758,8 +1758,12 @@ * fine. */ if ((*nsvc)->state == NSE_S_BLOCKED) rc = gprs_nsvc_reset((*nsvc), NS_CAUSE_PDU_INCOMP_PSTATE); - else if (!((*nsvc)->state & NSE_S_RESET)) + else if (!((*nsvc)->state & NSE_S_RESET)) { + /* if we're not alive, we cannot transmit the ACK; set ALIVE */ + if (!((*nsvc)->state & NSE_S_ALIVE)) + ns_mark_alive(*nsvc); rc = gprs_ns_tx_alive_ack(*nsvc); + } break; case NS_PDUT_ALIVE_ACK: ns_mark_alive(*nsvc); @@ -1915,6 +1919,11 @@ llist_del(&nsi->unknown_nsvc->list); INIT_LLIST_HEAD(&nsi->unknown_nsvc->list); + /* By default we are in IPA compatible mode, that is we use NS-RESET, NS-BLOCK + * and NS-UNBLOCK procedures even for an IP/UDP based Gb interface, in violation + * of 3GPP TS 48.016. */ + nsi->nsip.use_reset_block_unblock = true; + return nsi; } diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 9cffb71..bd53f2f 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -90,6 +90,32 @@ vty_out(vty, "ns%s", VTY_NEWLINE); + /* global configuration must be written first, as some of it may be + * relevant when creating the NSE/NSVC later below */ + + if (vty_nsi->nsip.local_ip) { + ia.s_addr = osmo_htonl(vty_nsi->nsip.local_ip); + vty_out(vty, " encapsulation udp local-ip %s%s", + inet_ntoa(ia), VTY_NEWLINE); + } + if (vty_nsi->nsip.local_port) + vty_out(vty, " encapsulation udp local-port %u%s", + vty_nsi->nsip.local_port, VTY_NEWLINE); + if (vty_nsi->nsip.dscp) + vty_out(vty, " encapsulation udp dscp %d%s", + vty_nsi->nsip.dscp, VTY_NEWLINE); + + vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", + vty_nsi->nsip.use_reset_block_unblock ? "enabled" : "disabled", VTY_NEWLINE); + + vty_out(vty, " encapsulation framerelay-gre enabled %u%s", + vty_nsi->frgre.enabled ? 1 : 0, VTY_NEWLINE); + if (vty_nsi->frgre.local_ip) { + ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); + vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", + inet_ntoa(ia), VTY_NEWLINE); + } + llist_for_each_entry(nsvc, &vty_nsi->gprs_nsvcs, list) { if (!nsvc->persistent) continue; @@ -130,26 +156,6 @@ get_value_string(gprs_ns_timer_strs, i), vty_nsi->timeout[i], VTY_NEWLINE); - if (vty_nsi->nsip.local_ip) { - ia.s_addr = osmo_htonl(vty_nsi->nsip.local_ip); - vty_out(vty, " encapsulation udp local-ip %s%s", - inet_ntoa(ia), VTY_NEWLINE); - } - if (vty_nsi->nsip.local_port) - vty_out(vty, " encapsulation udp local-port %u%s", - vty_nsi->nsip.local_port, VTY_NEWLINE); - if (vty_nsi->nsip.dscp) - vty_out(vty, " encapsulation udp dscp %d%s", - vty_nsi->nsip.dscp, VTY_NEWLINE); - - vty_out(vty, " encapsulation framerelay-gre enabled %u%s", - vty_nsi->frgre.enabled ? 1 : 0, VTY_NEWLINE); - if (vty_nsi->frgre.local_ip) { - ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); - vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", - inet_ntoa(ia), VTY_NEWLINE); - } - return CMD_SUCCESS; } @@ -500,6 +506,21 @@ return CMD_SUCCESS; } +DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, + "encapsulation udp use-reset-block-unblock (enabled|disabled)", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" + "Enable NS-{RESET,BLOCK,UNBLOCK}\n" + "Disable NS-{RESET,BLOCK,UNBLOCK}\n") +{ + if (!strcmp(argv[0], "enabled")) + vty_nsi->nsip.use_reset_block_unblock = true; + else + vty_nsi->nsip.use_reset_block_unblock = false; + + return CMD_SUCCESS; +} + DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, "encapsulation framerelay-gre local-ip A.B.C.D", ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" @@ -643,6 +664,7 @@ install_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); install_element(L_NS_NODE, &cfg_nsip_local_port_cmd); install_element(L_NS_NODE, &cfg_nsip_dscp_cmd); + install_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); install_element(L_NS_NODE, &cfg_frgre_enable_cmd); install_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jun 6 22:07:05 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 22:07:05 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edc13949247b_24392ae3da26c5f812964d2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 220s] touch libfx2.lib [ 220s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 220s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 220s] Making all in src [ 220s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 220s] Making all in common [ 220s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 220s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 220s] /usr/bin/env: 'python': No such file or directory [ 220s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 220s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 221s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 221s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 221s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 221s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 221s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 221s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 221s] make[1]: *** [Makefile:554: all] Error 2 [ 221s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 221s] dh_auto_build: error: make -j1 returned exit code 2 [ 221s] make: *** [debian/rules:13: build] Error 25 [ 221s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 221s] ### VM INTERACTION START ### [ 224s] [ 208.793213] sysrq: SysRq : Power Off [ 224s] [ 208.799128] reboot: Power down [ 224s] ### VM INTERACTION END ### [ 224s] [ 224s] lamb61 failed "build libusrp_3.4.4.7.50ce.dsc" at Sat Jun 6 22:06:59 UTC 2020. [ 224s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 6 22:09:39 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 06 Jun 2020 22:09:39 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edc142e8b7c2_24392ae3da26c5f8129714e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Unstable/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 286s] touch libfx2.lib [ 286s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 286s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 286s] Making all in src [ 286s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 286s] Making all in common [ 286s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 286s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 286s] /usr/bin/env: 'python': No such file or directory [ 286s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 286s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 286s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 286s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 286s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 286s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 286s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 286s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 286s] make[1]: *** [Makefile:547: all] Error 2 [ 286s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 286s] dh_auto_build: error: make -j1 returned exit code 2 [ 286s] make: *** [debian/rules:13: build] Error 25 [ 286s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 286s] ### VM INTERACTION START ### [ 289s] [ 274.031720] sysrq: SysRq : Power Off [ 289s] [ 274.054918] reboot: Power down [ 289s] ### VM INTERACTION END ### [ 289s] [ 289s] lamb24 failed "build libusrp_3.4.4.dsc" at Sat Jun 6 22:09:35 UTC 2020. [ 289s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 7 01:35:21 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 01:35:21 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5edc44716ffdc_24392ae3da26c5f81338652@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: nction-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 156s] [1926/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/event.c.o' -MF 'src/udm/src at udm@@udm at sta/event.c.o.d' -o 'src/udm/src at udm@@udm at sta/event.c.o' -c ../src/udm/event.c [ 156s] [1927/2112] cc -Isrc/udr/src at udr@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/src at udr@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/src at udr@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/src at udr@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 156s] [1928/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nudm-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 156s] [1929/2112] cc -Isrc/pgw/src at pgw@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o' -MF 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o.d' -o 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o' -c ../src/pgw/pgw-context.c [ 156s] [1930/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 156s] [1931/2112] cc -o src/mme/open5gs-mmed 'src/mme/src at mme@@open5gs-mmed at exe/app-init.c.o' 'src/mme/src at mme@@open5gs-mmed at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/mme/libmme.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/sctp/libogssctp.so.1.2.5 lib/s1ap/libogss1ap.so.1.2.5 lib/asn1c/s1ap/libogsasn1c-s1ap.so.1.2.5 lib/asn1c/common/libogsasn1c-common.so.1.2.5 lib/asn1c/util/libogsasn1c-util.so.1.2.5 lib/nas/eps/libogsnas-eps.so.1.2.5 lib/nas/common/libogsnas-common.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/s6a/libogsdiameter-s6a.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/gtp/libogsgtp.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/s6a:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/gtp' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/s6a:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp [ 156s] [1932/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 156s] [1933/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 156s] [1934/2112] cc -Itests/mnc3/tests at mnc3@@mnc3 at exe -Itests/mnc3 -I../tests/mnc3 -Itests/app -I../tests/app -Isrc -I../src -Itests/common -I../tests/common -Itests -I../tests -Ilib/core -I../lib/core -Ilib -I../lib -Ilib/app -I../lib/app -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sctp -I../lib/sctp -Ilib/ngap -I../lib/ngap -Ilib/asn1c/ngap -I../lib/asn1c/ngap -Ilib/asn1c/common -I../lib/asn1c/common -Ilib/asn1c/util -I../lib/asn1c/util -Ilib/nas/eps -I../lib/nas/eps -Ilib/nas/common -I../lib/nas/common -Ilib/nas/5gs -I../lib/nas/5gs -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/s1ap -I../lib/s1ap -Ilib/asn1c/s1ap -I../lib/asn1c/s1ap -Ilib/diameter/s6a -I../lib/diameter/s6a -Ilib/gtp -I../lib/gtp -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/rx -I../lib/diameter/rx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -Wno-missing-prototypes -Wno-missing-declarations -Wno-discarded-qualifiers -Wno-incompatible-pointer-types -Wno-unused-variable -Wno-deprecated-declarations -MD -MQ 'tests/mnc3/tests at mnc3@@mnc3 at exe/mnc3-test.c.o' -MF 'tests/mnc3/tests at mnc3@@mnc3 at exe/mnc3-test.c.o.d' -o 'tests/mnc3/tests at mnc3@@mnc3 at exe/mnc3-test.c.o' -c ../tests/mnc3/mnc3-test.c [ 156s] [1935/2112] cc -Isrc/pgw/src at pgw@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/src at pgw@@pgw at sta/pgw-fd-path.c.o' -MF 'src/pgw/src at pgw@@pgw at sta/pgw-fd-path.c.o.d' -o 'src/pgw/src at pgw@@pgw at sta/pgw-fd-path.c.o' -c ../src/pgw/pgw-fd-path.c [ 156s] ninja: build stopped: subcommand failed. [ 156s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j16 -v returned exit code 1 [ 156s] make: *** [debian/rules:11: binary] Error 1 [ 156s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 156s] ### VM INTERACTION START ### [ 159s] [ 151.212291] sysrq: SysRq : Power Off [ 159s] [ 151.216504] reboot: Power down [ 159s] ### VM INTERACTION END ### [ 159s] [ 159s] goat07 failed "build open5gs_1.2.5.20200607.dsc" at Sun Jun 7 01:35:08 UTC 2020. [ 159s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 7 01:35:38 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 01:35:38 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5edc44738a5e8_24392ae3da26c5f81338822@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 175s] [1933/2112] cc -Isrc/udr/udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/udr at sta/init.c.o' -MF 'src/udr/udr at sta/init.c.o.d' -o 'src/udr/udr at sta/init.c.o' -c ../src/udr/init.c [ 175s] [1934/2112] cc -Isrc/udr/open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 175s] [1935/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/timer.c.o' -MF 'src/udm/udm at sta/timer.c.o.d' -o 'src/udm/udm at sta/timer.c.o' -c ../src/udm/timer.c [ 175s] [1936/2112] cc -Isrc/udr/udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/udr at sta/udr-sm.c.o' -MF 'src/udr/udr at sta/udr-sm.c.o.d' -o 'src/udr/udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 175s] [1937/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/udr at sta/context.c.o' 'src/udr/udr at sta/event.c.o' 'src/udr/udr at sta/timer.c.o' 'src/udr/udr at sta/nnrf-handler.c.o' 'src/udr/udr at sta/nf-sm.c.o' 'src/udr/udr at sta/nudr-handler.c.o' 'src/udr/udr at sta/sbi-path.c.o' 'src/udr/udr at sta/udr-sm.c.o' 'src/udr/udr at sta/init.c.o' [ 175s] [1938/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 175s] FAILED: src/udm/udm at sta/context.c.o [ 175s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 175s] ../src/udm/context.c: In function ?udm_ue_add?: [ 175s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 175s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 175s] ~~^ [ 175s] %d [ 175s] cc1: some warnings being treated as errors [ 175s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 175s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 175s] [1941/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 175s] ninja: build stopped: subcommand failed. [ 175s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 175s] debian/rules:11: recipe for target 'binary' failed [ 175s] make: *** [binary] Error 1 [ 175s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 175s] ### VM INTERACTION START ### [ 178s] [ 168.803128] sysrq: SysRq : Power Off [ 178s] [ 168.805096] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] wildcard2 failed "build open5gs_1.2.5.20200607.dsc" at Sun Jun 7 01:35:32 UTC 2020. [ 178s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 7 01:37:21 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 01:37:21 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5edc44e978fa9_24392ae3da26c5f813391a0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: rror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 278s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 278s] [1928/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 278s] [1929/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 278s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 278s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 278s] ../src/udm/context.c: In function ?udm_ue_add?: [ 278s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 278s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 278s] ~~^ [ 278s] %d [ 278s] cc1: some warnings being treated as errors [ 278s] [1930/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 278s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 278s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 278s] [1933/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 279s] [1934/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 279s] [1935/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 279s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 279s] ninja: build stopped: subcommand failed. [ 279s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 279s] make: *** [debian/rules:11: binary] Error 1 [ 279s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 279s] ### VM INTERACTION START ### [ 282s] [ 272.087821] sysrq: SysRq : Power Off [ 282s] [ 272.107769] reboot: Power down [ 282s] ### VM INTERACTION END ### [ 282s] [ 282s] lamb61 failed "build open5gs_1.2.5.20200607.dsc" at Sun Jun 7 01:37:16 UTC 2020. [ 282s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 7 01:41:21 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 01:41:21 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edc45d8dd62d_24392ae3da26c5f81340619@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 271s] touch libfx2.lib [ 271s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 271s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 271s] Making all in src [ 271s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 271s] Making all in common [ 271s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 271s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 271s] /usr/bin/env: 'python': No such file or directory [ 271s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 271s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 271s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 271s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 271s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 271s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 271s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 271s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 271s] make[1]: *** [Makefile:554: all] Error 2 [ 271s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 271s] dh_auto_build: error: make -j1 returned exit code 2 [ 271s] make: *** [debian/rules:13: build] Error 25 [ 271s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 271s] ### VM INTERACTION START ### [ 275s] [ 259.584851] sysrq: SysRq : Power Off [ 275s] [ 259.590215] reboot: Power down [ 275s] ### VM INTERACTION END ### [ 275s] [ 275s] lamb04 failed "build libusrp_3.4.4.7.50ce.dsc" at Sun Jun 7 01:41:08 UTC 2020. [ 275s] -- 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 Jun 7 02:56:05 2020 From: gerrit-no-reply at lists.osmocom.org (ipse) Date: Sun, 7 Jun 2020 02:56:05 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() In-Reply-To: References: Message-ID: ipse has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... Patch Set 1: Code-Review+1 The patch works in our case and indeed fixes the memory leak. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 02: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 Sun Jun 7 08:42:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 08:42:48 +0000 Subject: Change in libosmocore[master]: NS: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP 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/+/18706 to look at the new patch set (#2). Change subject: NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP 3GPP TS 48.016 is quite clear in that no NS-{RESET,BLOCK,UNBLOCK} procedures shalle be used over an IP based transport. They are only for use in Frame Relay based transport. However, as libosmogb was first developed against ip.access nanoBTS, and their Gb implementation mandates those procedures, we unconditionally implemented those procedures back then. Let's give the user the option of disabling this behavior to become more spec compliant (and interoperate with more other vendors out there). Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 --- M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/gprs_ns_vty.c 3 files changed, 57 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/18706/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 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 Jun 7 08:42:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 08:42:48 +0000 Subject: Change in libosmocore[master]: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18707 ) Change subject: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() ...................................................................... NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 --- M TODO-RELEASE M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/gprs_ns_vty.c M src/gb/libosmogb.map 5 files changed, 7 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/07/18707/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index a6ed730..c9d9c56 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -11,3 +11,4 @@ sim API/ABI change new osim_file_desc_find_aid() sim API/ABI change all over the place gsm new API new osmo_bts_unset_feature() +gb API/ABI change deprecate gprs_nsvc_crate(); export gprs_nsvc_create2() diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index 94d3036..65c7df3 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -197,7 +197,6 @@ /* Listen for incoming GPRS packets via NS/FR/GRE */ int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi); -struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci); struct gprs_nsvc *gprs_nsvc_create2(struct gprs_ns_inst *nsi, uint16_t nsvci, uint8_t sig_weight, uint8_t data_weight); void gprs_nsvc_delete(struct gprs_nsvc *nsvc); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index f1b36f4..14fe661 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -347,12 +347,6 @@ return nsvc; } -/*! Old API for creating a NS-VC. Uses gprs_nsvc_create2 with fixed weights. */ -struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci) -{ - return gprs_nsvc_create2(nsi, nsvci, 1, 1); -} - /*! Delete given NS-VC * \param[in] nsvc gprs_nsvc to be deleted */ @@ -1269,7 +1263,7 @@ nsvci, (*nsvc)->nsvci, gprs_ns_ll_str(*nsvc)); orig_nsvc = *nsvc; - *nsvc = gprs_nsvc_create((*nsvc)->nsi, nsvci); + *nsvc = gprs_nsvc_create2((*nsvc)->nsi, nsvci, 1, 1); (*nsvc)->nsei = nsei; } } @@ -1691,7 +1685,7 @@ * simply have changed addresses, or it is a SGSN */ existing_nsvc = gprs_nsvc_by_nsvci(nsi, nsvci); if (!existing_nsvc) { - *new_nsvc = gprs_nsvc_create(nsi, 0xffff); + *new_nsvc = gprs_nsvc_create2(nsi, 0xffff, 1, 1); (*new_nsvc)->nsvci_is_valid = 0; log_set_context(LOG_CTX_GB_NSVC, *new_nsvc); gprs_ns_ll_copy(*new_nsvc, fallback_nsvc); @@ -1914,7 +1908,7 @@ /* Create the dummy NSVC that we use for sending * messages to non-existant/unknown NS-VC's */ - nsi->unknown_nsvc = gprs_nsvc_create(nsi, 0xfffe); + nsi->unknown_nsvc = gprs_nsvc_create2(nsi, 0xfffe, 1, 1); nsi->unknown_nsvc->nsvci_is_valid = 0; llist_del(&nsi->unknown_nsvc->list); INIT_LLIST_HEAD(&nsi->unknown_nsvc->list); @@ -2155,7 +2149,7 @@ nsvc = gprs_nsvc_by_rem_addr(nsi, dest); if (!nsvc) - nsvc = gprs_nsvc_create(nsi, nsvci); + nsvc = gprs_nsvc_create2(nsi, nsvci, 1, 1); nsvc->ip.bts_addr = *dest; nsvc->nsei = nsei; nsvc->remote_end_is_sgsn = 1; diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index bd53f2f..38d4393 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -292,7 +292,7 @@ nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei); if (!nsvc) { - nsvc = gprs_nsvc_create(vty_nsi, nsvci); + nsvc = gprs_nsvc_create2(vty_nsi, nsvci, 1, 1); nsvc->nsei = nsei; } nsvc->nsvci = nsvci; diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index ad139c1..b29ecb9 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -70,7 +70,7 @@ gprs_ns_ll_clear; gprs_ns_msgb_alloc; -gprs_nsvc_create; +gprs_nsvc_create2; gprs_nsvc_delete; gprs_nsvc_reset; gprs_nsvc_by_nsvci; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 Gerrit-Change-Number: 18707 Gerrit-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 Jun 7 09:10:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 7 Jun 2020 09:10:29 +0000 Subject: Change in osmo-bts[master]: scheduler: fix trx_sched_set_lchan(): send TRXC HANDOVER References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18708 ) Change subject: scheduler: fix trx_sched_set_lchan(): send TRXC HANDOVER ...................................................................... scheduler: fix trx_sched_set_lchan(): send TRXC HANDOVER The purpose of TRXC [NO]HANDOVER commands is to control handover detection in transceiver. By default, handover detection is enabled on all inactive channels. As soon as the BSC activates a logical channel, osmo-bts-trx needs to send TRXC NOHANDOVER to the transceiver, so handover detection is disabled for that channel. As soon as a logical channel is deactivated, osmo-bts-trx needs to send TRXC HANDOVER to the transceiver, so handover detection is activated again. As it turns out, osmo-bts-trx never sends TRXC HANDOVER command to the transceiver. Instead, TRXC NOHANDOVER is being sent twice. The culprit is trx_sched_set_lchan(): for some reason it sends TRXC NOHANDOVER on channel deactivation, while it's supposed to send TRXC HANDOVER instead. Let's fix this. Interestingly enough, in some rare cases this bug triggers another bug (see OS#4586), causing a memory leak in trx_ctrl_cmd_cb(). Change-Id: Ia106baafc1b7fafb36f11ca378a285d71d1df5a3 Related: OS#4592, OS#4586 --- M src/common/scheduler.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/08/18708/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 5b398d1..bdd5387 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1003,9 +1003,9 @@ } } - /* disable handover detection (on deactivation) */ + /* enable handover detection on deactivation */ if (!active) - _sched_act_rach_det(l1t, tn, ss, 0); + _sched_act_rach_det(l1t, tn, ss, 1); return rc; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia106baafc1b7fafb36f11ca378a285d71d1df5a3 Gerrit-Change-Number: 18708 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 Jun 7 12:12:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 7 Jun 2020 12:12:13 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18709 ) Change subject: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy ...................................................................... ttcn3-bts-test/jenkins.sh: fix: properly start virtphy Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/09/18709/1 diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 4974a34..97770e8 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -77,7 +77,6 @@ --name ${BUILD_TAG}-virtphy -d \ $DOCKER_ARGS \ $REPO_USER/osmocom-bb-host-master \ - virtphy -s /data/unix/osmocom_l2 /bin/sh -c "virtphy -s /data/unix/osmocom_l2 >>/data/virtphy.log 2>&1" } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 Gerrit-Change-Number: 18709 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 7 12:31:57 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 12:31:57 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5edcde5726996_24392ae3da26c5f81451294@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 412s] [1931/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 412s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 412s] [1933/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 412s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 412s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 412s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 413s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 413s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 413s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 413s] ../src/udm/context.c: In function ?udm_ue_add?: [ 413s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 413s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 413s] ~~^ [ 413s] %d [ 413s] cc1: some warnings being treated as errors [ 413s] [1938/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 413s] [1939/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-build.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 413s] [1940/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 413s] ninja: build stopped: subcommand failed. [ 413s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 413s] make: *** [debian/rules:11: binary] Error 1 [ 413s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 413s] ### VM INTERACTION START ### [ 416s] [ 402.357829] sysrq: SysRq : Power Off [ 416s] [ 402.364197] reboot: Power down [ 417s] ### VM INTERACTION END ### [ 417s] [ 417s] armbuild24 failed "build open5gs_1.2.5.20200607.dsc" at Sun Jun 7 12:31:49 UTC 2020. [ 417s] -- 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 Jun 7 12:56:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 7 Jun 2020 12:56:23 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/18709 ) Change subject: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy ...................................................................... ttcn3-bts-test/jenkins.sh: fix: properly start virtphy Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/09/18709/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 Gerrit-Change-Number: 18709 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 7 15:34:01 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 15:34:01 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5edd08fe55d59_24392ae3da26c5f8147282a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1281s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1282s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1283s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1283s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1283s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1284s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1284s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1285s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1285s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1286s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1286s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1286s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1286s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1286s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1286s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1286s] ~~^ [ 1286s] %d [ 1286s] cc1: some warnings being treated as errors [ 1286s] ninja: build stopped: subcommand failed. [ 1286s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1286s] make: *** [debian/rules:11: binary] Error 1 [ 1286s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1286s] ### VM INTERACTION START ### [ 1289s] [ 1216.195827] sysrq: SysRq : Power Off [ 1289s] [ 1216.197815] reboot: Power down [ 1289s] ### VM INTERACTION END ### [ 1289s] [ 1289s] armbuild16 failed "build open5gs_1.2.5.20200607.dsc" at Sun Jun 7 15:33:55 UTC 2020. [ 1289s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 7 16:06:57 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 16:06:57 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edd10ba5e7c3_24392ae3da26c5f81475216@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Unstable/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 215s] touch libfx2.lib [ 215s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 215s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 215s] Making all in src [ 215s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 215s] Making all in common [ 215s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 215s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 215s] /usr/bin/env: 'python': No such file or directory [ 215s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 215s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 215s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 215s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 215s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 215s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 215s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 215s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 215s] make[1]: *** [Makefile:547: all] Error 2 [ 215s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 215s] dh_auto_build: error: make -j1 returned exit code 2 [ 215s] make: *** [debian/rules:13: build] Error 25 [ 215s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 215s] ### VM INTERACTION START ### [ 219s] [ 204.976788] sysrq: SysRq : Power Off [ 219s] [ 204.984714] reboot: Power down [ 219s] ### VM INTERACTION END ### [ 219s] [ 219s] lamb25 failed "build libusrp_3.4.4.dsc" at Sun Jun 7 16:06:52 UTC 2020. [ 219s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 7 16:07:31 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 07 Jun 2020 16:07:31 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edd10d97d51c_24392ae3da26c5f8147536d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 218s] touch libfx2.lib [ 218s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 218s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 218s] Making all in src [ 218s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 218s] Making all in common [ 218s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 218s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 218s] /usr/bin/env: 'python': No such file or directory [ 218s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 218s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 218s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 218s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 218s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 218s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 218s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 218s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 218s] make[1]: *** [Makefile:554: all] Error 2 [ 218s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 218s] dh_auto_build: error: make -j1 returned exit code 2 [ 218s] make: *** [debian/rules:13: build] Error 25 [ 218s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 218s] ### VM INTERACTION START ### [ 221s] [ 203.123558] sysrq: SysRq : Power Off [ 221s] [ 203.130739] reboot: Power down [ 221s] ### VM INTERACTION END ### [ 221s] [ 221s] lamb54 failed "build libusrp_3.4.4.7.50ce.dsc" at Sun Jun 7 16:07:18 UTC 2020. [ 221s] -- 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 Jun 7 18:56:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 18:56:57 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18709 ) Change subject: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 Gerrit-Change-Number: 18709 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 18: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 Sun Jun 7 18:58:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 18:58:10 +0000 Subject: Change in osmo-bts[master]: scheduler: fix trx_sched_set_lchan(): send TRXC HANDOVER In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18708 ) Change subject: scheduler: fix trx_sched_set_lchan(): send TRXC HANDOVER ...................................................................... Patch Set 1: Code-Review-1 see the related osmocom issue update. I'm not convinced your assesment of what the code should do is correct. I think it is correct to deactivate handover detection on channel deactivation. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia106baafc1b7fafb36f11ca378a285d71d1df5a3 Gerrit-Change-Number: 18708 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 18:58:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 18:59:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 18:59:02 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 18:59: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 Jun 7 18:59:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 18:59:06 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() If we do not enqueue a TRXC message, we should release memory. Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 12 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved ipse: 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 f717a0c..488aff6 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -211,9 +211,6 @@ struct trx_ctrl_msg *tcm; struct trx_ctrl_msg *prev = NULL; va_list ap; - int pending; - - pending = !llist_empty(&l1h->trx_ctrl_list); /* create message */ tcm = talloc_zero(tall_bts_ctx, struct trx_ctrl_msg); @@ -236,18 +233,22 @@ tcm->cb = cb; /* Avoid adding consecutive duplicate messages, eg: two consecutive POWEROFF */ - if(pending) + if (!llist_empty(&l1h->trx_ctrl_list)) prev = llist_entry(l1h->trx_ctrl_list.prev, struct trx_ctrl_msg, list); - - if (!pending || - !(strcmp(tcm->cmd, prev->cmd) == 0 && strcmp(tcm->params, prev->params) == 0)) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, "Enqueuing TRX control command 'CMD %s%s%s'\n", - tcm->cmd, tcm->params_len ? " ":"", tcm->params); - llist_add_tail(&tcm->list, &l1h->trx_ctrl_list); + if (prev != NULL && !strcmp(tcm->cmd, prev->cmd) + && !strcmp(tcm->params, prev->params)) { + LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, + "Not sending duplicate command '%s'\n", tcm->cmd); + talloc_free(tcm); + return 0; } + LOGPPHI(l1h->phy_inst, DTRX, LOGL_INFO, "Enqueuing TRX control command 'CMD %s%s%s'\n", + tcm->cmd, tcm->params_len ? " " : "", tcm->params); + llist_add_tail(&tcm->list, &l1h->trx_ctrl_list); + /* send message, if we didn't already have pending messages */ - if (!pending) + if (prev == NULL) trx_ctrl_send(l1h); return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-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 Jun 7 18:59:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 18:59:07 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18705 ) Change subject: osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ ...................................................................... osmo-bts-trx/trx_if: cosmetic: s/ocommand/command/ Change-Id: I06db72deb78cbab588de2103657b0722b67887a0 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 1 deletion(-) 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 488aff6..24d6b9b 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -202,7 +202,7 @@ * \param[in] fmt Format string (+ variable list of arguments) * \returns 0 on success; negative on error * - * The new ocommand will be added to the end of the control command + * The new command will be added to the end of the control command * queue. */ static int trx_ctrl_cmd_cb(struct trx_l1h *l1h, int critical, void *cb, const char *cmd, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I06db72deb78cbab588de2103657b0722b67887a0 Gerrit-Change-Number: 18705 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 Jun 7 18:59:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 18:59:48 +0000 Subject: Change in pysim[master]: Add support for ADF_USIM/EF_EHPLMN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18649 ) Change subject: Add support for ADF_USIM/EF_EHPLMN ...................................................................... Patch Set 1: > Patch Set 1: > > (1 comment) > > out of curiosity, the comment about the standard is interesting - so the EHPLMN list actually has priority to "void" the PLMN extracted from the IMSI in the PLMN search? yes > I have seen MVNO SIMs, with the EHPLMN service enabled, but the list empty, what would be the HPLMN then? then those SIM cards will always be on roaming and never be in a home network. This has some implications on PLMN selection. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 Gerrit-Change-Number: 18649 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Sun, 07 Jun 2020 18:59: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 Sun Jun 7 19:02:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:02:37 +0000 Subject: Change in pysim[master]: Add support for ADF_USIM/EF_EHPLMN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18649 ) Change subject: Add support for ADF_USIM/EF_EHPLMN ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/18649/1/pySim/cards.py File pySim/cards.py: https://gerrit.osmocom.org/c/pysim/+/18649/1/pySim/cards.py at 82 PS1, Line 82: (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['EHPLMN']) > is it ok to put this USIM specific things in the generic Card class? [?] yes, I prefer your approach with an USIM card type. Would you have time to submit that as a follow-up patch? We'd probably have to do the same with ISIM. And yes, you can add other functions here, even if they're not used [yet] by pySim-read. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 Gerrit-Change-Number: 18649 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Sun, 07 Jun 2020 19:02:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: guilly at gmail.com Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:12:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:12:50 +0000 Subject: Change in osmo-trx[master]: Implement TRXC cmd NOMTXPOWER In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18586 ) Change subject: Implement TRXC cmd NOMTXPOWER ...................................................................... Patch Set 1: Code-Review+1 we actually do have the real measured values for USRP Bxxx so they could be used right away. Also, it is obvious that we need infrastructure to return not some single magic value that is stated in each class, but that each class will need some support infrastructure to have a per-device (not per-driver, but per-sdr-device/model) value, and that this value will also have to be per-band. No point in having each class/driver reinvent that, so maybe some shared infrastructure? Also, it is equally known that this value must be possible to override from the VTY. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Gerrit-Change-Number: 18586 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Sun, 07 Jun 2020 19:12:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:26:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:26:18 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py File src/target/trx_toolkit/fake_trx.py: https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py at 109 PS6, Line 109: 50 # dBm no problem doing that in a virtual environment, but it's a *very* unrealistic value. It equals a 100W BTS :) maybe use something closer to reality like 30-46 dBm. Keep in mind, dB are logarithmic, so every increase of '3' means a doubling in power. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:26: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 Sun Jun 7 19:27:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:27:04 +0000 Subject: Change in osmo-bts[master]: bts-trx: Re-apply tx power if nominal power is received after POWERON In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18652 ) Change subject: bts-trx: Re-apply tx power if nominal power is received after POWERON ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad Gerrit-Change-Number: 18652 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 19:27:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:27:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:27:24 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18642 ) Change subject: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18 Gerrit-Change-Number: 18642 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:27:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:27:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:27:28 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18642 ) Change subject: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file ...................................................................... ttcn3-bts: jenkins.sh: Log fake_trx stdout to file This allows easily checking if fake_trx fails to start early during startup, for instance due to a python exception. Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Verified diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 4974a34..949d650 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -46,7 +46,7 @@ --name ${BUILD_TAG}-fake_trx -d \ $DOCKER_ARGS \ $REPO_USER/osmocom-bb-host-master \ - /tmp/osmocom-bb/src/target/trx_toolkit/fake_trx.py \ + /bin/sh -c "/tmp/osmocom-bb/src/target/trx_toolkit/fake_trx.py \ --log-file-name /data/fake_trx.log \ --log-file-level DEBUG \ --log-file-time \ @@ -54,7 +54,7 @@ -R 172.18.9.20 -r 172.18.9.22 \ --trx TRX1 at 172.18.9.20:5700/1 \ --trx TRX2 at 172.18.9.20:5700/2 \ - --trx TRX3 at 172.18.9.20:5700/3 + --trx TRX3 at 172.18.9.20:5700/3 >>/data/fake_trx.out 2>&1" } start_trxcon() { -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18 Gerrit-Change-Number: 18642 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 Sun Jun 7 19:28:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:28:28 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18655 ) Change subject: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: again I am a bit concerned about testing with unrealistically high dBm values (50), beyond that no concern with the patch. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 Gerrit-Change-Number: 18655 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 19:28: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 Sun Jun 7 19:30:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 19:30:51 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py File src/target/trx_toolkit/fake_trx.py: https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py at 109 PS6, Line 109: 50 # dBm > no problem doing that in a virtual environment, but it's a *very* unrealistic value. [?] I agree it's unrealistic, but I'm simply using that value in order to keep older behavior the same in tests (path loss of 110 and RSSI of -60). We can later fix those values as needed. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:30:51 +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 Jun 7 19:31:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:31:35 +0000 Subject: Change in osmo-bts[master]: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from os... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18589 ) Change subject: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from osmo-trx ...................................................................... Patch Set 4: Code-Review+2 > For sure it's not here since this is a osmo-bts-trx patch. I can add that later in osmo-trx, but let's first have this working with Roh providing some values, to see which kind of data we need to provide in the VTY (be it a table, or one factor, or whatever). I think the base line that we should do currently is one set of values ('maximum' gain for undistorted signal + resulting RF output power) per band. Some people may want more comprehensive calibration tables, but let's not try to solve all problems at once here, just get us to a point where whe use values in the correct order of magnitude. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I682211f3d664c21f923ca4a530e0464ca383b6d9 Gerrit-Change-Number: 18589 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Hoernchen Gerrit-Comment-Date: Sun, 07 Jun 2020 19:31:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:32:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:32:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Fix trailing whitespace In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18653 ) Change subject: bts: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5164212fee7e94bc98f65e60d00ccd77b4d9e01d Gerrit-Change-Number: 18653 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 19: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 Sun Jun 7 19:34:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:34:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654/1/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654/1/bts/BTS_Tests.ttcn at 103 PS1, Line 103: 50 same as in other places. You can keep it if you like. Just every RF person will look at this as "Whut!?!" https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654/1/bts/osmo-bts.cfg File bts/osmo-bts.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654/1/bts/osmo-bts.cfg at 51 PS1, Line 51: 8000 any particular reason to use such a large step size? I think in real-world situations this is again very unrealistic. 8dB is a factor of 6.3 in output power. You would neither want that in terms of slowly growing the cell, nor would you want to create that kind of a inrush power surge into your PA. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 Gerrit-Change-Number: 18654 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 19:34:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:36:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 19:36:43 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18655 ) Change subject: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 Gerrit-Change-Number: 18655 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:36:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:37:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 19:37:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654/1/bts/osmo-bts.cfg File bts/osmo-bts.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654/1/bts/osmo-bts.cfg at 51 PS1, Line 51: 8000 > any particular reason to use such a large step size? I think in real-world situations this is again [?] To speed up test mainly. Otherwise it takes a considerable time to reach the maximum allowed power during ramp up. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 Gerrit-Change-Number: 18654 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:37:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:41:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 19:41:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18653 ) Change subject: bts: Fix trailing whitespace ...................................................................... bts: Fix trailing whitespace Change-Id: I5164212fee7e94bc98f65e60d00ccd77b4d9e01d --- M bts/BTS_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index e3d4beb..8a297fb 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -2720,7 +2720,7 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } -/* establish DChan, verify that the BTS sets the TA in the first SACCH L1 header. +/* establish DChan, verify that the BTS sets the TA in the first SACCH L1 header. TA for the IMM ASS messages is still controlled by g_pars.l1_pars.ms_actual_ta! */ function f_tc_rsl_chan_initial_ta(charstring id) runs on ConnHdlr { var L1ctlDlMessage l1_dl; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5164212fee7e94bc98f65e60d00ccd77b4d9e01d Gerrit-Change-Number: 18653 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 Sun Jun 7 19:48:08 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Sun, 7 Jun 2020 19:48:08 +0000 Subject: Change in pysim[master]: cards.py: added generic USIM References: Message-ID: guilly at gmail.com has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/18710 ) Change subject: cards.py: added generic USIM ...................................................................... cards.py: added generic USIM Work in progress a generic USIM class card will try to CLA set to 00 and assume it's an USIM card type if it gets a reply Change-Id: I8c0a914ed00a713fe473fc64f35d17ba34176e52 --- M pySim-read.py M pySim/cards.py M pySim/transport/serial.py 3 files changed, 57 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/10/18710/1 diff --git a/pySim-read.py b/pySim-read.py index b23e6ee..345e6d5 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -88,17 +88,6 @@ # Wait for SIM card sl.wait_for_card() - # Assuming UICC SIM - scc.cla_byte = "00" - scc.sel_ctrl = "0004" - - # Testing for Classic SIM or UICC - (res, sw) = sl.send_apdu(scc.cla_byte + "a4" + scc.sel_ctrl + "02" + "3f00") - if sw == '6e00': - # Just a Classic SIM - scc.cla_byte = "a0" - scc.sel_ctrl = "0000" - # Program the card print("Reading ...") @@ -240,7 +229,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(): + + if card.name == 'GenericUSIM' and '9000' == card.select_adf_by_aid(): # EF.UST (res, sw) = card.read_binary(EF_USIM_ADF_map['UST']) if sw == '9000': @@ -252,7 +242,7 @@ # 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"): + if card.name != 'GenericUSIM' and '9000' == card.select_adf_by_aid(adf="isim"): # EF.IST (res, sw) = card.read_binary('6f07') if sw == '9000': diff --git a/pySim/cards.py b/pySim/cards.py index 808fde1..b0bc537 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1156,11 +1156,63 @@ return +class GenericUSIM(Card): + """ + Generic USIM card + """ + + name = 'GenericUSIM' + + def __init__(self, ssc): + super(GenericUSIM, self).__init__(ssc) + self._scc.cla_byte = "00" + self._scc.sel_ctrl = "0004" #request an FCP + + + @classmethod + def autodetect(kls, scc): + # reset the card, and send a PDU with CLA, P1 & P2 for USIM. + scc.reset_card() + scc._tp.wait_for_card() + # + (res, sw) = scc._tp.send_apdu("00a40004023f00") + if sw == '9000': + return kls(scc) + #if it is not successfull, the it's not a USIM card + return None + + + # Select ADF.USIM in the Card using its full AID + def select_adf_by_aid(self): + for aid in self._aids: + if "a0000000871002" in aid: + (res, sw) = self._scc.select_adf(aid) + return sw + + return None + + # Read the (full) AID + def read_aid(self): + + # First (known) halves of the AID + aid_usim = "a0000000871002" + + # Find out how many records the EF.DIR has, then go through + # all records and try to find the AID we are looking for + aid_record_count = self._scc.record_count(['2F00']) + for i in range(0, aid_record_count): + record = self._scc.read_record(['2F00'], i + 1) + if aid_usim in record[0]: + aid_len = int(record[0][6:8], 16) + return record[0][8:8 + aid_len * 2] + + return None + # In order for autodetection ... _cards_classes = [ FakeMagicSim, SuperSim, MagicSim, GrcardSim, SysmoSIMgr1, SysmoSIMgr2, SysmoUSIMgr1, SysmoUSIMSJS1, - FairwavesSIM, OpenCellsSim, WavemobileSim, SysmoISIMSJA2 ] + FairwavesSIM, OpenCellsSim, WavemobileSim, SysmoISIMSJA2, GenericUSIM ] def card_autodetect(scc): for kls in _cards_classes: diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 11fcd6a..12a7874 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -184,6 +184,7 @@ def send_apdu_raw(self, pdu): """see LinkBase.send_apdu_raw""" + self._dbg_print("TX PDU: %s" % pdu) pdu = h2b(pdu) data_len = ord(pdu[4]) # P3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8c0a914ed00a713fe473fc64f35d17ba34176e52 Gerrit-Change-Number: 18710 Gerrit-PatchSet: 1 Gerrit-Owner: guilly at gmail.com Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 19:48:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 19:48:44 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18704 ) Change subject: osmo-bts-trx/trx_if: fix memleak in trx_ctrl_cmd_cb() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie2cdf547befbc0fafdb82b10b45ad85a9b188b88 Gerrit-Change-Number: 18704 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19: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 Sun Jun 7 19:50:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 7 Jun 2020 19:50:52 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py File src/target/trx_toolkit/fake_trx.py: https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py at 293 PS6, Line 293: Use negative threshold to disable fake_rssi if previously enabled: So one would need to send something like 'FAKE_TOA -60 -1' in order to make fake_trx.py stop using previously indicated 'fake' RSSI value, right? And '-60' in this example is a dummy value that simply should be there. Most of the commands on TRXC are kind of self-explaining, so you don't have to dig into the source code to understand their purpose. It would be nice to make this command self-explaining too. How about 'NOFAKE_RSSI'? or 'FAKE_RSSI OFF'? -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:50: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 Sun Jun 7 19:51:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 19:51:30 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:51: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 Jun 7 19:51:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 19:51:33 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds By default RSSI on the Rx side is computed based on transmitter's tx power and then substracting the the Rx path loss. If FAKE_RSSI is used, then the values in there are used instead. A default hardcoded value of tx nominal power = 50 dBm is set to keep old behavior of RSSI=-60dB after calculations. Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 --- M src/target/trx_toolkit/ctrl_if_trx.py M src/target/trx_toolkit/fake_trx.py 2 files changed, 40 insertions(+), 3 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/target/trx_toolkit/ctrl_if_trx.py b/src/target/trx_toolkit/ctrl_if_trx.py index 65198cf..e841975 100644 --- a/src/target/trx_toolkit/ctrl_if_trx.py +++ b/src/target/trx_toolkit/ctrl_if_trx.py @@ -239,6 +239,19 @@ % (self.trx, ver_cur, ver_req)) return ver_req + # Set Power Attenuation + if self.verify_cmd(request, "SETPOWER", 1): + log.debug("(%s) Recv SETPOWER cmd" % self.trx) + # Parse the requested Tx Power Attenuation + att_req = int(request[1]) + self.trx.tx_att_base = att_req + return 0 + + # Retrieve Nominal Tx power + if self.verify_cmd(request, "NOMTXPOWER", 0): + log.debug("(%s) Recv NOMTXPOWER cmd" % self.trx) + return (0, [str(self.trx.tx_power_base)]) + # Wrong / unknown command else: # We don't care about other commands, diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py index f14d143..4a49fa3 100755 --- a/src/target/trx_toolkit/fake_trx.py +++ b/src/target/trx_toolkit/fake_trx.py @@ -106,8 +106,11 @@ """ + NOMINAL_TX_POWER_DEFAULT = 50 # dBm + TX_ATT_DEFAULT = 0 # dB + PATH_LOSS_DEFAULT = 110 # dB + TOA256_BASE_DEFAULT = 0 - RSSI_BASE_DEFAULT = -60 CI_BASE_DEFAULT = 90 # Default values for NOPE / IDLE indications @@ -118,9 +121,15 @@ def __init__(self, *trx_args, **trx_kwargs): Transceiver.__init__(self, *trx_args, **trx_kwargs) + # fake RSSI is disabled by default, only enabled through TRXC FAKE_RSSI. + # When disabled, RSSI is calculated based on Tx power and Rx path loss + self.fake_rssi_enabled = False + # Actual ToA, RSSI, C/I, TA values + self.tx_power_base = self.NOMINAL_TX_POWER_DEFAULT + self.tx_att_base = self.TX_ATT_DEFAULT self.toa256_base = self.TOA256_BASE_DEFAULT - self.rssi_base = self.RSSI_BASE_DEFAULT + self.rssi_base = self.NOMINAL_TX_POWER_DEFAULT - self.TX_ATT_DEFAULT - self.PATH_LOSS_DEFAULT self.ci_base = self.CI_BASE_DEFAULT self.ta = 0 @@ -156,6 +165,10 @@ return random.randint(rssi_min, rssi_max) @property + def tx_power(self): + return self.tx_power_base - self.tx_att_base + + @property def ci(self): # Check if randomization is required if self.ci_rand_threshold == 0: @@ -224,7 +237,12 @@ # Complete message header msg.toa256 = self.toa256 - msg.rssi = self.rssi + + # Apply RSSI based on transmitter: + if not self.fake_rssi_enabled: + msg.rssi = src_trx.tx_power - src_msg.pwr - self.PATH_LOSS_DEFAULT + else: # Apply fake RSSI + msg.rssi = self.rssi # Version specific fields if msg.ver >= 0x01: @@ -272,9 +290,15 @@ elif self.ctrl_if.verify_cmd(request, "FAKE_RSSI", 2): log.debug("(%s) Recv FAKE_RSSI cmd" % self) + # Use negative threshold to disable fake_rssi if previously enabled: + if int(request[2]) < 0: + self.fake_rssi_enabled = False + return 0 + # Parse and apply both base and threshold self.rssi_base = int(request[1]) self.rssi_rand_threshold = int(request[2]) + self.fake_rssi_enabled = True return 0 # RSSI simulation -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 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 Sun Jun 7 19:56:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 19:56:15 +0000 Subject: Change in osmocom-bb[master]: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18641 ) Change subject: fake_trx: Support SETPOWER and NOMTXPOWER TRXC cmds ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py File src/target/trx_toolkit/fake_trx.py: https://gerrit.osmocom.org/c/osmocom-bb/+/18641/6/src/target/trx_toolkit/fake_trx.py at 293 PS6, Line 293: Use negative threshold to disable fake_rssi if previously enabled: > So one would need to send something like 'FAKE_TOA -60 -1' in order to make fake_trx. [?] Sorry you submitted your comment almost at the same time when I was merging it. I can add that of course, but right now there's actually no real user of that feature (even with the -1). I simply added the -1 as a workaround in case someone has this need at some point. I'm fine with adding a new command if you want, but I thought having less commands is actually simpler from protocol point of view. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I3ee1a32ca22c3272e66b3ca78e4f67d283844c80 Gerrit-Change-Number: 18641 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 19:56:15 +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 Jun 7 20:00:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 20:00:50 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18002 to look at the new patch set (#6). Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... lapd/lapdm: print user-defined string name instead of (dl=%p) At the moment we print the pointer address to identify the log lines belonging to a specific connection. Since pointer addresses are difficult to work with, a human readable ID should be printed instead. e.g. "This is LAPD instance for SAPI3 on bts0/trx1/ts5/lchan3" Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Closes: OS#1938 --- M TODO-RELEASE M include/osmocom/gsm/lapd_core.h M include/osmocom/gsm/lapdm.h M src/gsm/lapd_core.c M src/gsm/lapdm.c M src/gsm/libosmogsm.map 6 files changed, 273 insertions(+), 316 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/02/18002/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 6 Gerrit-Owner: laforge 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 Sun Jun 7 20:18:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 20:18:25 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18002 ) Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18002/6/src/gsm/lapdm.c File src/gsm/lapdm.c: https://gerrit.osmocom.org/c/libosmocore/+/18002/6/src/gsm/lapdm.c at 273 PS6, Line 273: lc->name = talloc_strdup(lc, name_pfx); don't you need to free here if lc->name is already set? Because you are not allocating lc here. osmo_talloc_replace_string -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 20:18:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 20:31:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 20:31:01 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18002 to look at the new patch set (#7). Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... lapd/lapdm: print user-defined string name instead of (dl=%p) At the moment we print the pointer address to identify the log lines belonging to a specific connection. Since pointer addresses are difficult to work with, a human readable ID should be printed instead. e.g. "This is LAPD instance for SAPI3 on bts0/trx1/ts5/lchan3" Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Closes: OS#1938 --- M TODO-RELEASE M include/osmocom/gsm/lapd_core.h M include/osmocom/gsm/lapdm.h M src/gsm/lapd_core.c M src/gsm/lapdm.c M src/gsm/libosmogsm.map 6 files changed, 301 insertions(+), 323 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/02/18002/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 7 Gerrit-Owner: laforge 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 Sun Jun 7 20:31:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 20:31:01 +0000 Subject: Change in libosmocore[master]: lapd_core: Fix log line being about LAPD and not LAPDm References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18711 ) Change subject: lapd_core: Fix log line being about LAPD and not LAPDm ...................................................................... lapd_core: Fix log line being about LAPD and not LAPDm Change-Id: I92c8a9752e88164eedffb9f9a081288458f6eadb --- M src/gsm/lapd_core.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/11/18711/1 diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c index d9b729f..72e70f0 100644 --- a/src/gsm/lapd_core.c +++ b/src/gsm/lapd_core.c @@ -337,7 +337,7 @@ /* reset to IDLE state */ void lapd_dl_reset(struct lapd_datalink *dl) { - LOGDL(dl, LOGL_INFO, "Resetting LAPDm instance\n"); + LOGDL(dl, LOGL_INFO, "Resetting LAPD instance\n"); /* enter idle state (and remove eventual cont_res) */ lapd_dl_newstate(dl, LAPD_STATE_IDLE); /* flush buffer */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I92c8a9752e88164eedffb9f9a081288458f6eadb Gerrit-Change-Number: 18711 Gerrit-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 Jun 7 20:31:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 20:31:30 +0000 Subject: Change in osmo-bts[master]: Ensure we include lchan name in all LAPDm log lines 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/+/18004 to look at the new patch set (#3). Change subject: Ensure we include lchan name in all LAPDm log lines ...................................................................... Ensure we include lchan name in all LAPDm log lines This makes use of the newly-introduced lapdm_channel_init3() API, which provides the user (BTS in this case) to provide a human-readable string identifier for each LAPDm channel. This identifier is subsequently used in all related log lines to provide context. This means we will now get context information about which specific SAPI in which sub-channel (ACCH/DCCH) on which lchan/ts/trx/bts a given message originated from. Example: DLLAPD <0011> lapd_core.c:829 ((bts=0,trx=0,ts=0,ss=0)[DCCH][0]) SABM(E) received in state LAPD_STATE_IDLE Change-Id: I17e3d4797ec71e31d0775330ae36d2e1fd70423f Depends: libosmocore.git Ie6742843fff809edffcac24c4dce4edf66bc71be Related: OS#1938 --- A TODO-RELEASE M src/common/bts.c 2 files changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/18004/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17e3d4797ec71e31d0775330ae36d2e1fd70423f Gerrit-Change-Number: 18004 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 Sun Jun 7 20:38:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 20:38:18 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18002 to look at the new patch set (#8). Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... lapd/lapdm: print user-defined string name instead of (dl=%p) At the moment we print the pointer address to identify the log lines belonging to a specific connection. Since pointer addresses are difficult to work with, a human readable ID should be printed instead. e.g. "This is LAPD instance for SAPI3 on bts0/trx1/ts5/lchan3" Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Closes: OS#1938 --- M TODO-RELEASE M include/osmocom/gsm/lapd_core.h M include/osmocom/gsm/lapdm.h M src/gsm/lapd_core.c M src/gsm/lapdm.c M src/gsm/libosmogsm.map 6 files changed, 302 insertions(+), 323 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/02/18002/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 8 Gerrit-Owner: laforge 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 Sun Jun 7 20:38:28 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:38:28 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... Patch Set 4: > I don't agree with your point about using a number instead of a pointer because it's "safer". If that was the case, then we'd be dropping lots of pointers everywhere and using c++ with references or other programming language. > That being said, I'm not going to block this patch, so +1. well, keeping a number is in fact safer, because the msc with that number is free to go missing at any time without causing breakage. The difference is having *more than one* pointer to the same object that persist across main loops, which is always introducing the danger of segfaults. Where ever we do that, we need to carefully clean up: take a look at functions like lchan_forget_conn() and gscon_forget_lchan(), which act in a quite complex juxtaposition and are the final result of several levels of hard to crack segfault bugs I introduced before figuring out the current code. Thanks for the +1 :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 07 Jun 2020 20:38: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 Sun Jun 7 20:39:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 7 Jun 2020 20:39:41 +0000 Subject: Change in libosmocore[master]: lapd_core: Fix log line being about LAPD and not LAPDm In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18711 ) Change subject: lapd_core: Fix log line being about LAPD and not LAPDm ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I92c8a9752e88164eedffb9f9a081288458f6eadb Gerrit-Change-Number: 18711 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 20:39:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 20:41:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:41:11 +0000 Subject: Change in osmo-bsc[master]: gsm0408_test.c: drop test_mi_functionality() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18648 ) Change subject: gsm0408_test.c: drop test_mi_functionality() ...................................................................... gsm0408_test.c: drop test_mi_functionality() Testing these functions is actually done in libosmocore. Also, with new osmo_mobile_identity API, the functions being tested are marked deprecated. So drop the test. BTW, the test contained an IMSI of 16 digits, which is too long, yet was expected to succeed. GSM23003_IMSI_MAX_DIGITS == 15. I first considered fixing the test data, but the test is in the wrong place here anyway. Change-Id: I902d31ecd72d71892fad7945f695a9f1fb403bf2 --- M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok 2 files changed, 0 insertions(+), 33 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/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index f850274..5ff9491 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -269,34 +269,6 @@ bts_del(bts); } -static void test_mi_functionality(void) -{ - const char *imsi_odd = "987654321098763"; - const char *imsi_even = "9876543210987654"; - const uint32_t tmsi = 0xfabeacd0; - uint8_t mi[128]; - unsigned int mi_len; - char mi_parsed[GSM48_MI_SIZE]; - - printf("Testing parsing and generating TMSI/IMSI\n"); - - /* tmsi code */ - mi_len = gsm48_generate_mid_from_tmsi(mi, tmsi); - gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len - 2); - COMPARE((uint32_t)strtoul(mi_parsed, NULL, 10), ==, tmsi); - - /* imsi code */ - mi_len = gsm48_generate_mid_from_imsi(mi, imsi_odd); - gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len -2); - printf("hex: %s\n", osmo_hexdump(mi, mi_len)); - COMPARE_STR(mi_parsed, imsi_odd); - - mi_len = gsm48_generate_mid_from_imsi(mi, imsi_even); - gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len -2); - printf("hex: %s\n", osmo_hexdump(mi, mi_len)); - COMPARE_STR(mi_parsed, imsi_even); -} - struct { int range; int arfcns_num; @@ -924,8 +896,6 @@ return EXIT_FAILURE; } - test_mi_functionality(); - test_si_range_helpers(); test_arfcn_filter(); test_print_encoding(); diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index e3290b5..bad8aef 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -1,6 +1,3 @@ -Testing parsing and generating TMSI/IMSI -hex: 17 08 99 78 56 34 12 90 78 36 -hex: 17 09 91 78 56 34 12 90 78 56 f4 Element is: 2 => freqs[i] = 121 Element is: 2 => freqs[i] = 1 Element is: 0 => freqs[i] = 68 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I902d31ecd72d71892fad7945f695a9f1fb403bf2 Gerrit-Change-Number: 18648 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 Sun Jun 7 20:44:17 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 7 Jun 2020 20:44:17 +0000 Subject: Change in osmo-bts[master]: scheduler: fix trx_sched_set_lchan(): send TRXC HANDOVER In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18708 ) Change subject: scheduler: fix trx_sched_set_lchan(): send TRXC HANDOVER ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia106baafc1b7fafb36f11ca378a285d71d1df5a3 Gerrit-Change-Number: 18708 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: ipse Gerrit-Reviewer: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 20:46:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 7 Jun 2020 20:46:34 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18709 ) Change subject: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy ...................................................................... Patch Set 2: Verified+1 Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 Gerrit-Change-Number: 18709 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 07 Jun 2020 20:46: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 Jun 7 20:46:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 7 Jun 2020 20:46:39 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18709 ) Change subject: ttcn3-bts-test/jenkins.sh: fix: properly start virtphy ...................................................................... ttcn3-bts-test/jenkins.sh: fix: properly start virtphy Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve; Verified diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 949d650..0d0473b 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -73,11 +73,11 @@ echo Starting container with virtphy docker run --rm \ --network $NET_NAME --ip 172.18.9.22 \ + -v $VOL_BASE_DIR/virtphy:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-virtphy -d \ $DOCKER_ARGS \ $REPO_USER/osmocom-bb-host-master \ - virtphy -s /data/unix/osmocom_l2 /bin/sh -c "virtphy -s /data/unix/osmocom_l2 >>/data/virtphy.log 2>&1" } @@ -110,6 +110,7 @@ mkdir $VOL_BASE_DIR/fake_trx mkdir $VOL_BASE_DIR/trxcon +mkdir $VOL_BASE_DIR/virtphy # 1) classic test suite with BSC for OML and trxcon+fake_trx start_bsc -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2c92ca7d8839a5e141a756f0e1ca26f5f27ca143 Gerrit-Change-Number: 18709 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria 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 Jun 7 20:50:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:50:35 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18506 to look at the new patch set (#9). Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... add gsm23236: MSC pooling: TMSI and NRI utility functions These utilities will be used by osmo-bsc to determine the Network Resource Indicator seen in the TMSI, and (potentially) by osmo-msc to compose a TMSI with a specific NRI, for osmo-bsc's load balancing between several MSCs. Add utility functions to: - extract an NRI value from a TMSI. - overwrite the NRI value in a TMSI. - limit an NRI in a (random) TMSI to a given list of ranges. - add NRI value ranges to a list. - remove them from a list. - match NRI value (range) to a list. - parse NRI values from string, for VTY. - common VTY functionality of adding/removing NRI values from argv. Add C tests for the above. Why we need public API for NRI ranges: In osmo-bsc alone, we need the same NRI API twice, 1: to manage/list NRI value ranges per-MSC, and 2: to manage/list NULL-NRI values. If we also consider (potentially) adding NRI support to osmo-msc, we need the same API twice again there. Hence it is useful to define re-used API up here in libosmocore. Related: OS#3682 Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 --- M include/Makefile.am A include/osmocom/gsm/gsm23236.h M src/gsm/Makefile.am A src/gsm/gsm23236.c M src/gsm/libosmogsm.map M tests/Makefile.am A tests/gsm23236/gsm23236_test.c A tests/gsm23236/gsm23236_test.ok M tests/testsuite.at 9 files changed, 1,784 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/18506/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels 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 Sun Jun 7 20:52:57 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:52:57 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 to look at the new patch set (#5). Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... refactor bsc_find_msc()'s round-robin Prepare for MSC pooling by NRI. Before introducing actual NRI decoding and MSC matching, fix the bsc_find_msc() implementation. (Indicate the places relevant for NRI by "TODO" comments). bsc_find_msc() puts an MSC to the end of the internal list of MSCs when it was used. This has problems: - Modifying the list affects VTY output, e.g. 'show running-config' and 'show mscs' change their order in which MSCs are shown, depending on how often a round-robin selection has taken place. - Emergency calls and normal calls potentially pick quite different sets of eligible MSCs. When the round-robin choices between these sets affect each other, the choice is not balanced. For example, if only the first MSC is allow_emerg == true, every emergency call would reset the round-robin state to the first MSC in the list, also for normal calls. If there are regular emergency calls, normal calls will then tend to load more onto the first few MSCs after those picked for emergency calls. Fix: Never affect the ordering of MSCs in the internal list of MSCs. Instead, keep a "next_nr" MSC index and determine the next round-robin target like that. Keep a separate "next_emerg_nr" MSC index so that emergency call round-robin does no longer cause normal round-robin to skip MSCs. Further problems in current bsc_find_msc(): - The "blind:" label should also do round-robin. - The "paging:" part should not attempt to use disconnected MSCs. - Both should also heed NRI matches (when they are added). Fix: instead of code dup, determine Paging Response matching with an earlier Paging Request right at the start. If that yields no usable MSC, continue into the normal NRI and round-robin selection. The loop in this patch is inspired by the upcoming implementation of MSC pooling by NRI, as indicated by the two TODO comments. The point is that, in the presence of an NRI from a TMSI identity, we always need to iterate all of the MSCs to find possible NRI matches. The two round-robin sets (Emergency and non-Emergency) are determined in the same loop iteration for cases that have no or match no NRI, or where a matching MSC is currently disconnected. Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/gsm_08_08.c 2 files changed, 71 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/05/18505/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels 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 Sun Jun 7 20:52:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:52:58 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18712 ) Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... remove extract_sub(), add bsc_subscr_find_or_create_by_mi() Use the new osmo_mobile_identity API to shed some code dup and simplify. gsm48_paging_extract_mi() is now unused, drop. (More refactoring to use osmo_mobile_identity follows in subsequent patch.) Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b --- M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/gsm_04_08_rr.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/gsm_08_08.c 6 files changed, 51 insertions(+), 58 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/18712/1 diff --git a/include/osmocom/bsc/bsc_subscriber.h b/include/osmocom/bsc/bsc_subscriber.h index 93b3539..7381b84 100644 --- a/include/osmocom/bsc/bsc_subscriber.h +++ b/include/osmocom/bsc/bsc_subscriber.h @@ -8,6 +8,7 @@ #include struct log_target; +struct osmo_mobile_identity; struct bsc_subscr { struct llist_head entry; @@ -25,11 +26,13 @@ const char *imsi); struct bsc_subscr *bsc_subscr_find_or_create_by_tmsi(struct llist_head *list, uint32_t tmsi); +struct bsc_subscr *bsc_subscr_find_or_create_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi); struct bsc_subscr *bsc_subscr_find_by_imsi(struct llist_head *list, const char *imsi); struct bsc_subscr *bsc_subscr_find_by_tmsi(struct llist_head *list, uint32_t tmsi); +struct bsc_subscr *bsc_subscr_find_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi); void bsc_subscr_set_imsi(struct bsc_subscr *bsub, const char *imsi); diff --git a/include/osmocom/bsc/gsm_04_08_rr.h b/include/osmocom/bsc/gsm_04_08_rr.h index 06cefa9..d34e695 100644 --- a/include/osmocom/bsc/gsm_04_08_rr.h +++ b/include/osmocom/bsc/gsm_04_08_rr.h @@ -40,8 +40,6 @@ struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value); int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type); -int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, - char *mi_string, uint8_t *mi_type); struct msgb *gsm48_create_loc_upd_rej(uint8_t cause); struct msgb *gsm48_create_rr_status(uint8_t cause); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 52ff5e4..45a868c 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -52,8 +52,6 @@ #define OBSC_LINKID_CB(__msgb) (__msgb)->cb[3] -#define tmsi_from_string(str) strtoul(str, NULL, 10) - /* 3-bit long values */ #define EARFCN_PRIO_INVALID 8 #define EARFCN_MEAS_BW_INVALID 8 diff --git a/src/osmo-bsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c index 38b532a..ecd6f3d 100644 --- a/src/osmo-bsc/bsc_subscriber.c +++ b/src/osmo-bsc/bsc_subscriber.c @@ -75,6 +75,20 @@ return NULL; } +struct bsc_subscr *bsc_subscr_find_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi) +{ + if (!mi) + return NULL; + switch (mi->type) { + case GSM_MI_TYPE_IMSI: + return bsc_subscr_find_by_imsi(list, mi->string); + case GSM_MI_TYPE_TMSI: + return bsc_subscr_find_by_tmsi(list, mi->tmsi); + default: + return NULL; + } +} + void bsc_subscr_set_imsi(struct bsc_subscr *bsub, const char *imsi) { if (!bsub) @@ -110,6 +124,20 @@ return bsc_subscr_get(bsub); } +struct bsc_subscr *bsc_subscr_find_or_create_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi) +{ + if (!mi) + return NULL; + switch (mi->type) { + case GSM_MI_TYPE_IMSI: + return bsc_subscr_find_or_create_by_imsi(list, mi->string); + case GSM_MI_TYPE_TMSI: + return bsc_subscr_find_or_create_by_tmsi(list, mi->tmsi); + default: + return NULL; + } +} + const char *bsc_subscr_name(struct bsc_subscr *bsub) { static char buf[32]; diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 4e5a307..4630b47 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -842,16 +842,6 @@ return gsm48_mi_to_string(mi_string, GSM48_MI_SIZE, mi_lv+1, *mi_lv); } -int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, - char *mi_string, uint8_t *mi_type) -{ - static const uint32_t classmark_offset = - offsetof(struct gsm48_pag_resp, classmark2); - uint8_t *classmark2_lv = (uint8_t *) &resp->classmark2; - return gsm48_extract_mi(classmark2_lv, length - classmark_offset, - mi_string, mi_type); -} - /* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ uint64_t str_to_imsi(const char *imsi_str) { diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index a252203..c532f35 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -122,46 +122,6 @@ return cm->cm_service_type == GSM48_CMSERV_EMERGENCY; } -/* extract a subscriber from the paging response */ -static struct bsc_subscr *extract_sub(struct gsm_subscriber_connection *conn, - struct msgb *msg) -{ - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - struct gsm48_hdr *gh; - struct gsm48_pag_resp *resp; - struct bsc_subscr *subscr; - - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*resp)) { - LOGP(DMSC, LOGL_ERROR, "PagingResponse too small: %u\n", msgb_l3len(msg)); - return NULL; - } - - gh = msgb_l3(msg); - resp = (struct gsm48_pag_resp *) &gh->data[0]; - - gsm48_paging_extract_mi(resp, msgb_l3len(msg) - sizeof(*gh), - mi_string, &mi_type); - DEBUGP(DRR, "PAGING RESPONSE: MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); - - switch (mi_type) { - case GSM_MI_TYPE_TMSI: - subscr = bsc_subscr_find_by_tmsi(conn->network->bsc_subscribers, - tmsi_from_string(mi_string)); - break; - case GSM_MI_TYPE_IMSI: - subscr = bsc_subscr_find_by_imsi(conn->network->bsc_subscribers, - mi_string); - break; - default: - subscr = NULL; - break; - } - - return subscr; -} - static bool is_msc_usable(struct bsc_msc_data *msc, bool is_emerg) { if (is_emerg && !msc->allow_emerg) @@ -184,6 +144,7 @@ struct gsm48_hdr *gh; int8_t pdisc; uint8_t mtype; + struct osmo_mobile_identity mi; struct bsc_msc_data *msc; struct bsc_msc_data *msc_target = NULL; struct bsc_msc_data *msc_round_robin_next = NULL; @@ -203,9 +164,17 @@ is_emerg = (pdisc == GSM48_PDISC_MM && mtype == GSM48_MT_MM_CM_SERV_REQ) && is_cm_service_for_emerg(msg); + if (osmo_mobile_identity_decode_from_l3(&mi, msg, false)) { + LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "Cannot extract Mobile Identity\n"); + /* If it is an emergency call, let's just try this without a valid Mobile Identity...? + * Otherwise, invalid identity means no service. */ + if (!is_emerg) + return NULL; + } + /* Has the subscriber been paged from a connected MSC? */ if (pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) { - subscr = extract_sub(conn, msg); + subscr = bsc_subscr_find_by_mi(conn->network->bsc_subscribers, &mi); if (subscr) { msc_target = paging_get_msc(conn_get_bts(conn), subscr); bsc_subscr_put(subscr); @@ -241,8 +210,8 @@ * them are usable -- wrap to the start. */ msc_target = msc_round_robin_next ? : msc_round_robin_first; if (!msc_target) { - LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "%sNo suitable MSC for this Complete Layer 3 request found\n", - is_emerg ? "FOR EMERGENCY CALL: " : ""); + LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "%s%s: No suitable MSC for this Complete Layer 3 request found\n", + osmo_mobile_identity_name_c(OTC_SELECT, &mi), is_emerg ? " FOR EMERGENCY CALL" : ""); return NULL; } @@ -256,8 +225,15 @@ static int handle_page_resp(struct gsm_subscriber_connection *conn, struct msgb *msg) { - struct bsc_subscr *subscr = extract_sub(conn, msg); + struct osmo_mobile_identity mi; + struct bsc_subscr *subscr = NULL; + if (osmo_mobile_identity_decode_from_l3(&mi, msg, false)) { + LOGP(DRSL, LOGL_ERROR, "Unable to extract Mobile Identity from Paging Response\n"); + return -1; + } + + subscr = bsc_subscr_find_by_mi(conn->network->bsc_subscribers, &mi); if (!subscr) { LOGP(DMSC, LOGL_ERROR, "Non active subscriber got paged.\n"); rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_PAGING_NO_ACTIVE_PAGING]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 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 Jun 7 20:52:59 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:52:59 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18713 ) Change subject: use osmo_mobile_identity API everywhere ...................................................................... use osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/gsm_04_08_rr.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c 8 files changed, 73 insertions(+), 59 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/18713/1 diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index b43e3ae..2611a3d 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -43,8 +43,9 @@ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref); int rsl_chan_mode_modify_req(struct gsm_lchan *ts); int rsl_encryption_cmd(struct msgb *msg); -int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, - uint8_t *ms_ident, uint8_t chan_needed, bool is_gprs); +int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, + const struct osmo_mobile_identity *mi, + uint8_t chan_needed, bool is_gprs); int rsl_imm_assign_cmd(struct gsm_bts *bts, uint8_t len, uint8_t *val); int rsl_tx_imm_assignment(struct gsm_lchan *lchan); int rsl_tx_imm_ass_rej(struct gsm_bts *bts, struct gsm48_req_ref *rqd_ref); diff --git a/include/osmocom/bsc/gsm_04_08_rr.h b/include/osmocom/bsc/gsm_04_08_rr.h index d34e695..8821251 100644 --- a/include/osmocom/bsc/gsm_04_08_rr.h +++ b/include/osmocom/bsc/gsm_04_08_rr.h @@ -39,7 +39,6 @@ enum gsm48_reject_value value); struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value); -int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type); struct msgb *gsm48_create_loc_upd_rej(uint8_t cause); struct msgb *gsm48_create_rr_status(uint8_t cause); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 4a1d314..43c52ad 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -664,18 +664,29 @@ return abis_rsl_sendmsg(msg); } -int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, - uint8_t *ms_ident, uint8_t chan_needed, bool is_gprs) +int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, + const struct osmo_mobile_identity *mi, + uint8_t chan_needed, bool is_gprs) { struct abis_rsl_dchan_hdr *dh; struct msgb *msg = rsl_msgb_alloc(); + uint8_t *l; + int rc; dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh)); init_dchan_hdr(dh, RSL_MT_PAGING_CMD); dh->chan_nr = RSL_CHAN_PCH_AGCH; msgb_tv_put(msg, RSL_IE_PAGING_GROUP, paging_group); - msgb_tlv_put(msg, RSL_IE_MS_IDENTITY, len-2, ms_ident+2); + + l = msgb_tl_put(msg, RSL_IE_MS_IDENTITY); + rc = osmo_mobile_identity_encode_msgb(msg, mi, false); + if (rc < 0) { + msgb_free(msg); + return -EINVAL; + } + *l = rc; + msgb_tv_put(msg, RSL_IE_CHAN_NEEDED, chan_needed); /* Ericsson wants to have this IE in case a paging message diff --git a/src/osmo-bsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c index ecd6f3d..9ddfcaa 100644 --- a/src/osmo-bsc/bsc_subscriber.c +++ b/src/osmo-bsc/bsc_subscriber.c @@ -81,7 +81,7 @@ return NULL; switch (mi->type) { case GSM_MI_TYPE_IMSI: - return bsc_subscr_find_by_imsi(list, mi->string); + return bsc_subscr_find_by_imsi(list, mi->imsi); case GSM_MI_TYPE_TMSI: return bsc_subscr_find_by_tmsi(list, mi->tmsi); default: @@ -130,7 +130,7 @@ return NULL; switch (mi->type) { case GSM_MI_TYPE_IMSI: - return bsc_subscr_find_or_create_by_imsi(list, mi->string); + return bsc_subscr_find_or_create_by_imsi(list, mi->imsi); case GSM_MI_TYPE_TMSI: return bsc_subscr_find_or_create_by_tmsi(list, mi->tmsi); default: diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 4630b47..8a74aab 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -828,20 +828,6 @@ return msg; } -int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type) -{ - /* Check the size for the classmark */ - if (length < 1 + *classmark2_lv) - return -1; - - uint8_t *mi_lv = classmark2_lv + *classmark2_lv + 1; - if (length < 2 + *classmark2_lv + mi_lv[0]) - return -2; - - *mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - return gsm48_mi_to_string(mi_string, GSM48_MI_SIZE, mi_lv+1, *mi_lv); -} - /* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ uint64_t str_to_imsi(const char *imsi_str) { diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 864d96d..49a5765 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -293,13 +293,13 @@ struct msgb *msg, unsigned int payload_length) { struct tlv_parsed tp; - char mi_string[GSM48_MI_SIZE]; - uint32_t tmsi = GSM_RESERVED_TMSI; uint8_t data_length; int remain; const uint8_t *data; uint8_t chan_needed = RSL_CHANNEED_ANY; struct gsm0808_cell_id_list2 cil; + struct osmo_mobile_identity mi_imsi; + struct osmo_mobile_identity mi_tmsi = { .tmsi = GSM_RESERVED_TMSI }; tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, payload_length - 1, 0, 0); remain = payload_length - 1; @@ -318,9 +318,12 @@ return -1; } - if (TLVP_PRESENT(&tp, GSM0808_IE_TMSI) && - TLVP_LEN(&tp, GSM0808_IE_TMSI) == 4) { - tmsi = ntohl(tlvp_val32_unal(&tp, GSM0808_IE_TMSI)); + if (TLVP_PRESENT(&tp, GSM0808_IE_TMSI)) { + if (osmo_mobile_identity_decode(&mi_tmsi, TLVP_VAL(&tp, GSM0808_IE_TMSI), TLVP_LEN(&tp, GSM0808_IE_TMSI), false) + || mi_tmsi.type != GSM_MI_TYPE_TMSI) { + LOGP(DMSC, LOGL_ERROR, "Paging: could not parse TMSI\n"); + return -1; + } remain -= TLVP_LEN(&tp, GSM0808_IE_TMSI); } @@ -332,8 +335,11 @@ /* * parse the IMSI */ - gsm48_mi_to_string(mi_string, sizeof(mi_string), - TLVP_VAL(&tp, GSM0808_IE_IMSI), TLVP_LEN(&tp, GSM0808_IE_IMSI)); + 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) { + LOGP(DMSC, LOGL_ERROR, "Paging: could not parse IMSI\n"); + return -1; + } /* * There are various cell identifier list types defined at 3GPP TS ? 08.08, we don't support all @@ -343,8 +349,8 @@ data_length = TLVP_LEN(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); data = TLVP_VAL(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); if (gsm0808_dec_cell_id_list2(&cil, data, data_length) < 0) { - LOGP(DMSC, LOGL_ERROR, "Paging IMSI %s: Could not parse Cell Identifier List\n", - mi_string); + LOGP(DMSC, LOGL_ERROR, "Paging %s: Could not parse Cell Identifier List\n", + osmo_mobile_identity_name_c(OTC_SELECT, &mi_imsi)); return -1; } remain = 0; @@ -360,43 +366,45 @@ switch (cil.id_discr) { case CELL_IDENT_NO_CELL: - page_all_bts(msc, tmsi, mi_string, chan_needed); + page_all_bts(msc, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_WHOLE_GLOBAL: - page_cgi(msc, &cil, tmsi, mi_string, chan_needed); + page_cgi(msc, &cil, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_LAC_AND_CI: - page_lac_and_ci(msc, &cil, tmsi, mi_string, chan_needed); + page_lac_and_ci(msc, &cil, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_CI: - page_ci(msc, &cil, tmsi, mi_string, chan_needed); + page_ci(msc, &cil, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_LAI_AND_LAC: - page_lai_and_lac(msc, &cil, tmsi, mi_string, chan_needed); + page_lai_and_lac(msc, &cil, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_LAC: - page_lac(msc, &cil, tmsi, mi_string, chan_needed); + page_lac(msc, &cil, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_BSS: if (data_length != 1) { - LOGP(DMSC, LOGL_ERROR, "Paging IMSI %s: Cell Identifier List for BSS (0x%x)" + LOGP(DMSC, LOGL_ERROR, "Paging %s: Cell Identifier List for BSS (0x%x)" " has invalid length: %u, paging entire BSS anyway (%s)\n", - mi_string, CELL_IDENT_BSS, data_length, osmo_hexdump(data, data_length)); + osmo_mobile_identity_name_c(OTC_SELECT, &mi_imsi), + CELL_IDENT_BSS, data_length, osmo_hexdump(data, data_length)); } - page_all_bts(msc, tmsi, mi_string, chan_needed); + page_all_bts(msc, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; default: - LOGP(DMSC, LOGL_NOTICE, "Paging IMSI %s: unimplemented Cell Identifier List (0x%x)," + LOGP(DMSC, LOGL_NOTICE, "Paging %s: unimplemented Cell Identifier List (0x%x)," " paging entire BSS instead (%s)\n", - mi_string, cil.id_discr, osmo_hexdump(data, data_length)); - page_all_bts(msc, tmsi, mi_string, chan_needed); + osmo_mobile_identity_name_c(OTC_SELECT, &mi_imsi), + cil.id_discr, osmo_hexdump(data, data_length)); + page_all_bts(msc, mi_tmsi.tmsi, mi_imsi.imsi, chan_needed); break; } diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index 7b89dad..7859c69 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -78,10 +78,9 @@ static void page_ms(struct gsm_paging_request *request) { - uint8_t mi[128]; - unsigned int mi_len; unsigned int page_group; struct gsm_bts *bts = request->bts; + struct osmo_mobile_identity mi; log_set_context(LOG_CTX_BSC_SUBSCR, request->bsub); @@ -89,14 +88,21 @@ "0x%08x for ch. type %d (attempt %d)\n", request->bsub->imsi, request->bsub->tmsi, request->chan_type, request->attempts); - if (request->bsub->tmsi == GSM_RESERVED_TMSI) - mi_len = gsm48_generate_mid_from_imsi(mi, request->bsub->imsi); - else - mi_len = gsm48_generate_mid_from_tmsi(mi, request->bsub->tmsi); + if (request->bsub->tmsi == GSM_RESERVED_TMSI) { + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_IMSI, + }; + OSMO_STRLCPY_ARRAY(mi.imsi, request->bsub->imsi); + } else { + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_TMSI, + .tmsi = request->bsub->tmsi, + }; + } page_group = gsm0502_calc_paging_group(&bts->si_common.chan_desc, str_to_imsi(request->bsub->imsi)); - rsl_paging_cmd(bts, page_group, mi_len, mi, request->chan_type, false); + rsl_paging_cmd(bts, page_group, &mi, request->chan_type, false); log_set_context(LOG_CTX_BSC_SUBSCR, NULL); } diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index b041402..a2f9f4e 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -290,27 +290,30 @@ { struct gsm48_paging1 *p1 = (struct gsm48_paging1 *) raw_rr_msg; uint8_t chan_needed; - unsigned int mi_len; - uint8_t *mi; + struct osmo_mobile_identity mi; int rc; switch (p1->msg_type) { case GSM48_MT_RR_PAG_REQ_1: chan_needed = (p1->cneed2 << 2) | p1->cneed1; - mi_len = p1->data[0]; - mi = p1->data+1; + rc = osmo_mobile_identity_decode(&mi, p1->data+1, p1->data[0], false); + if (rc) { + LOGP(DPCU, LOGL_ERROR, "PCU Sends paging " + "request type %02x (chan_needed=%02x): Unable to decode Mobile Identity\n", + p1->msg_type, chan_needed); + rc = -EINVAL; + break; + } LOGP(DPCU, LOGL_ERROR, "PCU Sends paging " - "request type %02x (chan_needed=%02x, mi_len=%u, mi=%s)\n", - p1->msg_type, chan_needed, mi_len, - osmo_hexdump_nospc(mi,mi_len)); + "request type %02x (chan_needed=%02x, mi=%s)\n", + p1->msg_type, chan_needed, osmo_mobile_identity_name_c(OTC_SELECT, &mi)); /* NOTE: We will have to add 2 to mi_len and subtract 2 from * the mi pointer because rsl_paging_cmd() will perform the * reverse operations. This is because rsl_paging_cmd() is * normally expected to chop off the element identifier (0xC0) * and the length field. In our parameter, we do not have * those fields included. */ - rc = rsl_paging_cmd(bts, paging_group, mi_len+2, mi-2, - chan_needed, true); + rc = rsl_paging_cmd(bts, paging_group, &mi, chan_needed, true); break; case GSM48_MT_RR_PAG_REQ_2: case GSM48_MT_RR_PAG_REQ_3: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 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 Jun 7 20:53:13 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Sun, 7 Jun 2020 20:53:13 +0000 Subject: Change in pysim[master]: cards.py: added generic USIM In-Reply-To: References: Message-ID: guilly at gmail.com has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18710 ) Change subject: cards.py: added generic USIM ...................................................................... Patch Set 6: > Patch Set 6: > > > Patch Set 6: Verified-1 > > > > Build Failed > > > > https://jenkins.osmocom.org/jenkins/job/gerrit-pysim/552/ : FAILURE > I don't fully get why this is failling - is FairwaveSIM an USIM ? I can see it's reporting the USIM service table in the test result, but pySim-prog is failling with the CLA byte set to 00 I don't have this type of SIM for testing it in my reader, some clarification would be really useful! -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8c0a914ed00a713fe473fc64f35d17ba34176e52 Gerrit-Change-Number: 18710 Gerrit-PatchSet: 6 Gerrit-Owner: guilly at gmail.com Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: guilly at gmail.com Gerrit-Comment-Date: Sun, 07 Jun 2020 20:53:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 20:53:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:53:54 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear ... References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18714 ) Change subject: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit ...................................................................... msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 --- M tests/msc_vlr/msc_vlr_test_gsm_ciph.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/14/18714/1 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index 1b413f9..38a5caf 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -643,7 +643,7 @@ btw("MS sends Ciphering Mode Complete with IMEISV, VLR accepts and sends GSUP LU Req to HLR"); gsup_expect_tx("04010809710000004026f0" CN_DOMAIN VLR_TO_HLR); - ms_sends_ciphering_mode_complete("063217094b32244332244372f5"); + ms_sends_ciphering_mode_complete("063217094332244332244372f5"); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); btw("Subscriber has the IMEISV"); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 Gerrit-Change-Number: 18714 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 Jun 7 20:53:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:53:54 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18715 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea --- M include/osmocom/msc/gsm_04_08.h M include/osmocom/msc/msub.h M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/msub.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_access_req_fsm.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 20 files changed, 231 insertions(+), 256 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/18715/1 diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h index 661da42..bfc8027 100644 --- a/include/osmocom/msc/gsm_04_08.h +++ b/include/osmocom/msc/gsm_04_08.h @@ -54,8 +54,6 @@ int h_len); int send_siemens_mrpci(struct gsm_lchan *lchan, uint8_t *classmark2_lv); -int gsm48_extract_mi(uint8_t *classmark2, int length, char *mi_string, uint8_t *mi_type); -int gsm48_paging_extract_mi(struct gsm48_pag_resp *pag, int length, char *mi_string, uint8_t *mi_type); int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t lchan_mode); int gsm48_rx_rr_modif_ack(struct msgb *msg); diff --git a/include/osmocom/msc/msub.h b/include/osmocom/msc/msub.h index 2418feb..10673ca 100644 --- a/include/osmocom/msc/msub.h +++ b/include/osmocom/msc/msub.h @@ -8,6 +8,7 @@ enum gsm48_gsm_cause; enum complete_layer3_type; enum osmo_gsup_access_network_protocol; +struct osmo_mobile_identity; #define VSUB_USE_MSUB "active-conn" @@ -64,7 +65,7 @@ const char *file, int line); int msub_tx_an_apdu(struct msub *msub, enum msc_role from_role, enum msc_role to_role, struct an_apdu *an_apdu); -void msub_update_id_from_mi(struct msub *msub, const uint8_t mi[], uint8_t mi_len); +void msub_update_id_from_mi(struct msub *msub, const struct osmo_mobile_identity *mi); void msub_update_id(struct msub *msub); void msub_update_id_for_vsub(struct vlr_subscr *for_vsub); diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 615c6c8..83f83c7 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -23,6 +23,7 @@ LOGP(DVLR, level, "SUBSCR(%s) " fmt, vlr_subscr_name(vsub), ## args) struct log_target; +struct osmo_mobile_identity; #define VLR_SUBSCRIBER_NO_EXPIRATION 0 #define VLR_SUBSCRIBER_LU_EXPIRATION_INTERVAL 60 /* in seconds */ @@ -302,7 +303,7 @@ /* tell the VLR that the RAN connection is gone */ int vlr_subscr_disconnected(struct vlr_subscr *vsub); bool vlr_subscr_expire(struct vlr_subscr *vsub); -int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const uint8_t *mi, size_t mi_len); +int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const struct osmo_mobile_identity *mi); int vlr_subscr_rx_auth_resp(struct vlr_subscr *vsub, bool is_r99, bool is_utran, const uint8_t *res, uint8_t res_len); int vlr_subscr_rx_auth_fail(struct vlr_subscr *vsub, const uint8_t *auts); @@ -440,7 +441,7 @@ void *parent_event_data, struct vlr_instance *vlr, void *msc_conn_ref, enum vlr_parq_type type, enum osmo_cm_service_type cm_service_type, - const uint8_t *mi_lv, + const struct osmo_mobile_identity *mi, const struct osmo_location_area_id *lai, bool authentication_required, bool ciphering_required, diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index d612e40..e4db3ca 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -116,13 +116,15 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 LOC UPD ACC"); struct gsm48_hdr *gh; struct gsm48_loc_area_id *lai; - uint8_t *mid; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub = msc_a_vsub(msc_a); struct osmo_location_area_id laid = { .plmn = net->plmn, .lac = vsub->cgi.lai.lac, }; + uint8_t *l; + int rc; + struct osmo_mobile_identity mi = {}; gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); gh->proto_discr = GSM48_PDISC_MM; @@ -135,23 +137,28 @@ /* we did not allocate a TMSI to the MS, so we need to * include the IMSI in order for the MS to delete any * old TMSI that might still be allocated */ - uint8_t mi[10]; - int len; - len = gsm48_generate_mid_from_imsi(mi, vsub->imsi); - mid = msgb_put(msg, len); - memcpy(mid, mi, len); + mi.type = GSM_MI_TYPE_IMSI; + OSMO_STRLCPY_ARRAY(mi.imsi, vsub->imsi); DEBUGP(DMM, "-> %s LOCATION UPDATE ACCEPT\n", vlr_subscr_name(vsub)); } else { /* Include the TMSI, which means that the MS will send a * TMSI REALLOCATION COMPLETE, and we should wait for * that until T3250 expiration */ - mid = msgb_put(msg, GSM48_MID_TMSI_LEN); - gsm48_generate_mid_from_tmsi(mid, send_tmsi); + mi.type = GSM_MI_TYPE_TMSI; + mi.tmsi = send_tmsi; DEBUGP(DMM, "-> %s LOCATION UPDATE ACCEPT (TMSI = 0x%08x)\n", vlr_subscr_name(vsub), send_tmsi); } + l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + msgb_free(msg); + return -EINVAL; + } + *l = rc; + /* TODO: Follow-on proceed */ /* TODO: CTS permission */ /* TODO: Equivalent PLMNs */ @@ -180,10 +187,11 @@ static int mm_rx_id_resp(struct msc_a *msc_a, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); - uint8_t *mi = gh->data+1; + uint8_t *mi_data = gh->data+1; uint8_t mi_len = gh->data[0]; - uint8_t mi_type; struct vlr_subscr *vsub = msc_a_vsub(msc_a); + struct osmo_mobile_identity mi; + int rc; if (!vsub) { LOGP(DMM, LOGL_ERROR, @@ -198,26 +206,26 @@ return -EINVAL; } - /* Make sure we got what we expected */ - mi_type = mi[0] & GSM_MI_TYPE_MASK; - if (mi_type == GSM_MI_TYPE_NONE) { - LOGP(DMM, LOGL_NOTICE, "MM Identity Response contains no identity, " - "perhaps the MS has no Mobile Identity type %s?\n", - gsm48_mi_type_name(msc_a->mm_id_req_type)); + rc = osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + if (rc) { + LOGP(DMM, LOGL_ERROR, "Failure to decode Mobile Identity in MM Identity Response (rc=%d)\n", rc); return -EINVAL; - } else if (mi_type != msc_a->mm_id_req_type) { + } + + /* Make sure we got what we expected */ + if (mi.type != msc_a->mm_id_req_type) { LOGP(DMM, LOGL_NOTICE, "MM Identity Response contains unexpected " "Mobile Identity type %s (extected %s)\n", - gsm48_mi_type_name(mi_type), + gsm48_mi_type_name(mi.type), gsm48_mi_type_name(msc_a->mm_id_req_type)); return -EINVAL; } - DEBUGP(DMM, "IDENTITY RESPONSE: MI=%s\n", osmo_mi_name(mi, mi_len)); + DEBUGP(DMM, "IDENTITY RESPONSE: %s\n", osmo_mobile_identity_name_c(OTC_SELECT, &mi)); osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, gh->data); - return vlr_subscr_rx_id_resp(vsub, mi, mi_len); + return vlr_subscr_rx_id_resp(vsub, &mi); } /* 9.2.5 CM service accept */ @@ -311,8 +319,6 @@ { struct gsm48_hdr *gh = msgb_l3(msg); struct gsm48_loc_upd_req *lu; - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; enum vlr_lu_type vlr_lu_type = VLR_LU_TYPE_REGULAR; uint32_t tmsi; char *imsi; @@ -321,6 +327,15 @@ bool is_utran; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; + + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, + "Failed to decode Mobile Identity in Location Updating Request\n"); + return -EINVAL; + } lu = (struct gsm48_loc_upd_req *) gh->data; @@ -328,7 +343,7 @@ LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "Cannot accept another LU, conn already busy establishing authenticity;" " extraneous LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_name_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); return -EINVAL; } @@ -336,17 +351,18 @@ LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "Cannot accept another LU, conn already established;" " extraneous LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_name_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); return -EINVAL; } msc_a->complete_layer3_type = COMPLETE_LAYER3_LU; - msub_update_id_from_mi(msc_a->c.msub, lu->mi, lu->mi_len); + + msub_update_id_from_mi(msc_a->c.msub, &mi); LOG_MSC_A_CAT(msc_a, DMM, LOGL_DEBUG, "LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_name_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); - osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &lu->mi_len); + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &mi); switch (lu->type) { case GSM48_LUPD_NORMAL: @@ -368,15 +384,13 @@ /* TODO: 10.5.7.8 Device properties */ /* TODO: 10.5.1.15 MS network feature support */ - mi_type = lu->mi[0] & GSM_MI_TYPE_MASK; - gsm48_mi_to_string(mi_string, sizeof(mi_string), lu->mi, lu->mi_len); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: tmsi = GSM_RESERVED_TMSI; - imsi = mi_string; + imsi = mi.imsi; break; case GSM_MI_TYPE_TMSI: - tmsi = tmsi_from_string(mi_string); + tmsi = mi.tmsi; imsi = NULL; break; default: @@ -654,37 +668,30 @@ static int msc_vlr_tx_cm_serv_rej(void *msc_conn_ref, enum osmo_cm_service_type cm_service_type, enum gsm48_reject_value cause); -static int cm_serv_reuse_conn(struct msc_a *msc_a, const uint8_t *mi_lv, enum osmo_cm_service_type cm_serv_type) +static int cm_serv_reuse_conn(struct msc_a *msc_a, const struct osmo_mobile_identity *mi, enum osmo_cm_service_type cm_serv_type) { - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - uint32_t tmsi; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub = msc_a_vsub(msc_a); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi_lv+1, mi_lv[0]); - mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - if (vlr_subscr_matches_imsi(vsub, mi_string)) + if (vlr_subscr_matches_imsi(vsub, mi->imsi)) goto accept_reuse; break; case GSM_MI_TYPE_TMSI: - tmsi = osmo_load32be(mi_lv+2); - if (vlr_subscr_matches_tmsi(vsub, tmsi)) + if (vlr_subscr_matches_tmsi(vsub, mi->tmsi)) goto accept_reuse; break; case GSM_MI_TYPE_IMEI: - if (vlr_subscr_matches_imei(vsub, mi_string)) + if (vlr_subscr_matches_imei(vsub, mi->imei)) goto accept_reuse; break; default: break; } - LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "CM Service Request with mismatching mobile identity: %s %s\n", - gsm48_mi_type_name(mi_type), mi_string); + LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "CM Service Request with mismatching mobile identity: %s\n", + osmo_mobile_identity_name_c(OTC_SELECT, mi)); msc_vlr_tx_cm_serv_rej(msc_a, cm_serv_type, GSM48_REJECT_ILLEGAL_MS); return -EINVAL; @@ -714,10 +721,10 @@ struct gsm48_service_request *req; struct gsm48_classmark2 *cm2; uint8_t *cm2_buf, cm2_len; - uint8_t *mi_buf, mi_len; - uint8_t *mi, mi_type; bool is_utran; struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; /* Make sure that both header and CM Service Request fit into the buffer */ if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*req)) { @@ -726,6 +733,12 @@ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A(msc_a, LOGL_ERROR, "Rx CM SERVICE REQUEST: unable to decode Mobile Identity\n"); + return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); + } + gh = (struct gsm48_hdr *) msgb_l3(msg); req = (struct gsm48_service_request *) gh->data; @@ -742,18 +755,6 @@ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } - /* MI (Mobile Identity) LV follows the Classmark2 */ - mi_buf = cm2_buf + cm2_len; - mi_len = mi_buf[0]; - mi = mi_buf + 1; - - /* Prevent buffer overrun: check the length of MI */ - if (mi_buf + mi_len > msg->tail) { - LOG_MSC_A(msc_a, LOGL_ERROR, "Rx CM SERVICE REQUEST: Mobile Identity " - "length=%u is too big\n", cm2_len); - return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); - } - if (msc_a_is_establishing_auth_ciph(msc_a)) { LOG_MSC_A(msc_a, LOGL_ERROR, "Cannot accept CM Service Request, conn already busy establishing authenticity\n"); @@ -762,12 +763,11 @@ } msc_a->complete_layer3_type = COMPLETE_LAYER3_CM_SERVICE_REQ; - msub_update_id_from_mi(msc_a->c.msub, mi, mi_len); + msub_update_id_from_mi(msc_a->c.msub, &mi); LOG_MSC_A_CAT(msc_a, DMM, LOGL_DEBUG, "Rx CM SERVICE REQUEST cm_service_type=%s\n", osmo_cm_service_type_name(req->cm_service_type)); - mi_type = (mi && mi_len) ? (mi[0] & GSM_MI_TYPE_MASK) : GSM_MI_TYPE_NONE; - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: case GSM_MI_TYPE_TMSI: /* continue below */ @@ -781,7 +781,7 @@ } /* fall-through for non-emergency setup */ default: - LOG_MSC_A(msc_a, LOGL_ERROR, "MI type is not expected: %s\n", gsm48_mi_type_name(mi_type)); + LOG_MSC_A(msc_a, LOGL_ERROR, "MI type is not expected: %s\n", gsm48_mi_type_name(mi.type)); return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } @@ -789,9 +789,9 @@ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); if (msc_a_is_accepted(msc_a)) - return cm_serv_reuse_conn(msc_a, mi_buf, req->cm_service_type); + return cm_serv_reuse_conn(msc_a, &mi, req->cm_service_type); - osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, mi_buf); + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &mi); msc_a_get(msc_a, msc_a_cm_service_type_to_use(req->cm_service_type)); @@ -801,7 +801,7 @@ net->vlr, msc_a, VLR_PR_ARQ_T_CM_SERV_REQ, req->cm_service_type, - mi-1, &msc_a->via_cell.lai, + &mi, &msc_a->via_cell.lai, is_utran || net->authentication_required, is_utran ? net->uea_encryption : net->a5_encryption_mask > 0x01, req->cipher_key_seq, @@ -824,18 +824,9 @@ /* Receive a CM Re-establish Request */ static int gsm48_rx_cm_reest_req(struct msc_a *msc_a, struct msgb *msg) { - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - struct gsm48_hdr *gh = msgb_l3(msg); - - uint8_t classmark2_len = gh->data[1]; - uint8_t *classmark2 = gh->data+2; - uint8_t mi_len = *(classmark2 + classmark2_len); - uint8_t *mi = (classmark2 + classmark2_len + 1); - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - mi_type = mi[0] & GSM_MI_TYPE_MASK; - DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST MI(%s)=%s\n", gsm48_mi_type_name(mi_type), mi_string); + struct osmo_mobile_identity mi; + osmo_mobile_identity_decode_from_l3(&mi, msg, false); + DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST %s\n", osmo_mobile_identity_name_c(OTC_SELECT, &mi)); /* we don't support CM call re-establishment */ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); @@ -847,39 +838,41 @@ struct gsm48_hdr *gh = msgb_l3(msg); struct gsm48_imsi_detach_ind *idi = (struct gsm48_imsi_detach_ind *) gh->data; - uint8_t mi_type = idi->mi[0] & GSM_MI_TYPE_MASK; - char mi_string[GSM48_MI_SIZE]; + struct osmo_mobile_identity mi; struct vlr_subscr *vsub = NULL; - gsm48_mi_to_string(mi_string, sizeof(mi_string), idi->mi, idi->mi_len); - DEBUGP(DMM, "IMSI DETACH INDICATION: MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + int rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOGP(DMM, LOGL_ERROR, "IMSI DETACH INDICATION: cannot decode Mobile Identity\n"); + return -EINVAL; + } + + DEBUGP(DMM, "IMSI DETACH INDICATION: %s\n", osmo_mobile_identity_name_c(OTC_SELECT, &mi)); rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH]); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_TMSI: - vsub = vlr_subscr_find_by_tmsi(net->vlr, - tmsi_from_string(mi_string), __func__); + vsub = vlr_subscr_find_by_tmsi(net->vlr, mi.tmsi, __func__); break; case GSM_MI_TYPE_IMSI: - vsub = vlr_subscr_find_by_imsi(net->vlr, mi_string, __func__); + vsub = vlr_subscr_find_by_imsi(net->vlr, mi.imsi, __func__); break; case GSM_MI_TYPE_IMEI: case GSM_MI_TYPE_IMEISV: /* no sim card... FIXME: what to do ? */ - LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unimplemented mobile identity type\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "%s: unimplemented mobile identity type\n", + osmo_mobile_identity_name_c(OTC_SELECT, &mi)); break; default: - LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unknown mobile identity type\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "%s: unknown mobile identity type\n", + osmo_mobile_identity_name_c(OTC_SELECT, &mi)); break; } if (!vsub) { - LOGP(DMM, LOGL_ERROR, "IMSI DETACH for unknown subscriber MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "IMSI DETACH for unknown subscriber %s\n", + osmo_mobile_identity_name_c(OTC_SELECT, &mi)); } else { LOGP(DMM, LOGL_INFO, "IMSI DETACH for %s\n", vlr_subscr_name(vsub)); msub_set_vsub(msc_a->c.msub, vsub); @@ -1148,9 +1141,10 @@ uint8_t classmark2_len = gh->data[1]; uint8_t *classmark2_buf = gh->data+2; struct gsm48_classmark2 *cm2 = (void*)classmark2_buf; - uint8_t *mi_lv = classmark2_buf + classmark2_len; bool is_utran; struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; if (msc_a_is_establishing_auth_ciph(msc_a)) { LOG_MSC_A_CAT(msc_a, DRR, LOGL_ERROR, @@ -1163,9 +1157,15 @@ return 0; } + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A_CAT(msc_a, DRR, LOGL_ERROR, "Paging Response: cannot decode Mobile Identity\n"); + return -EINVAL; + } + msc_a->complete_layer3_type = COMPLETE_LAYER3_PAGING_RESP; - msub_update_id_from_mi(msc_a->c.msub, mi_lv + 1, *mi_lv); - LOG_MSC_A_CAT(msc_a, DRR, LOGL_DEBUG, "Rx PAGING RESPONSE\n"); + msub_update_id_from_mi(msc_a->c.msub, &mi); + LOG_MSC_A_CAT(msc_a, DRR, LOGL_DEBUG, "Rx PAGING RESPONSE %s\n", osmo_mobile_identity_name_c(OTC_SELECT, &mi)); msc_a_get(msc_a, MSC_A_USE_PAGING_RESPONSE); @@ -1173,7 +1173,7 @@ vlr_proc_acc_req(msc_a->c.fi, MSC_A_EV_AUTHENTICATED, MSC_A_EV_CN_CLOSE, NULL, net->vlr, msc_a, - VLR_PR_ARQ_T_PAGING_RESP, 0, mi_lv, &msc_a->via_cell.lai, + VLR_PR_ARQ_T_PAGING_RESP, 0, &mi, &msc_a->via_cell.lai, is_utran || net->authentication_required, is_utran ? net->uea_encryption : net->a5_encryption_mask > 0x01, pr->key_seq, @@ -1200,30 +1200,37 @@ struct gsm48_hdr *gh = msgb_l3(msg); unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); struct tlv_parsed tp; - struct tlv_p_entry *mi; + struct tlv_p_entry *mi_tlv; + struct osmo_mobile_identity mi; tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - mi = TLVP_GET(&tp, GSM48_IE_MOBILE_ID); + mi_tlv = TLVP_GET(&tp, GSM48_IE_MOBILE_ID); /* IMEI(SV) is optional for this message */ - if (!mi) + if (!mi_tlv) return 0; - if (!mi->len) + if (!mi_tlv->len) return -EINVAL; - if ((mi->val[0] & GSM_MI_TYPE_MASK) != GSM_MI_TYPE_IMEISV) { + + if (osmo_mobile_identity_decode(&mi, mi_tlv->val, mi_tlv->len, false)) { + LOGP(DMM, LOGL_ERROR, "RR Ciphering Mode Complete contains invalid Mobile Identity %s\n", + osmo_hexdump(mi_tlv->val, mi_tlv->len)); + return -EINVAL; + } + if (mi.type != GSM_MI_TYPE_IMEISV) { LOGP(DMM, LOGL_ERROR, "RR Ciphering Mode Complete contains " "unexpected Mobile Identity type %s\n", - gsm48_mi_type_name(mi->val[0] & GSM_MI_TYPE_MASK)); + osmo_mobile_identity_name_c(OTC_SELECT, &mi)); return -EINVAL; } LOG_MSC_A(msc_a, LOGL_DEBUG, "RR Ciphering Mode Complete contains Mobile Identity: %s\n", - osmo_mi_name(mi->val, mi->len)); + osmo_mobile_identity_name_c(OTC_SELECT, &mi)); if (!vsub) return 0; - return vlr_subscr_rx_id_resp(vsub, mi->val, mi->len); + return vlr_subscr_rx_id_resp(vsub, &mi); } static int gsm48_rx_rr_app_info(struct msc_a *msc_a, struct msgb *msg) @@ -1460,27 +1467,3 @@ gh->data[0] = cause; return msg; } - -int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type) -{ - /* Check the size for the classmark */ - if (length < 1 + *classmark2_lv) - return -1; - - uint8_t *mi_lv = classmark2_lv + *classmark2_lv + 1; - if (length < 2 + *classmark2_lv + mi_lv[0]) - return -2; - - *mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - return gsm48_mi_to_string(mi_string, GSM48_MI_SIZE, mi_lv+1, *mi_lv); -} - -int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, - char *mi_string, uint8_t *mi_type) -{ - static const uint32_t classmark_offset = - offsetof(struct gsm48_pag_resp, classmark2); - uint8_t *classmark2_lv = (uint8_t *) &resp->classmark2; - return gsm48_extract_mi(classmark2_lv, length - classmark_offset, - mi_string, mi_type); -} diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index bc5b7ea..d437dda 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1100,9 +1100,9 @@ /* Compose an ID almost like gsm48_mi_to_string(), but print the MI type along, and print a TMSI as hex. */ -void msc_a_update_id_from_mi(struct msc_a *msc_a, const uint8_t mi[], uint8_t mi_len) +void msc_a_update_id_from_mi(struct msc_a *msc_a, const struct osmo_mobile_identity *mi) { - _msc_a_update_id(msc_a, "%s", osmo_mi_name(mi, mi_len)); + _msc_a_update_id(msc_a, "%s", osmo_mobile_identity_name_c(OTC_SELECT, mi)); } /* Update msc_a->fi id string from current msc_a->vsub and msc_a->complete_layer3_type. */ diff --git a/src/libmsc/msub.c b/src/libmsc/msub.c index 2021ed8..1109f1e 100644 --- a/src/libmsc/msub.c +++ b/src/libmsc/msub.c @@ -488,9 +488,9 @@ } /* Compose an ID almost like gsm48_mi_to_string(), but print the MI type along, and print a TMSI as hex. */ -void msub_update_id_from_mi(struct msub *msub, const uint8_t mi[], uint8_t mi_len) +void msub_update_id_from_mi(struct msub *msub, const struct osmo_mobile_identity *mi) { - _msub_update_id(msub, osmo_mi_name(mi, mi_len)); + _msub_update_id(msub, osmo_mobile_identity_name_c(OTC_SELECT, mi)); } /* Update msub->fi id string from current msub->vsub and msub->complete_layer3_type. */ diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index cb228ef..28f99ce 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -497,7 +497,6 @@ struct gsm0808_encrypt_info encr_info; struct gsm0808_speech_codec_list scl; struct geran_encr geran_encr = {}; - char imsi[OSMO_IMSI_BUF_SIZE]; struct osmo_sockaddr_str rtp_ran_local; if (!ie_channel_type) { @@ -608,8 +607,12 @@ } if (ie_imsi) { - gsm48_mi_to_string(imsi, sizeof(imsi), ie_imsi->val, ie_imsi->len); - r->imsi = imsi; + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, ie_imsi->val, ie_imsi->len, false) + || mi.type != GSM_MI_TYPE_IMSI) + LOG_RAN_A_DEC_MSG(LOGL_ERROR, "IE IMSI: cannot decode IMSI identity\n"); + else + r->imsi = mi.imsi; } if (ie_aoip_transp_addr) { diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index 422ce72..b792e46 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -373,7 +373,7 @@ struct sgs_mme_ctx *mme; uint8_t new_id[2 + GSM48_TMSI_LEN]; uint8_t *new_id_ptr = new_id; - unsigned int new_id_len = 0; + int new_id_len = 0; uint8_t resp_msg_type; /* Determine message type that is sent next (needed for logging) */ @@ -398,9 +398,13 @@ /* Handle LU accept/reject */ if (response->accepted) { if (vsub->tmsi_new != GSM_RESERVED_TMSI) { - new_id_len = gsm48_generate_mid_from_tmsi(new_id, vsub->tmsi_new); - new_id_ptr = new_id + 2; - new_id_len -= 2; + struct osmo_mobile_identity tmsi_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = vsub->tmsi_new, + }; + new_id_len = osmo_mobile_identity_encode_buf(new_id, sizeof(new_id), &tmsi_mi, false); + if (new_id_len > 0) + new_id_ptr = new_id; } resp = gsm29118_create_lu_ack(vsub->imsi, &vsub->sgs.lai, new_id_ptr, new_id_len); sgs_tx(mme->conn, resp); @@ -958,12 +962,16 @@ } if (TLVP_PRESENT(&tp, SGSAP_IE_IMSI)) { - gsm48_mi_to_string(imsi, sizeof(imsi), TLVP_VAL(&tp, SGSAP_IE_IMSI), TLVP_LEN(&tp, SGSAP_IE_IMSI)); - if (strlen(imsi) < GSM23003_IMSI_MIN_DIGITS) { + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, + TLVP_VAL(&tp, SGSAP_IE_IMSI), + TLVP_LEN(&tp, SGSAP_IE_IMSI), false) + || mi.type != GSM_MI_TYPE_IMSI) { TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_INVALID_MAND_IE, - "SGsAP Message %s with short IMSI, dropping\n"); + "SGsAP Message %s with invalid IMSI, dropping\n"); goto error; } + OSMO_STRLCPY_ARRAY(imsi, mi.imsi); } /* Some messages contain an MME-NAME as mandatore IE, parse it right here. The diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 019e657..3a44d30 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1117,64 +1117,49 @@ } /* MSC->VLR: Subscriber has provided IDENTITY RESPONSE */ -int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, - const uint8_t *mi, size_t mi_len) +int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const struct osmo_mobile_identity *mi) { - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_type = mi[0] & GSM_MI_TYPE_MASK; - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - /* update the vlr_subscr with the given identity */ - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - if (strlen(mi_string) >= sizeof(vsub->imsi)) { - LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP too long (>%zu bytes): %s\n", - sizeof(vsub->imsi) - 1, mi_string); - return -ENOSPC; /* ignore message; do not avance LU FSM */ - } else if (vsub->imsi[0] - && !vlr_subscr_matches_imsi(vsub, mi_string)) { + if (vsub->imsi[0] + && !vlr_subscr_matches_imsi(vsub, mi->imsi)) { LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP differs:" - " %s\n", mi_string); + " %s\n", mi->imsi); /* XXX Should we return an error, e.g. -EINVAL ? */ } else - vlr_subscr_set_imsi(vsub, mi_string); + vlr_subscr_set_imsi(vsub, mi->imsi); break; case GSM_MI_TYPE_IMEI: - vlr_subscr_set_imei(vsub, mi_string); + vlr_subscr_set_imei(vsub, mi->imei); break; case GSM_MI_TYPE_IMEISV: - vlr_subscr_set_imeisv(vsub, mi_string); + vlr_subscr_set_imeisv(vsub, mi->imeisv); break; default: return -EINVAL; } if (vsub->auth_fsm) { - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - osmo_fsm_inst_dispatch(vsub->auth_fsm, - VLR_AUTH_E_MS_ID_IMSI, mi_string); + return osmo_fsm_inst_dispatch(vsub->auth_fsm, + VLR_AUTH_E_MS_ID_IMSI, (void*)mi->imsi); break; } } if (vsub->lu_fsm) { - uint32_t event = 0; - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - event = VLR_ULA_E_ID_IMSI; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMSI, (void*)mi->imsi); case GSM_MI_TYPE_IMEI: - event = VLR_ULA_E_ID_IMEI; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMEI, (void*)mi->imei); case GSM_MI_TYPE_IMEISV: - event = VLR_ULA_E_ID_IMEISV; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMEISV, (void*)mi->imeisv); default: return -EINVAL; } - osmo_fsm_inst_dispatch(vsub->lu_fsm, event, mi_string); } return 0; diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c index 73f8955..73f3435 100644 --- a/src/libvlr/vlr_access_req_fsm.c +++ b/src/libvlr/vlr_access_req_fsm.c @@ -632,7 +632,7 @@ void *parent_event_data, struct vlr_instance *vlr, void *msc_conn_ref, enum vlr_parq_type type, enum osmo_cm_service_type cm_service_type, - const uint8_t *mi_lv, + const struct osmo_mobile_identity *mi, const struct osmo_location_area_id *lai, bool authentication_required, bool ciphering_required, @@ -641,8 +641,6 @@ { struct osmo_fsm_inst *fi; struct proc_arq_priv *par; - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_type; fi = osmo_fsm_inst_alloc_child(&proc_arq_vlr_fsm, parent, parent_event_failure); @@ -678,16 +676,14 @@ LOGPFSML(fi, LOGL_ERROR, "Authentication off on UTRAN network. Good luck.\n"); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi_lv+1, mi_lv[0]); - mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - osmo_strlcpy(par->imsi, mi_string, sizeof(par->imsi)); + OSMO_STRLCPY_ARRAY(par->imsi, mi->imsi); par->by_tmsi = false; break; case GSM_MI_TYPE_TMSI: par->by_tmsi = true; - par->tmsi = osmo_load32be(mi_lv+2); + par->tmsi = mi->tmsi; break; case GSM_MI_TYPE_IMEI: /* TODO: IMEI (emergency call) */ diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 288040f..fc33b38 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -458,7 +458,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -990,7 +990,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1598,7 +1598,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2242,7 +2242,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2630,7 +2630,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3038,7 +3038,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index b651659..a8c7984 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -695,7 +695,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1166,7 +1166,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index ad2b80c..7042355 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -352,7 +352,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -538,7 +538,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -983,7 +983,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1361,7 +1361,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1575,7 +1575,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1673,7 +1673,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1887,7 +1887,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2152,7 +2152,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2418,7 +2418,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2557,7 +2557,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2929,7 +2929,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -3115,7 +3115,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 5f6b370..e753096 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -388,7 +388,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -606,7 +606,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1088,7 +1088,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1306,7 +1306,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1527,7 +1527,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1625,7 +1625,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1790,7 +1790,7 @@ DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV @@ -1909,7 +1909,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2130,7 +2130,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2269,7 +2269,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2666,7 +2666,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -2866,7 +2866,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3292,7 +3292,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -3510,7 +3510,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-42342 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3936,7 +3936,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -4132,7 +4132,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-42342 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 6ccc82a..66ea0bb 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -646,7 +646,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 5 (attached,SMS-receiver,SMS,Paging,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 6 (attached,SMS-receiver,SMS,Paging,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 3350431..2ee21da 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -264,7 +264,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -405,7 +405,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -762,7 +762,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1088,7 +1088,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1259,7 +1259,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1339,7 +1339,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1510,7 +1510,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1625,7 +1625,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1714,7 +1714,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -1846,7 +1846,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1935,7 +1935,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2078,7 +2078,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2167,7 +2167,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2366,7 +2366,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-5234234234234276 +DMM IDENTITY RESPONSE: IMEI-SV-5234234234234276 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=5234234234234276 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=52342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2544,7 +2544,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2633,7 +2633,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2813,7 +2813,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 8953c1d..48086a7 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -803,7 +803,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 2 (cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -1044,7 +1044,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 3 (2*cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -1480,7 +1480,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -1780,7 +1780,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -1893,7 +1893,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 2 (cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -2104,7 +2104,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index 4121a26..ad8d822 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -358,7 +358,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -466,7 +466,7 @@ DREF msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMSI-901700000004620 +DMM IDENTITY RESPONSE: IMSI-901700000004620 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: Received Event VLR_ULA_E_ID_IMSI DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index db158d6..cd4cf5c 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -399,7 +399,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 3e5dbae..53cce79 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -369,7 +369,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -556,7 +556,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -975,7 +975,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1164,7 +1164,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1599,7 +1599,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1796,7 +1796,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 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 Jun 7 20:54:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 20:54:11 +0000 Subject: Change in osmo-sgsn[master]: use new osmo_mobile_identity API everywhere References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 --- M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M src/gprs/gprs_gb_parse.c M src/sgsn/gprs_gmm.c M tests/gbproxy/gbproxy_test.c 6 files changed, 135 insertions(+), 120 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/16/18716/1 diff --git a/src/gbproxy/gb_proxy_patch.c b/src/gbproxy/gb_proxy_patch.c index 6235b04..2bc3b4b 100644 --- a/src/gbproxy/gb_proxy_patch.c +++ b/src/gbproxy/gb_proxy_patch.c @@ -436,28 +436,26 @@ int gbproxy_check_imsi(struct gbproxy_match *match, const uint8_t *imsi, size_t imsi_len) { - char mi_buf[200]; int rc; + struct osmo_mobile_identity mi; if (!match->enable) return 1; - rc = gprs_is_mi_imsi(imsi, imsi_len); - if (rc > 0) - rc = gsm48_mi_to_string(mi_buf, sizeof(mi_buf), imsi, imsi_len); - if (rc <= 0) { + rc = osmo_mobile_identity_decode(&mi, imsi, imsi_len, false); + if (rc || mi.type != GSM_MI_TYPE_IMSI) { LOGP(DGPRS, LOGL_NOTICE, "Invalid IMSI %s\n", osmo_hexdump(imsi, imsi_len)); return -1; } - LOGP(DGPRS, LOGL_DEBUG, "Checking IMSI '%s' (%d)\n", mi_buf, rc); + LOGP(DGPRS, LOGL_DEBUG, "Checking IMSI '%s' (%d)\n", mi.imsi, rc); - rc = regexec(&match->re_comp, mi_buf, 0, NULL, 0); + rc = regexec(&match->re_comp, mi.imsi, 0, NULL, 0); if (rc == REG_NOMATCH) { LOGP(DGPRS, LOGL_INFO, "IMSI '%s' doesn't match pattern '%s'\n", - mi_buf, match->re_str); + mi.imsi, match->re_str); return 0; } diff --git a/src/gbproxy/gb_proxy_tlli.c b/src/gbproxy/gb_proxy_tlli.c index 4e21ede..e9271c2 100644 --- a/src/gbproxy/gb_proxy_tlli.c +++ b/src/gbproxy/gb_proxy_tlli.c @@ -401,14 +401,16 @@ peer, parse_ctx->imsi, parse_ctx->imsi_len); if (other_link_info && other_link_info != link_info) { - char mi_buf[200]; - mi_buf[0] = '\0'; - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - parse_ctx->imsi, parse_ctx->imsi_len); - LOGP(DGPRS, LOGL_INFO, - "Removing TLLI %08x from list (IMSI %s re-used)\n", - other_link_info->tlli.current, mi_buf); - gbproxy_delete_link_info(peer, other_link_info); + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) { + LOGP(DGPRS, LOGL_ERROR, "Failed to decode Mobile Identity\n"); + } else { + LOGP(DGPRS, LOGL_INFO, + "Removing TLLI %08x from list (IMSI %s re-used)\n", + other_link_info->tlli.current, mi.imsi); + gbproxy_delete_link_info(peer, other_link_info); + } } /* Update the IMSI field */ diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 5c4f454..355b23f 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -554,7 +554,6 @@ SHOW_STR "Display information about the Gb proxy\n" "Show logical links\n") { struct gbproxy_peer *peer; - char mi_buf[200]; time_t now; struct timespec ts = {0,}; @@ -569,17 +568,20 @@ llist_for_each_entry(link_info, &state->logical_links, list) { time_t age = now - link_info->timestamp; + struct osmo_mobile_identity mi; + const char *imsi_str; if (link_info->imsi > 0) { - snprintf(mi_buf, sizeof(mi_buf), "(invalid)"); - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - link_info->imsi, - link_info->imsi_len); + if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) + imsi_str = "(invalid)"; + else + imsi_str = mi.imsi; } else { - snprintf(mi_buf, sizeof(mi_buf), "(none)"); + imsi_str = "(none)"; } vty_out(vty, " TLLI %08x, IMSI %s, AGE %d", - link_info->tlli.current, mi_buf, (int)age); + link_info->tlli.current, imsi_str, (int)age); if (link_info->stored_msgs_len) vty_out(vty, ", STORED %"PRIu32"/%"PRIu32, @@ -708,7 +710,6 @@ struct gbproxy_peer *peer = 0; struct gbproxy_link_info *link_info, *nxt; struct gbproxy_patch_state *state; - char mi_buf[200]; int found = 0; match = argv[1][0]; @@ -729,6 +730,8 @@ state = &peer->patch_state; llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) { + struct osmo_mobile_identity mi; + switch (match) { case MATCH_TLLI: if (link_info->tlli.current != ident) @@ -741,12 +744,10 @@ case MATCH_IMSI: if (!link_info->imsi) continue; - mi_buf[0] = '\0'; - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - link_info->imsi, - link_info->imsi_len); - - if (strcmp(mi_buf, imsi) != 0) + if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) + continue; + if (strcmp(mi.imsi, imsi) != 0) continue; break; } diff --git a/src/gprs/gprs_gb_parse.c b/src/gprs/gprs_gb_parse.c index 379674a..e5de4d4 100644 --- a/src/gprs/gprs_gb_parse.c +++ b/src/gprs/gprs_gb_parse.c @@ -604,13 +604,12 @@ } if (parse_ctx->imsi) { - char mi_buf[200]; - mi_buf[0] = '\0'; - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - parse_ctx->imsi, parse_ctx->imsi_len); - LOGPC(DGPRS, log_level, "%s IMSI %s", - sep, mi_buf); - sep = ","; + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) == 0 + && mi.type == GSM_MI_TYPE_IMSI) { + LOGPC(DGPRS, log_level, "%s IMSI %s", sep, mi.imsi); + sep = ","; + } } if (parse_ctx->invalidate_tlli) { LOGPC(DGPRS, log_level, "%s invalidate", sep); diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index 0391229..38dc1bf 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -280,8 +280,10 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ATT ACK"); struct gsm48_hdr *gh; struct gsm48_attach_ack *aa; - uint8_t *mid; unsigned long t; + struct osmo_mobile_identity mi; + uint8_t *l; + int rc; #if 0 uint8_t *ptsig; #endif @@ -321,9 +323,18 @@ #ifdef PTMSI_ALLOC /* Optional: Allocated P-TMSI */ - mid = msgb_put(msg, GSM48_MID_TMSI_LEN); - gsm48_generate_mid_from_tmsi(mid, mm->p_tmsi); - mid[0] = GSM48_IE_GMM_ALLOC_PTMSI; + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_TMSI, + .tmsi = mm->p_tmsi, + }; + l = msgb_tl_put(msg, GSM48_IE_GMM_ALLOC_PTMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + LOGMMCTXP(LOGL_ERROR, mm, "Cannot encode Mobile Identity\n"); + msgb_free(msg); + return -EINVAL; + } + *l = rc; #endif /* Optional: MS-identity (combined attach) */ @@ -1026,31 +1037,35 @@ static int gsm48_rx_gmm_id_resp(struct sgsn_mm_ctx *ctx, struct msgb *msg) { struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg); - uint8_t mi_type = gh->data[1] & GSM_MI_TYPE_MASK; - long mi_typel = mi_type; - char mi_string[GSM48_MI_SIZE]; + long mi_typel; + char mi_log_string[32]; + struct osmo_mobile_identity mi; - gsm48_mi_to_string(mi_string, sizeof(mi_string), &gh->data[1], gh->data[0]); if (!ctx) { DEBUGP(DMM, "from unknown TLLI 0x%08x?!? This should not happen\n", msgb_tlli(msg)); return -EINVAL; } - LOGMMCTXP(LOGL_DEBUG, ctx, "-> GMM IDENTITY RESPONSE: MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + if (osmo_mobile_identity_decode(&mi, &gh->data[1], gh->data[0], false)) { + LOGMMCTXP(LOGL_ERROR, ctx, "-> GMM IDENTITY RESPONSE: cannot decode Mobile Identity\n"); + return -EINVAL; + } + osmo_mobile_identity_name_buf(mi_log_string, sizeof(mi_log_string), &mi); + + LOGMMCTXP(LOGL_DEBUG, ctx, "-> GMM IDENTITY RESPONSE: MI=%s\n", mi_log_string); if (ctx->t3370_id_type == GSM_MI_TYPE_NONE) { LOGMMCTXP(LOGL_NOTICE, ctx, - "Got unexpected IDENTITY RESPONSE: MI(%s)=%s, " + "Got unexpected IDENTITY RESPONSE: MI=%s, " "ignoring message\n", - gsm48_mi_type_name(mi_type), mi_string); + mi_log_string); return -EINVAL; } - if (mi_type == ctx->t3370_id_type) + if (mi.type == ctx->t3370_id_type) mmctx_timer_stop(ctx, 3370); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: /* we already have a mm context with current TLLI, but no * P-TMSI / IMSI yet. What we now need to do is to fill @@ -1058,7 +1073,7 @@ if (strlen(ctx->imsi) == 0) { /* Check if we already have a MM context for this IMSI */ struct sgsn_mm_ctx *ictx; - ictx = sgsn_mm_ctx_by_imsi(mi_string); + ictx = sgsn_mm_ctx_by_imsi(mi.imsi); if (ictx) { /* Handle it like in gsm48_rx_gmm_det_req, * except that no messages are sent to the BSS */ @@ -1070,16 +1085,17 @@ mm_ctx_cleanup_free(ictx, "GPRS IMSI re-use"); } } - osmo_strlcpy(ctx->imsi, mi_string, sizeof(ctx->imsi)); + OSMO_STRLCPY_ARRAY(ctx->imsi, mi.imsi); break; case GSM_MI_TYPE_IMEI: - osmo_strlcpy(ctx->imei, mi_string, sizeof(ctx->imei)); + OSMO_STRLCPY_ARRAY(ctx->imei, mi.imei); break; case GSM_MI_TYPE_IMEISV: break; } /* Check if we can let the mobile station enter */ + mi_typel = mi.type; return osmo_fsm_inst_dispatch(ctx->gmm_att_req.fsm, E_IDEN_RESP_RECV, (void *)mi_typel); } @@ -1131,14 +1147,14 @@ struct gprs_llc_llme *llme) { struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg); - uint8_t *cur = gh->data, *msnc, *mi, *ms_ra_acc_cap; - uint8_t msnc_len, att_type, mi_len, mi_type, ms_ra_acc_cap_len; + uint8_t *cur = gh->data, *msnc, *mi_data, *ms_ra_acc_cap; + uint8_t msnc_len, att_type, mi_len, ms_ra_acc_cap_len; uint16_t drx_par; - uint32_t tmsi; - char mi_string[GSM48_MI_SIZE]; + char mi_log_string[32]; struct gprs_ra_id ra_id; uint16_t cid = 0; enum gsm48_gmm_cause reject_cause; + struct osmo_mobile_identity mi; int rc; LOGMMCTXP(LOGL_INFO, ctx, "-> GMM ATTACH REQUEST "); @@ -1182,15 +1198,15 @@ /* Mobile Identity (P-TMSI or IMSI) 10.5.1.4 */ mi_len = *cur++; - mi = cur; - if (mi_len > 8) - goto err_inval; - mi_type = *mi & GSM_MI_TYPE_MASK; + mi_data = cur; cur += mi_len; - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); + rc = osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + if (rc) + goto err_inval; + osmo_mobile_identity_name_buf(mi_log_string, sizeof(mi_log_string), &mi); - DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_string, + DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_log_string, get_value_string(gprs_att_t_strs, att_type)); /* Old routing area identification 10.5.5.15. Skip it */ @@ -1207,11 +1223,11 @@ /* Optional: Old P-TMSI Signature, Requested READY timer, TMSI Status */ - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: /* Try to find MM context based on IMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_imsi(mi_string); + ctx = sgsn_mm_ctx_by_imsi(mi.imsi); if (!ctx) { if (MSG_IU_UE_CTX(msg)) ctx = sgsn_mm_ctx_alloc_iu(MSG_IU_UE_CTX(msg)); @@ -1221,15 +1237,13 @@ reject_cause = GMM_CAUSE_NET_FAIL; goto rejected; } - osmo_strlcpy(ctx->imsi, mi_string, sizeof(ctx->imsi)); + OSMO_STRLCPY_ARRAY(ctx->imsi, mi.imsi); } break; case GSM_MI_TYPE_TMSI: - memcpy(&tmsi, mi+1, 4); - tmsi = ntohl(tmsi); /* Try to find MM context based on P-TMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_ptmsi(tmsi); + ctx = sgsn_mm_ctx_by_ptmsi(mi.tmsi); if (!ctx) { /* Allocate a context as most of our code expects one. * Context will not have an IMSI ultil ID RESP is received */ @@ -1241,12 +1255,12 @@ reject_cause = GMM_CAUSE_NET_FAIL; goto rejected; } - ctx->p_tmsi = tmsi; + ctx->p_tmsi = mi.tmsi; } break; default: LOGMMCTXP(LOGL_NOTICE, ctx, "Rejecting ATTACH REQUEST with " - "MI type %s\n", gsm48_mi_type_name(mi_type)); + "MI %s\n", mi_log_string); reject_cause = GMM_CAUSE_MS_ID_NOT_DERIVED; goto rejected; } @@ -1275,8 +1289,8 @@ ctx->ciph_algo)) { reject_cause = GMM_CAUSE_PROTO_ERR_UNSPEC; LOGMMCTXP(LOGL_NOTICE, ctx, "Rejecting ATTACH REQUEST with MI " - "type %s because MS do not support required %s " - "encryption\n", gsm48_mi_type_name(mi_type), + "%s because MS do not support required %s " + "encryption\n", mi_log_string, get_value_string(gprs_cipher_names,ctx->ciph_algo)); goto rejected; } @@ -1423,8 +1437,10 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 UPD ACK"); struct gsm48_hdr *gh; struct gsm48_ra_upd_ack *rua; - uint8_t *mid; unsigned long t; + uint8_t *l; + int rc; + struct osmo_mobile_identity mi; rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ROUTING_AREA_ACKED]); LOGMMCTXP(LOGL_INFO, mm, "<- ROUTING AREA UPDATE ACCEPT\n"); @@ -1454,9 +1470,17 @@ #ifdef PTMSI_ALLOC /* Optional: Allocated P-TMSI */ - mid = msgb_put(msg, GSM48_MID_TMSI_LEN); - gsm48_generate_mid_from_tmsi(mid, mm->p_tmsi); - mid[0] = GSM48_IE_GMM_ALLOC_PTMSI; + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_TMSI, + .tmsi = mm->p_tmsi, + }; + l = msgb_tl_put(msg, GSM48_IE_GMM_ALLOC_PTMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + msgb_free(msg); + return -EINVAL; + } + *l = rc; #endif /* Optional: Negotiated READY timer value */ @@ -1606,19 +1630,14 @@ } else if (TLVP_PRESENT(&tp, GSM48_IE_GMM_ALLOC_PTMSI)) { #ifdef BUILD_IU /* In Iu mode search only for ptmsi */ - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_len = TLVP_LEN(&tp, GSM48_IE_GMM_ALLOC_PTMSI); - const uint8_t *mi = TLVP_VAL(&tp, GSM48_IE_GMM_ALLOC_PTMSI); - uint8_t mi_type = *mi & GSM_MI_TYPE_MASK; - uint32_t tmsi; - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - - if (mi_type == GSM_MI_TYPE_TMSI) { - memcpy(&tmsi, mi+1, 4); - tmsi = ntohl(tmsi); - mmctx = sgsn_mm_ctx_by_ptmsi(tmsi); + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, TLVP_VAL(&tp, GSM48_IE_GMM_ALLOC_PTMSI), + TLVP_LEN(&tp, GSM48_IE_GMM_ALLOC_PTMSI), false) + || mi.type != GSM_MI_TYPE_TMSI) { + LOGIUP(MSG_IU_UE_CTX(msg), LOGL_ERROR, "Cannot decode P-TMSI\n"); + goto rejected; } + mmctx = sgsn_mm_ctx_by_ptmsi(mi.tmsi); #else LOGIUP(MSG_IU_UE_CTX(msg), LOGL_ERROR, "Rejecting GMM RA Update Request: No Iu support\n"); @@ -1802,11 +1821,11 @@ static int gsm48_rx_gmm_service_req(struct sgsn_mm_ctx *ctx, struct msgb *msg) { struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg); - uint8_t *cur = gh->data, *mi; - uint8_t service_type, mi_len, mi_type; - uint32_t tmsi; + uint8_t *cur = gh->data, *mi_data; + uint8_t service_type, mi_len; struct tlv_parsed tp; - char mi_string[GSM48_MI_SIZE]; + struct osmo_mobile_identity mi; + char mi_log_string[32]; enum gsm48_gmm_cause reject_cause; int rc; @@ -1826,15 +1845,14 @@ /* Mobile Identity (P-TMSI or IMSI) 10.5.1.4 */ mi_len = *cur++; - mi = cur; - if (mi_len > 8) - goto err_inval; - mi_type = *mi & GSM_MI_TYPE_MASK; + mi_data = cur; cur += mi_len; + rc = osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + if (rc) + goto err_inval; + osmo_mobile_identity_name_buf(mi_log_string, sizeof(mi_log_string), &mi); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - - DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_string, + DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_log_string, get_value_string(gprs_service_t_strs, service_type)); LOGPC(DMM, LOGL_INFO, "\n"); @@ -1842,11 +1860,11 @@ /* Optional: PDP context status, MBMS context status, Uplink data status, Device properties */ tlv_parse(&tp, &gsm48_gmm_att_tlvdef, cur, (msg->data + msg->len) - cur, 0, 0); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: /* Try to find MM context based on IMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_imsi(mi_string); + ctx = sgsn_mm_ctx_by_imsi(mi.imsi); if (!ctx) { /* FIXME: We need to have a context for service request? */ reject_cause = GMM_CAUSE_IMPL_DETACHED; @@ -1855,11 +1873,9 @@ msgid2mmctx(ctx, msg); break; case GSM_MI_TYPE_TMSI: - memcpy(&tmsi, mi+1, 4); - tmsi = ntohl(tmsi); /* Try to find MM context based on P-TMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_ptmsi(tmsi); + ctx = sgsn_mm_ctx_by_ptmsi(mi.tmsi); if (!ctx) { /* FIXME: We need to have a context for service request? */ reject_cause = GMM_CAUSE_IMPL_DETACHED; @@ -1869,7 +1885,7 @@ break; default: LOGMMCTXP(LOGL_NOTICE, ctx, "Rejecting SERVICE REQUEST with " - "MI type %s\n", gsm48_mi_type_name(mi_type)); + "MI %s\n", mi_log_string); reject_cause = GMM_CAUSE_MS_ID_NOT_DERIVED; goto rejected; } diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index 6dfe2c5..6433eb6 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -158,7 +158,8 @@ fprintf(stream, "%*s TLLI-Cache: %d\n", indent, "", state->logical_link_count); llist_for_each_entry(link_info, &state->logical_links, list) { - char mi_buf[200]; + struct osmo_mobile_identity mi; + const char *imsi_str; time_t age = now ? now - link_info->timestamp : 0; int stored_msgs = 0; struct llist_head *iter; @@ -166,13 +167,14 @@ llist_for_each(iter, &link_info->stored_msgs) stored_msgs++; - if (link_info->imsi_len > 0) { - snprintf(mi_buf, sizeof(mi_buf), "(invalid)"); - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - link_info->imsi, - link_info->imsi_len); + if (link_info->imsi > 0) { + if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) + imsi_str = "(invalid)"; + else + imsi_str = mi.imsi; } else { - snprintf(mi_buf, sizeof(mi_buf), "(none)"); + imsi_str = "(none)"; } fprintf(stream, "%*s TLLI %08x", indent, "", link_info->tlli.current); @@ -186,7 +188,7 @@ link_info->sgsn_tlli.assigned); } fprintf(stream, ", IMSI %s, AGE %d", - mi_buf, (int)age); + imsi_str, (int)age); if (stored_msgs) fprintf(stream, ", STORED %d", stored_msgs); @@ -4809,10 +4811,7 @@ OSMO_ASSERT(gbproxy_check_imsi(&match, imsi1, ARRAY_SIZE(imsi1)) == 1); OSMO_ASSERT(gbproxy_check_imsi(&match, imsi2, ARRAY_SIZE(imsi2)) == 1); - /* imsi3_bad contains 0xE and 0xF digits, but the conversion function - * doesn't complain, so gbproxy_check_imsi() doesn't return -1 in this - * case. */ - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == 0); + OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi1, ARRAY_SIZE(tmsi1)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi2_bad, ARRAY_SIZE(tmsi2_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, imei1, ARRAY_SIZE(imei1)) == -1); @@ -4823,7 +4822,7 @@ OSMO_ASSERT(gbproxy_check_imsi(&match, imsi1, ARRAY_SIZE(imsi1)) == 0); OSMO_ASSERT(gbproxy_check_imsi(&match, imsi2, ARRAY_SIZE(imsi2)) == 0); - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == 0); + OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi1, ARRAY_SIZE(tmsi1)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi2_bad, ARRAY_SIZE(tmsi2_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, imei1, ARRAY_SIZE(imei1)) == -1); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 Gerrit-Change-Number: 18716 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 Jun 7 20:54:29 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Sun, 7 Jun 2020 20:54:29 +0000 Subject: Change in pysim[master]: cards.py: added read_sst_raw and read_sst methods In-Reply-To: References: Message-ID: guilly at gmail.com has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/17827 ) Change subject: cards.py: added read_sst_raw and read_sst methods ...................................................................... Abandoned it was already added by other developer -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4e85b3e6c25ede4ad4c3c46db83f8314864a036f Gerrit-Change-Number: 17827 Gerrit-PatchSet: 2 Gerrit-Owner: guilly at gmail.com Gerrit-Assignee: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: guilly at gmail.com Gerrit-CC: herlesupreeth Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 21:05:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 21:05:03 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18002 ) Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... Patch Set 8: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/18002/8/include/osmocom/gsm/lapd_core.h File include/osmocom/gsm/lapd_core.h: https://gerrit.osmocom.org/c/libosmocore/+/18002/8/include/osmocom/gsm/lapd_core.h at 168 PS8, Line 168: OSMO_DEPRECATED("Use lapd_dl_init2() instaed"); typo: instead https://gerrit.osmocom.org/c/libosmocore/+/18002/8/include/osmocom/gsm/lapdm.h File include/osmocom/gsm/lapdm.h: https://gerrit.osmocom.org/c/libosmocore/+/18002/8/include/osmocom/gsm/lapdm.h at 89 PS8, Line 89: OSMO_DEPRECATED("Use lapdm_entity_init3() instead"); As a general comment, you don't need to deprecate stuff if it was added after last release (not saying it's the case here). You are free to change APIs not yet released. https://gerrit.osmocom.org/c/libosmocore/+/18002/8/src/gsm/lapd_core.c File src/gsm/lapd_core.c: https://gerrit.osmocom.org/c/libosmocore/+/18002/8/src/gsm/lapd_core.c at 307 PS8, Line 307: dl->name = talloc_strdup(tall_lapd_ctx, name); see my previous comment, don't you need osmo_talloc_replace() (or however it's called) here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 07 Jun 2020 21:05: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 Sun Jun 7 21:06:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 7 Jun 2020 21:06:56 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 07 Jun 2020 21:06:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 7 22:48:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 7 Jun 2020 22:48:55 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere 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/+/18713 to look at the new patch set (#2). Change subject: use osmo_mobile_identity API everywhere ...................................................................... use osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/gsm_04_08_rr.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c 8 files changed, 66 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/18713/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 8 01:34:49 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 01:34:49 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5edd95c7153b5_24392ae3da26c5f81637367@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 177s] [1923/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 177s] [1924/2112] cc -o src/pgw/open5gs-pgwd 'src/pgw/src at pgw@@open5gs-pgwd at exe/app-init.c.o' 'src/pgw/src at pgw@@open5gs-pgwd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pgw/libpgw.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/gtp/libogsgtp.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/diameter/gx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/gtp' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp [ 177s] [1925/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 177s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 177s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 177s] ../src/udm/context.c: In function ?udm_ue_add?: [ 177s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 177s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 177s] ~~^ [ 177s] %d [ 177s] cc1: some warnings being treated as errors [ 177s] [1926/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 177s] [1927/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 177s] [1928/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/init.c.o' -MF 'src/udr/src at udr@@udr at sta/init.c.o.d' -o 'src/udr/src at udr@@udr at sta/init.c.o' -c ../src/udr/init.c [ 177s] [1929/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 177s] [1930/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 178s] [1931/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 178s] [1932/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 178s] ninja: build stopped: subcommand failed. [ 178s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 178s] make: *** [debian/rules:11: binary] Error 1 [ 178s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 178s] ### VM INTERACTION START ### [ 181s] [ 172.064377] sysrq: SysRq : Power Off [ 181s] [ 172.070282] reboot: Power down [ 181s] ### VM INTERACTION END ### [ 181s] [ 181s] lamb67 failed "build open5gs_1.2.5.20200608.dsc" at Mon Jun 8 01:34:36 UTC 2020. [ 181s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 01:35:23 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 01:35:23 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5edd95ea28cc9_24392ae3da26c5f816378c0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 192s] [1936/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 192s] [1937/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 192s] FAILED: src/udm/udm at sta/context.c.o [ 192s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 192s] ../src/udm/context.c: In function ?udm_ue_add?: [ 192s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 192s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 192s] ~~^ [ 192s] %d [ 192s] cc1: some warnings being treated as errors [ 192s] [1938/2112] cc -Isrc/pcrf/pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 192s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 192s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 192s] [1941/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/ue-sm.c.o' -MF 'src/udm/udm at sta/ue-sm.c.o.d' -o 'src/udm/udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 192s] [1942/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/sbi-path.c.o' -MF 'src/udm/udm at sta/sbi-path.c.o.d' -o 'src/udm/udm at sta/sbi-path.c.o' -c ../src/udm/sbi-path.c [ 192s] [1943/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 192s] [1944/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 192s] ninja: build stopped: subcommand failed. [ 192s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 192s] debian/rules:11: recipe for target 'binary' failed [ 192s] make: *** [binary] Error 1 [ 192s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 192s] ### VM INTERACTION START ### [ 195s] [ 187.148796] sysrq: SysRq : Power Off [ 195s] [ 187.152866] reboot: Power down [ 196s] ### VM INTERACTION END ### [ 196s] [ 196s] lamb76 failed "build open5gs_1.2.5.20200608.dsc" at Mon Jun 8 01:35:06 UTC 2020. [ 196s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 01:39:05 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 01:39:05 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5edd96d96badf_24392ae3da26c5f81639480@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: error=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/nrf.yaml"' -MD -MQ 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' -MF 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o.d' -o 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' -c ../src/nrf/app.c [ 261s] [1923/2112] cc -Isrc/nrf/f570ec2@@open5gs-nrfd at exe -Isrc/nrf -I../src/nrf -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/nrf.yaml"' -MD -MQ 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -MF 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o.d' -o 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -c ../src/main.c [ 261s] [1924/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/timer.c.o' -MF 'src/udr/e340f29@@udr at sta/timer.c.o.d' -o 'src/udr/e340f29@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 261s] [1925/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/event.c.o' -MF 'src/udr/e340f29@@udr at sta/event.c.o.d' -o 'src/udr/e340f29@@udr at sta/event.c.o' -c ../src/udr/event.c [ 261s] [1926/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 262s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -c ../src/udr/nnrf-handler.c [ 262s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 262s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 262s] [1930/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 262s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 262s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 262s] ../src/udm/context.c: In function ?udm_ue_add?: [ 262s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 262s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 262s] ~~^ [ 262s] %d [ 262s] cc1: some warnings being treated as errors [ 262s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 262s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 262s] ninja: build stopped: subcommand failed. [ 262s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j3 -v returned exit code 1 [ 262s] make: *** [debian/rules:11: binary] Error 1 [ 262s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 262s] ### VM INTERACTION START ### [ 265s] [ 256.768623] sysrq: SysRq : Power Off [ 265s] [ 256.772475] reboot: Power down [ 265s] ### VM INTERACTION END ### [ 265s] [ 265s] build82 failed "build open5gs_1.2.5.20200608.dsc" at Mon Jun 8 01:38:52 UTC 2020. [ 265s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 01:40:13 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 01:40:13 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5edd971cc4a2_24392ae3da26c5f816403c4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Testing/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 220s] touch libfx2.lib [ 220s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 220s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 220s] Making all in src [ 220s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 220s] Making all in common [ 220s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 220s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 220s] /usr/bin/env: 'python': No such file or directory [ 220s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 220s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 220s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 220s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 220s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 220s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 220s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 220s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 220s] make[1]: *** [Makefile:554: all] Error 2 [ 220s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 220s] dh_auto_build: error: make -j1 returned exit code 2 [ 220s] make: *** [debian/rules:13: build] Error 25 [ 220s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 220s] ### VM INTERACTION START ### [ 223s] [ 209.911389] sysrq: SysRq : Power Off [ 223s] [ 209.916868] reboot: Power down [ 223s] ### VM INTERACTION END ### [ 223s] [ 223s] lamb09 failed "build libusrp_3.4.4.7.50ce.dsc" at Mon Jun 8 01:40:05 UTC 2020. [ 223s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 01:40:49 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 01:40:49 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edd973336203_24392ae3da26c5f816406c7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 256s] touch libfx2.lib [ 256s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 256s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 256s] Making all in src [ 256s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 256s] Making all in common [ 256s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 256s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 256s] /usr/bin/env: 'python': No such file or directory [ 256s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 256s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 256s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 256s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 256s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 256s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 256s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 256s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 256s] make[1]: *** [Makefile:554: all] Error 2 [ 256s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 256s] dh_auto_build: error: make -j1 returned exit code 2 [ 256s] make: *** [debian/rules:13: build] Error 25 [ 256s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 256s] ### VM INTERACTION START ### [ 259s] [ 241.530855] sysrq: SysRq : Power Off [ 259s] [ 241.535049] reboot: Power down [ 259s] ### VM INTERACTION END ### [ 259s] [ 259s] lamb19 failed "build libusrp_3.4.4.7.50ce.dsc" at Mon Jun 8 01:40:36 UTC 2020. [ 259s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 03:03:24 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 03:03:24 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5eddaa8db1fb2_24392ae3da26c5f816627a7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Testing/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 208s] touch libfx2.lib [ 208s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 208s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 208s] Making all in src [ 208s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 208s] Making all in common [ 208s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 208s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 208s] /usr/bin/env: 'python': No such file or directory [ 208s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 208s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 208s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 208s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 208s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 208s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 208s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 208s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 208s] make[1]: *** [Makefile:554: all] Error 2 [ 208s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 208s] dh_auto_build: error: make -j1 returned exit code 2 [ 208s] make: *** [debian/rules:13: build] Error 25 [ 208s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 208s] ### VM INTERACTION START ### [ 211s] [ 199.513918] sysrq: SysRq : Power Off [ 211s] [ 199.519649] reboot: Power down [ 211s] ### VM INTERACTION END ### [ 211s] [ 211s] lamb10 failed "build libusrp_3.4.4.7.50ce.dsc" at Mon Jun 8 03:03:20 UTC 2020. [ 211s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 03:09:23 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 03:09:23 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5eddabeed56f1_24392ae3da26c5f816637c0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 535s] touch libfx2.lib [ 535s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 535s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 535s] Making all in src [ 535s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 535s] Making all in common [ 535s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 535s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 535s] /usr/bin/env: 'python': No such file or directory [ 535s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 535s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 535s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 535s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 535s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 535s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 535s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 535s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 535s] make[1]: *** [Makefile:554: all] Error 2 [ 535s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 535s] dh_auto_build: error: make -j1 returned exit code 2 [ 535s] make: *** [debian/rules:13: build] Error 25 [ 535s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 535s] ### VM INTERACTION START ### [ 538s] [ 520.292229] sysrq: SysRq : Power Off [ 538s] [ 520.310922] reboot: Power down [ 538s] ### VM INTERACTION END ### [ 538s] [ 538s] lamb27 failed "build libusrp_3.4.4.7.50ce.dsc" at Mon Jun 8 03:09:18 UTC 2020. [ 538s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 04:33:57 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 04:33:57 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5eddbfbf81ab1_24392ae3da26c5f816776b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Unstable/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 212s] touch libfx2.lib [ 212s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 212s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 212s] Making all in src [ 212s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 212s] Making all in common [ 212s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 212s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 212s] /usr/bin/env: 'python': No such file or directory [ 212s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 212s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 212s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 212s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 212s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 212s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 212s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 212s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 212s] make[1]: *** [Makefile:547: all] Error 2 [ 212s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 212s] dh_auto_build: error: make -j1 returned exit code 2 [ 212s] make: *** [debian/rules:13: build] Error 25 [ 212s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 212s] ### VM INTERACTION START ### [ 215s] [ 201.816946] sysrq: SysRq : Power Off [ 215s] [ 201.822882] reboot: Power down [ 215s] ### VM INTERACTION END ### [ 215s] [ 215s] lamb67 failed "build libusrp_3.4.4.dsc" at Mon Jun 8 04:33:55 UTC 2020. [ 215s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 8 04:35:22 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 04:35:22 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5eddc01888123_24392ae3da26c5f8167793c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Testing/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 320s] touch libfx2.lib [ 320s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 320s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 320s] Making all in src [ 320s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 320s] Making all in common [ 320s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 320s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 320s] /usr/bin/env: 'python': No such file or directory [ 320s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 320s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 320s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 320s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 320s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 320s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 320s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 320s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 320s] make[1]: *** [Makefile:547: all] Error 2 [ 320s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 320s] dh_auto_build: error: make -j1 returned exit code 2 [ 320s] make: *** [debian/rules:13: build] Error 25 [ 320s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 320s] ### VM INTERACTION START ### [ 323s] [ 298.874708] sysrq: SysRq : Power Off [ 323s] [ 298.878165] reboot: Power down [ 323s] ### VM INTERACTION END ### [ 323s] [ 323s] cloud108 failed "build libusrp_3.4.4.dsc" at Mon Jun 8 04:35:17 UTC 2020. [ 323s] -- 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 Jun 8 08:12:30 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 8 Jun 2020 08:12:30 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 to look at the new patch set (#2). Change subject: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode ...................................................................... enb_srs: add extra head room for max rate with 6 PRB in MIMO mode the overhead with 6 PRB and MIMO is a bit higher when compared to other PRBs resulting in lower achievable throughput Change-Id: I63888435553bba4f7be88cc745e24472921a7fb4 --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 7 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/36/18636/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 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: I63888435553bba4f7be88cc745e24472921a7fb4 Gerrit-Change-Number: 18636 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 08:12:30 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 8 Jun 2020 08:12:30 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ms: refactor base_rate selection for ZMQ In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 to look at the new patch set (#2). Change subject: enb,ms: refactor base_rate selection for ZMQ ...................................................................... enb,ms: refactor base_rate selection for ZMQ Use tailored sample rate only use for 6, 50 and 75 PRB. For all other bandwidths, we use the full LTE rate and downsample. With 5.76e6 as base sample rate, for example, we had some issue during the tests like: [zmq] Error: tx time is 0.178 ms in the past (7833600 < 7835648) [zmq] Error: tx time is 0.011 ms in the past (7835520 < 7835648) Using a higher sample rate seems to work better. Change-Id: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/ms_amarisoft.py M src/osmo_gsm_tester/obj/ms_srs.py 3 files changed, 9 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/37/18637/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 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: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c Gerrit-Change-Number: 18637 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 08:12:31 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 8 Jun 2020 08:12:31 +0000 Subject: Change in osmo-gsm-tester[master]: enb_amarisoft: decrease max rate for TM2+ References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18717 ) Change subject: enb_amarisoft: decrease max rate for TM2+ ...................................................................... enb_amarisoft: decrease max rate for TM2+ perhaps additional CRS for MIMO up to 25 PRB result in slighlt lower max rate Change-Id: I128085e308f400622683905245d42f92a631e81d --- M src/osmo_gsm_tester/obj/enb_amarisoft.py 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/17/18717/1 diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index 3602f31..f6f2cb0 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -253,8 +253,12 @@ max_rate = max_phy_rate_tm1_ul[self.num_prb()] # MIMO only supported for Downlink - if downlink and self._txmode > 2: - max_rate *= 2 + if downlink: + if self._txmode > 2: + max_rate *= 2 + # Lower max MCS for TM2 and above results in lower max rate + if self._txmode >= 2 and self.num_prb() <= 25: + max_rate *= 0.85 return max_rate -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18717 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: I128085e308f400622683905245d42f92a631e81d Gerrit-Change-Number: 18717 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 08:31:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 08:31:27 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb: fix RI config In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18582 ) Change subject: amarisoft_enb: fix RI config ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18582 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: Ic25233cf7feb4ded8b3d0f440191cc958d8bc0ec Gerrit-Change-Number: 18582 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 08: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 Mon Jun 8 08:39:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 08:39:44 +0000 Subject: Change in osmo-bsc[master]: timeslot_fsm: Name TS FSM instances on allocation. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18702 ) Change subject: timeslot_fsm: Name TS FSM instances on allocation. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idc74ea142b96323b48826f8a52e13e45d535512a Gerrit-Change-Number: 18702 Gerrit-PatchSet: 1 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 08: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 Mon Jun 8 08:40:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 08:40:29 +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 1: 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: 1 Gerrit-Owner: ipse Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 08:40:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 08:45:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 08:45:56 +0000 Subject: Change in libosmocore[master]: NS: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18706 ) Change subject: NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... Patch Set 2: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/18706/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/18706/2//COMMIT_MSG at 10 PS2, Line 10: procedures shalle be used over an IP based transport. They are only typo: shall https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns.c at 796 PS2, Line 796: if (!nsvc->nsi->bss_sns_fi && nsvc->nsi->nsip.use_reset_block_unblock) { YOu are using same check in several places. It may make sense to have a static inline function or define with those. https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns_vty.c File src/gb/gprs_ns_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns_vty.c at 517 PS2, Line 517: vty_nsi->nsip.use_reset_block_unblock = true; vty_nsi->nsip.use_reset_block_unblock = !strcmp(argv[0], "enabled") -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 08:45: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 Jun 8 08:47:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 08:47:55 +0000 Subject: Change in libosmocore[master]: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18707 ) Change subject: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18707/1/include/osmocom/gprs/gprs_ns.h File include/osmocom/gprs/gprs_ns.h: https://gerrit.osmocom.org/c/libosmocore/+/18707/1/include/osmocom/gprs/gprs_ns.h at a200 PS1, Line 200: struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci); aren't you breaking backward compatibility compilation here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 Gerrit-Change-Number: 18707 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 08:47:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 09:59:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 09:59:57 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18642 ) Change subject: ttcn3-bts: jenkins.sh: Log fake_trx stdout to file ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18642/2/ttcn3-bts-test/jenkins.sh File ttcn3-bts-test/jenkins.sh: https://gerrit.osmocom.org/c/docker-playground/+/18642/2/ttcn3-bts-test/jenkins.sh at 57 PS2, Line 57: 2>&1 This also redirects stderr, while the commit message mentions only stdout. Do python exceptions/backtraces also end up in stderr? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18 Gerrit-Change-Number: 18642 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 08 Jun 2020 09:59:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 10:19:20 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 8 Jun 2020 10:19:20 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: fix RSSI calculation for SUB frames In-Reply-To: References: Message-ID: Hello fixeria, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 to look at the new patch set (#3). Change subject: scheduler_trx: fix RSSI calculation for SUB frames ...................................................................... scheduler_trx: fix RSSI calculation for SUB frames Currently the RSSI value of the burst that concludes a block is passed up to the higher layer. However, this also means that the RSSI values of the other bursts are skipped. Lets keep record of all RSSI values and average the values before we pass them up to the higher layers. Also lets make sure that we pick the correct RSSI measurements when we calculate the RSSI values for the AMR SID frames (SUB frames). Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Related: OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/scheduler_trx.c 2 files changed, 187 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/18035/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 3 Gerrit-Owner: dexter 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 Mon Jun 8 11:10:28 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 8 Jun 2020 11:10:28 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18694 to look at the new patch set (#2). Change subject: gsm0808: fix endieness of call identifier ...................................................................... gsm0808: fix endieness of call identifier The call identifier in the ASSIGNMENT COMMAND is encoded in the wrong endieness. 3GPP TS 48.008, section 3.2.2.105 specifies that the least significant byte should be transmitted first, which means that the endieness here is little endian. Lets make sure that the endieness is correctly transmitted, regardless of the host byte order. Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Related: OS#4582 --- M src/gsm/gsm0808.c 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/18694/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 12:07:23 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 8 Jun 2020 12:07:23 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 to look at the new patch set (#6). Change subject: ms_srs: refactor UE state getter functions ...................................................................... ms_srs: refactor UE state getter functions rename UE helper functions to query RRC connected/idle state and adapt tests accordingly also add helper to retrieve assinged IP address Change-Id: I6cd057e34b4df6a1a73695355dd6406d7e039546 --- M src/osmo_gsm_tester/obj/ms.py M src/osmo_gsm_tester/obj/ms_ofono.py M src/osmo_gsm_tester/obj/ms_srs.py M sysmocom/suites/4g/handover.py M sysmocom/suites/4g/iperf3_dl.py M sysmocom/suites/4g/iperf3_ul.py M sysmocom/suites/4g/ping.py 7 files changed, 44 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/35/18535/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 6 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 13:33:33 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 8 Jun 2020 13:33:33 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Use designated initializer in bts_stat_desc References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18718 ) Change subject: osmo-bsc: Use designated initializer in bts_stat_desc ...................................................................... osmo-bsc: Use designated initializer in bts_stat_desc Change-Id: Ic29f3a7e6fb16955bc74cc163d45a243b373183a --- M src/osmo-bsc/gsm_data.c 1 file changed, 45 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/18/18718/1 diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 46e26ac..9bf6f82 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -345,30 +345,51 @@ } static const struct osmo_stat_item_desc bts_stat_desc[] = { - { "chanloadavg", "Channel load average", "%", 16, 0 }, - { "chan_ccch_sdcch4:used", "Number of CCCH+SDCCH4 channels used", "", 16, 0 }, - { "chan_ccch_sdcch4:total", "Number of CCCH+SDCCH4 channels total", "", 16, 0 }, - { "chan_tch_f:used", "Number of TCH/F channels used", "", 16, 0 }, - { "chan_tch_f:total", "Number of TCH/F channels total", "", 16, 0 }, - { "chan_tch_h:used", "Number of TCH/H channels used", "", 16, 0 }, - { "chan_tch_h:total", "Number of TCH/H channels total", "", 16, 0 }, - { "chan_sdcch8:used", "Number of SDCCH8 channels used", "", 16, 0 }, - { "chan_sdcch8:total", "Number of SDCCH8 channels total", "", 16, 0 }, - { "chan_tch_f_pdch:used", "Number of TCH/F_PDCH channels used", "", 16, 0 }, - { "chan_tch_f_pdch:total", "Number of TCH/F_PDCH channels total", "", 16, 0 }, - { "chan_ccch_sdcch4_cbch:used", "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 }, - { "chan_ccch_sdcch4_cbch:total", "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 }, - { "chan_sdcch8_cbch:used", "Number of SDCCH8+CBCH channels used", "", 16, 0 }, - { "chan_sdcch8_cbch:total", "Number of SDCCH8+CBCH channels total", "", 16, 0 }, - { "chan_tch_f_tch_h_pdch:used", "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 }, - { "chan_tch_f_tch_h_pdch:total", "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 }, - { "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator", "s", 16, GSM_T3122_DEFAULT }, - { "rach_busy", "RACH slots with signal above threshold", "%", 16, 0 }, - { "rach_access", "RACH slots with access bursts in them", "%", 16, 0 }, - { "oml_connected", "Number of OML links connected", "", 16, 0 }, - { "rsl_connected", "Number of RSL links connected", "", 16, 0 }, - { "lchan_borken", "Number of lchans in the BORKEN state", "", 16, 0 }, - { "ts_borken", "Number of timeslots in the BORKEN state", "", 16, 0 }, + [BTS_STAT_CHAN_LOAD_AVERAGE] = { "chanloadavg", "Channel load average", "%", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_USED] = { "chan_ccch_sdcch4:used", + "Number of CCCH+SDCCH4 channels used", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL] = { "chan_ccch_sdcch4:total", + "Number of CCCH+SDCCH4 channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_USED] = { "chan_tch_f:used", + "Number of TCH/F channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TOTAL] = { "chan_tch_f:total", + "Number of TCH/F channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_H_USED] = { "chan_tch_h:used", + "Number of TCH/H channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_H_TOTAL] = { "chan_tch_h:total", + "Number of TCH/H channels total", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_USED] = { "chan_sdcch8:used", + "Number of SDCCH8 channels used", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_TOTAL] = { "chan_sdcch8:total", + "Number of SDCCH8 channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_PDCH_USED] = { "chan_tch_f_pdch:used", + "Number of TCH/F_PDCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_PDCH_TOTAL] = { "chan_tch_f_pdch:total", + "Number of TCH/F_PDCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED] = { "chan_ccch_sdcch4_cbch:used", + "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL] = { "chan_ccch_sdcch4_cbch:total", + "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_CBCH_USED] = { "chan_sdcch8_cbch:used", + "Number of SDCCH8+CBCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL] = { "chan_sdcch8_cbch:total", + "Number of SDCCH8+CBCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED] = { "chan_tch_f_tch_h_pdch:used", + "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL] = { "chan_tch_f_tch_h_pdch:total", + "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 }, + [BTS_STAT_T3122] = { "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator", + "s", 16, GSM_T3122_DEFAULT }, + [BTS_STAT_RACH_BUSY] = { "rach_busy", + "RACH slots with signal above threshold", "%", 16, 0 }, + [BTS_STAT_RACH_ACCESS] = { "rach_access", + "RACH slots with access bursts in them", "%", 16, 0 }, + [BTS_STAT_OML_CONNECTED] = { "oml_connected", "Number of OML links connected", "", 16, 0 }, + [BTS_STAT_RSL_CONNECTED] = { "rsl_connected", "Number of RSL links connected", "", 16, 0 }, + [BTS_STAT_LCHAN_BORKEN] = { "lchan_borken", + "Number of lchans in the BORKEN state", "", 16, 0 }, + [BTS_STAT_TS_BORKEN] = { "ts_borken", + "Number of timeslots in the BORKEN state", "", 16, 0 }, }; static const struct osmo_stat_item_group_desc bts_statg_desc = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic29f3a7e6fb16955bc74cc163d45a243b373183a Gerrit-Change-Number: 18718 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 13:33:34 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 8 Jun 2020 13:33:34 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18719 ) Change subject: abis_rsl: Count successful channel requests ...................................................................... abis_rsl: Count successful channel requests Ticket: SYS#4877 Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c 2 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/19/18719/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 1e7e88f..c4e3a46 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1384,6 +1384,7 @@ enum bts_counter_id { BTS_CTR_CHREQ_TOTAL, + BTS_CTR_CHREQ_SUCCESSFUL, BTS_CTR_CHREQ_NO_CHANNEL, BTS_CTR_CHAN_RF_FAIL, BTS_CTR_CHAN_RLL_ERR, @@ -1430,6 +1431,7 @@ static const struct rate_ctr_desc bts_ctr_description[] = { [BTS_CTR_CHREQ_TOTAL] = {"chreq:total", "Received channel requests."}, + [BTS_CTR_CHREQ_SUCCESSFUL] = {"chreq:successful", "Successful channel requests."}, [BTS_CTR_CHREQ_NO_CHANNEL] = {"chreq:no_channel", "Sent to MS no channel available."}, [BTS_CTR_CHAN_RF_FAIL] = {"chan:rf_fail", "Received a RF failure indication from BTS."}, [BTS_CTR_CHAN_RLL_ERR] = {"chan:rll_err", "Received a RLL failure with T200 cause from BTS."}, diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 4a1d314..705e759 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1428,6 +1428,7 @@ int rsl_tx_imm_assignment(struct gsm_lchan *lchan) { + int rc; struct gsm_bts *bts = lchan->ts->trx->bts; uint8_t buf[GSM_MACBLOCK_LEN]; struct gsm48_imm_ass *ia = (struct gsm48_imm_ass *) buf; @@ -1453,7 +1454,12 @@ ia->l2_plen = GSM48_LEN2PLEN((sizeof(*ia)-1) + ia->mob_alloc_len); /* send IMMEDIATE ASSIGN CMD on RSL to BTS (to send on CCCH to MS) */ - return rsl_imm_assign_cmd(bts, sizeof(*ia)+ia->mob_alloc_len, (uint8_t *) ia); + rc = rsl_imm_assign_cmd(bts, sizeof(*ia)+ia->mob_alloc_len, (uint8_t *) ia); + + if (!rc) + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_SUCCESSFUL]); + + return rc; } /* current load on the CCCH */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 13:33:35 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 8 Jun 2020 13:33:35 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18720 ) Change subject: Count assignment rates per BTS as well ...................................................................... Count assignment rates per BTS as well This adds the assignment counters for the BTS as well and changes the assignment_count() macro to increase both the counters for the BSC as well as the BTS. Related: SYS#4877 Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/gsm_04_08_rr.c 3 files changed, 30 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/20/18720/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index c4e3a46..9fed4ea 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1427,6 +1427,13 @@ BTS_CTR_TS_BORKEN_EV_PDCH_ACT_ACK_NACK, BTS_CTR_TS_BORKEN_EV_PDCH_DEACT_ACK_NACK, BTS_CTR_TS_BORKEN_EV_TEARDOWN, + BTS_CTR_ASSIGNMENT_ATTEMPTED, + BTS_CTR_ASSIGNMENT_COMPLETED, + BTS_CTR_ASSIGNMENT_STOPPED, + BTS_CTR_ASSIGNMENT_NO_CHANNEL, + BTS_CTR_ASSIGNMENT_TIMEOUT, + BTS_CTR_ASSIGNMENT_FAILED, + BTS_CTR_ASSIGNMENT_ERROR, }; static const struct rate_ctr_desc bts_ctr_description[] = { @@ -1477,6 +1484,13 @@ [BTS_CTR_TS_BORKEN_EV_PDCH_ACT_ACK_NACK] = {"ts_borken:event:pdch_act_ack_nack", "PDCH_ACT_ACK/NACK received in the TS BORKEN state"}, [BTS_CTR_TS_BORKEN_EV_PDCH_DEACT_ACK_NACK] = {"ts_borken:event:pdch_deact_ack_nack", "PDCH_DEACT_ACK/NACK received in the TS BORKEN state"}, [BTS_CTR_TS_BORKEN_EV_TEARDOWN] = {"ts_borken:event:teardown", "TS in a BORKEN state is shutting down (BTS disconnected?)"}, + [BTS_CTR_ASSIGNMENT_ATTEMPTED] = {"assignment:attempted", "Assignment attempts."}, + [BTS_CTR_ASSIGNMENT_COMPLETED] = {"assignment:completed", "Assignment completed."}, + [BTS_CTR_ASSIGNMENT_STOPPED] = {"assignment:stopped", "Connection ended during Assignment."}, + [BTS_CTR_ASSIGNMENT_NO_CHANNEL] = {"assignment:no_channel", "Failure to allocate lchan for Assignment."}, + [BTS_CTR_ASSIGNMENT_TIMEOUT] = {"assignment:timeout", "Assignment timed out."}, + [BTS_CTR_ASSIGNMENT_FAILED] = {"assignment:failed", "Received Assignment Failure message."}, + [BTS_CTR_ASSIGNMENT_ERROR] = {"assignment:error", "Assignment failed for other reason."}, }; static const struct rate_ctr_group_desc bts_ctrg_desc = { diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 674dcbc..94dd359 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -69,16 +69,18 @@ _conn->assignment.failure_cause = cause; \ LOG_ASSIGNMENT(_conn, LOGL_ERROR, "Assignment failed in state %s, cause %s: " fmt "\n", \ osmo_fsm_inst_state_name(fi), gsm0808_cause_name(cause), ## args); \ - assignment_count_result(BSC_CTR_ASSIGNMENT_ERROR); \ + assignment_count_result(CTR_ASSIGNMENT_ERROR); \ on_assignment_failure(_conn); \ } while(0) /* Assume presence of local var 'conn' as struct gsm_subscriber_connection */ #define assignment_count(counter) do { \ + struct gsm_bts *bts = conn_get_bts(conn); \ LOG_ASSIGNMENT(conn, LOGL_DEBUG, "incrementing rate counter: %s %s\n", \ - bsc_ctr_description[counter].name, \ - bsc_ctr_description[counter].description); \ - rate_ctr_inc(&conn->network->bsc_ctrs->ctr[counter]); \ + bsc_ctr_description[BSC_##counter].name, \ + bsc_ctr_description[BSC_##counter].description); \ + rate_ctr_inc(&conn->network->bsc_ctrs->ctr[BSC_##counter]); \ + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_##counter]); \ } while(0) #define assignment_count_result(counter) do { \ @@ -88,8 +90,8 @@ } else \ LOG_ASSIGNMENT(conn, LOGL_DEBUG, \ "result rate counter already recorded, NOT counting as: %s %s\n", \ - bsc_ctr_description[counter].name, \ - bsc_ctr_description[counter].description); \ + bsc_ctr_description[BSC_##counter].name, \ + bsc_ctr_description[BSC_##counter].description); \ } while(0) void assignment_reset(struct gsm_subscriber_connection *conn) @@ -250,7 +252,7 @@ LOG_ASSIGNMENT(conn, LOGL_DEBUG, "Assignment successful\n"); osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); - assignment_count_result(BSC_CTR_ASSIGNMENT_COMPLETED); + assignment_count_result(CTR_ASSIGNMENT_COMPLETED); } static void assignment_fsm_update_id(struct gsm_subscriber_connection *conn) @@ -426,7 +428,7 @@ OSMO_ASSERT(!conn->assignment.fi); OSMO_ASSERT(!conn->assignment.new_lchan); - assignment_count(BSC_CTR_ASSIGNMENT_ATTEMPTED); + assignment_count(CTR_ASSIGNMENT_ATTEMPTED); fi = osmo_fsm_inst_alloc_child(&assignment_fsm, conn->fi, GSCON_EV_ASSIGNMENT_END); OSMO_ASSERT(fi); @@ -456,7 +458,7 @@ /* If something went wrong during send_assignment_complete(), the fi will be gone from * error handling in there. */ if (conn->assignment.fi) { - assignment_count_result(BSC_CTR_ASSIGNMENT_COMPLETED); + assignment_count_result(CTR_ASSIGNMENT_COMPLETED); osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); } return; @@ -474,7 +476,7 @@ /* Check whether the lchan allocation was successful or not and tear * down the assignment in case of failure. */ if (!conn->assignment.new_lchan) { - assignment_count_result(BSC_CTR_ASSIGNMENT_NO_CHANNEL); + assignment_count_result(CTR_ASSIGNMENT_NO_CHANNEL); assignment_fail(GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, "BSSMAP Assignment Command:" " No lchan available for: pref=%s:%s / alt1=%s:%s / alt2=%s:%s\n", @@ -565,7 +567,7 @@ return; case ASSIGNMENT_EV_RR_ASSIGNMENT_FAIL: - assignment_count_result(BSC_CTR_ASSIGNMENT_FAILED); + assignment_count_result(CTR_ASSIGNMENT_FAILED); assignment_fail(get_cause(data), "Rx RR Assignment Failure"); return; @@ -733,7 +735,7 @@ switch (event) { case ASSIGNMENT_EV_CONN_RELEASING: - assignment_count_result(BSC_CTR_ASSIGNMENT_STOPPED); + assignment_count_result(CTR_ASSIGNMENT_STOPPED); osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REQUEST, 0); return; @@ -753,7 +755,7 @@ int assignment_fsm_timer_cb(struct osmo_fsm_inst *fi) { struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); - assignment_count_result(BSC_CTR_ASSIGNMENT_TIMEOUT); + assignment_count_result(CTR_ASSIGNMENT_TIMEOUT); assignment_fail(GSM0808_CAUSE_EQUIPMENT_FAILURE, "Timeout"); return 0; } diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 4e5a307..d429b05 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -554,6 +554,7 @@ /* Chapter 9.1.2: Assignment Command */ int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_command) { + struct gsm_bts *bts = dest_lchan->ts->trx->bts; struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ASS CMD"); struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); struct gsm48_ass_cmd *ass = -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 13:35:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 13:35:27 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18694/2/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/18694/2/src/gsm/gsm0808.c at 519 PS2, Line 519: #ifndef OSMO_IS_LITTLE_ENDIAN I think it's interesting enough to explain here why this is needed (because spec is weird here and asks for XYZ. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 13:35: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 Mon Jun 8 13:36:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 13:36:54 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Use designated initializer in bts_stat_desc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18718 ) Change subject: osmo-bsc: Use designated initializer in bts_stat_desc ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic29f3a7e6fb16955bc74cc163d45a243b373183a Gerrit-Change-Number: 18718 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 08 Jun 2020 13:36:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 13:37:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 13:37:40 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18719 ) Change subject: abis_rsl: Count successful channel requests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 08 Jun 2020 13:37: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 Jun 8 14:03:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 14:03:14 +0000 Subject: Change in osmo-trx[master]: Transceiver: Implement TRXC cmd NOMTXPOWER In-Reply-To: References: Message-ID: Hello roh, laforge, Jenkins Builder, Hoernchen, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-trx/+/18586 to look at the new patch set (#2). Change subject: Transceiver: Implement TRXC cmd NOMTXPOWER ...................................................................... Transceiver: Implement TRXC cmd NOMTXPOWER It allows the BTS to retrieve the nominal transmit output power value of each TRX in order to compute attenuation later on and apply it through SETPOWER or ADJPOWER TRXC commands. Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c --- M Transceiver52M/Transceiver.cpp M Transceiver52M/device/common/radioDevice.h M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h M Transceiver52M/radioInterface.cpp M Transceiver52M/radioInterface.h 10 files changed, 50 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/86/18586/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Gerrit-Change-Number: 18586 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 14:03:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 14:03:15 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... UHDDevice: Implement getNominalTxPower() based on TxFrequency The table with nominal UHD Tx Gains and real transmit power is filled with values measured experimentally. More information can be found in OS#4583. Related: OS#4583 Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb --- M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 2 files changed, 86 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/21/18721/1 diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 2970173..1897b87 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -33,6 +33,10 @@ #include "config.h" #endif +extern "C" { +#include +} + #ifdef USE_UHD_3_11 #include #include @@ -123,6 +127,22 @@ { std::make_tuple(B2XX_MCBTS, 4, 4), { 1, 51.2e6, MCBTS_SPACING*4, B2XX_TIMING_MCBTS, "B200/B210 4 SPS Multi-ARFCN" } }, }; +typedef std::tuple dev_band_key; +/* Maximum UHD Tx Gain which can be set/used without distorting the + output signal, and the resulting real output power measured when that + gain is used. Correct measured values only provided for B210 so far. */ +struct dev_band_desc { + double nom_uhd_tx_gain; /* dB */ + double nom_out_tx_power; /* dBm */ +}; +typedef std::map::const_iterator dev_band_map_it; +static const std::map dev_band_nom_power_param_map { + { std::make_tuple(B210, GSM_BAND_850), { 89.75, 13.3 } }, + { std::make_tuple(B210, GSM_BAND_900), { 89.75, 13.3 } }, + { std::make_tuple(B210, GSM_BAND_1800), { 89.75, 7.5 } }, + { std::make_tuple(B210, GSM_BAND_1900), { 89.75, 7.7 } }, +}; + void *async_event_loop(uhd_device *dev) { set_selfthread_name("UHDAsyncEvent"); @@ -195,7 +215,7 @@ : RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), tx_gain_min(0.0), tx_gain_max(0.0), rx_gain_min(0.0), rx_gain_max(0.0), - tx_spp(0), rx_spp(0), + band((enum gsm_band)0), tx_spp(0), rx_spp(0), started(false), aligned(false), drop_cnt(0), prev_ts(0,0), ts_initial(0), ts_offset(0), async_event_thrd(NULL) { @@ -209,6 +229,27 @@ delete rx_buffers[i]; } +void uhd_device::get_dev_band_desc(dev_band_desc& desc) +{ + dev_band_map_it it; + enum gsm_band req_band = band; + + if (req_band == 0) { + LOGC(DDEV, WARNING) << "Nominal Tx Power requested before Tx Frequency was set! Providing band 900 by default... "; + req_band = GSM_BAND_900; + } + it = dev_band_nom_power_param_map.find(dev_band_key(dev_type, req_band)); + if (it == dev_band_nom_power_param_map.end()) { + dev_desc desc = dev_param_map.at(dev_key(dev_type, tx_sps, rx_sps)); + LOGC(DDEV, WARNING) << "No Tx Power measurements exist for device " + << desc.str << " on band " << gsm_band_name(req_band) + << ", using B210 ones as fallback"; + it = dev_band_nom_power_param_map.find(dev_band_key(B210, req_band)); + } + OSMO_ASSERT(it != dev_band_nom_power_param_map.end()) + desc = it->second; +} + void uhd_device::init_gains() { uhd::gain_range_t range; @@ -343,10 +384,10 @@ int uhd_device::getNominalTxPower(size_t chan) { - /* TODO: return value based on some experimentally generated table depending on - * band/arfcn, which is known here thanks to TXTUNE - */ - return 23; + dev_band_desc desc; + get_dev_band_desc(desc); + + return desc.nom_out_tx_power; } /* @@ -960,13 +1001,44 @@ bool uhd_device::setTxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + dev_band_desc desc; + if (chan >= tx_freqs.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; return false; } ScopedLock lock(tune_lock); - return set_freq(wFreq, chan, true); + req_arfcn = gsm_freq102arfcn(wFreq / 1000 / 100 , 0); + if (req_arfcn == 0xffff) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown ARFCN for Tx Frequency " << wFreq / 1000 << " kHz"; + return false; + } + if (gsm_arfcn2band_rc(req_arfcn, &req_band) < 0) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown GSM band for Tx Frequency " << wFreq + << " Hz (ARFCN " << req_arfcn << " )"; + return false; + } + + if (band != 0 && req_band != band) { + LOGCHAN(chan, DDEV, ALERT) << "Requesting Tx Frequency " << wFreq + << " Hz different from previous band " << gsm_band_name(band); + return false; + } + + if (!set_freq(wFreq, chan, true)) + return false; + + band = req_band; + + /* Update Max Tx Gain */ + get_dev_band_desc(desc); + tx_gain_max = desc.nom_uhd_tx_gain; + LOGCHAN(chan, DDEV, INFO) << "Updating max Gain to " << tx_gain_max + << " dB based on GSM band information"; + return true; } bool uhd_device::setRxFreq(double wFreq, size_t chan) diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 01d71a0..8a2d592 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -37,6 +37,10 @@ #include #include +extern "C" { +#include +} + enum uhd_dev_type { USRP1, @@ -52,6 +56,8 @@ LIMESDR, }; +struct dev_band_desc; + /* uhd_device - UHD implementation of the Device interface. Timestamped samples are sent to and received from the device. An intermediate buffer @@ -143,6 +149,7 @@ std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; + enum gsm_band band; size_t tx_spp, rx_spp; bool started; @@ -171,6 +178,7 @@ uhd::tune_request_t select_freq(double wFreq, size_t chan, bool tx); bool set_freq(double freq, size_t chan, bool tx); + void get_dev_band_desc(dev_band_desc& desc); Thread *async_event_thrd; Mutex tune_lock; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 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 Jun 8 14:03:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 14:03:16 +0000 Subject: Change in osmo-trx[master]: radioInterface: Operate on real Tx power attenuation rather than on d... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18722 ) Change subject: radioInterface: Operate on real Tx power attenuation rather than on device specific gains ...................................................................... radioInterface: Operate on real Tx power attenuation rather than on device specific gains All the Tx gain related APIs are left out of reach from radioInterface, and in there we simply interact with radioDevice passing the attenuation received from TRXC. Prior gain logic is moved in base radiodevice class, with the idea that the setTxGain() and related functions will be dropped over time in each sublcass in favour of an specific implementation of the SetPowerAttenuation API. While changing the logic, this commit is also fixing a wrong calculation of digital Attenuation in RadioInterface::setPowerAttenuation(). Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 --- M Transceiver52M/device/common/radioDevice.h M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.h M Transceiver52M/device/usrp1/USRPDevice.h M Transceiver52M/radioInterface.cpp M Transceiver52M/radioInterface.h M Transceiver52M/radioInterfaceMulti.cpp 7 files changed, 59 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/22/18722/1 diff --git a/Transceiver52M/device/common/radioDevice.h b/Transceiver52M/device/common/radioDevice.h index 8dd8f49..e51527d 100644 --- a/Transceiver52M/device/common/radioDevice.h +++ b/Transceiver52M/device/common/radioDevice.h @@ -125,21 +125,9 @@ /** return minimum Rx Gain **/ virtual double minRxGain(void) = 0; - /** sets the transmit chan gain, returns the gain setting **/ - virtual double setTxGain(double dB, size_t chan = 0) = 0; - /** returns the Nominal transmit output power of the transceiver in dBm, negative on error **/ virtual int getNominalTxPower(size_t chan = 0) = 0; - /** get transmit gain */ - virtual double getTxGain(size_t chan = 0) = 0; - - /** return maximum Tx Gain **/ - virtual double maxTxGain(void) = 0; - - /** return minimum Tx Gain **/ - virtual double minTxGain(void) = 0; - /** sets the RX path to use, returns true if successful and false otherwise */ virtual bool setRxAntenna(const std::string &ant, size_t chan = 0) = 0; @@ -163,6 +151,18 @@ virtual double getRxFreq(size_t chan = 0) = 0; virtual double getSampleRate()=0; + /* Default backward-compatible implementation based on TxGain APIs. New + implementations should be based on getNominalTxPower() once implemented for + the specific backend. */ + virtual double setPowerAttenuation(int atten, size_t chan) { + double rfGain; + rfGain = setTxGain(maxTxGain() - atten, chan); + return maxTxGain() - rfGain; + } + virtual double getPowerAttenuation(size_t chan=0) { + return maxTxGain() - getTxGain(chan); + } + protected: size_t tx_sps, rx_sps; InterfaceType iface; @@ -171,6 +171,15 @@ std::vector tx_paths, rx_paths; std::vector m_ctr; + /** sets the transmit chan gain, returns the gain setting **/ + virtual double setTxGain(double dB, size_t chan = 0) = 0; + + /** get transmit gain */ + virtual double getTxGain(size_t chan = 0) = 0; + + /** return maximum Tx Gain **/ + virtual double maxTxGain(void) = 0; + RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chan_num, double offset, const std::vector& tx_paths, const std::vector& rx_paths): diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 78fd62a..c83fed2 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -77,6 +77,19 @@ void update_stream_stats_rx(size_t chan, bool *overrun); void update_stream_stats_tx(size_t chan, bool *underrun); bool do_clock_src_freq(enum ReferenceType ref, double freq); + /** sets the transmit chan gain, returns the gain setting **/ + double setTxGain(double dB, size_t chan = 0); + + /** get transmit gain */ + double getTxGain(size_t chan = 0) { + return tx_gains[chan]; + } + + /** return maximum Tx Gain **/ + double maxTxGain(void); + + /** return minimum Rx Gain **/ + double minTxGain(void); public: @@ -165,20 +178,6 @@ /** return minimum Rx Gain **/ double minRxGain(void); - /** sets the transmit chan gain, returns the gain setting **/ - double setTxGain(double dB, size_t chan = 0); - - /** get transmit gain */ - double getTxGain(size_t chan = 0) { - return tx_gains[chan]; - } - - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); - int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 8a2d592..d87caf2 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -101,11 +101,6 @@ double maxRxGain(void) { return rx_gain_max; } double minRxGain(void) { return rx_gain_min; } - double setTxGain(double db, size_t chan); - double getTxGain(size_t chan = 0); - double maxTxGain(void) { return tx_gain_max; } - double minTxGain(void) { return tx_gain_min; } - int getNominalTxPower(size_t chan = 0); double getTxFreq(size_t chan); @@ -136,6 +131,11 @@ }; private: + double setTxGain(double db, size_t chan); + double getTxGain(size_t chan = 0); + double maxTxGain(void) { return tx_gain_max; } + double minTxGain(void) { return tx_gain_min; } + uhd::usrp::multi_usrp::sptr usrp_dev; uhd::tx_streamer::sptr tx_stream; uhd::rx_streamer::sptr rx_stream; diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index 0549192..1c1b3be 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -85,6 +85,18 @@ int writeSamplesControl(std::vector &bufs, int len, bool *underrun, TIMESTAMP timestamp = 0xffffffff, bool isControl = false); + /** sets the transmit chan gain, returns the gain setting **/ + double setTxGain(double dB, size_t chan = 0); + + /** get transmit gain */ + double getTxGain(size_t chan = 0) { return txGain; } + + /** return maximum Tx Gain **/ + double maxTxGain(void); + + /** return minimum Rx Gain **/ + double minTxGain(void); + #ifdef SWLOOPBACK short loopbackBuffer[1000000]; int loopbackBufferSize; @@ -168,18 +180,6 @@ /** return minimum Rx Gain **/ double minRxGain(void); - /** sets the transmit chan gain, returns the gain setting **/ - double setTxGain(double dB, size_t chan = 0); - - /** get transmit gain */ - double getTxGain(size_t chan = 0) { return txGain; } - - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); - int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp index fb724d2..adc2ee7 100644 --- a/Transceiver52M/radioInterface.cpp +++ b/Transceiver52M/radioInterface.cpp @@ -103,7 +103,7 @@ int RadioInterface::setPowerAttenuation(int atten, size_t chan) { - double rfGain, digAtten; + double rfAtten, digAtten; if (chan >= mChans) { LOG(ALERT) << "Invalid channel requested"; @@ -113,8 +113,8 @@ if (atten < 0.0) atten = 0.0; - rfGain = setTxGain(mDevice->maxTxGain() - (double) atten, chan); - digAtten = (double) atten - mDevice->maxTxGain() + rfGain; + rfAtten = mDevice->setPowerAttenuation((double) atten, chan); + digAtten = (double) atten - rfAtten; if (digAtten < 1.0) powerScaling[chan] = 1.0; @@ -318,11 +318,6 @@ return mDevice->setRxGain(dB, chan); } -double RadioInterface::setTxGain(double dB, size_t chan) -{ - return mDevice->setTxGain(dB, chan); -} - /* Receive a timestamped chunk from the device */ int RadioInterface::pullBuffer() { diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h index eb7ed3b..8e5f4c1 100644 --- a/Transceiver52M/radioInterface.h +++ b/Transceiver52M/radioInterface.h @@ -116,7 +116,8 @@ /** drive reception of GSM bursts. -1: Error. 0: Radio off. 1: Received something. */ int driveReceiveRadio(); - int setPowerAttenuation(int atten, size_t chan = 0); + /** set transmit power attenuation */ + virtual int setPowerAttenuation(int atten, size_t chan = 0); int getNominalTxPower(size_t chan = 0); /** returns the full-scale transmit amplitude **/ @@ -135,9 +136,6 @@ /** drive synchronization of Tx/Rx of USRP */ void alignRadio(); - /** set transmit gain */ - virtual double setTxGain(double dB, size_t chan = 0); - friend void *AlignRadioServiceLoopAdapter(RadioInterface*); }; @@ -167,7 +165,7 @@ bool pushBuffer(); int pullBuffer(); bool verify_arfcn_consistency(double freq, size_t chan, bool tx); - virtual double setTxGain(double dB, size_t chan); + virtual int setPowerAttenuation(int atten, size_t chan = 0); signalVector *outerSendBuffer; signalVector *outerRecvBuffer; diff --git a/Transceiver52M/radioInterfaceMulti.cpp b/Transceiver52M/radioInterfaceMulti.cpp index a0c24b5..29f85ca 100644 --- a/Transceiver52M/radioInterfaceMulti.cpp +++ b/Transceiver52M/radioInterfaceMulti.cpp @@ -437,11 +437,8 @@ return mDevice->getRxGain(); } -double RadioInterfaceMulti::setTxGain(double dB, size_t chan) +int RadioInterfaceMulti::setPowerAttenuation(int atten, size_t chan) { - if (chan == 0) - return mDevice->setTxGain(dB); - else - return mDevice->getTxGain(); + return RadioInterface::setPowerAttenuation(atten, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 Gerrit-Change-Number: 18722 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 Jun 8 14:03:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 14:03:16 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... UHDDevice: Compute TxGain on UHD API based on expected Tx output power Right now, according to a few measurements taken on B210, we expect the Tx Gain at UHD level to relate 1:1 with the slope in Tx output power given a specific band. If more fine-grained results are wanted or some device doesn't follow a 1:1 slope relationship, functions TxGain2TxPower and TxPower2TxGain need to be adapted/improved. Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 --- M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 2 files changed, 58 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/23/18723/1 diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 1897b87..d38ed21 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -208,12 +208,23 @@ } #endif +/* So far measurements done for B210 show really close to linear relationship + * between gain and real output power, so we simply adjust the measured offset + */ +static double TxGain2TxPower(dev_band_desc& desc, double tx_gain_db) +{ + return desc.nom_out_tx_power - (desc.nom_uhd_tx_gain - tx_gain_db); +} +static double TxPower2TxGain(dev_band_desc& desc, double tx_power_dbm) +{ + return desc.nom_uhd_tx_gain - (desc.nom_out_tx_power - tx_power_dbm); +} + uhd_device::uhd_device(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chan_num, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) : RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), - tx_gain_min(0.0), tx_gain_max(0.0), rx_gain_min(0.0), rx_gain_max(0.0), band((enum gsm_band)0), tx_spp(0), rx_spp(0), started(false), aligned(false), drop_cnt(0), @@ -252,6 +263,7 @@ void uhd_device::init_gains() { + double tx_gain_min, tx_gain_max; uhd::gain_range_t range; if (dev_type == UMTRX) { @@ -316,37 +328,6 @@ LOGC(DDEV, INFO) << "Rates configured for " << desc.str; } -double uhd_device::setTxGain(double db, size_t chan) -{ - if (chan >= tx_gains.size()) { - LOGC(DDEV, ALERT) << "Requested non-existent channel" << chan; - return 0.0f; - } - - if (dev_type == UMTRX) { - std::vector gain_stages = usrp_dev->get_tx_gain_names(0); - if (gain_stages[0] == "VGA" || gain_stages[0] == "PA") { - usrp_dev->set_tx_gain(db, chan); - } else { - // New UHD versions support split configuration of - // Tx gain stages. We utilize this to set the gain - // configuration, optimal for the Tx signal quality. - // From our measurements, VGA1 must be 18dB plus-minus - // one and VGA2 is the best when 23dB or lower. - usrp_dev->set_tx_gain(UMTRX_VGA1_DEF, "VGA1", chan); - usrp_dev->set_tx_gain(db-UMTRX_VGA1_DEF, "VGA2", chan); - } - } else { - usrp_dev->set_tx_gain(db, chan); - } - - tx_gains[chan] = usrp_dev->get_tx_gain(chan); - - LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)"; - - return tx_gains[chan]; -} - double uhd_device::setRxGain(double db, size_t chan) { if (chan >= rx_gains.size()) { @@ -372,14 +353,50 @@ return rx_gains[chan]; } -double uhd_device::getTxGain(size_t chan) -{ +double uhd_device::setPowerAttenuation(int atten, size_t chan) { + double db; + dev_band_desc desc; + + if (chan >= tx_gains.size()) { + LOGC(DDEV, ALERT) << "Requested non-existent channel" << chan; + return 0.0f; + } + + get_dev_band_desc(desc); + db = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + + if (dev_type == UMTRX) { + std::vector gain_stages = usrp_dev->get_tx_gain_names(0); + if (gain_stages[0] == "VGA" || gain_stages[0] == "PA") { + usrp_dev->set_tx_gain(db, chan); + } else { + // New UHD versions support split configuration of + // Tx gain stages. We utilize this to set the gain + // configuration, optimal for the Tx signal quality. + // From our measurements, VGA1 must be 18dB plus-minus + // one and VGA2 is the best when 23dB or lower. + usrp_dev->set_tx_gain(UMTRX_VGA1_DEF, "VGA1", chan); + usrp_dev->set_tx_gain(db-UMTRX_VGA1_DEF, "VGA2", chan); + } + } else { + usrp_dev->set_tx_gain(db, chan); + } + + tx_gains[chan] = usrp_dev->get_tx_gain(chan); + + LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)"; + + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); +} +double uhd_device::getPowerAttenuation(size_t chan) { + dev_band_desc desc; if (chan >= tx_gains.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; return 0.0f; } - return tx_gains[chan]; + get_dev_band_desc(desc); + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); } int uhd_device::getNominalTxPower(size_t chan) @@ -1003,7 +1020,6 @@ { uint16_t req_arfcn; enum gsm_band req_band; - dev_band_desc desc; if (chan >= tx_freqs.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; @@ -1032,12 +1048,6 @@ return false; band = req_band; - - /* Update Max Tx Gain */ - get_dev_band_desc(desc); - tx_gain_max = desc.nom_uhd_tx_gain; - LOGCHAN(chan, DDEV, INFO) << "Updating max Gain to " << tx_gain_max - << " dB based on GSM band information"; return true; } diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index d87caf2..2c428ca 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -101,6 +101,9 @@ double maxRxGain(void) { return rx_gain_max; } double minRxGain(void) { return rx_gain_min; } + double setPowerAttenuation(int atten, size_t chan); + double getPowerAttenuation(size_t chan = 0); + int getNominalTxPower(size_t chan = 0); double getTxFreq(size_t chan); @@ -131,10 +134,9 @@ }; private: - double setTxGain(double db, size_t chan); - double getTxGain(size_t chan = 0); - double maxTxGain(void) { return tx_gain_max; } - double minTxGain(void) { return tx_gain_min; } + double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } + double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; + double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; uhd::usrp::multi_usrp::sptr usrp_dev; uhd::tx_streamer::sptr tx_stream; @@ -144,7 +146,6 @@ double tx_rate, rx_rate; - double tx_gain_min, tx_gain_max; double rx_gain_min, rx_gain_max; std::vector tx_gains, rx_gains; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 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 Jun 8 14:24:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 14:24:46 +0000 Subject: Change in osmo-trx[master]: radioInterface: Operate on real Tx power attenuation rather than on d... In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-trx/+/18722 ) Change subject: radioInterface: Operate on real Tx power attenuation rather than on device specific gains ...................................................................... radioInterface: Operate on real Tx power attenuation rather than on device specific gains All the Tx gain related APIs are left out of reach from radioInterface, and in there we simply interact with radioDevice passing the attenuation received from TRXC. Prior gain logic is moved in base radiodevice class, with the idea that the setTxGain() and related functions will be dropped over time in each sublcass in favour of an specific implementation of the SetPowerAttenuation API. Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 --- M Transceiver52M/device/common/radioDevice.h M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.h M Transceiver52M/device/usrp1/USRPDevice.h M Transceiver52M/radioInterface.cpp M Transceiver52M/radioInterface.h M Transceiver52M/radioInterfaceMulti.cpp 7 files changed, 59 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/22/18722/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 Gerrit-Change-Number: 18722 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 Jun 8 14:24:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 14:24:46 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... UHDDevice: Compute TxGain on UHD API based on expected Tx output power Right now, according to a few measurements taken on B210, we expect the Tx Gain at UHD level to relate 1:1 with the slope in Tx output power given a specific band. If more fine-grained results are wanted or some device doesn't follow a 1:1 slope relationship, functions TxGain2TxPower and TxPower2TxGain need to be adapted/improved. Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 --- M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 2 files changed, 58 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/23/18723/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 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 Jun 8 14:34:12 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 8 Jun 2020 14:34:12 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well 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/+/18720 to look at the new patch set (#2). Change subject: Count assignment rates per BTS as well ...................................................................... Count assignment rates per BTS as well This adds the assignment counters for the BTS as well and changes the assignment_count() macro to increase both the counters for the BSC as well as the BTS. Related: SYS#4877 Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c 2 files changed, 30 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/20/18720/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 14:34:29 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 8 Jun 2020 14:34:29 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18694 to look at the new patch set (#3). Change subject: gsm0808: fix endieness of call identifier ...................................................................... gsm0808: fix endieness of call identifier The call identifier in the ASSIGNMENT COMMAND is encoded in the wrong endieness. 3GPP TS 48.008, section 3.2.2.105 specifies that the least significant byte should be transmitted first, which means that the endieness here is little endian. Lets make sure that the endieness is correctly transmitted, regardless of the host byte order. Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Related: OS#4582 --- M src/gsm/gsm0808.c 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/18694/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 14:56:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 14:56:06 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18720 ) Change subject: Count assignment rates per BTS as well ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18720/2/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/18720/2/include/osmocom/bsc/gsm_data.h at 1441 PS2, Line 1441: [BTS_CTR_CHREQ_SUCCESSFUL] = {"chreq:successful", "Successful channel requests (immediate assign sent)."}, That's for the previous patch, not for this one, right? https://gerrit.osmocom.org/c/osmo-bsc/+/18720/2/include/osmocom/bsc/gsm_data.h at 1487 PS2, Line 1487: [BTS_CTR_ASSIGNMENT_ATTEMPTED] = {"assignment:attempted", "Assignment attempts."}, Remove dot at the end -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 14:56: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 Mon Jun 8 15:08:33 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 8 Jun 2020 15:08:33 +0000 Subject: Change in osmo-msc[master]: msc_vty: remove emergency-call command from network References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18724 ) Change subject: msc_vty: remove emergency-call command from network ...................................................................... msc_vty: remove emergency-call command from network when the VTY write the config file ist prints the configuration line for emergency-call in network and in msc, however the presence of the configuration line in network leads to a parsing error on msc startup. The vty command probably got moved to node msc and it was forgotten to remove the printing from network. Change-Id: I4f3dac27723e7852f8f049fcfca5cccdc027734d Related: OS#4548 --- M src/libmsc/msc_vty.c 1 file changed, 0 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/18724/1 diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index a629b5c..a92609d 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -402,11 +402,6 @@ gsmnet->tz.hr, gsmnet->tz.mn, VTY_NEWLINE); } - if (gsmnet->emergency.route_to_msisdn) { - vty_out(vty, " emergency-call route-to-msisdn %s%s", - gsmnet->emergency.route_to_msisdn, VTY_NEWLINE); - } - if (!gsmnet->call_waiting) vty_out(vty, " no call-waiting%s", VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4f3dac27723e7852f8f049fcfca5cccdc027734d Gerrit-Change-Number: 18724 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 Jun 8 15:13:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 15:13:26 +0000 Subject: Change in osmo-msc[master]: msc_vty: remove emergency-call command from network In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18724 ) Change subject: msc_vty: remove emergency-call command from network ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4f3dac27723e7852f8f049fcfca5cccdc027734d Gerrit-Change-Number: 18724 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 08 Jun 2020 15:13:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 15:19:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 15:19:15 +0000 Subject: Change in osmo-bts[master]: oml.c: Fix whitespace in log line References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18725 ) Change subject: oml.c: Fix whitespace in log line ...................................................................... oml.c: Fix whitespace in log line Change-Id: I5e9b07303dda374e9196d7d4503ad652970ab6c5 --- M src/common/oml.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/18725/1 diff --git a/src/common/oml.c b/src/common/oml.c index 7e3b834..d7cc7bb 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1316,8 +1316,8 @@ } in.s_addr = htonl(ip); - LOGP(DOML, LOGL_INFO, "%s: Rx IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n", - trx_name, inet_ntoa(in), port, stream_id); + LOGP(DOML, LOGL_INFO, "%s: Rx IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n", + trx_name, inet_ntoa(in), port, stream_id); if (trx->bts->variant == BTS_OSMO_OMLDUMMY) { rc = 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5e9b07303dda374e9196d7d4503ad652970ab6c5 Gerrit-Change-Number: 18725 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 Jun 8 15:19:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 15:19:16 +0000 Subject: Change in osmo-bts[master]: oml.c: Log ADM STATE change locked/unlocked References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18726 ) Change subject: oml.c: Log ADM STATE change locked/unlocked ...................................................................... oml.c: Log ADM STATE change locked/unlocked Use same forma tuse for other OMl states, like OPER and AVAIL states. Change-Id: Icb176e2215841509bf15a6dfc163ceddcb602954 --- M src/common/oml.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/18726/1 diff --git a/src/common/oml.c b/src/common/oml.c index d7cc7bb..c2c1248 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1002,6 +1002,10 @@ if (mo->nm_state.administrative == adm_state) LOGPFOH(DOML, LOGL_NOTICE, foh, "ADM state already was %s\n", get_value_string(abis_nm_adm_state_names, adm_state)); + else + LOGPFOH(DOML, LOGL_NOTICE, foh, "ADM STATE %s -> %s\n", + get_value_string(abis_nm_adm_state_names, mo->nm_state.administrative), + get_value_string(abis_nm_adm_state_names, adm_state)); /* Step 3: Ask BTS driver to apply the state chg */ return bts_model_chg_adm_state(bts, mo, obj, adm_state); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb176e2215841509bf15a6dfc163ceddcb602954 Gerrit-Change-Number: 18726 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 8 16:52:15 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 16:52:15 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ede6cd557c92_642f2b139387c5e02034b1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1256s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1256s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1257s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1258s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1258s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1258s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1259s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1259s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1260s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1261s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1261s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1261s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1261s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1261s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1261s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1261s] ~~^ [ 1261s] %d [ 1261s] cc1: some warnings being treated as errors [ 1261s] ninja: build stopped: subcommand failed. [ 1261s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1261s] make: *** [debian/rules:11: binary] Error 1 [ 1261s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1261s] ### VM INTERACTION START ### [ 1264s] [ 1227.763703] sysrq: SysRq : Power Off [ 1264s] [ 1227.765741] reboot: Power down [ 1264s] ### VM INTERACTION END ### [ 1264s] [ 1264s] armbuild19 failed "build open5gs_1.2.5.20200608.dsc" at Mon Jun 8 16:52:08 UTC 2020. [ 1264s] -- 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 Jun 8 17:13:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 17:13:21 +0000 Subject: Change in osmocom-bb[master]: firmware: fix compilation with arm-none-eabi-gcc 10.1.0 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18727 ) Change subject: firmware: fix compilation with arm-none-eabi-gcc 10.1.0 ...................................................................... firmware: fix compilation with arm-none-eabi-gcc 10.1.0 These symbols are defined, but never used: - struct last_rach - seems to be copy-pasted from prim_rach.c, - tall_msgb_ctx - already defined in libosmocore. Change-Id: I6077c8e9b441f7848d1a4c25a8b5e1aed82f4b7d --- M src/target/firmware/comm/msgb.c M src/target/firmware/layer1/prim_freq.c 2 files changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/27/18727/1 diff --git a/src/target/firmware/comm/msgb.c b/src/target/firmware/comm/msgb.c index 3524ba5..08f5acb 100644 --- a/src/target/firmware/comm/msgb.c +++ b/src/target/firmware/comm/msgb.c @@ -32,8 +32,6 @@ #define NO_TALLOC -void *tall_msgb_ctx; - #ifdef NO_TALLOC /* This is a poor mans static allocator for msgb objects */ #define MSGB_DATA_SIZE 256+4 diff --git a/src/target/firmware/layer1/prim_freq.c b/src/target/firmware/layer1/prim_freq.c index 01f39d4..d5b5df1 100644 --- a/src/target/firmware/layer1/prim_freq.c +++ b/src/target/firmware/layer1/prim_freq.c @@ -49,11 +49,6 @@ #include -struct { - uint32_t fn; - uint16_t band_arfcn; -} last_rach; - /* if the "starting time" is reached, use frequencies "after time" */ static int l1s_freq_cmd(__unused uint8_t p1, __unused uint8_t p2, __unused uint16_t p3) { -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I6077c8e9b441f7848d1a4c25a8b5e1aed82f4b7d Gerrit-Change-Number: 18727 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 Jun 8 17:13:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 17:13:22 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: remove redundant l1a_*_req declarations References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18728 ) Change subject: firmware/layer1: remove redundant l1a_*_req declarations ...................................................................... firmware/layer1: remove redundant l1a_*_req declarations Both symbols are declared in 'layer1/prim.h'. Change-Id: I36f41870bd63c70259316204ee17071853257ca4 --- M src/target/firmware/include/layer1/async.h 1 file changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/28/18728/1 diff --git a/src/target/firmware/include/layer1/async.h b/src/target/firmware/include/layer1/async.h index de996a6..221ffcf 100644 --- a/src/target/firmware/include/layer1/async.h +++ b/src/target/firmware/include/layer1/async.h @@ -32,12 +32,6 @@ /* flush all pending msgb */ void l1a_txq_msgb_flush(struct llist_head *queue); -/* request a RACH */ -void l1a_rach_req(uint16_t offset, uint8_t combined, uint8_t ra); - -/* schedule frequency change */ -void l1a_freq_req(uint32_t fn_sched); - /* Enable a repeating multiframe task */ void l1a_mftask_enable(enum mframe_task task); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I36f41870bd63c70259316204ee17071853257ca4 Gerrit-Change-Number: 18728 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 8 18:03:34 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 08 Jun 2020 18:03:34 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ede7d86959d5_642f2b139387c5e0215851@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1216s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1217s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1218s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1218s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1218s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1219s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1219s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1220s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1220s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1221s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1221s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1221s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1221s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1221s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1221s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1221s] ~~^ [ 1221s] %d [ 1221s] cc1: some warnings being treated as errors [ 1221s] ninja: build stopped: subcommand failed. [ 1221s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1221s] make: *** [debian/rules:11: binary] Error 1 [ 1221s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1221s] ### VM INTERACTION START ### [ 1224s] [ 1188.667943] sysrq: SysRq : Power Off [ 1224s] [ 1188.670030] reboot: Power down [ 1224s] ### VM INTERACTION END ### [ 1224s] [ 1224s] armbuild19 failed "build open5gs_1.2.5.20200608.dsc" at Mon Jun 8 18:02:20 UTC 2020. [ 1224s] -- 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 Jun 8 18:41:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:41:12 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix trailing whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18729 ) Change subject: e1_input: Fix trailing whitespace ...................................................................... e1_input: Fix trailing whitespace Change-Id: I6046b694202da3de4c31a84836f67dc43fe77be9 --- M src/e1_input.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/29/18729/1 diff --git a/src/e1_input.c b/src/e1_input.c index b3341e7..3ab33b8 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -453,7 +453,7 @@ { int old_refcnt = line->refcnt++; - LOGPIL(line, DLINP, LOGL_DEBUG, "Line '%s' (%p) reference count get: %d -> %d\n", + LOGPIL(line, DLINP, LOGL_ERROR, "Line '%s' (%p) reference count get: %d -> %d\n", line->name, line, old_refcnt, line->refcnt); } @@ -461,7 +461,7 @@ { int old_refcnt = line->refcnt--; - LOGPIL(line, DLINP, LOGL_DEBUG, "Line '%s' (%p) reference count put: %d -> %d\n", + LOGPIL(line, DLINP, LOGL_ERROR, "Line '%s' (%p) reference count put: %d -> %d\n", line->name, line, old_refcnt, line->refcnt); if (line->refcnt == 0) { -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I6046b694202da3de4c31a84836f67dc43fe77be9 Gerrit-Change-Number: 18729 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 Jun 8 18:41:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:41:13 +0000 Subject: Change in libosmo-abis[master]: e1_input: refcount inc line during e1_sign_link_create, not during li... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18730 ) Change subject: e1_input: refcount inc line during e1_sign_link_create, not during line update ...................................................................... e1_input: refcount inc line during e1_sign_link_create, not during line update Increase reference count when a new sign_link using the line is created. Otherwise the line is freed too quickly during e1inp_sign_link_destroy() with several TRX being used, since each RSL link is missing a reference. That extra refcoutny in update() is not really needed given that we already have a link assigned on the line when we call update. Fixes: OS#3612 Fixes: OS#4094 Change-Id: I74405b0e87a89c17d58e87024f4aedbd30832013 --- M src/e1_input.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/30/18730/1 diff --git a/src/e1_input.c b/src/e1_input.c index 3ab33b8..38fa478 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -578,6 +578,8 @@ link->tei = tei; link->sapi = sapi; + e1inp_line_get(link->ts->line); + llist_add_tail(&link->list, &ts->sign.sign_links); return link; @@ -847,8 +849,6 @@ struct input_signal_data isd; int i, rc; - e1inp_line_get(line); - if (line->driver && line->ops && line->driver->line_update) { rc = line->driver->line_update(line); } else -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I74405b0e87a89c17d58e87024f4aedbd30832013 Gerrit-Change-Number: 18730 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 Jun 8 18:41:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:41:13 +0000 Subject: Change in libosmo-abis[master]: e1_input: Initialize list struct References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18731 ) Change subject: e1_input: Initialize list struct ...................................................................... e1_input: Initialize list struct Change-Id: I850fdc43d597267aa66c6975aca9c1753231ac65 --- M src/e1_input.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/31/18731/1 diff --git a/src/e1_input.c b/src/e1_input.c index 38fa478..d5d8430 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -410,6 +410,7 @@ line->ts[i].line = line; } line->refcnt++; + INIT_LLIST_HEAD(&line->list); llist_add_tail(&line->list, &e1inp_line_list); return line; @@ -573,6 +574,7 @@ link->ts = ts; link->type = type; + INIT_LLIST_HEAD(&link->list); INIT_LLIST_HEAD(&link->tx_list); link->trx = trx; link->tei = tei; -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I850fdc43d597267aa66c6975aca9c1753231ac65 Gerrit-Change-Number: 18731 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 Jun 8 18:46:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:46:14 +0000 Subject: Change in osmo-bts[master]: abis.c: Grab reference to e1inp_line_get if already created References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18732 ) Change subject: abis.c: Grab reference to e1inp_line_get if already created ...................................................................... abis.c: Grab reference to e1inp_line_get if already created Since we are returning the pointer, it should always be grabbing a reference (find doesn't do it). In practice it's not much important since it is always created and not found. Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 --- M src/common/abis.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/18732/1 diff --git a/src/common/abis.c b/src/common/abis.c index 44b8eff..c958070 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -280,8 +280,10 @@ bts_dev_info.location2 = model_name; line = e1inp_line_find(0); - if (!line) - line = e1inp_line_create(0, "ipa"); + if (line) + e1inp_line_get(line); /* We want a new reference for returned line*/ + else + line = e1inp_line_create(0, "ipa"); /* already comes with a reference */ if (!line) return NULL; e1inp_line_bind_ops(line, &line_ops); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 Gerrit-Change-Number: 18732 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 Jun 8 18:48:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 18:48:16 +0000 Subject: Change in osmo-sgsn[master]: Fix memory leak when SNDCP de-fragmentation is used References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 ) Change subject: Fix memory leak when SNDCP de-fragmentation is used ...................................................................... Fix memory leak when SNDCP de-fragmentation is used As msgb ownership is not passed along, we need to free the message buffer memory we allocate in defrag_segments() after calling sgsn_rx_sndcp_ud_ind(). Change-Id: I1185b1aa99bb167d616eb469e5445e4ed5ad949d Closes: OS#4603 --- M src/sgsn/gprs_sndcp.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/33/18733/1 diff --git a/src/sgsn/gprs_sndcp.c b/src/sgsn/gprs_sndcp.c index 01be57e..7ce6960 100644 --- a/src/sgsn/gprs_sndcp.c +++ b/src/sgsn/gprs_sndcp.c @@ -366,6 +366,10 @@ rc = sgsn_rx_sndcp_ud_ind(&sne->ra_id, sne->lle->llme->tlli, sne->nsapi, msg, npdu_len, expnd); + /* we must free the memory we allocated above; ownership is not transferred + * downwards in the call above */ + msgb_free(msg); + if (any_pcomp_or_dcomp_active(sgsn)) talloc_free(expnd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1185b1aa99bb167d616eb469e5445e4ed5ad949d Gerrit-Change-Number: 18733 Gerrit-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 Jun 8 18:50:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:50:03 +0000 Subject: Change in osmocom-bb[master]: firmware: fix compilation with arm-none-eabi-gcc 10.1.0 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18727 ) Change subject: firmware: fix compilation with arm-none-eabi-gcc 10.1.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I6077c8e9b441f7848d1a4c25a8b5e1aed82f4b7d Gerrit-Change-Number: 18727 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 18:50:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 18:50:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:50:19 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: remove redundant l1a_*_req declarations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18728 ) Change subject: firmware/layer1: remove redundant l1a_*_req declarations ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I36f41870bd63c70259316204ee17071853257ca4 Gerrit-Change-Number: 18728 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 18:50: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 Jun 8 18:51:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 18:51:34 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix trailing whitespace In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18729 ) Change subject: e1_input: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review-2 (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/18729/1/src/e1_input.c File src/e1_input.c: https://gerrit.osmocom.org/c/libosmo-abis/+/18729/1/src/e1_input.c at 456 PS1, Line 456: LOGPIL(line, DLINP, LOGL_ERROR, "Line '%s' (%p) reference count get: %d -> %d\n", You're changing logging levels, but the commit is about whitespace? Looks more like a debugging leftover. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I6046b694202da3de4c31a84836f67dc43fe77be9 Gerrit-Change-Number: 18729 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 08 Jun 2020 18:51: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 Jun 8 18:53:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:53:10 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18729 ) Change subject: e1_input: Fix trailing whitespace ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/18729/1/src/e1_input.c File src/e1_input.c: https://gerrit.osmocom.org/c/libosmo-abis/+/18729/1/src/e1_input.c at 456 PS1, Line 456: LOGPIL(line, DLINP, LOGL_ERROR, "Line '%s' (%p) reference count get: %d -> %d\n", > You're changing logging levels, but the commit is about whitespace? Looks more like a debugging left [?] Indeed sorry for that, too much mess with debugging in my head ;) I'll abandon this one. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I6046b694202da3de4c31a84836f67dc43fe77be9 Gerrit-Change-Number: 18729 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 18:53:10 +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 Jun 8 18:53:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 8 Jun 2020 18:53:42 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18729 ) Change subject: e1_input: Fix trailing whitespace ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I6046b694202da3de4c31a84836f67dc43fe77be9 Gerrit-Change-Number: 18729 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 18:53:46 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 18:53:46 +0000 Subject: Change in libosmo-abis[master]: e1_input: refcount inc line during e1_sign_link_create, not during li... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18730 ) Change subject: e1_input: refcount inc line during e1_sign_link_create, not during line update ...................................................................... Patch Set 1: Code-Review+1 I've been trying to fix this too, but gave up. Nice that you finally narrowed it down. Leaving CR+2 up to somebody who is more familiar with the code base. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I74405b0e87a89c17d58e87024f4aedbd30832013 Gerrit-Change-Number: 18730 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 08 Jun 2020 18:53: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 Jun 8 18:55:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 18:55:22 +0000 Subject: Change in osmocom-bb[master]: firmware: fix compilation with arm-none-eabi-gcc 10.1.0 In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18727 ) Change subject: firmware: fix compilation with arm-none-eabi-gcc 10.1.0 ...................................................................... firmware: fix compilation with arm-none-eabi-gcc 10.1.0 These symbols are defined, but never used: - struct last_rach - seems to be copy-pasted from prim_rach.c, - tall_msgb_ctx - already defined in libosmocore. Change-Id: I6077c8e9b441f7848d1a4c25a8b5e1aed82f4b7d --- M src/target/firmware/comm/msgb.c M src/target/firmware/layer1/prim_freq.c 2 files changed, 0 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/target/firmware/comm/msgb.c b/src/target/firmware/comm/msgb.c index 3524ba5..08f5acb 100644 --- a/src/target/firmware/comm/msgb.c +++ b/src/target/firmware/comm/msgb.c @@ -32,8 +32,6 @@ #define NO_TALLOC -void *tall_msgb_ctx; - #ifdef NO_TALLOC /* This is a poor mans static allocator for msgb objects */ #define MSGB_DATA_SIZE 256+4 diff --git a/src/target/firmware/layer1/prim_freq.c b/src/target/firmware/layer1/prim_freq.c index 01f39d4..d5b5df1 100644 --- a/src/target/firmware/layer1/prim_freq.c +++ b/src/target/firmware/layer1/prim_freq.c @@ -49,11 +49,6 @@ #include -struct { - uint32_t fn; - uint16_t band_arfcn; -} last_rach; - /* if the "starting time" is reached, use frequencies "after time" */ static int l1s_freq_cmd(__unused uint8_t p1, __unused uint8_t p2, __unused uint16_t p3) { -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I6077c8e9b441f7848d1a4c25a8b5e1aed82f4b7d Gerrit-Change-Number: 18727 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 18:55:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 18:55:22 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: remove redundant l1a_*_req declarations In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18728 ) Change subject: firmware/layer1: remove redundant l1a_*_req declarations ...................................................................... firmware/layer1: remove redundant l1a_*_req declarations Both symbols are declared in 'layer1/prim.h'. Change-Id: I36f41870bd63c70259316204ee17071853257ca4 --- M src/target/firmware/include/layer1/async.h 1 file changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/target/firmware/include/layer1/async.h b/src/target/firmware/include/layer1/async.h index de996a6..221ffcf 100644 --- a/src/target/firmware/include/layer1/async.h +++ b/src/target/firmware/include/layer1/async.h @@ -32,12 +32,6 @@ /* flush all pending msgb */ void l1a_txq_msgb_flush(struct llist_head *queue); -/* request a RACH */ -void l1a_rach_req(uint16_t offset, uint8_t combined, uint8_t ra); - -/* schedule frequency change */ -void l1a_freq_req(uint32_t fn_sched); - /* Enable a repeating multiframe task */ void l1a_mftask_enable(enum mframe_task task); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I36f41870bd63c70259316204ee17071853257ca4 Gerrit-Change-Number: 18728 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 18:58:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 18:58:30 +0000 Subject: Change in libosmo-abis[master]: e1_input: Initialize list struct In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18731 ) Change subject: e1_input: Initialize list struct ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/18731/2/src/e1_input.c File src/e1_input.c: https://gerrit.osmocom.org/c/libosmo-abis/+/18731/2/src/e1_input.c at 571 PS2, Line 571: talloc_zero If we were not using zero-initialization everywhere, we would notice this problem much earlier. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I850fdc43d597267aa66c6975aca9c1753231ac65 Gerrit-Change-Number: 18731 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 08 Jun 2020 18:58:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 19:08:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 19:08:52 +0000 Subject: Change in osmo-sgsn[master]: Fix memory leak when SNDCP de-fragmentation is used In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 ) Change subject: Fix memory leak when SNDCP de-fragmentation is used ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1185b1aa99bb167d616eb469e5445e4ed5ad949d Gerrit-Change-Number: 18733 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19:08: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 Jun 8 19:13:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:13:56 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18002 ) Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... Patch Set 8: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/18002/8/src/gsm/lapd_core.c File src/gsm/lapd_core.c: https://gerrit.osmocom.org/c/libosmocore/+/18002/8/src/gsm/lapd_core.c at 307 PS8, Line 307: dl->name = talloc_strdup(tall_lapd_ctx, name); > see my previous comment, don't you need osmo_talloc_replace() (or however it's called) here? thanks. As we have two cases here, including one asprintf, I decided to go for a manual talloc_Free() above. https://gerrit.osmocom.org/c/libosmocore/+/18002/6/src/gsm/lapdm.c File src/gsm/lapdm.c: https://gerrit.osmocom.org/c/libosmocore/+/18002/6/src/gsm/lapdm.c at 273 PS6, Line 273: lc->name = talloc_strdup(lc, name_pfx); > don't you need to free here if lc->name is already set? Because you are not allocating lc here. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19:13:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 19:20:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:20:03 +0000 Subject: Change in libosmocore[master]: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18707 ) Change subject: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18707/1/include/osmocom/gprs/gprs_ns.h File include/osmocom/gprs/gprs_ns.h: https://gerrit.osmocom.org/c/libosmocore/+/18707/1/include/osmocom/gprs/gprs_ns.h at a200 PS1, Line 200: struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci); > aren't you breaking backward compatibility compilation here? The function has no user in osmocom. All users [we know of] are inside libosmocore.git , and I just removed them as part of this commit. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 Gerrit-Change-Number: 18707 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19:20:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 19:20:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:20:19 +0000 Subject: Change in libosmocore[master]: NS: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18706 to look at the new patch set (#3). Change subject: NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP 3GPP TS 48.016 is quite clear in that no NS-{RESET,BLOCK,UNBLOCK} procedures shall be used over an IP based transport. They are only for use in Frame Relay based transport. However, as libosmogb was first developed against ip.access nanoBTS, and their Gb implementation mandates those procedures, we unconditionally implemented those procedures back then. Let's give the user the option of disabling this behavior to become more spec compliant (and interoperate with more other vendors out there). Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 --- M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/gprs_ns_vty.c 3 files changed, 57 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/18706/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 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 Jun 8 19:20:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:20:19 +0000 Subject: Change in libosmocore[master]: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() 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/+/18707 to look at the new patch set (#2). Change subject: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() ...................................................................... NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 --- M TODO-RELEASE M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/gprs_ns_vty.c M src/gb/libosmogb.map 5 files changed, 7 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/07/18707/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 Gerrit-Change-Number: 18707 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 19:20:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:20:19 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18002 to look at the new patch set (#9). Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... lapd/lapdm: print user-defined string name instead of (dl=%p) At the moment we print the pointer address to identify the log lines belonging to a specific connection. Since pointer addresses are difficult to work with, a human readable ID should be printed instead. e.g. "This is LAPD instance for SAPI3 on bts0/trx1/ts5/lchan3" Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Closes: OS#1938 --- M TODO-RELEASE M include/osmocom/gsm/lapd_core.h M include/osmocom/gsm/lapdm.h M src/gsm/lapd_core.c M src/gsm/lapdm.c M src/gsm/libosmogsm.map 6 files changed, 303 insertions(+), 323 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/02/18002/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 9 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 19:20:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 19:20:49 +0000 Subject: Change in osmo-msc[master]: msc_vty: remove emergency-call command from network In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18724 ) Change subject: msc_vty: remove emergency-call command from network ...................................................................... Patch Set 1: Code-Review+2 Indeed, we also print it from config_write_msc(). -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4f3dac27723e7852f8f049fcfca5cccdc027734d Gerrit-Change-Number: 18724 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19:20: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 Jun 8 19:20:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:20:53 +0000 Subject: Change in libosmocore[master]: NS: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18706 ) Change subject: NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns_vty.c File src/gb/gprs_ns_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns_vty.c at 517 PS2, Line 517: vty_nsi->nsip.use_reset_block_unblock = true; > vty_nsi->nsip. [?] that returns a positive/negative integer, I prefer to keep it explicit. Sure, one could do something like !!! but it's not readable ;) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19:20:53 +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 Jun 8 19:20:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:20:54 +0000 Subject: Change in libosmocore[master]: NS: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18706 ) Change subject: NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19:20: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 Jun 8 19:21:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:21:12 +0000 Subject: Change in libosmocore[master]: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18707 ) Change subject: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 Gerrit-Change-Number: 18707 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19:21:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 19:21:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:21:46 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18002 ) Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 9 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 19: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 Mon Jun 8 19:41:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:41:25 +0000 Subject: Change in libosmocore[master]: NS: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18706 ) Change subject: NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP 3GPP TS 48.016 is quite clear in that no NS-{RESET,BLOCK,UNBLOCK} procedures shall be used over an IP based transport. They are only for use in Frame Relay based transport. However, as libosmogb was first developed against ip.access nanoBTS, and their Gb implementation mandates those procedures, we unconditionally implemented those procedures back then. Let's give the user the option of disabling this behavior to become more spec compliant (and interoperate with more other vendors out there). Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 --- M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/gprs_ns_vty.c 3 files changed, 57 insertions(+), 24 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index 02faa50..94d3036 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -97,6 +97,8 @@ uint32_t remote_ip; uint16_t remote_port; int dscp; + /*! IPA compatibility: NS-RESET/BLOCK/UNBLOCK even on IP-SNS */ + bool use_reset_block_unblock; } nsip; /*! NS-over-FR-over-GRE-over-IP specific bits */ struct { diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 4e584ad..f1b36f4 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -327,7 +327,7 @@ nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = 1; /* before RESET procedure: BLOCKED and DEAD */ - if (nsi->bss_sns_fi) + if (nsi->bss_sns_fi || !nsi->nsip.use_reset_block_unblock) ns_set_state(nsvc, 0); else ns_set_state(nsvc, NSE_S_BLOCKED); @@ -793,7 +793,7 @@ nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) { /* mark as dead (and blocked unless IP-SNS) */ rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_DEAD]); - if (!nsvc->nsi->bss_sns_fi) { + if (!nsvc->nsi->bss_sns_fi && nsvc->nsi->nsip.use_reset_block_unblock) { ns_set_state(nsvc, NSE_S_BLOCKED); rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); } else @@ -804,7 +804,7 @@ nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]); ns_osmo_signal_dispatch(nsvc, S_NS_ALIVE_EXP, 0); /* FIXME: should we send this signal in case of SNS? */ - if (!nsvc->nsi->bss_sns_fi) + if (!nsvc->nsi->bss_sns_fi && nsvc->nsi->nsip.use_reset_block_unblock) ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, NS_CAUSE_NSVC_BLOCKED); return; } @@ -1758,8 +1758,12 @@ * fine. */ if ((*nsvc)->state == NSE_S_BLOCKED) rc = gprs_nsvc_reset((*nsvc), NS_CAUSE_PDU_INCOMP_PSTATE); - else if (!((*nsvc)->state & NSE_S_RESET)) + else if (!((*nsvc)->state & NSE_S_RESET)) { + /* if we're not alive, we cannot transmit the ACK; set ALIVE */ + if (!((*nsvc)->state & NSE_S_ALIVE)) + ns_mark_alive(*nsvc); rc = gprs_ns_tx_alive_ack(*nsvc); + } break; case NS_PDUT_ALIVE_ACK: ns_mark_alive(*nsvc); @@ -1915,6 +1919,11 @@ llist_del(&nsi->unknown_nsvc->list); INIT_LLIST_HEAD(&nsi->unknown_nsvc->list); + /* By default we are in IPA compatible mode, that is we use NS-RESET, NS-BLOCK + * and NS-UNBLOCK procedures even for an IP/UDP based Gb interface, in violation + * of 3GPP TS 48.016. */ + nsi->nsip.use_reset_block_unblock = true; + return nsi; } diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 9cffb71..bd53f2f 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -90,6 +90,32 @@ vty_out(vty, "ns%s", VTY_NEWLINE); + /* global configuration must be written first, as some of it may be + * relevant when creating the NSE/NSVC later below */ + + if (vty_nsi->nsip.local_ip) { + ia.s_addr = osmo_htonl(vty_nsi->nsip.local_ip); + vty_out(vty, " encapsulation udp local-ip %s%s", + inet_ntoa(ia), VTY_NEWLINE); + } + if (vty_nsi->nsip.local_port) + vty_out(vty, " encapsulation udp local-port %u%s", + vty_nsi->nsip.local_port, VTY_NEWLINE); + if (vty_nsi->nsip.dscp) + vty_out(vty, " encapsulation udp dscp %d%s", + vty_nsi->nsip.dscp, VTY_NEWLINE); + + vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", + vty_nsi->nsip.use_reset_block_unblock ? "enabled" : "disabled", VTY_NEWLINE); + + vty_out(vty, " encapsulation framerelay-gre enabled %u%s", + vty_nsi->frgre.enabled ? 1 : 0, VTY_NEWLINE); + if (vty_nsi->frgre.local_ip) { + ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); + vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", + inet_ntoa(ia), VTY_NEWLINE); + } + llist_for_each_entry(nsvc, &vty_nsi->gprs_nsvcs, list) { if (!nsvc->persistent) continue; @@ -130,26 +156,6 @@ get_value_string(gprs_ns_timer_strs, i), vty_nsi->timeout[i], VTY_NEWLINE); - if (vty_nsi->nsip.local_ip) { - ia.s_addr = osmo_htonl(vty_nsi->nsip.local_ip); - vty_out(vty, " encapsulation udp local-ip %s%s", - inet_ntoa(ia), VTY_NEWLINE); - } - if (vty_nsi->nsip.local_port) - vty_out(vty, " encapsulation udp local-port %u%s", - vty_nsi->nsip.local_port, VTY_NEWLINE); - if (vty_nsi->nsip.dscp) - vty_out(vty, " encapsulation udp dscp %d%s", - vty_nsi->nsip.dscp, VTY_NEWLINE); - - vty_out(vty, " encapsulation framerelay-gre enabled %u%s", - vty_nsi->frgre.enabled ? 1 : 0, VTY_NEWLINE); - if (vty_nsi->frgre.local_ip) { - ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); - vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", - inet_ntoa(ia), VTY_NEWLINE); - } - return CMD_SUCCESS; } @@ -500,6 +506,21 @@ return CMD_SUCCESS; } +DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, + "encapsulation udp use-reset-block-unblock (enabled|disabled)", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" + "Enable NS-{RESET,BLOCK,UNBLOCK}\n" + "Disable NS-{RESET,BLOCK,UNBLOCK}\n") +{ + if (!strcmp(argv[0], "enabled")) + vty_nsi->nsip.use_reset_block_unblock = true; + else + vty_nsi->nsip.use_reset_block_unblock = false; + + return CMD_SUCCESS; +} + DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, "encapsulation framerelay-gre local-ip A.B.C.D", ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" @@ -643,6 +664,7 @@ install_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); install_element(L_NS_NODE, &cfg_nsip_local_port_cmd); install_element(L_NS_NODE, &cfg_nsip_dscp_cmd); + install_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); install_element(L_NS_NODE, &cfg_frgre_enable_cmd); install_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 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 Jun 8 19:41:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:41:26 +0000 Subject: Change in libosmocore[master]: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18707 ) Change subject: NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() ...................................................................... NS: replace use of gprs_nsvc_create() with gprs_nsvc_crate2() Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 --- M TODO-RELEASE M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/gprs_ns_vty.c M src/gb/libosmogb.map 5 files changed, 7 insertions(+), 13 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index a6ed730..c9d9c56 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -11,3 +11,4 @@ sim API/ABI change new osim_file_desc_find_aid() sim API/ABI change all over the place gsm new API new osmo_bts_unset_feature() +gb API/ABI change deprecate gprs_nsvc_crate(); export gprs_nsvc_create2() diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index 94d3036..65c7df3 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -197,7 +197,6 @@ /* Listen for incoming GPRS packets via NS/FR/GRE */ int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi); -struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci); struct gprs_nsvc *gprs_nsvc_create2(struct gprs_ns_inst *nsi, uint16_t nsvci, uint8_t sig_weight, uint8_t data_weight); void gprs_nsvc_delete(struct gprs_nsvc *nsvc); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index f1b36f4..14fe661 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -347,12 +347,6 @@ return nsvc; } -/*! Old API for creating a NS-VC. Uses gprs_nsvc_create2 with fixed weights. */ -struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci) -{ - return gprs_nsvc_create2(nsi, nsvci, 1, 1); -} - /*! Delete given NS-VC * \param[in] nsvc gprs_nsvc to be deleted */ @@ -1269,7 +1263,7 @@ nsvci, (*nsvc)->nsvci, gprs_ns_ll_str(*nsvc)); orig_nsvc = *nsvc; - *nsvc = gprs_nsvc_create((*nsvc)->nsi, nsvci); + *nsvc = gprs_nsvc_create2((*nsvc)->nsi, nsvci, 1, 1); (*nsvc)->nsei = nsei; } } @@ -1691,7 +1685,7 @@ * simply have changed addresses, or it is a SGSN */ existing_nsvc = gprs_nsvc_by_nsvci(nsi, nsvci); if (!existing_nsvc) { - *new_nsvc = gprs_nsvc_create(nsi, 0xffff); + *new_nsvc = gprs_nsvc_create2(nsi, 0xffff, 1, 1); (*new_nsvc)->nsvci_is_valid = 0; log_set_context(LOG_CTX_GB_NSVC, *new_nsvc); gprs_ns_ll_copy(*new_nsvc, fallback_nsvc); @@ -1914,7 +1908,7 @@ /* Create the dummy NSVC that we use for sending * messages to non-existant/unknown NS-VC's */ - nsi->unknown_nsvc = gprs_nsvc_create(nsi, 0xfffe); + nsi->unknown_nsvc = gprs_nsvc_create2(nsi, 0xfffe, 1, 1); nsi->unknown_nsvc->nsvci_is_valid = 0; llist_del(&nsi->unknown_nsvc->list); INIT_LLIST_HEAD(&nsi->unknown_nsvc->list); @@ -2155,7 +2149,7 @@ nsvc = gprs_nsvc_by_rem_addr(nsi, dest); if (!nsvc) - nsvc = gprs_nsvc_create(nsi, nsvci); + nsvc = gprs_nsvc_create2(nsi, nsvci, 1, 1); nsvc->ip.bts_addr = *dest; nsvc->nsei = nsei; nsvc->remote_end_is_sgsn = 1; diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index bd53f2f..38d4393 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -292,7 +292,7 @@ nsvc = gprs_nsvc_by_nsei(vty_nsi, nsei); if (!nsvc) { - nsvc = gprs_nsvc_create(vty_nsi, nsvci); + nsvc = gprs_nsvc_create2(vty_nsi, nsvci, 1, 1); nsvc->nsei = nsei; } nsvc->nsvci = nsvci; diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index ad139c1..b29ecb9 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -70,7 +70,7 @@ gprs_ns_ll_clear; gprs_ns_msgb_alloc; -gprs_nsvc_create; +gprs_nsvc_create2; gprs_nsvc_delete; gprs_nsvc_reset; gprs_nsvc_by_nsvci; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2b10e1707b0976b685d1c14016481d5565888150 Gerrit-Change-Number: 18707 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 Mon Jun 8 19:41:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:41:26 +0000 Subject: Change in libosmocore[master]: lapd/lapdm: print user-defined string name instead of (dl=%p) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18002 ) Change subject: lapd/lapdm: print user-defined string name instead of (dl=%p) ...................................................................... lapd/lapdm: print user-defined string name instead of (dl=%p) At the moment we print the pointer address to identify the log lines belonging to a specific connection. Since pointer addresses are difficult to work with, a human readable ID should be printed instead. e.g. "This is LAPD instance for SAPI3 on bts0/trx1/ts5/lchan3" Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Closes: OS#1938 --- M TODO-RELEASE M include/osmocom/gsm/lapd_core.h M include/osmocom/gsm/lapdm.h M src/gsm/lapd_core.c M src/gsm/lapdm.c M src/gsm/libosmogsm.map 6 files changed, 303 insertions(+), 323 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index c9d9c56..2d65372 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -12,3 +12,4 @@ sim API/ABI change all over the place gsm new API new osmo_bts_unset_feature() gb API/ABI change deprecate gprs_nsvc_crate(); export gprs_nsvc_create2() +gsm API/ABI change add new member to lapd_datalink diff --git a/include/osmocom/gsm/lapd_core.h b/include/osmocom/gsm/lapd_core.h index cfc357a..69e1087 100644 --- a/include/osmocom/gsm/lapd_core.h +++ b/include/osmocom/gsm/lapd_core.h @@ -14,6 +14,9 @@ * \file lapd_core.h */ +#define LOGDL(dl, level, fmt, args...) \ + LOGP(DLLAPD, level, "(%s) " fmt, (dl)->name, ## args) + /*! LAPD related primitives (L2<->L3 SAP)*/ enum osmo_dl_prim { PRIM_DL_UNIT_DATA, /*!< DL-UNIT-DATA */ @@ -158,10 +161,13 @@ uint8_t range_hist; /*!< range of history buffer 2..2^n */ struct msgb *rcv_buffer; /*!< buffer to assemble the received message */ struct msgb *cont_res; /*!< buffer to store content resolution data on network side, to detect multiple phones on same channel */ + char *name; /*!< user-provided name */ }; -void lapd_dl_init(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, - int maxf); +void lapd_dl_init(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, int maxf) + OSMO_DEPRECATED("Use lapd_dl_init2() instead"); +void lapd_dl_init2(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, int maxf, const char *name); +void lapd_dl_set_name(struct lapd_datalink *dl, const char *name); void lapd_dl_exit(struct lapd_datalink *dl); void lapd_dl_reset(struct lapd_datalink *dl); int lapd_set_mode(struct lapd_datalink *dl, enum lapd_mode mode); diff --git a/include/osmocom/gsm/lapdm.h b/include/osmocom/gsm/lapdm.h index 931de80..633df1a 100644 --- a/include/osmocom/gsm/lapdm.h +++ b/include/osmocom/gsm/lapdm.h @@ -83,13 +83,19 @@ /* initialize a LAPDm entity */ void lapdm_entity_init(struct lapdm_entity *le, enum lapdm_mode mode, int t200) - OSMO_DEPRECATED("Use lapdm_entity_init2() instead"); + OSMO_DEPRECATED("Use lapdm_entity_init3() instead"); void lapdm_entity_init2(struct lapdm_entity *le, enum lapdm_mode mode, - const int *t200_ms, int n200); + const int *t200_ms, int n200) + OSMO_DEPRECATED("Use lapdm_entity_init3() instead"); +void lapdm_entity_init3(struct lapdm_entity *le, enum lapdm_mode mode, + const int *t200_ms, int n200, const char *name_pfx); void lapdm_channel_init(struct lapdm_channel *lc, enum lapdm_mode mode) - OSMO_DEPRECATED("Use lapdm_channel_init2() instead"); + OSMO_DEPRECATED("Use lapdm_channel_init3() instead"); int lapdm_channel_init2(struct lapdm_channel *lc, enum lapdm_mode mode, const int *t200_ms_dcch, const int *t200_ms_acch, enum gsm_chan_t chan_t); +int lapdm_channel_init3(struct lapdm_channel *lc, enum lapdm_mode mode, + const int *t200_ms_dcch, const int *t200_ms_acch, enum gsm_chan_t chan_t, + const char *name_pfx); /* deinitialize a LAPDm entity */ void lapdm_entity_exit(struct lapdm_entity *le); void lapdm_channel_exit(struct lapdm_channel *lc); diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c index a0f3c2b..2477222 100644 --- a/src/gsm/lapd_core.c +++ b/src/gsm/lapd_core.c @@ -1,7 +1,7 @@ /*! \file lapd_core.c * LAPD core implementation */ /* - * (C) 2010-2011 by Harald Welte + * (C) 2010-2020 by Harald Welte * (C) 2010-2011 by Andreas Eversberg * * All Rights Reserved @@ -203,8 +203,8 @@ { if (osmo_timer_pending(&dl->t200)) return; - LOGP(DLLAPD, LOGL_INFO, "start T200 (dl=%p, timeout=%d.%06ds)\n", - dl, dl->t200_sec, dl->t200_usec); + LOGDL(dl, LOGL_INFO, "start T200 (timeout=%d.%06ds)\n", + dl->t200_sec, dl->t200_usec); osmo_timer_schedule(&dl->t200, dl->t200_sec, dl->t200_usec); } @@ -212,7 +212,7 @@ { if (osmo_timer_pending(&dl->t203)) return; - LOGP(DLLAPD, LOGL_INFO, "start T203 (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "start T203\n"); osmo_timer_schedule(&dl->t203, dl->t203_sec, dl->t203_usec); } @@ -220,7 +220,7 @@ { if (!osmo_timer_pending(&dl->t200)) return; - LOGP(DLLAPD, LOGL_INFO, "stop T200 (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "stop T200\n"); osmo_timer_del(&dl->t200); } @@ -228,14 +228,14 @@ { if (!osmo_timer_pending(&dl->t203)) return; - LOGP(DLLAPD, LOGL_INFO, "stop T203 (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "stop T203\n"); osmo_timer_del(&dl->t203); } static void lapd_dl_newstate(struct lapd_datalink *dl, uint32_t state) { - LOGP(DLLAPD, LOGL_INFO, "new state %s -> %s (dl=%p)\n", - lapd_state_name(dl->state), lapd_state_name(state), dl); + LOGDL(dl, LOGL_INFO, "new state %s -> %s\n", + lapd_state_name(dl->state), lapd_state_name(state)); if (state != LAPD_STATE_MF_EST && dl->state == LAPD_STATE_MF_EST) { /* stop T203 on leaving MF EST state, if running */ @@ -253,11 +253,16 @@ dl->state = state; } -static void *tall_lapd_ctx = NULL; +void *tall_lapd_ctx = NULL; -/* init datalink instance and allocate history */ -void lapd_dl_init(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, - int maxf) +/*! Initialize LAPD datalink instance and allocate history + * \param[in] dl caller-allocated datalink structure + * \param[in] k maximum number of unacknowledged frames + * \param[in] v_range range of sequence numbers + * \param[in] maxf maximum frame size (after defragmentation) + * \param[in] name human-readable name for this LAPD datalink */ +void lapd_dl_init2(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, int maxf, + const char *name) { int m; @@ -293,22 +298,47 @@ } } - LOGP(DLLAPD, LOGL_INFO, "Init DL layer: sequence range = %d, k = %d, " - "history range = %d (dl=%p)\n", dl->v_range, dl->k, - dl->range_hist, dl); + if (!tall_lapd_ctx) { + tall_lapd_ctx = talloc_named_const(NULL, 1, "lapd context"); + OSMO_ASSERT(tall_lapd_ctx); + } + + talloc_free(dl->name); + if (name) + dl->name = talloc_strdup(tall_lapd_ctx, name); + else + dl->name = talloc_asprintf(tall_lapd_ctx, "dl=%p", dl); + + LOGDL(dl, LOGL_INFO, "Init DL layer: sequence range = %d, k = %d, " + "history range = %d\n", dl->v_range, dl->k, dl->range_hist); lapd_dl_newstate(dl, LAPD_STATE_IDLE); - if (!tall_lapd_ctx) - tall_lapd_ctx = talloc_named_const(NULL, 1, "lapd context"); dl->tx_hist = talloc_zero_array(tall_lapd_ctx, struct lapd_history, dl->range_hist); } +/*! Initialize LAPD datalink instance and allocate history + * \param[in] dl caller-allocated datalink structure + * \param[in] k maximum number of unacknowledged frames + * \param[in] v_range range of sequence numbers + * \param[in] maxf maximum frame size (after defragmentation) */ +void lapd_dl_init(struct lapd_datalink *dl, uint8_t k, uint8_t v_range, int maxf) +{ + lapd_dl_init2(dl, k, v_range, maxf, NULL); +} + +void lapd_dl_set_name(struct lapd_datalink *dl, const char *name) +{ + if (!name) + return; + osmo_talloc_replace_string(tall_lapd_ctx, &dl->name, name); +} + /* reset to IDLE state */ void lapd_dl_reset(struct lapd_datalink *dl) { - LOGP(DLLAPD, LOGL_INFO, "Resetting LAPDm instance\n"); + LOGDL(dl, LOGL_INFO, "Resetting LAPDm instance\n"); /* enter idle state (and remove eventual cont_res) */ lapd_dl_newstate(dl, LAPD_STATE_IDLE); /* flush buffer */ @@ -322,7 +352,6 @@ lapd_stop_t203(dl); if (dl->state == LAPD_STATE_IDLE) return; - LOGP(DLLAPD, LOGL_INFO, "Resetting LAPDm instance (dl=%p)\n", dl); /* enter idle state (and remove eventual cont_res) */ lapd_dl_newstate(dl, LAPD_STATE_IDLE); } @@ -339,6 +368,8 @@ /* free history buffer list */ talloc_free(dl->tx_hist); dl->tx_hist = NULL; + talloc_free(dl->name); + dl->name = NULL; } /*! Set the \ref lapdm_mode of a LAPDm entity */ @@ -389,9 +420,9 @@ struct lapd_datalink *dl = lctx->dl; struct osmo_dlsap_prim dp; - LOGP(DLLAPD, LOGL_NOTICE, - "sending MDL-ERROR-IND cause %d from state %s (dl=%p)\n", - cause, lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_NOTICE, + "sending MDL-ERROR-IND cause %d from state %s\n", + cause, lapd_state_name(dl->state)); osmo_prim_init(&dp.oph, 0, PRIM_MDL_ERROR, PRIM_OP_INDICATION, NULL); dp.u.error_ind.cause = cause; return dl->send_dlsap(&dp, lctx); @@ -546,7 +577,7 @@ struct osmo_dlsap_prim dp; struct msgb *msg; - LOGP(DLLAPD, LOGL_DEBUG, "lapd reestablish (dl=%p)\n", dl); + LOGDL(dl, LOGL_DEBUG, "LAPD reestablish\n"); msg = lapd_msgb_alloc(0, "DUMMY"); osmo_prim_init(&dp.oph, 0, PRIM_DL_EST, PRIM_OP_REQUEST, msg); @@ -559,8 +590,7 @@ { struct lapd_datalink *dl = data; - LOGP(DLLAPD, LOGL_INFO, "Timeout T200 state=%s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "Timeout T200 state=%s\n", lapd_state_name(dl->state)); switch (dl->state) { case LAPD_STATE_SABM_SENT: @@ -628,8 +658,7 @@ int length = dl->tx_hist[h].msg->len; struct lapd_msg_ctx nctx; - LOGP(DLLAPD, LOGL_INFO, "retransmit last frame" - " V(S)=%d (dl=%p)\n", vs, dl); + LOGDL(dl, LOGL_INFO, "retransmit last frame V(S)=%d\n", vs); /* Create I frame (segment) from tx_hist */ memcpy(&nctx, &dl->lctx, sizeof(nctx)); /* keep nctx.ldp */ @@ -660,8 +689,7 @@ } else if (dl->own_busy) { lapd_send_rnr(&dl->lctx, 1, 1); } else { - LOGP(DLLAPD, LOGL_INFO, "unhandled, " - "pls. fix (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "unhandled, pls. fix\n"); } } /* restart T200 (PH-READY-TO-SEND) */ @@ -672,14 +700,13 @@ /* reestablish */ if (!dl->reestablish) break; - LOGP(DLLAPD, LOGL_NOTICE, "N200+1 reached, performing " - "reestablishment. (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "N200+1 reached, performingreestablishment\n"); lapd_reestablish(dl); } break; default: - LOGP(DLLAPD, LOGL_INFO, "T200 expired in unexpected " - "dl->state %s (dl=%p)\n", lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "T200 expired in unexpected dl->state %s)\n", + lapd_state_name(dl->state)); } } @@ -688,12 +715,10 @@ { struct lapd_datalink *dl = data; - LOGP(DLLAPD, LOGL_INFO, "Timeout T203 state=%s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "Timeout T203 state=%s\n", lapd_state_name(dl->state)); if (dl->state != LAPD_STATE_MF_EST) { - LOGP(DLLAPD, LOGL_ERROR, "T203 fired outside MF EST state, " - "please fix! (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "T203 fired outside MF EST state, please fix!\n"); return; } @@ -703,13 +728,11 @@ lapd_dl_newstate(dl, LAPD_STATE_TIMER_RECOV); /* transmit a supervisory command with P bit set to 1 as follows: */ if (!dl->own_busy) { - LOGP(DLLAPD, LOGL_INFO, - "transmit an RR poll command (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "transmit an RR poll command\n"); /* Send RR with P=1 */ lapd_send_rr(&dl->lctx, 1, 1); } else { - LOGP(DLLAPD, LOGL_INFO, - "transmit an RNR poll command (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "transmit an RNR poll command\n"); /* Send RNR with P=1 */ lapd_send_rnr(&dl->lctx, 1, 1); } @@ -738,7 +761,7 @@ if (dl->tx_hist[h].msg) { msgb_free(dl->tx_hist[h].msg); dl->tx_hist[h].msg = NULL; - LOGP(DLLAPD, LOGL_INFO, "ack frame %d\n", i); + LOGDL(dl, LOGL_INFO, "ack frame %d\n", i); } } @@ -759,7 +782,7 @@ */ if (sub_mod(nr, dl->v_ack, dl->v_range) > sub_mod(dl->v_send, dl->v_ack, dl->v_range)) { - LOGP(DLLAPD, LOGL_NOTICE, "N(R) sequence error (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "N(R) sequence error\n"); mdl_error(MDL_CAUSE_SEQ_ERR, lctx); } } @@ -771,8 +794,7 @@ * and if there are outstanding I frames, restart T200 */ if (t200_reset && !rej) { if (dl->tx_hist[sub_mod(dl->v_send, 1, dl->range_hist)].msg) { - LOGP(DLLAPD, LOGL_INFO, "start T200, due to unacked I " - "frame(s) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "start T200, due to unacked I frame(s)\n"); lapd_start_t200(dl); } } @@ -805,14 +827,12 @@ prim = PRIM_DL_EST; op = PRIM_OP_INDICATION; - LOGP(DLLAPD, LOGL_INFO, "SABM(E) received in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "SABM(E) received in state %s\n", lapd_state_name(dl->state)); /* 5.7.1 */ dl->seq_err_cond = 0; /* G.2.2 Wrong value of the C/R bit */ if (lctx->cr == dl->cr.rem2loc.resp) { - LOGP(DLLAPD, LOGL_ERROR, - "SABM response error (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "SABM response error\n"); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -822,8 +842,7 @@ * set, AN MDL-ERROR-INDICATION is sent to MM. */ if (lctx->more || length > lctx->n201) { - LOGP(DLLAPD, LOGL_ERROR, - "SABM too large error (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "SABM too large error\n"); msgb_free(msg); mdl_error(MDL_CAUSE_UFRM_INC_PARAM, lctx); return -EIO; @@ -833,8 +852,7 @@ case LAPD_STATE_IDLE: break; case LAPD_STATE_MF_EST: - LOGP(DLLAPD, LOGL_INFO, "SABM command, multiple " - "frame established state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "SABM command, multiple frame established state\n"); /* If link is lost on the remote side, we start over * and send DL-ESTABLISH indication again. */ /* Additionally, continue in case of content resoltion @@ -846,14 +864,12 @@ if (!length) { /* If no content resolution, this is a * re-establishment. */ - LOGP(DLLAPD, LOGL_INFO, - "Remote reestablish (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "Remote reestablish\n"); break; } if (!dl->cont_res) { - LOGP(DLLAPD, LOGL_INFO, "SABM command not " - "allowed in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "SABM command not allowed in state %s\n", + lapd_state_name(dl->state)); mdl_error(MDL_CAUSE_SABM_MF, lctx); msgb_free(msg); return 0; @@ -865,9 +881,8 @@ #endif if (memcmp(dl->cont_res->data, msg->data, length)) { - LOGP(DLLAPD, LOGL_INFO, "Another SABM " - "with different content - " - "ignoring! (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "Another SABM with different content - " + "ignoring!\n"); msgb_free(msg); return 0; } @@ -889,9 +904,8 @@ */ /* check for contention resoultion */ if (dl->tx_hist[0].msg && dl->tx_hist[0].msg->len) { - LOGP(DLLAPD, LOGL_NOTICE, "SABM not allowed " - "during contention resolution (state=%s, dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_NOTICE, "SABM not allowed during contention " + "resolution (state=%s)\n", lapd_state_name(dl->state)); mdl_error(MDL_CAUSE_SABM_INFO_NOTALL, lctx); } lapd_send_ua(lctx, length, msg->l3h); @@ -917,8 +931,7 @@ dl->cont_res = lapd_msgb_alloc(length, "CONT RES"); memcpy(msgb_put(dl->cont_res, length), msg->l3h, length); - LOGP(DLLAPD, LOGL_NOTICE, - "Store content res. (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "Store content res.\n"); } /* send notification to L3 */ if (length == 0) { @@ -932,12 +945,10 @@ } break; case LAPD_U_DM: - LOGP(DLLAPD, LOGL_INFO, "DM received in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "DM received in state %s\n", lapd_state_name(dl->state)); /* G.2.2 Wrong value of the C/R bit */ if (lctx->cr == dl->cr.rem2loc.cmd) { - LOGP(DLLAPD, LOGL_ERROR, - "DM command error (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "DM command error\n"); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -954,21 +965,18 @@ break; case LAPD_STATE_MF_EST: if (lctx->p_f) { - LOGP(DLLAPD, LOGL_INFO, "unsolicited DM " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "unsolicited DM response\n"); mdl_error(MDL_CAUSE_UNSOL_DM_RESP, lctx); } else { - LOGP(DLLAPD, LOGL_INFO, "unsolicited DM " - "response, multiple frame established " - "state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "unsolicited DM response, " + "multiple frame established state\n"); mdl_error(MDL_CAUSE_UNSOL_DM_RESP_MF, lctx); /* reestablish */ if (!dl->reestablish) { msgb_free(msg); return 0; } - LOGP(DLLAPD, LOGL_NOTICE, "Performing " - "reestablishment. (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "Performing reestablishment\n"); lapd_reestablish(dl); } msgb_free(msg); @@ -976,16 +984,14 @@ case LAPD_STATE_TIMER_RECOV: /* FP = 0 (DM is normal in case PF = 1) */ if (!lctx->p_f) { - LOGP(DLLAPD, LOGL_INFO, "unsolicited DM " - "response, multiple frame established " - "state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "unsolicited DM response, multiple frame " + "established state\n"); mdl_error(MDL_CAUSE_UNSOL_DM_RESP_MF, lctx); msgb_free(msg); /* reestablish */ if (!dl->reestablish) return 0; - LOGP(DLLAPD, LOGL_NOTICE, "Performing " - "reestablishment. (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "Performing reestablishment\n"); return lapd_reestablish(dl); } break; @@ -1002,8 +1008,7 @@ case LAPD_STATE_IDLE: /* 5.4.5 all other frame types shall be discarded */ default: - LOGP(DLLAPD, LOGL_INFO, "unsolicited DM response! " - "(discarding) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "unsolicited DM response! (discarding)\n"); msgb_free(msg); return 0; } @@ -1015,11 +1020,10 @@ msgb_free(msg); break; case LAPD_U_UI: - LOGP(DLLAPD, LOGL_INFO, "UI received (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "UI received\n"); /* G.2.2 Wrong value of the C/R bit */ if (lctx->cr == dl->cr.rem2loc.resp) { - LOGP(DLLAPD, LOGL_ERROR, "UI indicates response " - "error (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "UI indicates response error\n"); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -1029,9 +1033,8 @@ * set, AN MDL-ERROR-INDICATION is sent to MM. */ if (length > lctx->n201 || lctx->more) { - LOGP(DLLAPD, LOGL_ERROR, "UI too large error " - "(%d > N201(%d) or M=%d) (dl=%p)\n", length, - lctx->n201, lctx->more, dl); + LOGDL(dl, LOGL_ERROR, "UI too large error (%d > N201(%d) or M=%d)\n", + length, lctx->n201, lctx->more); msgb_free(msg); mdl_error(MDL_CAUSE_UFRM_INC_PARAM, lctx); return -EIO; @@ -1042,8 +1045,7 @@ /* 5.3.3 UI frames received with the length indicator * set to "0" shall be ignored */ - LOGP(DLLAPD, LOGL_INFO, - "length=0 (discarding) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "length=0 (discarding)\n"); msgb_free(msg); return 0; } @@ -1055,8 +1057,7 @@ prim = PRIM_DL_REL; op = PRIM_OP_INDICATION; - LOGP(DLLAPD, LOGL_INFO, "DISC received in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "DISC received in state %s\n", lapd_state_name(dl->state)); /* flush tx and send buffers */ lapd_dl_flush_tx(dl); lapd_dl_flush_send(dl); @@ -1064,8 +1065,7 @@ dl->seq_err_cond = 0; /* G.2.2 Wrong value of the C/R bit */ if (lctx->cr == dl->cr.rem2loc.resp) { - LOGP(DLLAPD, LOGL_ERROR, - "DISC response error (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "DISC response error\n"); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -1076,22 +1076,19 @@ * primitive with cause "U frame with incorrect * parameters" is sent to the mobile management entity. */ - LOGP(DLLAPD, LOGL_ERROR, - "U frame iwth incorrect parameters (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "U frame iwth incorrect parameters\n"); msgb_free(msg); mdl_error(MDL_CAUSE_UFRM_INC_PARAM, lctx); return -EIO; } switch (dl->state) { case LAPD_STATE_IDLE: - LOGP(DLLAPD, LOGL_INFO, - "DISC in idle state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "DISC in idle state\n"); /* send DM with F=P */ msgb_free(msg); return lapd_send_dm(lctx); case LAPD_STATE_SABM_SENT: - LOGP(DLLAPD, LOGL_INFO, - "DISC in SABM state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "DISC in SABM state\n"); /* 5.4.6.2 send DM with F=P */ lapd_send_dm(lctx); /* stop Timer T200 */ @@ -1103,12 +1100,10 @@ lctx); case LAPD_STATE_MF_EST: case LAPD_STATE_TIMER_RECOV: - LOGP(DLLAPD, LOGL_INFO, - "DISC in est state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "DISC in est state\n"); break; case LAPD_STATE_DISC_SENT: - LOGP(DLLAPD, LOGL_INFO, - "DISC in disc state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "DISC in disc state\n"); prim = PRIM_DL_REL; op = PRIM_OP_CONFIRM; break; @@ -1128,12 +1123,10 @@ msgb_free(msg); break; case LAPD_U_UA: - LOGP(DLLAPD, LOGL_INFO, "UA received in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "UA received in state %s\n", lapd_state_name(dl->state)); /* G.2.2 Wrong value of the C/R bit */ if (lctx->cr == dl->cr.rem2loc.cmd) { - LOGP(DLLAPD, LOGL_ERROR, "UA indicates command " - "error (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "UA indicates command error\n"); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -1143,8 +1136,7 @@ * set, AN MDL-ERROR-INDICATION is sent to MM. */ if (lctx->more || length > lctx->n201) { - LOGP(DLLAPD, LOGL_ERROR, - "UA too large error (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "UA too large error\n"); msgb_free(msg); mdl_error(MDL_CAUSE_UFRM_INC_PARAM, lctx); return -EIO; @@ -1154,8 +1146,7 @@ /* 5.4.1.2 A UA response with the F bit set to "0" * shall be ignored. */ - LOGP(DLLAPD, LOGL_INFO, - "F=0 (discarding) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "F=0 (discarding)\n"); msgb_free(msg); return 0; } @@ -1164,14 +1155,12 @@ break; case LAPD_STATE_MF_EST: case LAPD_STATE_TIMER_RECOV: - LOGP(DLLAPD, LOGL_INFO, "unsolicited UA response! " - "(discarding) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "unsolicited UA response! (discarding)\n"); mdl_error(MDL_CAUSE_UNSOL_UA_RESP, lctx); msgb_free(msg); return 0; case LAPD_STATE_DISC_SENT: - LOGP(DLLAPD, LOGL_INFO, - "UA in disconnect state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "UA in disconnect state\n"); /* stop Timer T200 */ lapd_stop_t200(dl); /* go to idle state */ @@ -1184,12 +1173,11 @@ case LAPD_STATE_IDLE: /* 5.4.5 all other frame types shall be discarded */ default: - LOGP(DLLAPD, LOGL_INFO, "unsolicited UA response! " - "(discarding) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "unsolicited UA response! (discarding)\n"); msgb_free(msg); return 0; } - LOGP(DLLAPD, LOGL_INFO, "UA in SABM state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "UA in SABM state\n"); /* stop Timer T200 */ lapd_stop_t200(dl); /* compare UA with SABME if contention resolution is applied */ @@ -1197,8 +1185,7 @@ if (length != (dl->tx_hist[0].msg->len) || !!memcmp(dl->tx_hist[0].msg->data, msg->l3h, length)) { - LOGP(DLLAPD, LOGL_INFO, "**** UA response " - "mismatches **** (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "**** UA response mismatches ****\n"); rc = send_dl_simple(PRIM_DL_REL, PRIM_OP_INDICATION, lctx); msgb_free(msg); @@ -1222,22 +1209,19 @@ msgb_free(msg); break; case LAPD_U_FRMR: - LOGP(DLLAPD, LOGL_NOTICE, - "Frame reject received (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "Frame reject received\n"); /* send MDL ERROR INIDCATION to L3 */ mdl_error(MDL_CAUSE_FRMR, lctx); msgb_free(msg); /* reestablish */ if (!dl->reestablish) break; - LOGP(DLLAPD, LOGL_NOTICE, - "Performing reestablishment. (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "Performing reestablishment\n"); rc = lapd_reestablish(dl); break; default: /* G.3.1 */ - LOGP(DLLAPD, LOGL_NOTICE, - "Unnumbered frame not allowed. (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "Unnumbered frame not allowed\n"); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -1256,8 +1240,7 @@ * with the M bit set to "1", an MDL-ERROR-INDICATION * primitive with cause "S frame with incorrect * parameters" is sent to the mobile management entity. */ - LOGP(DLLAPD, LOGL_ERROR, - "S frame with incorrect parameters (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "S frame with incorrect parameters\n"); msgb_free(msg); mdl_error(MDL_CAUSE_SFRM_INC_PARAM, lctx); return -EIO; @@ -1267,8 +1250,7 @@ && lctx->p_f && dl->state != LAPD_STATE_TIMER_RECOV) { /* 5.4.2.2: Inidcate error on supervisory reponse F=1 */ - LOGP(DLLAPD, LOGL_NOTICE, - "S frame response with F=1 error (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "S frame response with F=1 error\n"); mdl_error(MDL_CAUSE_UNSOL_SPRV_RESP, lctx); } @@ -1281,15 +1263,13 @@ /* fall though */ case LAPD_STATE_SABM_SENT: case LAPD_STATE_DISC_SENT: - LOGP(DLLAPD, LOGL_NOTICE, - "S frame ignored in this state (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "S frame ignored in this state\n"); msgb_free(msg); return 0; } switch (lctx->s_u) { case LAPD_S_RR: - LOGP(DLLAPD, LOGL_INFO, "RR received in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "RR received in state %s\n", lapd_state_name(dl->state)); /* 5.5.3.1: Acknowlege all tx frames up the the N(R)-1 */ lapd_acknowledge(lctx); @@ -1297,10 +1277,8 @@ if (lctx->cr == dl->cr.rem2loc.cmd && lctx->p_f) { if (!dl->own_busy && !dl->seq_err_cond) { - LOGP(DLLAPD, LOGL_INFO, "RR frame command " - "with polling bit set and we are not " - "busy, so we reply with RR frame " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "RR frame command with polling bit set and " + "we are not busy, so we reply with RR frame response\n"); lapd_send_rr(lctx, 1, 0); /* NOTE: In case of sequence error condition, * the REJ frame has been transmitted when @@ -1308,18 +1286,15 @@ * done here */ } else if (dl->own_busy) { - LOGP(DLLAPD, LOGL_INFO, "RR frame command " - "with polling bit set and we are busy, " - "so we reply with RR frame response (dl=%p)\n", - dl); + LOGDL(dl, LOGL_INFO, "RR frame command with polling bit set and " + "we are busy, so we reply with RR frame response\n"); lapd_send_rnr(lctx, 1, 0); } } else if (lctx->cr == dl->cr.rem2loc.resp && lctx->p_f && dl->state == LAPD_STATE_TIMER_RECOV) { - LOGP(DLLAPD, LOGL_INFO, "RR response with F==1, " - "and we are in timer recovery state, so " - "we leave that state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "RR response with F==1, and we are in timer recovery " + "state, so we leave that state\n"); /* V(S) to the N(R) in the RR frame */ dl->v_send = lctx->n_recv; /* stop Timer T200 */ @@ -1332,8 +1307,7 @@ break; case LAPD_S_RNR: - LOGP(DLLAPD, LOGL_INFO, "RNR received in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "RNR received in state %s\n", lapd_state_name(dl->state)); /* 5.5.3.1: Acknowlege all tx frames up the the N(R)-1 */ lapd_acknowledge(lctx); @@ -1344,40 +1318,33 @@ if (lctx->p_f) { if (lctx->cr == dl->cr.rem2loc.cmd) { if (!dl->own_busy) { - LOGP(DLLAPD, LOGL_INFO, "RNR poll " - "command and we are not busy, " - "so we reply with RR final " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "RNR poll command and we are not busy, " + "so we reply with RR final response\n"); /* Send RR with F=1 */ lapd_send_rr(lctx, 1, 0); } else { - LOGP(DLLAPD, LOGL_INFO, "RNR poll " - "command and we are busy, so " - "we reply with RNR final " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "RNR poll command and we are busy, so " + "we reply with RNR final response\n"); /* Send RNR with F=1 */ lapd_send_rnr(lctx, 1, 0); } } else if (dl->state == LAPD_STATE_TIMER_RECOV) { - LOGP(DLLAPD, LOGL_INFO, "RNR poll response " - "and we in timer recovery state, so " - "we leave that state (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "RNR poll response and we in timer recovery " + "state, so we leave that state\n"); /* 5.5.7 Clear timer recovery condition */ lapd_dl_newstate(dl, LAPD_STATE_MF_EST); /* V(S) to the N(R) in the RNR frame */ dl->v_send = lctx->n_recv; } } else - LOGP(DLLAPD, LOGL_INFO, "RNR not polling/final state " - "received (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "RNR not polling/final state received\n"); /* Send message, if possible due to acknowledged data */ lapd_send_i(lctx, __LINE__); break; case LAPD_S_REJ: - LOGP(DLLAPD, LOGL_INFO, "REJ received in state %s (dl=%p)\n", - lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "REJ received in state %s\n", lapd_state_name(dl->state)); /* 5.5.3.1: Acknowlege all tx frames up the the N(R)-1 */ lapd_acknowledge(lctx); @@ -1392,12 +1359,9 @@ /* 5.5.3.2 */ if (lctx->cr == dl->cr.rem2loc.cmd && lctx->p_f) { if (!dl->own_busy && !dl->seq_err_cond) { - LOGP(DLLAPD, LOGL_INFO, "REJ poll " - "command not in timer recovery " - "state and not in own busy " - "condition received, so we " - "respond with RR final " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "REJ poll command not in timer recovery " + "state and not in own busy condition received, so we " + "respond with RR final response\n"); lapd_send_rr(lctx, 1, 0); /* NOTE: In case of sequence error * condition, the REJ frame has been @@ -1406,29 +1370,22 @@ * here */ } else if (dl->own_busy) { - LOGP(DLLAPD, LOGL_INFO, "REJ poll " - "command not in timer recovery " - "state and in own busy " - "condition received, so we " - "respond with RNR final " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "REJ poll command not in timer recovery " + "state and in own busy condition received, so we " + "respond with RNR final response\n"); lapd_send_rnr(lctx, 1, 0); } } else - LOGP(DLLAPD, LOGL_INFO, "REJ response or not " - "polling command not in timer recovery " - "state received (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "REJ response or not polling command not " + "in timer recovery state received\n"); /* send MDL ERROR INIDCATION to L3 */ if (lctx->cr == dl->cr.rem2loc.resp && lctx->p_f) { - LOGP(DLLAPD, LOGL_ERROR, - "unsolicited supervisory response! (dl=%p)\n", - dl); + LOGDL(dl, LOGL_ERROR, "unsolicited supervisory response!\n"); mdl_error(MDL_CAUSE_UNSOL_SPRV_RESP, lctx); } } else if (lctx->cr == dl->cr.rem2loc.resp && lctx->p_f) { - LOGP(DLLAPD, LOGL_INFO, "REJ poll response in timer " - "recovery state received (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "REJ poll response in timer recovery state received\n"); /* Clear an existing peer receiver busy condition */ dl->peer_busy = 0; /* V(S) and V(A) to the N(R) in the REJ frame */ @@ -1445,12 +1402,9 @@ /* 5.5.3.2 */ if (lctx->cr == dl->cr.rem2loc.cmd && lctx->p_f) { if (!dl->own_busy && !dl->seq_err_cond) { - LOGP(DLLAPD, LOGL_INFO, "REJ poll " - "command in timer recovery " - "state and not in own busy " - "condition received, so we " - "respond with RR final " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "REJ poll command in timer recovery " + "state and not in own busy condition received, so we " + "respond with RR final response\n"); lapd_send_rr(lctx, 1, 0); /* NOTE: In case of sequence error * condition, the REJ frame has been @@ -1459,18 +1413,14 @@ * here */ } else if (dl->own_busy) { - LOGP(DLLAPD, LOGL_INFO, "REJ poll " - "command in timer recovery " - "state and in own busy " - "condition received, so we " - "respond with RNR final " - "response (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "REJ poll command in timer recovery " + "state and in own busy condition received, so we " + "respond with RNR final response\n"); lapd_send_rnr(lctx, 1, 0); } } else - LOGP(DLLAPD, LOGL_INFO, "REJ response or not " - "polling command in timer recovery " - "state received (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "REJ response or not polling command in " + "timer recovery state received\n"); } /* FIXME: 5.5.4.2 2) */ @@ -1481,8 +1431,7 @@ break; default: /* G.3.1 */ - LOGP(DLLAPD, LOGL_ERROR, - "Supervisory frame not allowed. (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "Supervisory frame not allowed\n"); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -1500,13 +1449,13 @@ int length = lctx->length; int rc; - LOGP(DLLAPD, LOGL_INFO, "I received in state %s on SAPI(%u) (dl=%p)\n", - lapd_state_name(dl->state), lctx->sapi, dl); + LOGDL(dl, LOGL_INFO, "I received in state %s on SAPI(%u)\n", + lapd_state_name(dl->state), lctx->sapi); /* G.2.2 Wrong value of the C/R bit */ if (lctx->cr == dl->cr.rem2loc.resp) { - LOGP(DLLAPD, LOGL_ERROR, - "I frame response not allowed (dl=%p state %s)\n", dl, lapd_state_name(dl->state)); + LOGDL(dl, LOGL_ERROR, "I frame response not allowed (state %s)\n", + lapd_state_name(dl->state)); msgb_free(msg); mdl_error(MDL_CAUSE_FRM_UNIMPL, lctx); return -EINVAL; @@ -1517,8 +1466,8 @@ * to a numerical value L>N201 or L=0, an MDL-ERROR-INDICATION * primitive with cause "I frame with incorrect length" * is sent to the mobile management entity. */ - LOGP(DLLAPD, LOGL_ERROR, - "I frame length not allowed (dl=%p state %s)\n", dl, lapd_state_name(dl->state)); + LOGDL(dl, LOGL_ERROR, "I frame length not allowed (state %s)\n", + lapd_state_name(dl->state)); msgb_free(msg); mdl_error(MDL_CAUSE_IFRM_INC_LEN, lctx); return -EIO; @@ -1529,8 +1478,8 @@ * cause "I frame with incorrect use of M bit" is sent to the * mobile management entity. */ if (lctx->more && length < lctx->n201) { - LOGP(DLLAPD, LOGL_ERROR, - "I frame with M bit too short (dl=%p state %s)\n", dl, lapd_state_name(dl->state)); + LOGDL(dl, LOGL_ERROR, "I frame with M bit too short (state %s)\n", + lapd_state_name(dl->state)); msgb_free(msg); mdl_error(MDL_CAUSE_IFRM_INC_MBITS, lctx); return -EIO; @@ -1545,16 +1494,15 @@ /* fall though */ case LAPD_STATE_SABM_SENT: case LAPD_STATE_DISC_SENT: - LOGP(DLLAPD, LOGL_NOTICE, - "I frame ignored in state %s (dl=%p)\n", lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_NOTICE, "I frame ignored in state %s\n", lapd_state_name(dl->state)); msgb_free(msg); return 0; } /* 5.7.1: N(s) sequence error */ if (ns != dl->v_recv) { - LOGP(DLLAPD, LOGL_NOTICE, "N(S) sequence error: N(S)=%u, " - "V(R)=%u (dl=%p state %s)\n", ns, dl->v_recv, dl, lapd_state_name(dl->state)); + LOGDL(dl, LOGL_NOTICE, "N(S) sequence error: N(S)=%u, V(R)=%u (state %s)\n", + ns, dl->v_recv, lapd_state_name(dl->state)); /* discard data */ msgb_free(msg); if (dl->seq_err_cond != 1) { @@ -1588,8 +1536,7 @@ /* Increment receiver state */ dl->v_recv = inc_mod(dl->v_recv, dl->v_range); - LOGP(DLLAPD, LOGL_INFO, "incrementing V(R) to %u (dl=%p)\n", - dl->v_recv, dl); + LOGDL(dl, LOGL_INFO, "incrementing V(R) to %u\n", dl->v_recv); /* 5.5.3.1: Acknowlege all transmitted frames up the the N(R)-1 */ lapd_acknowledge(lctx); /* V(A) is also set here */ @@ -1598,8 +1545,7 @@ if (!dl->own_busy) { /* if the frame carries a complete segment */ if (!lctx->more && !dl->rcv_buffer) { - LOGP(DLLAPD, LOGL_INFO, - "message in single I frame (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "message in single I frame\n"); /* send a DATA INDICATION to L3 */ msgb_trim(msg, length); rc = send_dl_l3(PRIM_DL_DATA, PRIM_OP_INDICATION, lctx, @@ -1607,50 +1553,43 @@ } else { /* create rcv_buffer */ if (!dl->rcv_buffer) { - LOGP(DLLAPD, LOGL_INFO, "message in multiple " - "I frames (first message) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "message in multiple I frames (first message)\n"); dl->rcv_buffer = lapd_msgb_alloc(dl->maxf, "LAPD RX"); dl->rcv_buffer->l3h = dl->rcv_buffer->data; } /* concat. rcv_buffer */ if (msgb_l3len(dl->rcv_buffer) + length > dl->maxf) { - LOGP(DLLAPD, LOGL_NOTICE, "Received frame " - "overflow! (dl=%p)\n", dl); + LOGDL(dl, LOGL_NOTICE, "Received frame overflow!\n"); } else { memcpy(msgb_put(dl->rcv_buffer, length), msg->l3h, length); } /* if the last segment was received */ if (!lctx->more) { - LOGP(DLLAPD, LOGL_INFO, "message in multiple " - "I frames (last message) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "message in multiple I frames (last message)\n"); rc = send_dl_l3(PRIM_DL_DATA, PRIM_OP_INDICATION, lctx, dl->rcv_buffer); dl->rcv_buffer = NULL; } else - LOGP(DLLAPD, LOGL_INFO, "message in multiple " - "I frames (next message) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "message in multiple I frames (next message)\n"); msgb_free(msg); } } else - LOGP(DLLAPD, LOGL_INFO, "I frame ignored during own receiver " - "busy condition\n"); + LOGDL(dl, LOGL_INFO, "I frame ignored during own receiver busy condition\n"); /* Check for P bit */ if (lctx->p_f) { /* 5.5.2.1 */ /* check if we are not in own receiver busy */ if (!dl->own_busy) { - LOGP(DLLAPD, LOGL_INFO, - "we are not busy, send RR (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "we are not busy, send RR\n"); /* Send RR with F=1 */ rc = lapd_send_rr(lctx, 1, 0); } else { - LOGP(DLLAPD, LOGL_INFO, - "we are busy, send RNR (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "we are busy, send RNR\n"); /* Send RNR with F=1 */ rc = lapd_send_rnr(lctx, 1, 0); } @@ -1667,17 +1606,15 @@ rc = dl->update_pending_frames(lctx); if (rc) { - LOGP(DLLAPD, LOGL_INFO, "we are not busy and " - "have no pending data, send RR (dl=%p)\n", - dl); + LOGDL(dl, LOGL_INFO, "we are not busy and have no pending data, " + "send RR\n"); /* Send RR with F=0 */ return lapd_send_rr(lctx, 0, 0); } /* all I or one RR is sent, we are done */ return 0; } else { - LOGP(DLLAPD, LOGL_INFO, - "we are busy, send RNR (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "we are busy, send RNR\n"); /* Send RNR with F=0 */ rc = lapd_send_rnr(lctx, 0, 0); } @@ -1705,8 +1642,7 @@ rc = lapd_rx_i(msg, lctx); break; default: - LOGP(DLLAPD, LOGL_NOTICE, - "unknown LAPD format (dl=%p)\n", lctx->dl); + LOGDL(lctx->dl, LOGL_NOTICE, "unknown LAPD format\n"); msgb_free(msg); rc = -EINVAL; } @@ -1744,11 +1680,9 @@ struct lapd_msg_ctx nctx; if (msg->len) - LOGP(DLLAPD, LOGL_INFO, "perform establishment with content " - "(SABM) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "perform establishment with content (SABM)\n"); else - LOGP(DLLAPD, LOGL_INFO, - "perform normal establishm. (SABM), (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "perform normal establishm. (SABM)\n"); /* Flush send-queue */ /* Clear send-buffer */ @@ -1803,15 +1737,12 @@ struct msgb *msg = dp->oph.msg; if (msgb_l3len(msg) == 0) { - LOGP(DLLAPD, LOGL_ERROR, - "writing an empty message is not possible. (dl=%p)\n", dl); + LOGDL(dl, LOGL_ERROR, "writing an empty message is not possible\n"); msgb_free(msg); return -1; } - LOGP(DLLAPD, LOGL_INFO, - "writing message to send-queue: l3len: %d (dl=%p)\n", - msgb_l3len(msg), dl); + LOGDL(dl, LOGL_INFO, "writing message to send-queue: l3len: %d\n", msgb_l3len(msg)); /* Write data into the send queue */ msgb_enqueue(&dl->send_queue, msg); @@ -1834,19 +1765,17 @@ struct lapd_msg_ctx nctx; - LOGP(DLLAPD, LOGL_INFO, - "%s() called from line %d (dl=%p)\n", __func__, line, dl); + LOGDL(dl, LOGL_INFO, "%s() called from line %d\n", __func__, line); next_frame: if (dl->peer_busy) { - LOGP(DLLAPD, LOGL_INFO, "peer busy, not sending (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "peer busy, not sending\n"); return rc; } if (dl->state == LAPD_STATE_TIMER_RECOV) { - LOGP(DLLAPD, LOGL_INFO, - "timer recovery, not sending (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "timer recovery, not sending\n"); return rc; } @@ -1857,9 +1786,8 @@ * of the error recovery procedures as described in subclauses 5.5.4 and * 5.5.7. */ if (dl->v_send == add_mod(dl->v_ack, k, dl->v_range)) { - LOGP(DLLAPD, LOGL_INFO, "k frames outstanding, not sending " - "more (k=%u V(S)=%u V(A)=%u) (dl=%p)\n", k, dl->v_send, - dl->v_ack, dl); + LOGDL(dl, LOGL_INFO, "k frames outstanding, not sending more " + "(k=%u V(S)=%u V(A)=%u)\n", k, dl->v_send, dl->v_ack); return rc; } @@ -1875,8 +1803,7 @@ /* No more data to be sent */ if (!dl->send_buffer) return rc; - LOGP(DLLAPD, LOGL_INFO, "get message from " - "send-queue (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "get message from send-queue\n"); } /* How much is left in the send-buffer? */ @@ -1885,10 +1812,9 @@ length = left; if (length > lctx->n201) length = lctx->n201; - LOGP(DLLAPD, LOGL_INFO, "msg-len %d sent %d left %d N201 %d " - "length %d first byte %02x (dl=%p)\n", - msgb_l3len(dl->send_buffer), dl->send_out, left, - lctx->n201, length, dl->send_buffer->l3h[0], dl); + LOGDL(dl, LOGL_INFO, "msg-len %d sent %d left %d N201 %d length %d " + "first byte %02x\n", msgb_l3len(dl->send_buffer), dl->send_out, left, + lctx->n201, length, dl->send_buffer->l3h[0]); /* If message in send-buffer is completely sent */ if (left == 0) { msgb_free(dl->send_buffer); @@ -1896,8 +1822,8 @@ goto next_message; } - LOGP(DLLAPD, LOGL_INFO, "send I frame %sV(S)=%d (dl=%p)\n", - (left > length) ? "segment " : "", dl->v_send, dl); + LOGDL(dl, LOGL_INFO, "send I frame %sV(S)=%d\n", + (left > length) ? "segment " : "", dl->v_send); /* Create I frame (segment) and transmit-buffer content */ msg = lapd_msgb_alloc(length, "LAPD I"); @@ -1929,8 +1855,7 @@ /* Add length to track how much is already in the tx buffer */ dl->send_out += length; } else { - LOGP(DLLAPD, LOGL_INFO, "resend I frame from tx buffer " - "V(S)=%d (dl=%p)\n", dl->v_send, dl); + LOGDL(dl, LOGL_INFO, "resend I frame from tx buffer V(S)=%d\n", dl->v_send); /* Create I frame (segment) from tx_hist */ length = dl->tx_hist[h].msg->len; @@ -1978,16 +1903,15 @@ struct lapd_datalink *dl = lctx->dl; struct msgb *msg = dp->oph.msg; - LOGP(DLLAPD, LOGL_INFO, "perform suspension (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "perform suspension\n"); /* put back the send-buffer to the send-queue (first position) */ if (dl->send_buffer) { - LOGP(DLLAPD, LOGL_INFO, "put frame in sendbuffer back to " - "queue (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "put frame in sendbuffer back to queue\n"); llist_add(&dl->send_buffer->list, &dl->send_queue); dl->send_buffer = NULL; } else - LOGP(DLLAPD, LOGL_INFO, "no frame in sendbuffer (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "no frame in sendbuffer\n"); /* Clear transmit buffer, but keep send buffer */ lapd_dl_flush_tx(dl); @@ -2007,9 +1931,7 @@ struct msgb *msg = dp->oph.msg; struct lapd_msg_ctx nctx; - LOGP(DLLAPD, LOGL_INFO, - "perform re-establishment (SABM) length=%d (dl=%p)\n", - msg->len, dl); + LOGDL(dl, LOGL_INFO, "perform re-establishment (SABM) length=%d\n", msg->len); /* be sure that history is empty */ lapd_dl_flush_hist(dl); @@ -2079,7 +2001,7 @@ /* local release */ if (dp->u.rel_req.mode) { - LOGP(DLLAPD, LOGL_INFO, "perform local release (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "perform local release\n"); msgb_free(msg); /* stop Timer T200 */ lapd_stop_t200(dl); @@ -2099,7 +2021,7 @@ /* flush tx_hist */ lapd_dl_flush_hist(dl); - LOGP(DLLAPD, LOGL_INFO, "perform normal release (DISC) (dl=%p)\n", dl); + LOGDL(dl, LOGL_INFO, "perform normal release (DISC)\n"); /* Push LAPD header on msgb */ /* assemble message */ @@ -2224,22 +2146,20 @@ } } if (!supported) { - LOGP(DLLAPD, LOGL_NOTICE, - "Message %u/%u unsupported. (dl=%p)\n", dp->oph.primitive, - dp->oph.operation, dl); + LOGDL(dl, LOGL_NOTICE, "Message %u/%u unsupported\n", + dp->oph.primitive, dp->oph.operation); msgb_free(msg); return 0; } if (i == L2DOWNSLLEN) { - LOGP(DLLAPD, LOGL_NOTICE, "Message %u/%u unhandled at this " - "state %s. (dl=%p)\n", dp->oph.primitive, - dp->oph.operation, lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_NOTICE, "Message %u/%u unhandled at this state %s\n", + dp->oph.primitive, dp->oph.operation, lapd_state_name(dl->state)); msgb_free(msg); return 0; } - LOGP(DLLAPD, LOGL_INFO, "Message %s received in state %s (dl=%p)\n", - l2downstatelist[i].name, lapd_state_name(dl->state), dl); + LOGDL(dl, LOGL_INFO, "Message %s received in state %s\n", + l2downstatelist[i].name, lapd_state_name(dl->state)); rc = l2downstatelist[i].rout(dp, lctx); diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c index 8084029..e5fbaf0 100644 --- a/src/gsm/lapdm.c +++ b/src/gsm/lapdm.c @@ -126,17 +126,20 @@ { 0, NULL } }; +extern void *tall_lapd_ctx; + static int lapdm_send_ph_data_req(struct lapd_msg_ctx *lctx, struct msgb *msg); static int send_rslms_dlsap(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx); static int update_pending_frames(struct lapd_msg_ctx *lctx); static void lapdm_dl_init(struct lapdm_datalink *dl, - struct lapdm_entity *entity, int t200_ms, uint32_t n200) + struct lapdm_entity *entity, int t200_ms, uint32_t n200, + const char *name) { memset(dl, 0, sizeof(*dl)); dl->entity = entity; - lapd_dl_init(&dl->dl, 1, 8, 251); /* Section 5.8.5 of TS 04.06 */ + lapd_dl_init2(&dl->dl, 1, 8, 251, name); /* Section 5.8.5 of TS 04.06 */ dl->dl.reestablish = 0; /* GSM uses no reestablish */ dl->dl.send_ph_data_req = lapdm_send_ph_data_req; dl->dl.send_dlsap = send_rslms_dlsap; @@ -165,7 +168,7 @@ for (i = 0; i < ARRAY_SIZE(t200_ms_sapi_arr); i++) t200_ms_sapi_arr[i] = t200 * 1000; - return lapdm_entity_init2(le, mode, t200_ms_sapi_arr, N200); + return lapdm_entity_init3(le, mode, t200_ms_sapi_arr, N200, NULL); } /*! initialize a LAPDm entity and all datalinks inside @@ -177,10 +180,29 @@ void lapdm_entity_init2(struct lapdm_entity *le, enum lapdm_mode mode, const int *t200_ms, int n200) { + lapdm_entity_init3(le, mode, t200_ms, n200, NULL); +} + +/*! initialize a LAPDm entity and all datalinks inside + * \param[in] le LAPDm entity + * \param[in] mode lapdm_mode (BTS/MS) + * \param[in] t200_ms per-SAPI array of T200 re-transmission timer in milli-seconds + * \param[in] n200 N200 re-transmisison count + * \param[in] name human-readable name (will be copied internally + extended with SAPI) + */ +void lapdm_entity_init3(struct lapdm_entity *le, enum lapdm_mode mode, + const int *t200_ms, int n200, const char *name_pfx) +{ unsigned int i; - for (i = 0; i < ARRAY_SIZE(le->datalink); i++) - lapdm_dl_init(&le->datalink[i], le, t200_ms[i], n200); + for (i = 0; i < ARRAY_SIZE(le->datalink); i++) { + char name[256]; + if (name_pfx) { + snprintf(name, sizeof(name), "%s[%s]", name_pfx, i == 0 ? "0" : "3"); + lapdm_dl_init(&le->datalink[i], le, t200_ms[i], n200, name); + } else + lapdm_dl_init(&le->datalink[i], le, t200_ms[i], n200, NULL); + } lapdm_entity_set_mode(le, mode); } @@ -213,7 +235,7 @@ const int t200_ms_dcch[_NR_DL_SAPI] = { 1000, 1000 }; const int t200_ms_acch[_NR_DL_SAPI] = { 2000, 2000 }; - lapdm_channel_init2(lc, mode, t200_ms_dcch, t200_ms_acch, GSM_LCHAN_SDCCH); + lapdm_channel_init3(lc, mode, t200_ms_dcch, t200_ms_acch, GSM_LCHAN_SDCCH, NULL); } /*! initialize a LAPDm channel and all its channels @@ -226,14 +248,42 @@ int lapdm_channel_init2(struct lapdm_channel *lc, enum lapdm_mode mode, const int *t200_ms_dcch, const int *t200_ms_acch, enum gsm_chan_t chan_t) { + return lapdm_channel_init3(lc, mode, t200_ms_dcch, t200_ms_acch, chan_t, NULL); +} + +/*! initialize a LAPDm channel and all its channels + * \param[in] lc \ref lapdm_channel to be initialized + * \param[in] mode \ref lapdm_mode (BTS/MS) + * \param[in] t200_ms_dcch per-SAPI array of T200 in milli-seconds for DCCH + * \param[in] t200_ms_acch per-SAPI array of T200 in milli-seconds for SACCH + * \param[in] chan_t GSM channel type (to correctly set N200) + * \parma[in] name_pfx human-readable name (copied by function + extended with ACCH/DCCH) + */ +int lapdm_channel_init3(struct lapdm_channel *lc, enum lapdm_mode mode, + const int *t200_ms_dcch, const int *t200_ms_acch, enum gsm_chan_t chan_t, + const char *name_pfx) +{ int n200_dcch = get_n200_dcch(chan_t); + char namebuf[256]; + char *name = NULL; + if (n200_dcch < 0) return -EINVAL; - lapdm_entity_init2(&lc->lapdm_acch, mode, t200_ms_acch, N200_TR_SACCH); + osmo_talloc_replace_string(tall_lapd_ctx, &lc->name, name_pfx); + + if (name_pfx) { + snprintf(namebuf, sizeof(namebuf), "%s[ACCH]", name_pfx); + name = namebuf; + } + lapdm_entity_init3(&lc->lapdm_acch, mode, t200_ms_acch, N200_TR_SACCH, name); lc->lapdm_acch.lapdm_ch = lc; - lapdm_entity_init2(&lc->lapdm_dcch, mode, t200_ms_dcch, n200_dcch); + if (name_pfx) { + snprintf(namebuf, sizeof(namebuf), "%s[DCCH]", name_pfx); + name = namebuf; + } + lapdm_entity_init3(&lc->lapdm_dcch, mode, t200_ms_dcch, n200_dcch, name); lc->lapdm_dcch.lapdm_ch = lc; return 0; @@ -478,7 +528,7 @@ { struct msgb *msg; - LOGP(DLLAPD, LOGL_NOTICE, "sending MDL-ERROR-IND %d\n", cause); + LOGDL(&mctx->dl->dl, LOGL_NOTICE, "sending MDL-ERROR-IND %d\n", cause); msg = rsl_rll_simple(RSL_MT_ERROR_IND, mctx->chan_nr, mctx->link_id, 0); msgb_tlv_put(msg, RSL_IE_RLM_CAUSE, 1, &cause); return rslms_sendmsg(msg, mctx->dl->entity); @@ -523,7 +573,7 @@ } if (!rll_msg) { - LOGP(DLLAPD, LOGL_ERROR, "Unsupported op %d, prim %d. Please " + LOGDL(dl, LOGL_ERROR, "Unsupported op %d, prim %d. Please " "fix!\n", dp->oph.primitive, dp->oph.operation); return -EINVAL; } @@ -592,7 +642,7 @@ LAPDm_CTRL_PF_BIT(msg->l2h[1])); rc = 0; } else if (LAPDm_CTRL_is_S(msg->l2h[1])) { - LOGP(DLLAPD, LOGL_ERROR, "Supervisory frame in queue, this shouldn't happen\n"); + LOGDL(dl, LOGL_ERROR, "Supervisory frame in queue, this shouldn't happen\n"); } } @@ -690,8 +740,7 @@ mctx.dl = lapdm_datalink_for_sapi(le, sapi); /* G.2.1 No action on frames containing an unallocated SAPI. */ if (!mctx.dl) { - LOGP(DLLAPD, LOGL_NOTICE, "Received frame for unsupported " - "SAPI %d!\n", sapi); + LOGP(DLLAPD, LOGL_NOTICE, "Received frame for unsupported SAPI %d!\n", sapi); msgb_free(msg); return -EIO; } @@ -705,8 +754,7 @@ mctx.link_id |= LAPDm_ADDR_SAPI(msg->l2h[0]); /* G.2.3 EA bit set to "0" is not allowed in GSM */ if (!LAPDm_ADDR_EA(msg->l2h[0])) { - LOGP(DLLAPD, LOGL_NOTICE, "EA bit 0 is not allowed in " - "GSM\n"); + LOGDL(lctx.dl, LOGL_NOTICE, "EA bit 0 is not allowed in GSM\n"); msgb_free(msg); rsl_rll_error(RLL_CAUSE_FRM_UNIMPL, &mctx); return -EINVAL; @@ -737,8 +785,7 @@ /* 5.3.3 UI frames with invalid SAPI values shall be * discarded */ - LOGP(DLLAPD, LOGL_INFO, "sapi=%u (discarding)\n", - lctx.sapi); + LOGDL(lctx.dl, LOGL_INFO, "sapi=%u (discarding)\n", lctx.sapi); msgb_free(msg); return 0; } @@ -755,8 +802,7 @@ * MDL-ERROR-INDICATION primitive with cause * "frame not implemented" is sent to the * mobile management entity. */ - LOGP(DLLAPD, LOGL_NOTICE, "we don't support " - "multi-octet length\n"); + LOGDL(lctx.dl, LOGL_NOTICE, "we don't support multi-octet length\n"); msgb_free(msg); rsl_rll_error(RLL_CAUSE_FRM_UNIMPL, &mctx); return -EINVAL; @@ -771,7 +817,7 @@ memcpy(&mctx.dl->mctx, &mctx, sizeof(mctx.dl->mctx)); rc =lapdm_rx_not_permitted(le, &lctx); if (rc > 0) { - LOGP(DLLAPD, LOGL_NOTICE, "received message not permitted\n"); + LOGDL(lctx.dl, LOGL_NOTICE, "received message not permitted\n"); msgb_free(msg); rsl_rll_error(rc, &mctx); return -EINVAL; @@ -930,7 +976,7 @@ if (sapi != 0) { /* According to clause 6, the contention resolution * procedure is only permitted with SAPI value 0 */ - LOGP(DLLAPD, LOGL_ERROR, "SAPI != 0 but contention" + LOGDL(&dl->dl, LOGL_ERROR, "SAPI != 0 but contention" "resolution (discarding)\n"); msgb_free(msg); return send_rll_simple(RSL_MT_REL_IND, &dl->mctx); @@ -946,7 +992,7 @@ /* check if the layer3 message length exceeds N201 */ if (length > n201) { - LOGP(DLLAPD, LOGL_ERROR, "frame too large: %d > N201(%d) " + LOGDL(&dl->dl, LOGL_ERROR, "frame too large: %d > N201(%d) " "(discarding)\n", length, n201); msgb_free(msg); return send_rll_simple(RSL_MT_REL_IND, &dl->mctx); @@ -975,7 +1021,7 @@ int length, ui_bts; if (!le) { - LOGP(DLLAPD, LOGL_ERROR, "lapdm_datalink without entity error\n"); + LOGDL(&dl->dl, LOGL_ERROR, "lapdm_datalink without entity error\n"); msgb_free(msg); return -EMLINK; } @@ -992,8 +1038,7 @@ le->tx_power = *TLVP_VAL(&tv, RSL_IE_MS_POWER); } if (!TLVP_PRESENT(&tv, RSL_IE_L3_INFO)) { - LOGP(DLLAPD, LOGL_ERROR, "unit data request without message " - "error\n"); + LOGDL(&dl->dl, LOGL_ERROR, "unit data request without message error\n"); msgb_free(msg); return -EINVAL; } @@ -1001,15 +1046,14 @@ length = TLVP_LEN(&tv, RSL_IE_L3_INFO); /* check if the layer3 message length exceeds N201 */ if (length + ((link_id & 0x40) ? 4 : 2) + !ui_bts > 23) { - LOGP(DLLAPD, LOGL_ERROR, "frame too large: %d > N201(%d) " + LOGDL(&dl->dl, LOGL_ERROR, "frame too large: %d > N201(%d) " "(discarding)\n", length, ((link_id & 0x40) ? 18 : 20) + ui_bts); msgb_free(msg); return -EIO; } - LOGP(DLLAPD, LOGL_INFO, "sending unit data (tx_power=%d, ta=%d)\n", - le->tx_power, le->ta); + LOGDL(&dl->dl, LOGL_INFO, "sending unit data (tx_power=%d, ta=%d)\n", le->tx_power, le->ta); /* Remove RLL header from msgb and set length to L3-info */ msgb_pull_to_l3(msg); @@ -1041,8 +1085,7 @@ rsl_tlv_parse(&tv, rllh->data, msgb_l2len(msg)-sizeof(*rllh)); if (!TLVP_PRESENT(&tv, RSL_IE_L3_INFO)) { - LOGP(DLLAPD, LOGL_ERROR, "data request without message " - "error\n"); + LOGDL(&dl->dl, LOGL_ERROR, "data request without message error\n"); msgb_free(msg); return -EINVAL; } @@ -1068,7 +1111,7 @@ struct osmo_dlsap_prim dp; if (sapi != 0) { - LOGP(DLLAPD, LOGL_ERROR, "SAPI != 0 while suspending\n"); + LOGDL(&dl->dl, LOGL_ERROR, "SAPI != 0 while suspending\n"); msgb_free(msg); return -EINVAL; } @@ -1098,7 +1141,7 @@ rsl_tlv_parse(&tv, rllh->data, msgb_l2len(msg)-sizeof(*rllh)); if (!TLVP_PRESENT(&tv, RSL_IE_L3_INFO)) { - LOGP(DLLAPD, LOGL_ERROR, "resume without message error\n"); + LOGDL(&dl->dl, LOGL_ERROR, "resume without message error\n"); msgb_free(msg); return send_rll_simple(RSL_MT_REL_IND, &dl->mctx); } @@ -1235,7 +1278,7 @@ case RSL_MT_SUSP_REQ: case RSL_MT_RES_REQ: case RSL_MT_RECON_REQ: - LOGP(DLLAPD, LOGL_NOTICE, "(%p) RLL Message '%s' unsupported in BTS side LAPDm\n", + LOGP(DLLAPD, LOGL_NOTICE, "(%s) RLL Message '%s' unsupported in BTS side LAPDm\n", lc->name, rsl_msg_name(msg_type)); msgb_free(msg); return -EINVAL; @@ -1262,14 +1305,14 @@ /* This is triggered in abnormal error conditions where * set_lapdm_context() was not called for the channel earlier. */ if (!dl->dl.lctx.dl) { - LOGP(DLLAPD, LOGL_NOTICE, "(%p) RLL Message '%s' received without LAPDm context. (sapi %d)\n", + LOGP(DLLAPD, LOGL_NOTICE, "(%s) RLL Message '%s' received without LAPDm context. (sapi %d)\n", lc->name, rsl_msg_name(msg_type), sapi); msgb_free(msg); return -EINVAL; } break; default: - LOGP(DLLAPD, LOGL_INFO, "(%p) RLL Message '%s' received. (sapi %d)\n", + LOGP(DLLAPD, LOGL_INFO, "(%s) RLL Message '%s' received. (sapi %d)\n", lc->name, rsl_msg_name(msg_type), sapi); } diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 2000e6c..2837aa5 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -456,6 +456,8 @@ lapd_dl_exit; lapd_dl_init; +lapd_dl_init2; +lapd_dl_set_name; lapd_dl_reset; lapd_msgb_alloc; lapd_ph_data_ind; @@ -466,6 +468,7 @@ lapdm_channel_exit; lapdm_channel_init; lapdm_channel_init2; +lapdm_channel_init3; lapdm_channel_reset; lapdm_channel_set_flags; lapdm_channel_set_l1; @@ -475,6 +478,7 @@ lapdm_entity_exit; lapdm_entity_init; lapdm_entity_init2; +lapdm_entity_init3; lapdm_entity_reset; lapdm_entity_set_flags; lapdm_entity_set_mode; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie6742843fff809edffcac24c4dce4edf66bc71be Gerrit-Change-Number: 18002 Gerrit-PatchSet: 9 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 Jun 8 19:41:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 19:41:27 +0000 Subject: Change in libosmocore[master]: lapd_core: Fix log line being about LAPD and not LAPDm In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18711 ) Change subject: lapd_core: Fix log line being about LAPD and not LAPDm ...................................................................... lapd_core: Fix log line being about LAPD and not LAPDm Change-Id: I92c8a9752e88164eedffb9f9a081288458f6eadb --- M src/gsm/lapd_core.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gsm/lapd_core.c b/src/gsm/lapd_core.c index 2477222..c77b663 100644 --- a/src/gsm/lapd_core.c +++ b/src/gsm/lapd_core.c @@ -338,7 +338,7 @@ /* reset to IDLE state */ void lapd_dl_reset(struct lapd_datalink *dl) { - LOGDL(dl, LOGL_INFO, "Resetting LAPDm instance\n"); + LOGDL(dl, LOGL_INFO, "Resetting LAPD instance\n"); /* enter idle state (and remove eventual cont_res) */ lapd_dl_newstate(dl, LAPD_STATE_IDLE); /* flush buffer */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I92c8a9752e88164eedffb9f9a081288458f6eadb Gerrit-Change-Number: 18711 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 Jun 8 19:49:48 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 8 Jun 2020 19:49:48 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 6: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18507/6/include/osmocom/gsm/gsm48.h File include/osmocom/gsm/gsm48.h: https://gerrit.osmocom.org/c/libosmocore/+/18507/6/include/osmocom/gsm/gsm48.h at 94 PS6, Line 94: char *osmo_mobile_identity_name_c(void *ctx, const struct osmo_mobile_identity *mi); I'm noticing that I again did the "_name" thing. There has been a discussion about this kind of API before with the result that it should be called "_to_str" instead. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 08 Jun 2020 19:49:48 +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 Jun 8 21:20:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 21:20:12 +0000 Subject: Change in osmo-bts[master]: Ensure we include lchan name in all LAPDm log lines In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18004 ) Change subject: Ensure we include lchan name in all LAPDm log lines ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17e3d4797ec71e31d0775330ae36d2e1fd70423f Gerrit-Change-Number: 18004 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 21:20: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 Jun 8 21:20:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 21:20:16 +0000 Subject: Change in osmo-bts[master]: Ensure we include lchan name in all LAPDm log lines In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18004 ) Change subject: Ensure we include lchan name in all LAPDm log lines ...................................................................... Ensure we include lchan name in all LAPDm log lines This makes use of the newly-introduced lapdm_channel_init3() API, which provides the user (BTS in this case) to provide a human-readable string identifier for each LAPDm channel. This identifier is subsequently used in all related log lines to provide context. This means we will now get context information about which specific SAPI in which sub-channel (ACCH/DCCH) on which lchan/ts/trx/bts a given message originated from. Example: DLLAPD <0011> lapd_core.c:829 ((bts=0,trx=0,ts=0,ss=0)[DCCH][0]) SABM(E) received in state LAPD_STATE_IDLE Change-Id: I17e3d4797ec71e31d0775330ae36d2e1fd70423f Depends: libosmocore.git Ie6742843fff809edffcac24c4dce4edf66bc71be Related: OS#1938 --- A TODO-RELEASE M src/common/bts.c 2 files changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE new file mode 100644 index 0000000..1dd5e79 --- /dev/null +++ b/TODO-RELEASE @@ -0,0 +1 @@ +* update libosmocore dependency to > 1.3.x for lapdm_channel_init3() diff --git a/src/common/bts.c b/src/common/bts.c index 2200615..9710a2c 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -429,7 +429,8 @@ "Setting T200 D0=%u, D3=%u, S0=%u, S3=%u (all in ms)\n", t200_ms_dcch[DL_SAPI0], t200_ms_dcch[DL_SAPI3], t200_ms_acch[DL_SAPI0], t200_ms_acch[DL_SAPI3]); - lapdm_channel_init2(lc, LAPDM_MODE_BTS, t200_ms_dcch, t200_ms_acch, lchan->type); + lapdm_channel_init3(lc, LAPDM_MODE_BTS, t200_ms_dcch, t200_ms_acch, lchan->type, + gsm_lchan_name(lchan)); lapdm_channel_set_flags(lc, LAPDM_ENT_F_POLLING_ONLY); lapdm_channel_set_l1(lc, NULL, lchan); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17e3d4797ec71e31d0775330ae36d2e1fd70423f Gerrit-Change-Number: 18004 Gerrit-PatchSet: 3 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 Mon Jun 8 21:21:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 21:21:24 +0000 Subject: Change in osmo-sgsn[master]: Fix memory leak when SNDCP de-fragmentation is used In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 ) Change subject: Fix memory leak when SNDCP de-fragmentation is used ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1185b1aa99bb167d616eb469e5445e4ed5ad949d Gerrit-Change-Number: 18733 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 08 Jun 2020 21: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 Jun 8 21:21:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 8 Jun 2020 21:21:26 +0000 Subject: Change in osmo-sgsn[master]: Fix memory leak when SNDCP de-fragmentation is used In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 ) Change subject: Fix memory leak when SNDCP de-fragmentation is used ...................................................................... Fix memory leak when SNDCP de-fragmentation is used As msgb ownership is not passed along, we need to free the message buffer memory we allocate in defrag_segments() after calling sgsn_rx_sndcp_ud_ind(). Change-Id: I1185b1aa99bb167d616eb469e5445e4ed5ad949d Closes: OS#4603 --- M src/sgsn/gprs_sndcp.c 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/sgsn/gprs_sndcp.c b/src/sgsn/gprs_sndcp.c index 01be57e..7ce6960 100644 --- a/src/sgsn/gprs_sndcp.c +++ b/src/sgsn/gprs_sndcp.c @@ -366,6 +366,10 @@ rc = sgsn_rx_sndcp_ud_ind(&sne->ra_id, sne->lle->llme->tlli, sne->nsapi, msg, npdu_len, expnd); + /* we must free the memory we allocated above; ownership is not transferred + * downwards in the call above */ + msgb_free(msg); + if (any_pcomp_or_dcomp_active(sgsn)) talloc_free(expnd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1185b1aa99bb167d616eb469e5445e4ed5ad949d Gerrit-Change-Number: 18733 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 8 21:24:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 21:24:28 +0000 Subject: Change in osmo-bts[master]: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18734 ) Change subject: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover ...................................................................... scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Related: OS#4592 --- M src/common/scheduler.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/18734/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 5b398d1..97b2856 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1380,6 +1380,10 @@ /* handle NOPE indications */ if (bi->flags & TRX_BI_F_NOPE_IND) { + /* No applicable if we are waiting for handover RACH. */ + if (l1cs->ho_rach_detect) + return 0; + switch (chan) { case TRXC_PDTCH: case TRXC_PTCCH: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Gerrit-Change-Number: 18734 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 Jun 8 21:45:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 8 Jun 2020 21:45:29 +0000 Subject: Change in osmo-bts[master]: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18734 ) Change subject: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Gerrit-Change-Number: 18734 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 08 Jun 2020 21:45: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 Tue Jun 9 01:34:52 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 09 Jun 2020 01:34:52 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5edee74049d23_642f2b139387c5e03355ea@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 147s] [1920/2112] rm -f src/pgw/libpgw.a && gcc-ar csrD src/pgw/libpgw.a 'src/pgw/src at pgw@@pgw at sta/pgw-ipfw.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-init.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-event.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-sm.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-gtp-path.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-s5c-build.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-s5c-handler.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-fd-path.c.o' 'src/pgw/src at pgw@@pgw at sta/pgw-gx-handler.c.o' [ 147s] [1921/2112] cc -o src/pgw/open5gs-pgwd 'src/pgw/src at pgw@@open5gs-pgwd at exe/app-init.c.o' 'src/pgw/src at pgw@@open5gs-pgwd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pgw/libpgw.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/gtp/libogsgtp.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/diameter/gx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/gtp' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp [ 147s] [1922/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 147s] [1923/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 147s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 147s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 147s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 147s] ../src/udm/context.c: In function ?udm_ue_add?: [ 147s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 147s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 147s] ~~^ [ 147s] %d [ 147s] cc1: some warnings being treated as errors [ 148s] [1925/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 148s] [1926/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 148s] [1927/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 148s] [1928/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 148s] [1929/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 148s] ninja: build stopped: subcommand failed. [ 148s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 148s] make: *** [debian/rules:11: binary] Error 1 [ 148s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 148s] ### VM INTERACTION START ### [ 151s] [ 144.440666] sysrq: SysRq : Power Off [ 151s] [ 144.443192] reboot: Power down [ 151s] ### VM INTERACTION END ### [ 151s] [ 151s] sheep87 failed "build open5gs_1.2.5.20200609.dsc" at Tue Jun 9 01:34:42 UTC 2020. [ 151s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 9 01:35:43 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 09 Jun 2020 01:35:43 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5edee77c6266d_642f2b139387c5e0335725@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 189s] [1932/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/timer.c.o' -MF 'src/udm/udm at sta/timer.c.o.d' -o 'src/udm/udm at sta/timer.c.o' -c ../src/udm/timer.c [ 189s] [1933/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 189s] FAILED: src/udm/udm at sta/context.c.o [ 189s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 189s] ../src/udm/context.c: In function ?udm_ue_add?: [ 189s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 189s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 189s] ~~^ [ 189s] %d [ 189s] cc1: some warnings being treated as errors [ 189s] [1934/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 189s] [1935/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-build.c.o' -MF 'src/udm/udm at sta/nudr-build.c.o.d' -o 'src/udm/udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 189s] [1936/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/open5gs-nrfd at exe/app.c.o' 'src/nrf/open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 189s] [1937/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 189s] [1938/2112] cc -Isrc/pcrf/pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 189s] [1939/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 190s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 190s] ninja: build stopped: subcommand failed. [ 190s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 190s] debian/rules:11: recipe for target 'binary' failed [ 190s] make: *** [binary] Error 1 [ 190s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 190s] ### VM INTERACTION START ### [ 193s] [ 182.304829] sysrq: SysRq : Power Off [ 193s] [ 182.311223] reboot: Power down [ 193s] ### VM INTERACTION END ### [ 193s] [ 193s] lamb12 failed "build open5gs_1.2.5.20200609.dsc" at Tue Jun 9 01:35:30 UTC 2020. [ 193s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 9 01:38:17 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 09 Jun 2020 01:38:17 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5edee8126792e_642f2b139387c5e033633b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Unstable/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 218s] touch libfx2.lib [ 218s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 218s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 218s] Making all in src [ 218s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 218s] Making all in common [ 218s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 218s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 218s] /usr/bin/env: 'python': No such file or directory [ 218s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 218s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 218s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 218s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 218s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 218s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 218s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 218s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 218s] make[1]: *** [Makefile:554: all] Error 2 [ 218s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 218s] dh_auto_build: error: make -j1 returned exit code 2 [ 218s] make: *** [debian/rules:13: build] Error 25 [ 218s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 218s] ### VM INTERACTION START ### [ 221s] [ 208.451074] sysrq: SysRq : Power Off [ 221s] [ 208.457073] reboot: Power down [ 221s] ### VM INTERACTION END ### [ 221s] [ 221s] lamb11 failed "build libusrp_3.4.4.7.50ce.dsc" at Tue Jun 9 01:38:16 UTC 2020. [ 221s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 9 01:38:34 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 09 Jun 2020 01:38:34 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5edee831b77ce_642f2b139387c5e0336551@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/diameter/gx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/gtp' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/pgw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp [ 216s] [1923/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -c ../src/udr/nnrf-handler.c [ 216s] [1924/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 216s] [1925/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 216s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 216s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 216s] ../src/udm/context.c: In function ?udm_ue_add?: [ 216s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 216s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 216s] ~~^ [ 216s] %d [ 216s] cc1: some warnings being treated as errors [ 216s] [1926/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 216s] [1927/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 216s] [1928/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 216s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 216s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 216s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 216s] [1932/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 216s] ninja: build stopped: subcommand failed. [ 216s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 216s] make: *** [debian/rules:11: binary] Error 1 [ 216s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 216s] ### VM INTERACTION START ### [ 220s] [ 208.328591] sysrq: SysRq : Power Off [ 220s] [ 208.332831] reboot: Power down [ 220s] ### VM INTERACTION END ### [ 220s] [ 220s] lamb55 failed "build open5gs_1.2.5.20200609.dsc" at Tue Jun 9 01:38:25 UTC 2020. [ 220s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 9 01:46:00 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 09 Jun 2020 01:46:00 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5edee9ef77d56_642f2b139387c5e03390b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_Testing/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 663s] touch libfx2.lib [ 663s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 663s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 663s] Making all in src [ 663s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 663s] Making all in common [ 663s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 663s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 663s] /usr/bin/env: 'python': No such file or directory [ 663s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 663s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 663s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 663s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 663s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 663s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 663s] make[2]: *** [Makefile:635: all-recursive] Error 1 [ 663s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 663s] make[1]: *** [Makefile:554: all] Error 2 [ 663s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 663s] dh_auto_build: error: make -j1 returned exit code 2 [ 663s] make: *** [debian/rules:13: build] Error 25 [ 663s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 663s] ### VM INTERACTION START ### [ 666s] [ 607.110196] sysrq: SysRq : Power Off [ 666s] [ 607.123562] reboot: Power down [ 666s] ### VM INTERACTION END ### [ 666s] [ 666s] lamb04 failed "build libusrp_3.4.4.7.50ce.dsc" at Tue Jun 9 01:45:45 UTC 2020. [ 666s] -- 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 Jun 9 07:04:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:04:02 +0000 Subject: Change in osmo-e1-recorder[master]: fix "-Werror" build against latest libosmo-abis References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/18735 ) Change subject: fix "-Werror" build against latest libosmo-abis ...................................................................... fix "-Werror" build against latest libosmo-abis libosmo-abisrecently marked the 'out_cb' of the subchan_demux as 'const', which caused compiler warnings/errors. Related: libosmo-abis.git Ia082b9fddf03d02afd007825a1588a3ef0dbedae Change-Id: I0cf430980e50fa8094f0efc7642004fb5923c4c6 --- M src/e1cap_dump.c M src/flip_bits.c M src/flip_bits.h 3 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-recorder refs/changes/35/18735/1 diff --git a/src/e1cap_dump.c b/src/e1cap_dump.c index bcb4916..4cc8538 100644 --- a/src/e1cap_dump.c +++ b/src/e1cap_dump.c @@ -153,11 +153,12 @@ } -static void handle_data(struct osmo_e1cap_pkthdr *pkt, uint8_t *data, int len) +static void handle_data(struct osmo_e1cap_pkthdr *pkt, const uint8_t *idata, int len) { + uint8_t data[len]; struct timeval tv; - flip_buf_bits(data, len); + flip_buf_bits(data, idata, len); #if 0 /* filter out all-ff/all-fe/all-7f */ if (all_bytes_are(0xff, data, len) || @@ -193,7 +194,7 @@ } } -static int subch_demux_out_cb(struct subch_demux *dmx, int ch, uint8_t *data, +static int subch_demux_out_cb(struct subch_demux *dmx, int ch, const ubit_t *data, int len, void *c) { OSMO_ASSERT(ch == g_filter_subslot); diff --git a/src/flip_bits.c b/src/flip_bits.c index f33994e..6b382ed 100644 --- a/src/flip_bits.c +++ b/src/flip_bits.c @@ -16,14 +16,13 @@ } } -uint8_t *flip_buf_bits(uint8_t *buf, int len) +uint8_t *flip_buf_bits(uint8_t *out, const uint8_t *in, int len) { int i; - uint8_t *start = buf; for (i = 0 ; i < len; i++) { - buf[i] = flip_table[(uint8_t)buf[i]]; + out[i] = flip_table[(uint8_t)in[i]]; } - return start; + return out; } diff --git a/src/flip_bits.h b/src/flip_bits.h index 319a181..249e45b 100644 --- a/src/flip_bits.h +++ b/src/flip_bits.h @@ -1,4 +1,4 @@ #pragma once void init_flip_bits(void); -uint8_t *flip_buf_bits(uint8_t * buf , int len); +uint8_t *flip_buf_bits(uint8_t *out, const uint8_t *in, int len); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/18735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I0cf430980e50fa8094f0efc7642004fb5923c4c6 Gerrit-Change-Number: 18735 Gerrit-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 Jun 9 07:10:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:10:54 +0000 Subject: Change in libusrp[master]: debian/control: Add python as BuildRequires, as edit-gpif uses it References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libusrp/+/18736 ) Change subject: debian/control: Add python as BuildRequires, as edit-gpif uses it ...................................................................... debian/control: Add python as BuildRequires, as edit-gpif uses it This hopefully should fix the libusrp build errors on OBS for Debian testing + unstable. Change-Id: I6525e90b63c442b5ec69b4730e92f576694ea1a2 --- M debian/control 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libusrp refs/changes/36/18736/1 diff --git a/debian/control b/debian/control index 54bc7af..247a661 100644 --- a/debian/control +++ b/debian/control @@ -9,6 +9,7 @@ doxygen, libtool, pkg-config, + python, sdcc, libusb-1.0-0-dev, libboost-all-dev -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/18736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I6525e90b63c442b5ec69b4730e92f576694ea1a2 Gerrit-Change-Number: 18736 Gerrit-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 Jun 9 07:11:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:11:34 +0000 Subject: Change in libosmo-abis[master]: lapd: Always print context information when logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18003 ) Change subject: lapd: Always print context information when logging ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ib81a749ae24013b17caaf5fd64ccd9acbbc3ce08 Gerrit-Change-Number: 18003 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 09 Jun 2020 07:11:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:13:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:13:05 +0000 Subject: Change in osmo-e1-recorder[master]: fix "-Werror" build against latest libosmo-abis In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/18735 ) Change subject: fix "-Werror" build against latest libosmo-abis ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/18735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I0cf430980e50fa8094f0efc7642004fb5923c4c6 Gerrit-Change-Number: 18735 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:13: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 Jun 9 07:13:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:13:07 +0000 Subject: Change in osmo-e1-recorder[master]: fix "-Werror" build against latest libosmo-abis In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/18735 ) Change subject: fix "-Werror" build against latest libosmo-abis ...................................................................... fix "-Werror" build against latest libosmo-abis libosmo-abisrecently marked the 'out_cb' of the subchan_demux as 'const', which caused compiler warnings/errors. Related: libosmo-abis.git Ia082b9fddf03d02afd007825a1588a3ef0dbedae Change-Id: I0cf430980e50fa8094f0efc7642004fb5923c4c6 --- M src/e1cap_dump.c M src/flip_bits.c M src/flip_bits.h 3 files changed, 8 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/e1cap_dump.c b/src/e1cap_dump.c index bcb4916..4cc8538 100644 --- a/src/e1cap_dump.c +++ b/src/e1cap_dump.c @@ -153,11 +153,12 @@ } -static void handle_data(struct osmo_e1cap_pkthdr *pkt, uint8_t *data, int len) +static void handle_data(struct osmo_e1cap_pkthdr *pkt, const uint8_t *idata, int len) { + uint8_t data[len]; struct timeval tv; - flip_buf_bits(data, len); + flip_buf_bits(data, idata, len); #if 0 /* filter out all-ff/all-fe/all-7f */ if (all_bytes_are(0xff, data, len) || @@ -193,7 +194,7 @@ } } -static int subch_demux_out_cb(struct subch_demux *dmx, int ch, uint8_t *data, +static int subch_demux_out_cb(struct subch_demux *dmx, int ch, const ubit_t *data, int len, void *c) { OSMO_ASSERT(ch == g_filter_subslot); diff --git a/src/flip_bits.c b/src/flip_bits.c index f33994e..6b382ed 100644 --- a/src/flip_bits.c +++ b/src/flip_bits.c @@ -16,14 +16,13 @@ } } -uint8_t *flip_buf_bits(uint8_t *buf, int len) +uint8_t *flip_buf_bits(uint8_t *out, const uint8_t *in, int len) { int i; - uint8_t *start = buf; for (i = 0 ; i < len; i++) { - buf[i] = flip_table[(uint8_t)buf[i]]; + out[i] = flip_table[(uint8_t)in[i]]; } - return start; + return out; } diff --git a/src/flip_bits.h b/src/flip_bits.h index 319a181..249e45b 100644 --- a/src/flip_bits.h +++ b/src/flip_bits.h @@ -1,4 +1,4 @@ #pragma once void init_flip_bits(void); -uint8_t *flip_buf_bits(uint8_t * buf , int len); +uint8_t *flip_buf_bits(uint8_t *out, const uint8_t *in, int len); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/18735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I0cf430980e50fa8094f0efc7642004fb5923c4c6 Gerrit-Change-Number: 18735 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 Jun 9 07:16:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:16:51 +0000 Subject: Change in osmo-bts[master]: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18734 ) Change subject: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover ...................................................................... Patch Set 2: nice catch! I'm just not entirely sure if the way you fix it is ok. We introduced the NOPE indications to fix measurement reporting. The BTS produces measurement reports as soon as the channel is activated, *also* if we are waiting for access bursts early during HO-activated lchans. So Ideally, we'd make sure that the uplink measurement reports sent on RSL are corrrect in terms of e.g. the RSSI they report (using RSSI from all bursts received [I assume NOPE indications also carry RSSI?) while at the same time of course making sure that NOPE indications don't appear as an access burst. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Gerrit-Change-Number: 18734 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:16: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 Jun 9 07:17:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:17:09 +0000 Subject: Change in libosmo-abis[master]: lapd: Always print context information when logging In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18003 ) Change subject: lapd: Always print context information when logging ...................................................................... lapd: Always print context information when logging Historically, OpenBSC has primarily been used with setups that have a single E1 based BTS connected. This meant that an error message on the E1 LAPD implicitly has to be related to that single BTS. However, in more comprehensive setups, there may be many BTSs on many E1 lines with many signaling slots. At this point, it's important to know which line/timeslot/tei/sapi a given log message relates to. This patch introduces related log context. Change-Id: Ib81a749ae24013b17caaf5fd64ccd9acbbc3ce08 Requires: libosmocore.git Change-Id Ie6742843fff809edffcac24c4dce4edf66bc71be Related: OS#1938 --- M TODO-RELEASE M include/osmocom/abis/e1_input.h M include/osmocom/abis/lapd.h M src/e1_input.c M src/input/dahdi.c M src/input/e1d.c M src/input/lapd.c M src/input/misdn.c M src/input/unixsocket.c 9 files changed, 96 insertions(+), 50 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index e49df7a..85b16a7 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -9,3 +9,4 @@ #library what description / commit summary line libosmo-abis API change major: add parameter to struct e1inp_line libosmo-trau API change add new function osmo_rtp_socket_set_dscp() +libosmo-abis API change major: add parameter to struct lapd_instance diff --git a/include/osmocom/abis/e1_input.h b/include/osmocom/abis/e1_input.h index a38bab8..8230e44 100644 --- a/include/osmocom/abis/e1_input.h +++ b/include/osmocom/abis/e1_input.h @@ -285,6 +285,9 @@ void (*hdlc_recv_cb)(struct e1inp_ts *ts, struct msgb *msg)); +/* obtain a string identifier/name for the given timeslot */ +void e1inp_ts_name(char *out, size_t out_len, const struct e1inp_ts *ts); + /* Receive a packet from the E1 driver */ int e1inp_rx_ts(struct e1inp_ts *ts, struct msgb *msg, uint8_t tei, uint8_t sapi); diff --git a/include/osmocom/abis/lapd.h b/include/osmocom/abis/lapd.h index d618187..1e9ffe7 100644 --- a/include/osmocom/abis/lapd.h +++ b/include/osmocom/abis/lapd.h @@ -38,6 +38,7 @@ struct llist_head tei_list; /* list of TEI in this LAPD instance */ int pcap_fd; /* PCAP file descriptor */ + char *name; /* human-readable name */ }; enum lapd_recv_errors { @@ -63,7 +64,14 @@ void (*tx_cb)(struct msgb *msg, void *cbdata), void *tx_cbdata, void (*rx_cb)(struct osmo_dlsap_prim *odp, uint8_t tei, uint8_t sapi, void *rx_cbdata), void *rx_cbdata, - const struct lapd_profile *profile); + const struct lapd_profile *profile) +OSMO_DEPRECATED("Use lapd_instance_alloc2() instead"); + +struct lapd_instance *lapd_instance_alloc2(int network_side, + void (*tx_cb)(struct msgb *msg, void *cbdata), void *tx_cbdata, + void (*rx_cb)(struct osmo_dlsap_prim *odp, uint8_t tei, uint8_t sapi, + void *rx_cbdata), void *rx_cbdata, + const struct lapd_profile *profile, const char *name); /* In rare cases (e.g. Ericsson's lapd dialect), it may be necessary to * exchange the lapd profile on the fly. lapd_instance_set_profile() diff --git a/src/e1_input.c b/src/e1_input.c index b3341e7..7066acf 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -312,6 +312,14 @@ return 0; } +void e1inp_ts_name(char *out, size_t out_len, const struct e1inp_ts *ts) +{ + if (ts->line->name) + snprintf(out, out_len, "%s:%u", ts->line->name, ts->num); + else + snprintf(out, out_len, "%u:%u", ts->line->num, ts->num); +} + int e1inp_ts_config_sign(struct e1inp_ts *ts, struct e1inp_line *line) { if (ts->type == E1INP_TS_TYPE_SIGN && ts->line && line) diff --git a/src/input/dahdi.c b/src/input/dahdi.c index 6da1a02..a461f27 100644 --- a/src/input/dahdi.c +++ b/src/input/dahdi.c @@ -683,10 +683,13 @@ if (ret < 0) return ret; - if (!e1i_ts->lapd) - e1i_ts->lapd = lapd_instance_alloc(1, + if (!e1i_ts->lapd) { + char name[32]; + e1inp_ts_name(name, sizeof(name), e1i_ts); + e1i_ts->lapd = lapd_instance_alloc2(1, dahdi_write_msg, bfd, e1inp_dlsap_up, - e1i_ts, &lapd_profile_abis); + e1i_ts, &lapd_profile_abis, name); + } break; case E1INP_TS_TYPE_HDLC: if (!bfd->fd) diff --git a/src/input/e1d.c b/src/input/e1d.c index 1e9f3bb..f7a0b18 100644 --- a/src/input/e1d.c +++ b/src/input/e1d.c @@ -254,10 +254,13 @@ } bfd->when = BSC_FD_READ; - if (!e1i_ts->lapd) - e1i_ts->lapd = lapd_instance_alloc(1, + if (!e1i_ts->lapd) { + char name[32]; + e1inp_ts_name(name, e1i_ts); + e1i_ts->lapd = lapd_instance_alloc2(1, e1d_write_msg, bfd, e1inp_dlsap_up, - e1i_ts, &lapd_profile_abis); + e1i_ts, &lapd_profile_abis, name); + } break; case E1INP_TS_TYPE_HDLC: /* close/release LAPD instance, if any */ diff --git a/src/input/lapd.c b/src/input/lapd.c index a72a19b..4bcece5 100644 --- a/src/input/lapd.c +++ b/src/input/lapd.c @@ -73,6 +73,15 @@ #define LAPD_SET_K(n, o) {n,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o} +#define LOGLI(li, level, fmt, args ...) \ + LOGP(DLLAPD, level, "%s: " fmt, (li)->name, ## args) + +#define LOGTEI(teip, level, fmt, args ...) \ + LOGP(DLLAPD, level, "(%s-T%u): " fmt, (teip)->li->name, (teip)->tei, ## args) + +#define LOGSAP(sap, level, fmt, args ...) \ + LOGP(DLLAPD, level, "%s: " fmt, (sap)->dl.name, ## args) + const struct lapd_profile lapd_profile_isdn = { .k = LAPD_SET_K(7,7), .n200 = 3, @@ -177,7 +186,7 @@ /* Change state of TEI */ static void lapd_tei_set_state(struct lapd_tei *teip, int newstate) { - LOGP(DLLAPD, LOGL_INFO, "LAPD state change on TEI %d: %s -> %s\n", + LOGTEI(teip, LOGL_INFO, "LAPD state change on TEI %d: %s -> %s\n", teip->tei, lapd_tei_states[teip->state], lapd_tei_states[newstate]); teip->state = newstate; @@ -223,29 +232,32 @@ { struct lapd_sap *sap; struct lapd_datalink *dl; - struct lapd_instance *li; + struct lapd_instance *li = teip->li; struct lapd_profile *profile; + char name[256]; int k; + snprintf(name, sizeof(name), "(%s-T%u-S%u)", li->name, teip->tei, sapi); + sap = talloc_zero(teip, struct lapd_sap); if (!sap) return NULL; LOGP(DLLAPD, LOGL_NOTICE, - "LAPD Allocating SAP for SAPI=%u / TEI=%u (dl=%p, sap=%p)\n", - sapi, teip->tei, &sap->dl, sap); + "%s: LAPD Allocating SAP for SAPI=%u / TEI=%u (dl=%p, sap=%p)\n", + name, sapi, teip->tei, &sap->dl, sap); sap->sapi = sapi; sap->tei = teip; dl = &sap->dl; - li = teip->li; profile = &li->profile; k = profile->k[sapi & 0x3f]; - LOGP(DLLAPD, LOGL_NOTICE, "k=%d N200=%d N201=%d T200=%d.%d T203=%d.%d" - "\n", k, profile->n200, profile->n201, profile->t200_sec, + LOGP(DLLAPD, LOGL_NOTICE, "%s: k=%d N200=%d N201=%d T200=%d.%d T203=%d.%d\n", + name, k, profile->n200, profile->n201, profile->t200_sec, profile->t200_usec, profile->t203_sec, profile->t203_usec); lapd_dl_init(dl, k, 128, profile->n201); + lapd_dl_set_name(dl, name); dl->use_sabme = 1; /* use SABME instead of SABM (GSM) */ dl->send_ph_data_req = send_ph_data_req; dl->send_dlsap = send_dlsap; @@ -269,7 +281,7 @@ /* Free SAP instance, including the datalink */ static void lapd_sap_free(struct lapd_sap *sap) { - LOGP(DLLAPD, LOGL_NOTICE, + LOGSAP(sap, LOGL_NOTICE, "LAPD Freeing SAP for SAPI=%u / TEI=%u (dl=%p, sap=%p)\n", sap->sapi, sap->tei->tei, &sap->dl, sap); @@ -306,7 +318,7 @@ struct msgb *msg; if (len < 5) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD TEIMGR frame receive len %d < 5" + LOGLI(li, LOGL_ERROR, "LAPD TEIMGR frame receive len %d < 5" ", ignoring\n", len); return -EINVAL; }; @@ -327,7 +339,7 @@ teip = teip_from_tei(li, action); if (!teip) { - LOGP(DLLAPD, LOGL_INFO, "TEI MGR: New TEI %u\n", + LOGLI(li, LOGL_INFO, "TEI MGR: New TEI %u\n", action); teip = lapd_tei_alloc(li, action); if (!teip) @@ -344,16 +356,14 @@ /* write to PCAP file, if enabled. */ osmo_pcap_lapd_write(li->pcap_fd, OSMO_LAPD_PCAP_OUTPUT, msg); - LOGP(DLLAPD, LOGL_DEBUG, "TX: %s\n", - osmo_hexdump(msg->data, msg->len)); + LOGTEI(teip, LOGL_DEBUG, "TX: %s\n", osmo_hexdump(msg->data, msg->len)); li->transmit_cb(msg, li->transmit_cbdata); if (teip->state == LAPD_TEI_NONE) lapd_tei_set_state(teip, LAPD_TEI_ASSIGNED); break; default: - LOGP(DLLAPD, LOGL_NOTICE, "LAPD TEIMGR: unknown mt %x " - "action %x\n", mt, action); + LOGLI(li, LOGL_NOTICE, "LAPD TEIMGR: unknown mt %x action %x\n", mt, action); break; }; @@ -372,10 +382,9 @@ /* write to PCAP file, if enabled. */ osmo_pcap_lapd_write(li->pcap_fd, OSMO_LAPD_PCAP_INPUT, msg); - LOGP(DLLAPD, LOGL_DEBUG, "RX: %s\n", osmo_hexdump(msg->data, msg->len)); + LOGLI(li, LOGL_DEBUG, "RX: %s\n", osmo_hexdump(msg->data, msg->len)); if (msg->len < 2) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD frame receive len %d < 2, " - "ignoring\n", msg->len); + LOGLI(li, LOGL_ERROR, "LAPD frame receive len %d < 2, ignoring\n", msg->len); *error = LAPD_ERR_BAD_LEN; return -EINVAL; }; @@ -390,7 +399,7 @@ lctx.lpd = 0; if (!LAPD_ADDR_EA(msg->l2h[i])) { if (msg->len < 3) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD frame with TEI receive " + LOGLI(li, LOGL_ERROR, "LAPD frame with TEI receive " "len %d < 3, ignoring\n", msg->len); *error = LAPD_ERR_BAD_LEN; return -EINVAL; @@ -405,13 +414,13 @@ lctx.n_send = LAPD_CTRL_I_Ns(msg->l2h[i]); i++; if (msg->len < 3 && i == 2) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD I frame without TEI " + LOGLI(li, LOGL_ERROR, "LAPD I frame without TEI " "receive len %d < 3, ignoring\n", msg->len); *error = LAPD_ERR_BAD_LEN; return -EINVAL; }; if (msg->len < 4 && i == 3) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD I frame with TEI " + LOGLI(li, LOGL_ERROR, "LAPD I frame with TEI " "receive len %d < 4, ignoring\n", msg->len); *error = LAPD_ERR_BAD_LEN; return -EINVAL; @@ -423,13 +432,13 @@ lctx.s_u = LAPD_CTRL_S_BITS(msg->l2h[i]); i++; if (msg->len < 3 && i == 2) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD S frame without TEI " + LOGLI(li, LOGL_ERROR, "LAPD S frame without TEI " "receive len %d < 3, ignoring\n", msg->len); *error = LAPD_ERR_BAD_LEN; return -EINVAL; }; if (msg->len < 4 && i == 3) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD S frame with TEI " + LOGLI(li, LOGL_ERROR, "LAPD S frame with TEI " "receive len %d < 4, ignoring\n", msg->len); *error = LAPD_ERR_BAD_LEN; return -EINVAL; @@ -458,14 +467,14 @@ /* resolve TEI and SAPI */ teip = teip_from_tei(li, lctx.tei); if (!teip) { - LOGP(DLLAPD, LOGL_NOTICE, "LAPD Unknown TEI %u\n", lctx.tei); + LOGLI(li, LOGL_NOTICE, "LAPD Unknown TEI %u\n", lctx.tei); *error = LAPD_ERR_UNKNOWN_TEI; msgb_free(msg); return -EINVAL; } sap = lapd_sap_find(teip, lctx.sapi); if (!sap) { - LOGP(DLLAPD, LOGL_INFO, "LAPD No SAP for TEI=%u / SAPI=%u, " + LOGTEI(teip, LOGL_INFO, "LAPD No SAP for TEI=%u / SAPI=%u, " "allocating\n", lctx.tei, lctx.sapi); sap = lapd_sap_alloc(teip, lctx.sapi); if (!sap) { @@ -478,7 +487,7 @@ lctx.n201 = lctx.dl->maxf; if (msg->len > lctx.n201) { - LOGP(DLLAPD, LOGL_ERROR, "message len %d > N201(%d) " + LOGSAP(sap, LOGL_ERROR, "message len %d > N201(%d) " "(discarding)\n", msg->len, lctx.n201); msgb_free(msg); *error = LAPD_ERR_BAD_LEN; @@ -509,8 +518,7 @@ if (!sap) return -ENOMEM; - LOGP(DLLAPD, LOGL_NOTICE, "LAPD DL-ESTABLISH request TEI=%d SAPI=%d\n", - tei, sapi); + LOGSAP(sap, LOGL_NOTICE, "LAPD DL-ESTABLISH request TEI=%d SAPI=%d\n", tei, sapi); /* prepare prim */ msg = msgb_alloc_headroom(56, 56, "DL EST"); @@ -537,8 +545,7 @@ if (!sap) return -ENODEV; - LOGP(DLLAPD, LOGL_NOTICE, "LAPD DL-RELEASE request TEI=%d SAPI=%d\n", - tei, sapi); + LOGSAP(sap, LOGL_NOTICE, "LAPD DL-RELEASE request TEI=%d SAPI=%d\n", tei, sapi); /* prepare prim */ msg = msgb_alloc_headroom(56, 56, "DL REL"); @@ -558,16 +565,14 @@ struct osmo_dlsap_prim dp; if (!teip) { - LOGP(DLLAPD, LOGL_ERROR, "LAPD Cannot transmit on " - "non-existing TEI %u\n", tei); + LOGLI(li, LOGL_ERROR, "LAPD Cannot transmit on non-existing TEI %u\n", tei); msgb_free(msg); return; } sap = lapd_sap_find(teip, sapi); if (!sap) { - LOGP(DLLAPD, LOGL_INFO, "LAPD Tx on unknown SAPI=%u " - "in TEI=%u\n", sapi, tei); + LOGTEI(teip, LOGL_INFO, "LAPD Tx on unknown SAPI=%u in TEI=%u\n", sapi, tei); msgb_free(msg); return; } @@ -625,7 +630,7 @@ osmo_pcap_lapd_write(li->pcap_fd, OSMO_LAPD_PCAP_OUTPUT, msg); /* forward frame to L1 */ - LOGP(DLLAPD, LOGL_DEBUG, "TX: %s\n", osmo_hexdump(msg->data, msg->len)); + LOGDL(dl, LOGL_DEBUG, "TX: %s\n", osmo_hexdump(msg->data, msg->len)); li->transmit_cb(msg, li->transmit_cbdata); return 0; @@ -648,11 +653,11 @@ switch (dp->oph.primitive) { case PRIM_DL_EST: - LOGP(DLLAPD, LOGL_NOTICE, "LAPD DL-ESTABLISH %s TEI=%d " + LOGDL(dl, LOGL_NOTICE, "LAPD DL-ESTABLISH %s TEI=%d " "SAPI=%d\n", op, lctx->tei, lctx->sapi); break; case PRIM_DL_REL: - LOGP(DLLAPD, LOGL_NOTICE, "LAPD DL-RELEASE %s TEI=%d " + LOGDL(dl, LOGL_NOTICE, "LAPD DL-RELEASE %s TEI=%d " "SAPI=%d\n", op, lctx->tei, lctx->sapi); lapd_sap_free(sap); /* note: sap and dl is now gone, don't use it anymore */ @@ -667,11 +672,11 @@ } /* Allocate a new LAPD instance */ -struct lapd_instance *lapd_instance_alloc(int network_side, +struct lapd_instance *lapd_instance_alloc2(int network_side, void (*tx_cb)(struct msgb *msg, void *cbdata), void *tx_cbdata, - void (*rx_cb)(struct osmo_dlsap_prim *odp, uint8_t tei, uint8_t sapi, + void (*rx_cb)(struct osmo_dlsap_prim *odp, uint8_t tei, uint8_t sapi, void *rx_cbdata), void *rx_cbdata, - const struct lapd_profile *profile) + const struct lapd_profile *profile, const char *name) { struct lapd_instance *li; @@ -685,6 +690,7 @@ li->receive_cb = rx_cb; li->receive_cbdata = rx_cbdata; li->pcap_fd = -1; + li->name = talloc_strdup(li, name); memcpy(&li->profile, profile, sizeof(li->profile)); INIT_LLIST_HEAD(&li->tei_list); @@ -692,6 +698,16 @@ return li; } +struct lapd_instance *lapd_instance_alloc(int network_side, + void (*tx_cb)(struct msgb *msg, void *cbdata), void *tx_cbdata, + void (*rx_cb)(struct osmo_dlsap_prim *odp, uint8_t tei, uint8_t sapi, + void *rx_cbdata), void *rx_cbdata, + const struct lapd_profile *profile) +{ + return lapd_instance_alloc2(network_side, tx_cbdata, tx_cb, rx_cb, rx_cbdata, profile, NULL); +} + + /* Change lapd-profile on the fly (use with caution!) */ void lapd_instance_set_profile(struct lapd_instance *li, const struct lapd_profile *profile) diff --git a/src/input/misdn.c b/src/input/misdn.c index fef1c0f..564d008 100644 --- a/src/input/misdn.c +++ b/src/input/misdn.c @@ -636,10 +636,12 @@ switch (e1i_ts->type) { case E1INP_TS_TYPE_SIGN: if (mline->use_userspace_lapd) { + char name[32]; addr.channel = ts; - e1i_ts->lapd = lapd_instance_alloc(1, + e1inp_ts_name(name, sizeof(name), e1i_ts); + e1i_ts->lapd = lapd_instance_alloc2(1, misdn_write_msg, bfd, e1inp_dlsap_up, - e1i_ts, &lapd_profile_abis); + e1i_ts, &lapd_profile_abis, name); } else { addr.channel = 0; /* SAPI not supported yet in kernel */ diff --git a/src/input/unixsocket.c b/src/input/unixsocket.c index 1d25ddf..cfb4979 100644 --- a/src/input/unixsocket.c +++ b/src/input/unixsocket.c @@ -287,10 +287,12 @@ /* Set line parameter */ for (i = 0; i < ARRAY_SIZE(line->ts); i++) { struct e1inp_ts *e1i_ts = &line->ts[i]; + char name[32]; if (!e1i_ts->lapd) { - e1i_ts->lapd = lapd_instance_alloc(1, + e1inp_ts_name(name, sizeof(name), e1i_ts); + e1i_ts->lapd = lapd_instance_alloc2(1, unixsocket_write_msg_lapd_cb, &config->fd, - e1inp_dlsap_up, e1i_ts, &lapd_profile_abis); + e1inp_dlsap_up, e1i_ts, &lapd_profile_abis, name); } } -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ib81a749ae24013b17caaf5fd64ccd9acbbc3ce08 Gerrit-Change-Number: 18003 Gerrit-PatchSet: 4 Gerrit-Owner: laforge 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 Jun 9 07:17:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:17:14 +0000 Subject: Change in libusrp[master]: debian/control: Add python as BuildRequires, as edit-gpif uses it In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libusrp/+/18736 ) Change subject: debian/control: Add python as BuildRequires, as edit-gpif uses it ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/18736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I6525e90b63c442b5ec69b4730e92f576694ea1a2 Gerrit-Change-Number: 18736 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07: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 Tue Jun 9 07:17:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:17:18 +0000 Subject: Change in libusrp[master]: debian/control: Add python as BuildRequires, as edit-gpif uses it In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libusrp/+/18736 ) Change subject: debian/control: Add python as BuildRequires, as edit-gpif uses it ...................................................................... debian/control: Add python as BuildRequires, as edit-gpif uses it This hopefully should fix the libusrp build errors on OBS for Debian testing + unstable. Change-Id: I6525e90b63c442b5ec69b4730e92f576694ea1a2 --- M debian/control 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/control b/debian/control index 54bc7af..247a661 100644 --- a/debian/control +++ b/debian/control @@ -9,6 +9,7 @@ doxygen, libtool, pkg-config, + python, sdcc, libusb-1.0-0-dev, libboost-all-dev -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/18736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I6525e90b63c442b5ec69b4730e92f576694ea1a2 Gerrit-Change-Number: 18736 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:33:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:33:00 +0000 Subject: Change in libosmo-abis[master]: e1_input: Initialize list struct In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18731 ) Change subject: e1_input: Initialize list struct ...................................................................... Patch Set 2: Code-Review-2 this is wrong. INIT_LLIST_HEAD is *only* to be called on the "master" list to which siblings are added. The cases you modify initialize a "slave" list entry that is added to a (properly initialized) master list (e1inp_line_list, e.g.). If you ever miss a required INIT_LLIST_HEAD on a "master" list_head, then you will see a crash due to null pointer derefence the first time you try to use that. -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I850fdc43d597267aa66c6975aca9c1753231ac65 Gerrit-Change-Number: 18731 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:33:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:35:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:35:13 +0000 Subject: Change in libosmo-abis[master]: e1_input: Initialize list struct In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18731 ) Change subject: e1_input: Initialize list struct ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-abis/+/18731/2/src/e1_input.c File src/e1_input.c: https://gerrit.osmocom.org/c/libosmo-abis/+/18731/2/src/e1_input.c at 571 PS2, Line 571: talloc_zero > If we were not using zero-initialization everywhere, we would notice this problem much earlier. In general I agree, but not in this specific case. Zero-initializing all llist_heads by talloc_zero of the entire struct makes sure that anyone performing an illegal operation on the llist_head (such as adding something) will cause a null pointer dereference rather than dereferencing some random part of memory (which might be valid! [unlikely, but still]) -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I850fdc43d597267aa66c6975aca9c1753231ac65 Gerrit-Change-Number: 18731 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:35:13 +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 Jun 9 07:36:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:36:18 +0000 Subject: Change in libosmo-abis[master]: e1_input: refcount inc line during e1_sign_link_create, not during li... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18730 ) Change subject: e1_input: refcount inc line during e1_sign_link_create, not during line update ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I74405b0e87a89c17d58e87024f4aedbd30832013 Gerrit-Change-Number: 18730 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:36:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:36:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:36:21 +0000 Subject: Change in libosmo-abis[master]: e1_input: refcount inc line during e1_sign_link_create, not during li... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18730 ) Change subject: e1_input: refcount inc line during e1_sign_link_create, not during line update ...................................................................... e1_input: refcount inc line during e1_sign_link_create, not during line update Increase reference count when a new sign_link using the line is created. Otherwise the line is freed too quickly during e1inp_sign_link_destroy() with several TRX being used, since each RSL link is missing a reference. That extra refcoutny in update() is not really needed given that we already have a link assigned on the line when we call update. Fixes: OS#3612 Fixes: OS#4094 Change-Id: I74405b0e87a89c17d58e87024f4aedbd30832013 --- M src/e1_input.c 1 file changed, 2 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/e1_input.c b/src/e1_input.c index 7066acf..9ea4f17 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -586,6 +586,8 @@ link->tei = tei; link->sapi = sapi; + e1inp_line_get(link->ts->line); + llist_add_tail(&link->list, &ts->sign.sign_links); return link; @@ -855,8 +857,6 @@ struct input_signal_data isd; int i, rc; - e1inp_line_get(line); - if (line->driver && line->ops && line->driver->line_update) { rc = line->driver->line_update(line); } else -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I74405b0e87a89c17d58e87024f4aedbd30832013 Gerrit-Change-Number: 18730 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:37:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:37:01 +0000 Subject: Change in osmo-bts[master]: oml.c: Fix whitespace in log line In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18725 ) Change subject: oml.c: Fix whitespace in log line ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5e9b07303dda374e9196d7d4503ad652970ab6c5 Gerrit-Change-Number: 18725 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07: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 Tue Jun 9 07:37:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:37:17 +0000 Subject: Change in osmo-bts[master]: oml.c: Log ADM STATE change locked/unlocked In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18726 ) Change subject: oml.c: Log ADM STATE change locked/unlocked ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb176e2215841509bf15a6dfc163ceddcb602954 Gerrit-Change-Number: 18726 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:37:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:39:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:39:37 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-trx/+/18721/1/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18721/1/Transceiver52M/device/uhd/UHDDevice.cpp at 143 PS1, Line 143: { std::make_tuple(B210, GSM_BAND_1900), { 89.75, 7.7 } }, you can add the values for B200, too. After all, the B200 is just a B210 with analog parts for the second RF channel not populated on the PCB. https://gerrit.osmocom.org/c/osmo-trx/+/18721/1/Transceiver52M/device/uhd/UHDDevice.cpp at 244 PS1, Line 244: WARNING I would actually elevate that to ERROR -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:39:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:40:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:40:41 +0000 Subject: Change in osmo-trx[master]: radioInterface: Operate on real Tx power attenuation rather than on d... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18722 ) Change subject: radioInterface: Operate on real Tx power attenuation rather than on device specific gains ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 Gerrit-Change-Number: 18722 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:40:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 07:42:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 07:42:46 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/18723/2/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18723/2/Transceiver52M/device/uhd/UHDDevice.cpp at 216 PS2, Line 216: tx_gain_db if you subtract something from gain, then it is attenuation. I think we really should clean up the terminology here. I'm completely confused at this point, to be honest - to the point I am unabl to review the code. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 07:42:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 08:45:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 08:45:15 +0000 Subject: Change in osmo-bts[master]: oml.c: Fix whitespace in log line In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18725 ) Change subject: oml.c: Fix whitespace in log line ...................................................................... oml.c: Fix whitespace in log line Change-Id: I5e9b07303dda374e9196d7d4503ad652970ab6c5 --- M src/common/oml.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index 7e3b834..d7cc7bb 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1316,8 +1316,8 @@ } in.s_addr = htonl(ip); - LOGP(DOML, LOGL_INFO, "%s: Rx IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n", - trx_name, inet_ntoa(in), port, stream_id); + LOGP(DOML, LOGL_INFO, "%s: Rx IPA RSL CONNECT IP=%s PORT=%u STREAM=0x%02x\n", + trx_name, inet_ntoa(in), port, stream_id); if (trx->bts->variant == BTS_OSMO_OMLDUMMY) { rc = 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5e9b07303dda374e9196d7d4503ad652970ab6c5 Gerrit-Change-Number: 18725 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 Jun 9 08:46:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 08:46:11 +0000 Subject: Change in libosmo-abis[master]: e1_input: Initialize list struct In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18731 ) Change subject: e1_input: Initialize list struct ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I850fdc43d597267aa66c6975aca9c1753231ac65 Gerrit-Change-Number: 18731 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 08:46:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 08:46:32 +0000 Subject: Change in osmo-bts[master]: oml.c: Log ADM STATE change locked/unlocked In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18726 ) Change subject: oml.c: Log ADM STATE change locked/unlocked ...................................................................... oml.c: Log ADM STATE change locked/unlocked Use same forma tuse for other OMl states, like OPER and AVAIL states. Change-Id: Icb176e2215841509bf15a6dfc163ceddcb602954 --- M src/common/oml.c 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/oml.c b/src/common/oml.c index d7cc7bb..c2c1248 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1002,6 +1002,10 @@ if (mo->nm_state.administrative == adm_state) LOGPFOH(DOML, LOGL_NOTICE, foh, "ADM state already was %s\n", get_value_string(abis_nm_adm_state_names, adm_state)); + else + LOGPFOH(DOML, LOGL_NOTICE, foh, "ADM STATE %s -> %s\n", + get_value_string(abis_nm_adm_state_names, mo->nm_state.administrative), + get_value_string(abis_nm_adm_state_names, adm_state)); /* Step 3: Ask BTS driver to apply the state chg */ return bts_model_chg_adm_state(bts, mo, obj, adm_state); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icb176e2215841509bf15a6dfc163ceddcb602954 Gerrit-Change-Number: 18726 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 Tue Jun 9 09:08:01 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Tue, 9 Jun 2020 09:08:01 +0000 Subject: Change in pysim[master]: utils.py add LOCI EFs decode functions References: Message-ID: guilly at gmail.com has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/18737 ) Change subject: utils.py add LOCI EFs decode functions ...................................................................... utils.py add LOCI EFs decode functions The LOCI, PSLOCI and EPSLOCI contain some info, including the PLMN, added helper functions to decode it Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc --- M pySim/ts_31_102.py M pySim/utils.py 2 files changed, 36 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/37/18737/1 diff --git a/pySim/ts_31_102.py b/pySim/ts_31_102.py index 473e595..215ed4c 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -137,6 +137,12 @@ 111: 'ePDG configuration Information for Emergency Service configured', } +LOCI_STATUS_map = { + 0: 'updated', + 1: 'not updated', + 2: 'plmn not allowed', + 3: 'locatation area not allowed' +} EF_USIM_ADF_map = { 'LI': '6F05', 'ARR': '6F06', diff --git a/pySim/utils.py b/pySim/utils.py index 496b918..2ca6165 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -183,6 +183,36 @@ s += "\t%s # %s\n" % (rec_data, rec_str) return s +def dec_loci(hexstr): + res = {'tmsi': '', 'mcc': 0, 'mnc': 0, 'lac': '', 'status': 0} + res['tmsi'] = hexstr[:8] + res['mcc'] = dec_mcc_from_plmn(hexstr[8:14]) + res['mnc'] = dec_mnc_from_plmn(hexstr[8:14]) + res['lac'] = hexstr[14:18] + res['status'] = h2i(hexstr[20:22]) + return res + +def dec_psloci(hexstr): + res = {'p-tmsi': '', 'p-tmsi-sig': '', 'mcc': 0, 'mnc': 0, 'lac': '', 'rac': '', 'status': 0} + res['p-tmsi'] = hexstr[:8] + res['p-tmsi-sig'] = hexstr[8:14] + res['mcc'] = dec_mcc_from_plmn(hexstr[14:20]) + res['mnc'] = dec_mnc_from_plmn(hexstr[14:20]) + res['lac'] = hexstr[20:24] + res['rac'] = hexstr[24:26] + res['status'] = h2i(hexstr[26:28]) + return res + +def dec_epsloci(hexstr): + res = {'guti': '', 'mcc': 0, 'mnc': 0, 'tac': '', 'status': 0} + res['guti'] = hexstr[:24] + res['tai'] = hexstr[24:34] + res['mcc'] = dec_mcc_from_plmn(hexstr[24:30]) + res['mnc'] = dec_mnc_from_plmn(hexstr[24:30]) + res['tac'] = hexstr[30:34] + res['status'] = h2i(hexstr[34:36]) + return res + def derive_milenage_opc(ki_hex, op_hex): """ Run the milenage algorithm to calculate OPC from Ki and OP -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc Gerrit-Change-Number: 18737 Gerrit-PatchSet: 1 Gerrit-Owner: guilly at gmail.com Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 09:10:32 2020 From: gerrit-no-reply at lists.osmocom.org (guilly@gmail.com) Date: Tue, 9 Jun 2020 09:10:32 +0000 Subject: Change in pysim[master]: utils.py add LOCI EFs decode functions 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/+/18737 to look at the new patch set (#2). Change subject: utils.py add LOCI EFs decode functions ...................................................................... utils.py add LOCI EFs decode functions The LOCI, PSLOCI and EPSLOCI contain some info, including the PLMN, added helper functions to decode it Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc --- M pySim/ts_31_102.py M pySim/utils.py 2 files changed, 36 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/37/18737/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc Gerrit-Change-Number: 18737 Gerrit-PatchSet: 2 Gerrit-Owner: guilly at gmail.com Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 09:51:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 09:51:05 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/18723/2/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18723/2/Transceiver52M/device/uhd/UHDDevice.cpp at 216 PS2, Line 216: tx_gain_db > if you subtract something from gain, then it is attenuation. [?] AFAIU power attenuation is what you subtract from power to attenuate it, giving a lower power (attenuated power). So here I'm basically first getting an attenuation by getting the difference between 2 gain values (as in how much do you need to attenuate the nominal UHD Tx Gain to get to the required UHD gain): att = (desc.nom_uhd_tx_gain - tx_gain_db) Then I'm simply applying that attenuation to get nominal output Tx power (assuming slope is 1:1 with UHD tx Gain values here), by which I get and return an attenuated power: return desc.nom_out_tx_power - att; I'm happy to change any terminology you feel it's more clear. That's what I'm also trying to do in this commit by also decoupling UHD Tx Gain (internal/implementation specific to the radiODevice class) and the real output power (the one the upper layers are interested in). -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 09:51:05 +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 Jun 9 09:51:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 09:51:10 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency 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-trx/+/18721 to look at the new patch set (#2). Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... UHDDevice: Implement getNominalTxPower() based on TxFrequency The table with nominal UHD Tx Gains and real transmit power is filled with values measured experimentally. More information can be found in OS#4583. Related: OS#4583 Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb --- M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 2 files changed, 90 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/21/18721/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 09:55:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 09:55:40 +0000 Subject: Change in libosmocore[master]: NS: Optionally disable NS-{RESET, BLOCK, UNBLOCK} when using UDP/IP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18706 ) Change subject: NS: Optionally disable NS-{RESET,BLOCK,UNBLOCK} when using UDP/IP ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns_vty.c File src/gb/gprs_ns_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/18706/2/src/gb/gprs_ns_vty.c at 517 PS2, Line 517: vty_nsi->nsip.use_reset_block_unblock = true; > that returns a positive/negative integer, I prefer to keep it explicit. [?] Ok, but << !strcmp(argv[0], "enabled") >> doesn't return a negative/positive integer, since you are applying a boolean operator, it will return either 0 or (NOT 0), which is going to be 1, so one can assume false/true values. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic4eba1b4dcbeac00f5879db295e0a9f1a50f71d8 Gerrit-Change-Number: 18706 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 09:55:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin 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 Jun 9 10:09:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 10:09:36 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18655 ) Change subject: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 Gerrit-Change-Number: 18655 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 10:09:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 10:22:59 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 10:22:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 Gerrit-Change-Number: 18654 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 10: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 Tue Jun 9 10:37:19 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 10:37:19 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18694 to look at the new patch set (#4). Change subject: gsm0808: fix endieness of call identifier ...................................................................... gsm0808: fix endieness of call identifier The call identifier in the ASSIGNMENT COMMAND is encoded in the wrong endieness. 3GPP TS 48.008, section 3.2.2.105 specifies that the least significant byte should be transmitted first, which means that the endieness here is little endian. Lets make sure that the endieness is correctly transmitted, regardless of the host byte order. Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Related: OS#4582 --- M src/gsm/gsm0808.c M tests/gsm0808/gsm0808_test.c 2 files changed, 14 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/18694/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Jun 9 10:40:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 10:40:25 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 10:40:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 10:49:22 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 10:49:22 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement power ramping during BTS bring up In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18488 ) Change subject: bts-trx: Implement power ramping during BTS bring up ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7c353e4c199e0fc3bcab55c45a4abda2c66d2c1 Gerrit-Change-Number: 18488 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 09 Jun 2020 10:49: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 Jun 9 10:51:35 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 10:51:35 +0000 Subject: Change in osmo-bts[master]: bts-trx: Re-apply tx power if nominal power is received after POWERON In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18652 ) Change subject: bts-trx: Re-apply tx power if nominal power is received after POWERON ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad Gerrit-Change-Number: 18652 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 10:51: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 Jun 9 10:54:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 10:54:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 Gerrit-Change-Number: 18654 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 10:54: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 Jun 9 10:54:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 10:54:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_up_bcch ...................................................................... bts: Introduce test TC_tx_power_start_ramp_up_bcch This test verifies power ramping (up) is working fine during BTS startup. config files are updated to make sense: * "nominal power" in osmo-bsc.cfg reflects correct default nominal tx power of fake_trx. * "osmotrx tx-attenuation" in osmo-bts.cfg is removed to let osmo-bts use the value received through OML (max_power_red 20). * "power-ramp step-size" in osmo-bts.cfg is increased to speed up the test. There's no good reason to keep it lower. Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 --- M bts/BTS_Tests.ttcn M bts/osmo-bsc.cfg M bts/osmo-bts.cfg 3 files changed, 82 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 8a297fb..012327e 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -100,6 +100,8 @@ integer mp_rxlev_exp := 57; integer mp_ul_rxlev_exp := 10; integer mp_ms_power_level_exp := 7; + integer mp_bts_tx_nom_pwr_exp := 50; /* Expected Tx Nominal Output Power of the BTS, in dBm */ + integer mp_bts_tx_pwr_att_exp := 20; /* Expected Tx Power attenuation wrt to Tx Nominal Output Power, in dB */ integer mp_ms_actual_ta_exp := 0; integer mp_timing_offset_256syms_exp := 512; /* Time to wait for RSL conn from BTS during startup of test */ @@ -2017,6 +2019,83 @@ f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr); } +/* Verify Tx power reduction and ramping up during BTS bring up */ +function f_TC_tx_power_start_ramp_up_bcch(charstring id) runs on ConnHdlr { + var L1ctlDlMessage l1_dl; + f_l1_tune(L1CTL); + RSL.clear; + + var integer initial_rx_lvl := -1; + var integer last_rx_lvl := -1; + var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp; + + timer T := 2.0; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level; + log("Received rx_level=", rx_lvl); + if (initial_rx_lvl == -1) { + initial_rx_lvl := rx_lvl; + last_rx_lvl := rx_lvl; + + /* Expect a somehow low value during first received messages */ + if (initial_rx_lvl >= max_rx_lvl / 2) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected high initial tx power during ramp up: ", + initial_rx_lvl , ", full power is", max_rx_lvl)); + } + } + + /* received Rx level bigger than maximum allowed power by CN */ + if (rx_lvl > max_rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power higher than full power: ", + rx_lvl , " > ", max_rx_lvl)); + } + + /* Make sure it never decreases, since we are rumping up */ + if (last_rx_lvl > rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power decrease during ramp up: ", + last_rx_lvl , " -> ", rx_lvl)); + } + + if (rx_lvl == max_rx_lvl and not T.running) { + /* We reached the maximum power, start timer and receive + /* a few more to make sure we don't surpass it */ + log("Reached full power, wating a bit more until success"); + T.start; + } + + last_rx_lvl := rx_lvl; + repeat; + } + [] L1CTL.receive { repeat; } + [] T.timeout { } + } + + /* We didn't increase tx power during ramp up */ + if (initial_rx_lvl < last_rx_lvl) { + log("Tx power increased during ramp up: ", initial_rx_lvl , " -> ", last_rx_lvl); + } else { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("No Tx power increase during whole ramp up: ", + initial_rx_lvl , " -> ", last_rx_lvl)); + } + + setverdict(pass); +} +testcase TC_tx_power_start_ramp_up_bcch() runs on test_CT { + var ConnHdlr vc_conn; + var ConnHdlrPars pars; + f_init(); + pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN)); + vc_conn := f_start_handler(refers(f_TC_tx_power_start_ramp_up_bcch), pars, + pcu_comp := false, trxc_comp := true); + vc_conn.done; + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + function f_check_meas_bs_power_level(integer level) runs on ConnHdlr { timer T := 8.0; T.start; @@ -6434,6 +6513,7 @@ execute( TC_meas_res_sign_sdcch4() ); execute( TC_meas_res_sign_sdcch8() ); execute( TC_meas_res_sign_tchh_toa256() ); + execute( TC_tx_power_start_ramp_up_bcch() ); execute( TC_rsl_bs_pwr_static_ass() ); execute( TC_rsl_bs_pwr_static_power_control() ); execute( TC_rsl_ms_pwr_ctrl() ); diff --git a/bts/osmo-bsc.cfg b/bts/osmo-bsc.cfg index 3b31eb7..9025fe4 100644 --- a/bts/osmo-bsc.cfg +++ b/bts/osmo-bsc.cfg @@ -106,7 +106,7 @@ trx 0 rf_locked 0 arfcn 871 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 0 timeslot 0 diff --git a/bts/osmo-bts.cfg b/bts/osmo-bts.cfg index a9867bf..c2cd0bd 100644 --- a/bts/osmo-bts.cfg +++ b/bts/osmo-bts.cfg @@ -28,7 +28,6 @@ osmotrx rts-advance 5 instance 0 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 bts 0 band DCS1800 ipa unit-id 1234 0 @@ -49,7 +48,7 @@ pcu-socket /tmp/pcu_sock trx 0 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 ms-power-control dsp phy 0 instance 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003 Gerrit-Change-Number: 18654 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 Jun 9 10:54:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 10:54:13 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18655 ) Change subject: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 Gerrit-Change-Number: 18655 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 10:54: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 Jun 9 10:54:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 10:54:18 +0000 Subject: Change in docker-playground[master]: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18655 ) Change subject: ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch ...................................................................... ttcn3-bts: Update cfg for test TC_tx_power_start_ramp_up_bcch The test mentioned above is added in osmo-ttcn3-hacks.git Ieb7444c6312bbeab64da2732393b3facf3e1f003. config files are updated to make sense: * "nominal power" in osmo-bsc.cfg reflects correct default nominal tx power of fake_trx. * "osmotrx tx-attenuation" in osmo-bts.cfg is removed to let osmo-bts use the value received through OML (max_power_red 20). * "power-ramp step-size" in osmo-bts.cfg is increased to speed up the test. There's no good reason to keep it lower. Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 --- M ttcn3-bts-test/osmo-bsc.cfg M ttcn3-bts-test/osmo-bts.cfg 2 files changed, 8 insertions(+), 12 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; Verified diff --git a/ttcn3-bts-test/osmo-bsc.cfg b/ttcn3-bts-test/osmo-bsc.cfg index 3d025c0..3064595 100644 --- a/ttcn3-bts-test/osmo-bsc.cfg +++ b/ttcn3-bts-test/osmo-bsc.cfg @@ -138,7 +138,7 @@ trx 0 rf_locked 0 arfcn 871 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 0 timeslot 0 @@ -168,7 +168,7 @@ trx 1 rf_locked 0 arfcn 873 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 1 timeslot 0 @@ -198,7 +198,7 @@ trx 2 rf_locked 0 arfcn 875 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 2 timeslot 0 @@ -228,7 +228,7 @@ trx 3 rf_locked 0 arfcn 877 - nominal power 23 + nominal power 50 max_power_red 20 rsl e1 tei 3 timeslot 0 diff --git a/ttcn3-bts-test/osmo-bts.cfg b/ttcn3-bts-test/osmo-bts.cfg index 8ada1ba..45e491c 100644 --- a/ttcn3-bts-test/osmo-bts.cfg +++ b/ttcn3-bts-test/osmo-bts.cfg @@ -60,16 +60,12 @@ osmotrx rts-advance 5 instance 0 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 instance 1 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 instance 2 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 instance 3 osmotrx rx-gain 10 - osmotrx tx-attenuation 0 bts 0 band DCS1800 ipa unit-id 1234 0 @@ -90,22 +86,22 @@ pcu-socket /data/unix/pcu_sock trx 0 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 0 trx 1 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 1 trx 2 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 2 trx 3 power-ramp max-initial 0 mdBm - power-ramp step-size 2000 mdB + power-ramp step-size 8000 mdB power-ramp step-interval 1 phy 0 instance 3 ctrl -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I878d329dde3d2089ee3b68f56271fcb88d210025 Gerrit-Change-Number: 18655 Gerrit-PatchSet: 2 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 Tue Jun 9 10:56:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 10:56:03 +0000 Subject: Change in pysim[master]: utils.py add LOCI EFs decode functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18737 ) Change subject: utils.py add LOCI EFs decode functions ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc Gerrit-Change-Number: 18737 Gerrit-PatchSet: 2 Gerrit-Owner: guilly at gmail.com Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 10:56:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 10:56:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 10:56:34 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 10:56:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 10:57:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 10:57:16 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 10:57:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 10:57:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 10:57:20 +0000 Subject: Change in libosmocore[master]: gsm0808: fix endieness of call identifier In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18694 ) Change subject: gsm0808: fix endieness of call identifier ...................................................................... gsm0808: fix endieness of call identifier The call identifier in the ASSIGNMENT COMMAND is encoded in the wrong endieness. 3GPP TS 48.008, section 3.2.2.105 specifies that the least significant byte should be transmitted first, which means that the endieness here is little endian. Lets make sure that the endieness is correctly transmitted, regardless of the host byte order. Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Related: OS#4582 --- M src/gsm/gsm0808.c M tests/gsm0808/gsm0808_test.c 2 files changed, 14 insertions(+), 4 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/gsm0808.c b/src/gsm/gsm0808.c index 23468c3..9fdf379 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -24,6 +24,7 @@ #include #include +#include #include #include #include @@ -515,7 +516,16 @@ /* AoIP: Call Identifier 3.2.2.105 */ if (ci) { - ci_sw = osmo_htonl(*ci); + /* NOTE: 3GPP TS 48.008, section 3.2.2.105 specifies that + the least significant byte should be transmitted first. + On x86, this would mean that the endieness is already + correct, however a platform independed implementation + is required: */ +#ifndef OSMO_IS_LITTLE_ENDIAN + ci_sw = osmo_swab32(*ci); +#else + ci_sw = *ci; +#endif msgb_tv_fixed_put(msg, GSM0808_IE_CALL_ID, sizeof(ci_sw), (uint8_t *) & ci_sw); } diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c index d9640aa..5c1a931 100644 --- a/tests/gsm0808/gsm0808_test.c +++ b/tests/gsm0808/gsm0808_test.c @@ -438,8 +438,8 @@ 0x04, GSM0808_IE_AOIP_TRASP_ADDR, 0x06, 0xc0, 0xa8, 0x64, 0x17, 0x04, 0xd2, GSM0808_IE_SPEECH_CODEC_LIST, 0x07, GSM0808_SCT_FR3 | 0x50, 0xef, 0xcd, GSM0808_SCT_FR2 | 0xa0, 0x9f, - GSM0808_SCT_CSD | 0x90, 0xc0, GSM0808_IE_CALL_ID, 0xaa, 0xbb, - 0xcc, 0xdd }; + GSM0808_SCT_CSD | 0x90, 0xc0, GSM0808_IE_CALL_ID, 0xdd, 0xcc, + 0xbb, 0xaa }; struct msgb *msg; struct gsm0808_channel_type ct; @@ -499,7 +499,7 @@ GSM0808_SCT_CSD | 0x90, 0xc0, GSM0808_IE_CALL_ID, - 0xde, 0xad, 0xfa, 0xce, /* CallID */ + 0xce, 0xfa, 0xad, 0xde, /* CallID */ 0x83, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, /* Kc */ GSM0808_IE_GLOBAL_CALL_REF, 0x0d, /* GCR, length */ 0x03, 0x44, 0x44, 0x44, /* GCR, Net ID */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6468e502f552f99ab54aec9d4b1c169fdc0adfb8 Gerrit-Change-Number: 18694 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 11:00:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 11:00:10 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 3 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 3 ...................................................................... Patch Set 1: would be good to move this ahead. It's a relatively simple but very important improvement -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 11:00: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 Tue Jun 9 11:01:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 11:01:12 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Use designated initializer in bts_stat_desc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18718 ) Change subject: osmo-bsc: Use designated initializer in bts_stat_desc ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic29f3a7e6fb16955bc74cc163d45a243b373183a Gerrit-Change-Number: 18718 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 11:01:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 11:05:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 9 Jun 2020 11:05:55 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18719 ) Change subject: abis_rsl: Count successful channel requests ...................................................................... Patch Set 1: Code-Review+1 I am sort-of undecided if this coulnter should be in the function that transmits an immediate assignment. In the end, it is about successful processing of a channel request. Yes, in reality, and particularly in the current code those two are the same. However, I'm not sure if e.g. it would make sense at some point to re-transmit immediate assignments? Or what about the immediate assignment without paging that the PCU does for tbf establishment in some states? It maybe doesn't go thorugh this code path, but I'm trying to express why it feels a bit odd to me. I'm not convinced it's much better inside the lchan_fsm where rsl_tx_imm_assignment() is called. So maybe just leave it as-is but maybe put a comment on top explaining why we - at least so far - count here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 11:05:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 12:11:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 12:11:15 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/18738 ) Change subject: jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script ...................................................................... jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script There was a directry refactoring a few weeks ago in osmo-gsm-tester and this path was not updated correctly. Change-Id: I580cd9d4a602b3ed1839fb0990ac3816c5e42cbe --- M jobs/osmo-gsm-tester_ttcn3.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/38/18738/1 diff --git a/jobs/osmo-gsm-tester_ttcn3.sh b/jobs/osmo-gsm-tester_ttcn3.sh index c844d22..767cafb 100644 --- a/jobs/osmo-gsm-tester_ttcn3.sh +++ b/jobs/osmo-gsm-tester_ttcn3.sh @@ -11,4 +11,4 @@ ln -s resources.conf.prod osmo-gsm-tester/sysmocom/ttcn3/resources.conf PATH="$PWD/osmo-gsm-tester/src:$PATH" \ - ./osmo-gsm-tester/ttcn3/jenkins-run.sh + ./osmo-gsm-tester/sysmocom/ttcn3/jenkins-run.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I580cd9d4a602b3ed1839fb0990ac3816c5e42cbe Gerrit-Change-Number: 18738 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 Jun 9 12:11:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 12:11:37 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18738 ) Change subject: jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I580cd9d4a602b3ed1839fb0990ac3816c5e42cbe Gerrit-Change-Number: 18738 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 12:11: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 Jun 9 12:11:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 12:11:39 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18738 ) Change subject: jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script ...................................................................... jobs: osmo-gsm-tester_ttcn3: Fix path to jenkins script There was a directry refactoring a few weeks ago in osmo-gsm-tester and this path was not updated correctly. Change-Id: I580cd9d4a602b3ed1839fb0990ac3816c5e42cbe --- M jobs/osmo-gsm-tester_ttcn3.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/jobs/osmo-gsm-tester_ttcn3.sh b/jobs/osmo-gsm-tester_ttcn3.sh index c844d22..767cafb 100644 --- a/jobs/osmo-gsm-tester_ttcn3.sh +++ b/jobs/osmo-gsm-tester_ttcn3.sh @@ -11,4 +11,4 @@ ln -s resources.conf.prod osmo-gsm-tester/sysmocom/ttcn3/resources.conf PATH="$PWD/osmo-gsm-tester/src:$PATH" \ - ./osmo-gsm-tester/ttcn3/jenkins-run.sh + ./osmo-gsm-tester/sysmocom/ttcn3/jenkins-run.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I580cd9d4a602b3ed1839fb0990ac3816c5e42cbe Gerrit-Change-Number: 18738 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 12:27:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 12:27:03 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/18739 ) Change subject: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly ...................................................................... jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly Before they were executed almost in a loop, so let's simply run them once per day. Change-Id: Ie42fc1e686d29740e14aaacd69659fe09e66801a --- M jobs/osmo-gsm-tester-runner.yml 1 file changed, 2 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/39/18739/1 diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index 041ef93..4cdd383 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -187,9 +187,7 @@ scm: - 'osmo-gsm-tester-repo' triggers: - - timed: "H H/2 * * *" - - pollscm: - cron: "H/5 * * * *" + - timed: "H 23 * * *" builders: - shell: | # make sure no bin artifacts from a previous run remain @@ -214,9 +212,7 @@ scm: - 'osmo-gsm-tester-repo' triggers: - - timed: "H H/2 * * *" - - pollscm: - cron: "H/5 * * * *" + - timed: "H 22 * * *" builders: - shell: | # make sure no bin artifacts from a previous run remain -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie42fc1e686d29740e14aaacd69659fe09e66801a Gerrit-Change-Number: 18739 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 Jun 9 12:33:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 12:33:53 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18739 ) Change subject: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie42fc1e686d29740e14aaacd69659fe09e66801a Gerrit-Change-Number: 18739 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 12:33:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 12:49:42 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 12:49:42 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST When msc_ho_send_handover_request() generates the HANDOVER REQUEST message, it does not populate the call_id struct member. In ran_msg_a.c the struct member call_id is used, but the call_id_present flag is not set, which also prevents the call_id being edded to the message Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 --- M src/libmsc/msc_ho.c M src/libmsc/ran_msg_a.c 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/18740/1 diff --git a/src/libmsc/msc_ho.c b/src/libmsc/msc_ho.c index aa513eb..2422703 100644 --- a/src/libmsc/msc_ho.c +++ b/src/libmsc/msc_ho.c @@ -383,6 +383,7 @@ struct vlr_subscr *vsub = msc_a_vsub(msc_a); struct gsm_network *net = msc_a_net(msc_a); struct gsm0808_channel_type channel_type; + struct gsm_trans *cc_trans = msc_a->cc.active_trans; struct ran_msg ran_enc_msg = { .msg_type = RAN_MSG_HANDOVER_REQUEST, .handover_request = { @@ -402,6 +403,7 @@ /* Don't send AoIP Transport Layer Address for inter-MSC Handover */ .rtp_ran_local = (msc_a->ho.new_cell.type == MSC_NEIGHBOR_TYPE_LOCAL_RAN_PEER) ? call_leg_local_ip(msc_a->cc.call_leg, RTP_TO_RAN) : NULL, + .call_id = cc_trans->callref, }, }; diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index 667e758..6e5e7da 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -1117,6 +1117,7 @@ .imsi = n->imsi, .codec_list_msc_preferred = n->codec_list_msc_preferred, + .call_id_present = true, .call_id = n->call_id, .global_call_reference = n->global_call_reference, .global_call_reference_len = n->global_call_reference_len, -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 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 Jun 9 12:51:01 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 12:51:01 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... Patch Set 2: (2 comments) > Patch Set 1: > > I would prefer to merge the addition of this IE to all relevant messages (I wrote it in the osmcoom issue), but if you prefer we can also do one commit per command - but let's make sure we don't forget about other messages besides ASSIGNMENT CMD I was having a look at the other messages now, I think its better to do it in separate commits. https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/msc_a.c File src/libmsc/msc_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/msc_a.c at 544 PS1, Line 544: call_id_present = true, : .call_id = cc_trans->callref > you are adding it unconditionally here. If we only support AoIP, we can do this unconditionally. [?] I think the sccplite support was only in the BSC. I have put it as an optional field because the spec has it optional, but in the end I think that hardcoding the presence flag everywhere in the end is also not a good idea. https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/ran_msg_a.c File src/libmsc/ran_msg_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/18692/1/src/libmsc/ran_msg_a.c at 1000 PS1, Line 1000: if(ac->call_id_present) > if if was a function... [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 09 Jun 2020 12:51:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 13:00:29 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 13:00:29 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER 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-msc/+/18740 to look at the new patch set (#2). Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST When msc_ho_send_handover_request() generates the HANDOVER REQUEST message, it does not populate the call_id struct member. In ran_msg_a.c the struct member call_id is used, but the call_id_present flag is not set, which also prevents the call_id being edded to the message Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Related: OS#4582 --- M src/libmsc/msc_ho.c M src/libmsc/ran_msg_a.c 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/18740/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 13:30:12 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 13:30:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: optional IPA stream ID patching References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 ) Change subject: library/RSL_Emulation: optional IPA stream ID patching ...................................................................... library/RSL_Emulation: optional IPA stream ID patching Unfortunately, the latest release of osmo-bts still has a bug, that has been fixed [1] in the recent master. Because of that, most of the test cases in ttcn3-bts-test-latest currently fail. The problem is that all transceivers use IPAC_PROTO_RSL_TRX0, regardless of what the BSC tells them to use. Let's work this around by patching IPA stream ID in ASP_RSL_Unitdata messages coming from the IPA emulation. [1] I5927f59a49724170a63e87be604973f7c9d5d8be Change-Id: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 --- M library/RSL_Emulation.ttcn 1 file changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/18741/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 9a07417..bb11340 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -35,6 +35,12 @@ import from IPA_Emulation all; +modulepar { + /* Work around switch for ttcn3-bts-test-latest, enables patching of IPA + * stream ID in the "BSC" mode. See I5927f59a49724170a63e87be604973f7c9d5d8be. */ + boolean mp_rslem_patch_ipa_cid := false; +}; + /* General "base class" component definition, of which specific implementations * derive themselves by means of the "extends" feature */ type component RSL_DchanHdlr { @@ -396,6 +402,19 @@ return TrxConnMap[trx_nr]; } +/* Work around for a bug in osmo-bts when all transceivers use IPAC_PROTO_RSL_TRX0 */ +private function f_trx_conn_map_patch_ud(inout ASP_RSL_Unitdata ud) +runs on RSL_Emulation_CT { + for (var integer i := 0; i < sizeof(TrxConnMap); i := i + 1) { + if (ud.conn_id == TrxConnMap[i]) { + ud.streamId := f_streamId_by_trx(i); + return; /* We're done */ + } + } + + testcase.stop("Failed to patch IPA stream ID in ASP RSL UD: ", ud); +} + type component RSL_Emulation_CT { /* port facing down towards IPA emulation */ port IPA_RSL_PT IPA_PT; @@ -537,11 +556,17 @@ /* Forward common channel management to the special port for it */ [] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeT(?), sid := ?)) -> value rx_rsl { + if (not bts_role and mp_rslem_patch_ipa_cid) { + f_trx_conn_map_patch_ud(rx_rsl); + } CCHAN_PT.send(rx_rsl); } /* Forward common channel management to the special port for it */ [] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeC(?), sid := ?)) -> value rx_rsl { + if (not bts_role and mp_rslem_patch_ipa_cid) { + f_trx_conn_map_patch_ud(rx_rsl); + } CCHAN_PT.send(rx_rsl); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 Gerrit-Change-Number: 18741 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 Jun 9 13:46:03 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 13:46:03 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 to look at the new patch set (#3). Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 893 insertions(+), 629 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/18644/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 13:54:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 13:54:44 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-msc/+/18740/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-msc/+/18740/2//COMMIT_MSG at 14 PS2, Line 14: edded to the message typo: added https://gerrit.osmocom.org/c/osmo-msc/+/18740/2/src/libmsc/msc_ho.c File src/libmsc/msc_ho.c: https://gerrit.osmocom.org/c/osmo-msc/+/18740/2/src/libmsc/msc_ho.c at 406 PS2, Line 406: .call_id = cc_trans->callref, NO .call_id_present = true here? -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 13:54:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 13:55:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 13:55:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: optional IPA stream ID patching In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 ) Change subject: library/RSL_Emulation: optional IPA stream ID patching ...................................................................... Patch Set 1: Verified+1 Makes ttcn3-bts-test-latest happy on my machine. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 Gerrit-Change-Number: 18741 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 13:55:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 13:56:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 13:56:47 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/3/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/3/src/libosmo-mgcp/mgcp_endp.c at 59 PS3, Line 59: /* FIXME: E1 trunk implementation is work in progress, this endpoint I'm not sure this simplification of only passing 1 index is going to be enough to describing the E1 endp, but I may be wrong. Did you think about that? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 13:56: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 Tue Jun 9 13:59:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 13:59:32 +0000 Subject: Change in osmo-gsm-tester[master]: Fix ttcn3 testsuites after recent refactors References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18742 ) Change subject: Fix ttcn3 testsuites after recent refactors ...................................................................... Fix ttcn3 testsuites after recent refactors Change-Id: I545e3141ef56980e4ef2474b990bd4e4d4c21322 --- M sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py M sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/42/18742/1 diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py index 0eceef7..f0e8667 100644 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py @@ -4,13 +4,13 @@ from osmo_gsm_tester.testenv import * -def run_ttcn3(tenv, test_obj, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute, ttcn3_test_extra_module_params=""): +def run_ttcn3(tenv, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute, ttcn3_test_extra_module_params=""): own_dir = testdir script_file = os.path.join(testdir, 'scripts', 'run_ttcn3_docker.sh') bts_tmpl_file = os.path.join(testdir, 'scripts', 'BTS_Tests.cfg.tmpl') - script_run_dir = test_obj.get_run_dir().new_dir('ttcn3') + script_run_dir = tenv.test().get_run_dir().new_dir('ttcn3') bts_cfg_file = os.path.join(str(script_run_dir), 'BTS_Tests.cfg') - junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-') + test_obj.basename + '.xml' + junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-') + tenv.test().basename + '.xml' if bts.bts_type() == 'osmo-bts-trx': pcu_available = True pcu_sk = bts.pcu_socket_path() diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py b/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py index b7c5781..4382454 100755 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py @@ -46,4 +46,4 @@ osmocon.start() testdir = os.path.dirname(os.path.realpath(__file__)) -run_ttcn3(tenv. test, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute) +run_ttcn3(tenv, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18742 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: I545e3141ef56980e4ef2474b990bd4e4d4c21322 Gerrit-Change-Number: 18742 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 Jun 9 13:59:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 13:59:49 +0000 Subject: Change in osmo-gsm-tester[master]: Fix ttcn3 testsuites after recent refactors In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18742 ) Change subject: Fix ttcn3 testsuites after recent refactors ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18742 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: I545e3141ef56980e4ef2474b990bd4e4d4c21322 Gerrit-Change-Number: 18742 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 09 Jun 2020 13:59: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 Jun 9 14:00:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 14:00:00 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18743 ) Change subject: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching ...................................................................... ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Depends: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 --- M ttcn3-bts-test/jenkins.sh 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/43/18743/1 diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 0d0473b..20ad748 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -99,6 +99,13 @@ mkdir $VOL_BASE_DIR/bts-tester/unix cp BTS_Tests.cfg $VOL_BASE_DIR/bts-tester/ +# Work around for a bug in osmo-bts when all transceivers use IPAC_PROTO_RSL_TRX0. +# Enables patching of IPA stream ID. TODO: remove as soon as we make a new release. +if [ "$IMAGE_SUFFIX" = "latest" ]; then + sed "s/RSL_Emulation.mp_rslem_patch_ipa_cid := false/RSL_Emulation.mp_rslem_patch_ipa_cid := true/g" -i \ + "$VOL_BASE_DIR/bts-tester/BTS_Tests.cfg" +fi + mkdir $VOL_BASE_DIR/bsc cp osmo-bsc.cfg $VOL_BASE_DIR/bsc/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Gerrit-Change-Number: 18743 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 Jun 9 14:06:27 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 14:06:27 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/18743 ) Change subject: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching ...................................................................... ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Depends: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 --- M ttcn3-bts-test/BTS_Tests.cfg M ttcn3-bts-test/jenkins.sh 2 files changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/43/18743/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Gerrit-Change-Number: 18743 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 Jun 9 14:10:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:10:40 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18743 ) Change subject: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Gerrit-Change-Number: 18743 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 14:10: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 Jun 9 14:10:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:10:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: optional IPA stream ID patching In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 ) Change subject: library/RSL_Emulation: optional IPA stream ID patching ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 Gerrit-Change-Number: 18741 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 14:10: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 Jun 9 14:11:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:11:20 +0000 Subject: Change in osmo-gsm-tester[master]: Fix ttcn3 testsuites after recent refactors In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18742 ) Change subject: Fix ttcn3 testsuites after recent refactors ...................................................................... Fix ttcn3 testsuites after recent refactors Change-Id: I545e3141ef56980e4ef2474b990bd4e4d4c21322 --- M sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py M sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py index 0eceef7..f0e8667 100644 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py @@ -4,13 +4,13 @@ from osmo_gsm_tester.testenv import * -def run_ttcn3(tenv, test_obj, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute, ttcn3_test_extra_module_params=""): +def run_ttcn3(tenv, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute, ttcn3_test_extra_module_params=""): own_dir = testdir script_file = os.path.join(testdir, 'scripts', 'run_ttcn3_docker.sh') bts_tmpl_file = os.path.join(testdir, 'scripts', 'BTS_Tests.cfg.tmpl') - script_run_dir = test_obj.get_run_dir().new_dir('ttcn3') + script_run_dir = tenv.test().get_run_dir().new_dir('ttcn3') bts_cfg_file = os.path.join(str(script_run_dir), 'BTS_Tests.cfg') - junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-') + test_obj.basename + '.xml' + junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-') + tenv.test().basename + '.xml' if bts.bts_type() == 'osmo-bts-trx': pcu_available = True pcu_sk = bts.pcu_socket_path() diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py b/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py index b7c5781..4382454 100755 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/ttcn3_bts_tests.py @@ -46,4 +46,4 @@ osmocon.start() testdir = os.path.dirname(os.path.realpath(__file__)) -run_ttcn3(tenv. test, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute) +run_ttcn3(tenv, testdir, bts, osmocon, nat_rsl_ip, ttcn3_test_execute) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18742 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: I545e3141ef56980e4ef2474b990bd4e4d4c21322 Gerrit-Change-Number: 18742 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 Tue Jun 9 14:26:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:26:02 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18744 ) Change subject: sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline ...................................................................... sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline Fix after recent huge refactoring. Change-Id: If0bcc9f7cb70e4ef324b3295d2174d11982a4bde --- M sysmocom/ttcn3/jenkins-run.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/44/18744/1 diff --git a/sysmocom/ttcn3/jenkins-run.sh b/sysmocom/ttcn3/jenkins-run.sh index 2bc687d..1688b88 100755 --- a/sysmocom/ttcn3/jenkins-run.sh +++ b/sysmocom/ttcn3/jenkins-run.sh @@ -44,7 +44,7 @@ # jenkins build job. # On failure, first clean up below and then return the exit code. exit_code="1" -if python3 -u "$(which osmo-gsm-tester.py)" "$trial_dir" $OSMO_GSM_TESTER_OPTS ; then +if python3 -u "$(which osmo-gsm-tester.py)" -c "$OSMO_GSM_TESTER_CONF" "$trial_dir" $OSMO_GSM_TESTER_OPTS ; then exit_code="0" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18744 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: If0bcc9f7cb70e4ef324b3295d2174d11982a4bde Gerrit-Change-Number: 18744 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 Jun 9 14:26:41 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 14:26:41 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 to look at the new patch set (#4). Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 903 insertions(+), 629 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/18644/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 14:26:41 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 14:26:41 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... endp: add name generator function for E1 endpoints Currently the endpoint name that is generated for an E1 endpoint is not correct. Lets add an endpoint name generator function that derives a full endpoint name for a given E1 index Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Related: OS#2547 --- M src/libosmo-mgcp/mgcp_endp.c 1 file changed, 23 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/1 diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index e357010..0eeda08 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -41,6 +41,26 @@ MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, index, domain); } +/* Generate E1 endpoint name from given numeric parameters */ +static void gen_e1_epname(char *epname, uint8_t trunk_nr, uint8_t ts_nr, + uint8_t ss_nr) +{ + static const uint8_t rates[] = + { 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 8, 8 }; + static const uint8_t offsets[] = + { 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; + unsigned int rate; + unsigned int offset; + + OSMO_ASSERT(ss_nr < sizeof(rates)); + + rate = rates[ss_nr]; + offset = offsets[ss_nr]; + + snprintf(epname, MGCP_ENDPOINT_MAXLEN, "%s%u/s-%u/su%u-%u", + MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, rate, offset); +} + /*! allocate an endpoint and set default values. * \param[in] trunk configuration * \returns endpoint on success, NULL on failure */ @@ -64,10 +84,9 @@ gen_virtual_epname(ep_name_buf, trunk->cfg->domain, index); break; case MGCP_TRUNK_E1: - /* FIXME: E1 trunk implementation is work in progress, this endpoint - * name is incomplete (subslots) */ - snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x", - MGCP_ENDPOINT_PREFIX_E1_TRUNK, index); + gen_e1_epname(ep_name_buf, trunk->trunk_nr, index / 14, index % 14); + + /* FIXME: remove this message when E1 support is complete */ LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); break; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 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 Jun 9 14:29:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 14:29:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: optional IPA stream ID patching In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 ) Change subject: library/RSL_Emulation: optional IPA stream ID patching ...................................................................... library/RSL_Emulation: optional IPA stream ID patching Unfortunately, the latest release of osmo-bts still has a bug, that has been fixed [1] in the recent master. Because of that, most of the test cases in ttcn3-bts-test-latest currently fail. The problem is that all transceivers use IPAC_PROTO_RSL_TRX0, regardless of what the BSC tells them to use. Let's work this around by patching IPA stream ID in ASP_RSL_Unitdata messages coming from the IPA emulation. [1] I5927f59a49724170a63e87be604973f7c9d5d8be Change-Id: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 --- M library/RSL_Emulation.ttcn 1 file changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Verified pespin: Looks good to me, approved diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 9a07417..bb11340 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -35,6 +35,12 @@ import from IPA_Emulation all; +modulepar { + /* Work around switch for ttcn3-bts-test-latest, enables patching of IPA + * stream ID in the "BSC" mode. See I5927f59a49724170a63e87be604973f7c9d5d8be. */ + boolean mp_rslem_patch_ipa_cid := false; +}; + /* General "base class" component definition, of which specific implementations * derive themselves by means of the "extends" feature */ type component RSL_DchanHdlr { @@ -396,6 +402,19 @@ return TrxConnMap[trx_nr]; } +/* Work around for a bug in osmo-bts when all transceivers use IPAC_PROTO_RSL_TRX0 */ +private function f_trx_conn_map_patch_ud(inout ASP_RSL_Unitdata ud) +runs on RSL_Emulation_CT { + for (var integer i := 0; i < sizeof(TrxConnMap); i := i + 1) { + if (ud.conn_id == TrxConnMap[i]) { + ud.streamId := f_streamId_by_trx(i); + return; /* We're done */ + } + } + + testcase.stop("Failed to patch IPA stream ID in ASP RSL UD: ", ud); +} + type component RSL_Emulation_CT { /* port facing down towards IPA emulation */ port IPA_RSL_PT IPA_PT; @@ -537,11 +556,17 @@ /* Forward common channel management to the special port for it */ [] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeT(?), sid := ?)) -> value rx_rsl { + if (not bts_role and mp_rslem_patch_ipa_cid) { + f_trx_conn_map_patch_ud(rx_rsl); + } CCHAN_PT.send(rx_rsl); } /* Forward common channel management to the special port for it */ [] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeC(?), sid := ?)) -> value rx_rsl { + if (not bts_role and mp_rslem_patch_ipa_cid) { + f_trx_conn_map_patch_ud(rx_rsl); + } CCHAN_PT.send(rx_rsl); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 Gerrit-Change-Number: 18741 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 14:30:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 14:30:11 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18743 ) Change subject: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Gerrit-Change-Number: 18743 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 14:30: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 Jun 9 14:30:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 14:30:16 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18743 ) Change subject: ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching ...................................................................... ttcn3-bts-test/jenkins.sh: fix latest: enable IPA stream ID patching Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Depends: I66cecc9ea24ba79e1a03492e3fda2874951d37a0 --- M ttcn3-bts-test/BTS_Tests.cfg M ttcn3-bts-test/jenkins.sh 2 files changed, 10 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved fixeria: Verified diff --git a/ttcn3-bts-test/BTS_Tests.cfg b/ttcn3-bts-test/BTS_Tests.cfg index 7e734c8..4ea1e59 100644 --- a/ttcn3-bts-test/BTS_Tests.cfg +++ b/ttcn3-bts-test/BTS_Tests.cfg @@ -15,6 +15,9 @@ L1CTL_PortType.m_l1ctl_sock_path := "/data/unix/osmocom_l2" BTS_Tests.mp_ctrl_ip := "172.18.9.20" +# Workaround for osmo-bts-latest: enable IPA stream ID patching +RSL_Emulation.mp_rslem_patch_ipa_cid := false; + [MAIN_CONTROLLER] [EXECUTE] diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 0d0473b..20ad748 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -99,6 +99,13 @@ mkdir $VOL_BASE_DIR/bts-tester/unix cp BTS_Tests.cfg $VOL_BASE_DIR/bts-tester/ +# Work around for a bug in osmo-bts when all transceivers use IPAC_PROTO_RSL_TRX0. +# Enables patching of IPA stream ID. TODO: remove as soon as we make a new release. +if [ "$IMAGE_SUFFIX" = "latest" ]; then + sed "s/RSL_Emulation.mp_rslem_patch_ipa_cid := false/RSL_Emulation.mp_rslem_patch_ipa_cid := true/g" -i \ + "$VOL_BASE_DIR/bts-tester/BTS_Tests.cfg" +fi + mkdir $VOL_BASE_DIR/bsc cp osmo-bsc.cfg $VOL_BASE_DIR/bsc/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9d76acc717f5aafbfbecafb30160b02486d341fd Gerrit-Change-Number: 18743 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Jun 9 14:34:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:34:20 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 3 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 3 ...................................................................... Patch Set 1: Using with osmo-trx-uhd B200 with multi-arfcn (2TRX) as requested by Daniel: osmotrx fn-advance 2 osmotrx rts-advance 3 I see lots of issues in osmo-bts-trx like this: 20200609163224911 DL1P <0007> scheduler.c:669 1027203/774/21/12/27 (bts=0,trx=1,ts=7) PDTCH: Prim 2715644 is out of range (100), or channel (bts=0,trx=1,ts=7,ss=0) with type PDTCH is already disabled. If this happens in conjunction with PCU, increase 'rts-advance' by 5. No issue shows up in osmo-trx. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 14:34: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 Tue Jun 9 14:36:02 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 14:36:02 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 to look at the new patch set (#3). Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST When msc_ho_send_handover_request() generates the HANDOVER REQUEST message, it does not populate the call_id struct member. In ran_msg_a.c the struct member call_id is used, but the call_id_present flag is not set, which also prevents the call_id being added to the message Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Related: OS#4582 --- M src/libmsc/msc_ho.c M src/libmsc/ran_msg_a.c 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/18740/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 14:36:20 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 14:36:20 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 3: (1 comment) (ensur all messages are sent) https://gerrit.osmocom.org/c/osmo-msc/+/18740/2/src/libmsc/msc_ho.c File src/libmsc/msc_ho.c: https://gerrit.osmocom.org/c/osmo-msc/+/18740/2/src/libmsc/msc_ho.c at 406 PS2, Line 406: .call_id = cc_trans->callref, > NO . [?] Thats indeed not required. The generator function unconditionally picks it, which is ok. The struct member is only used when the MSC receives messages and decodes them. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 14:36: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 Jun 9 14:40:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:40:17 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1//COMMIT_MSG at 10 PS1, Line 10: correct. Lets add an endpoint name generator function that derives a Let's https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1/src/libosmo-mgcp/mgcp_endp.c at 87 PS1, Line 87: gen_e1_epname(ep_name_buf, trunk->trunk_nr, index / 14, index % 14); So you'll be in the end crafting an index value to pass it to mgcp_endp_alloc(), to then uncraft it to convert it into a string. Does that really make sense? If IDs are really strings, then simply pass a string to mgcp_endp_alloc? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 14:40:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 14:44:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:44:12 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 14:44:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 14:47:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 14:47:11 +0000 Subject: Change in osmo-bts[master]: pcu_sock: Change log about tx PCH confirm INFO->DEBUG References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18746 ) Change subject: pcu_sock: Change log about tx PCH confirm INFO->DEBUG ...................................................................... pcu_sock: Change log about tx PCH confirm INFO->DEBUG It's not something useful to see unless someone's really debugging that part, and it shows up quite frequently. Change-Id: I3c0dee36c7d34e6b1341b517ce3bcd1b275e69c1 --- M src/common/pcu_sock.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/18746/1 diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 7ced69c..f4a8c0a 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -474,7 +474,7 @@ /* FIXME: allow multiple BTS */ bts = llist_entry(net->bts_list.next, struct gsm_bts, list); - LOGP(DPCU, LOGL_INFO, "Sending PCH confirm\n"); + LOGP(DPCU, LOGL_DEBUG, "Sending PCH confirm\n"); msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_CNF, bts->nr); if (!msg) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c0dee36c7d34e6b1341b517ce3bcd1b275e69c1 Gerrit-Change-Number: 18746 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 Jun 9 15:23:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 15:23:29 +0000 Subject: Change in osmocom-bb[master]: firmware/apps/rssi: enlarge text buffer in refresh_display() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18747 ) Change subject: firmware/apps/rssi: enlarge text buffer in refresh_display() ...................................................................... firmware/apps/rssi: enlarge text buffer in refresh_display() This change fixes several warnings reported by GCC 10.1.0: apps/rssi/main.c:238:30: warning: 'sprintf' may write a terminating nul past the end of the destination apps/rssi/main.c:238:4: note: 'sprintf' output between 10 and 17 bytes into a destination of size 16 apps/rssi/main.c:413:26: warning: '.' directive writing 1 byte into a region of size between 0 and 9 apps/rssi/main.c:413:3: note: 'sprintf' output between 10 and 20 bytes into a destination of size 16 Change-Id: I7980727b78f7622d792d82170f73c90ac5770397 --- M src/target/firmware/apps/rssi/main.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/47/18747/1 diff --git a/src/target/firmware/apps/rssi/main.c b/src/target/firmware/apps/rssi/main.c index e137806..4b33ee3 100644 --- a/src/target/firmware/apps/rssi/main.c +++ b/src/target/firmware/apps/rssi/main.c @@ -170,7 +170,7 @@ static void refresh_display(void) { - char text[16]; + char text[32]; int bat = battery_info.battery_percent; fb_clear(); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7980727b78f7622d792d82170f73c90ac5770397 Gerrit-Change-Number: 18747 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 Jun 9 15:23:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 15:23:30 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: cosmetic: add missing comma to debug print References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18748 ) Change subject: firmware/layer1: cosmetic: add missing comma to debug print ...................................................................... firmware/layer1: cosmetic: add missing comma to debug print Change-Id: Icfc403e500c24628da722ab378fba31923afd1a1 --- M src/target/firmware/layer1/l23_api.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/48/18748/1 diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c index e0fee84..d52d8f6 100644 --- a/src/target/firmware/layer1/l23_api.c +++ b/src/target/firmware/layer1/l23_api.c @@ -376,7 +376,7 @@ struct l1ctl_info_ul *ul = (struct l1ctl_info_ul *) l1h->data; struct l1ctl_rach_req *rach_req = (struct l1ctl_rach_req *) ul->payload; - printd("L1CTL_RACH_REQ (ra=0x%02x, offset=%d combined=%d)\n", + printd("L1CTL_RACH_REQ (ra=0x%02x, offset=%d, combined=%d)\n", rach_req->ra, ntohs(rach_req->offset), rach_req->combined); l1a_rach_req(ntohs(rach_req->offset), rach_req->combined, -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Icfc403e500c24628da722ab378fba31923afd1a1 Gerrit-Change-Number: 18748 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 Jun 9 15:28:05 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 15:28:05 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 to look at the new patch set (#2). Change subject: abis_rsl: Count successful channel requests ...................................................................... abis_rsl: Count successful channel requests Ticket: SYS#4877 Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c 2 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/19/18719/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 15:28:05 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 15:28:05 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well 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/+/18720 to look at the new patch set (#3). Change subject: Count assignment rates per BTS as well ...................................................................... Count assignment rates per BTS as well This adds the assignment counters for the BTS as well and changes the assignment_count() macro to increase both the counters for the BSC as well as the BTS. Related: SYS#4877 Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c 2 files changed, 29 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/20/18720/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 15:28:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 15:28:06 +0000 Subject: Change in osmo-bsc[master]: gsm_data.h: Remove period at end of counter descriptionn References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18749 ) Change subject: gsm_data.h: Remove period at end of counter descriptionn ...................................................................... gsm_data.h: Remove period at end of counter descriptionn Change-Id: I045cef207603074bd018e40f984263d03db31405 --- M include/osmocom/bsc/gsm_data.h 1 file changed, 18 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/49/18749/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 1e7e88f..bb8b764 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1429,25 +1429,25 @@ }; static const struct rate_ctr_desc bts_ctr_description[] = { - [BTS_CTR_CHREQ_TOTAL] = {"chreq:total", "Received channel requests."}, - [BTS_CTR_CHREQ_NO_CHANNEL] = {"chreq:no_channel", "Sent to MS no channel available."}, - [BTS_CTR_CHAN_RF_FAIL] = {"chan:rf_fail", "Received a RF failure indication from BTS."}, - [BTS_CTR_CHAN_RLL_ERR] = {"chan:rll_err", "Received a RLL failure with T200 cause from BTS."}, - [BTS_CTR_BTS_OML_FAIL] = {"oml_fail", "Received a TEI down on a OML link."}, - [BTS_CTR_BTS_RSL_FAIL] = {"rsl_fail", "Received a TEI down on a OML link."}, - [BTS_CTR_CODEC_AMR_F] = {"codec:amr_f", "Count the usage of AMR/F codec by channel mode requested."}, - [BTS_CTR_CODEC_AMR_H] = {"codec:amr_h", "Count the usage of AMR/H codec by channel mode requested."}, - [BTS_CTR_CODEC_EFR] = {"codec:efr", "Count the usage of EFR codec by channel mode requested."}, - [BTS_CTR_CODEC_V1_FR] = {"codec:fr", "Count the usage of FR codec by channel mode requested."}, - [BTS_CTR_CODEC_V1_HR] = {"codec:hr", "Count the usage of HR codec by channel mode requested."}, + [BTS_CTR_CHREQ_TOTAL] = {"chreq:total", "Received channel requests"}, + [BTS_CTR_CHREQ_NO_CHANNEL] = {"chreq:no_channel", "Sent to MS no channel available"}, + [BTS_CTR_CHAN_RF_FAIL] = {"chan:rf_fail", "Received a RF failure indication from BTS"}, + [BTS_CTR_CHAN_RLL_ERR] = {"chan:rll_err", "Received a RLL failure with T200 cause from BTS"}, + [BTS_CTR_BTS_OML_FAIL] = {"oml_fail", "Received a TEI down on a OML link"}, + [BTS_CTR_BTS_RSL_FAIL] = {"rsl_fail", "Received a TEI down on a OML link"}, + [BTS_CTR_CODEC_AMR_F] = {"codec:amr_f", "Count the usage of AMR/F codec by channel mode requested"}, + [BTS_CTR_CODEC_AMR_H] = {"codec:amr_h", "Count the usage of AMR/H codec by channel mode requested"}, + [BTS_CTR_CODEC_EFR] = {"codec:efr", "Count the usage of EFR codec by channel mode requested"}, + [BTS_CTR_CODEC_V1_FR] = {"codec:fr", "Count the usage of FR codec by channel mode requested"}, + [BTS_CTR_CODEC_V1_HR] = {"codec:hr", "Count the usage of HR codec by channel mode requested"}, - [BTS_CTR_PAGING_ATTEMPTED] = {"paging:attempted", "Paging attempts for a subscriber."}, - [BTS_CTR_PAGING_ALREADY] = {"paging:already", "Paging attempts ignored as subscriber was already being paged."}, - [BTS_CTR_PAGING_RESPONDED] = {"paging:responded", "Paging attempts with successful paging response."}, - [BTS_CTR_PAGING_EXPIRED] = {"paging:expired", "Paging Request expired because of timeout T3113."}, - [BTS_CTR_PAGING_NO_ACTIVE_PAGING] = {"paging:no_active_paging", "Paging response without an active paging request (arrived after paging expiration?)."}, - [BTS_CTR_PAGING_MSC_FLUSH] = {"paging:msc_flush", "Paging flushed due to MSC Reset BSSMAP message."}, - [BTS_CTR_CHAN_ACT_TOTAL] = {"chan_act:total", "Total number of Channel Activations."}, + [BTS_CTR_PAGING_ATTEMPTED] = {"paging:attempted", "Paging attempts for a subscriber"}, + [BTS_CTR_PAGING_ALREADY] = {"paging:already", "Paging attempts ignored as subscriber was already being paged"}, + [BTS_CTR_PAGING_RESPONDED] = {"paging:responded", "Paging attempts with successful paging response"}, + [BTS_CTR_PAGING_EXPIRED] = {"paging:expired", "Paging Request expired because of timeout T3113"}, + [BTS_CTR_PAGING_NO_ACTIVE_PAGING] = {"paging:no_active_paging", "Paging response without an active paging request (arrived after paging expiration?)"}, + [BTS_CTR_PAGING_MSC_FLUSH] = {"paging:msc_flush", "Paging flushed due to MSC Reset BSSMAP message"}, + [BTS_CTR_CHAN_ACT_TOTAL] = {"chan_act:total", "Total number of Channel Activations"}, [BTS_CTR_CHAN_ACT_NACK] = {"chan_act:nack", "Number of Channel Activations that the BTS NACKed"}, [BTS_CTR_RSL_UNKNOWN] = {"rsl:unknown", "Number of unknown/unsupported RSL messages received from BTS"}, [BTS_CTR_RSL_IPA_NACK] = {"rsl:ipa_nack", "Number of IPA (RTP/dyn-PDCH) related NACKs received from BTS"}, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I045cef207603074bd018e40f984263d03db31405 Gerrit-Change-Number: 18749 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 15:29:35 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 15:29:35 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18720 ) Change subject: Count assignment rates per BTS as well ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18720/2/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/18720/2/include/osmocom/bsc/gsm_data.h at 1441 PS2, Line 1441: [BTS_CTR_CHREQ_SUCCESSFUL] = {"chreq:successful", "Successful channel requests (immediate assign sent)."}, > That's for the previous patch, not for this one, right? You're right, moved it (and removed the period) https://gerrit.osmocom.org/c/osmo-bsc/+/18720/2/include/osmocom/bsc/gsm_data.h at 1487 PS2, Line 1487: [BTS_CTR_ASSIGNMENT_ATTEMPTED] = {"assignment:attempted", "Assignment attempts."}, > Remove dot at the end Ok, I have also added a separate commit to remove the period in other counter descriptions. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 15:29: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 Tue Jun 9 15:30:03 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 15:30:03 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Use designated initializer in bts_stat_desc In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18718 ) Change subject: osmo-bsc: Use designated initializer in bts_stat_desc ...................................................................... osmo-bsc: Use designated initializer in bts_stat_desc Change-Id: Ic29f3a7e6fb16955bc74cc163d45a243b373183a --- M src/osmo-bsc/gsm_data.c 1 file changed, 45 insertions(+), 24 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/gsm_data.c b/src/osmo-bsc/gsm_data.c index 46e26ac..9bf6f82 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -345,30 +345,51 @@ } static const struct osmo_stat_item_desc bts_stat_desc[] = { - { "chanloadavg", "Channel load average", "%", 16, 0 }, - { "chan_ccch_sdcch4:used", "Number of CCCH+SDCCH4 channels used", "", 16, 0 }, - { "chan_ccch_sdcch4:total", "Number of CCCH+SDCCH4 channels total", "", 16, 0 }, - { "chan_tch_f:used", "Number of TCH/F channels used", "", 16, 0 }, - { "chan_tch_f:total", "Number of TCH/F channels total", "", 16, 0 }, - { "chan_tch_h:used", "Number of TCH/H channels used", "", 16, 0 }, - { "chan_tch_h:total", "Number of TCH/H channels total", "", 16, 0 }, - { "chan_sdcch8:used", "Number of SDCCH8 channels used", "", 16, 0 }, - { "chan_sdcch8:total", "Number of SDCCH8 channels total", "", 16, 0 }, - { "chan_tch_f_pdch:used", "Number of TCH/F_PDCH channels used", "", 16, 0 }, - { "chan_tch_f_pdch:total", "Number of TCH/F_PDCH channels total", "", 16, 0 }, - { "chan_ccch_sdcch4_cbch:used", "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 }, - { "chan_ccch_sdcch4_cbch:total", "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 }, - { "chan_sdcch8_cbch:used", "Number of SDCCH8+CBCH channels used", "", 16, 0 }, - { "chan_sdcch8_cbch:total", "Number of SDCCH8+CBCH channels total", "", 16, 0 }, - { "chan_tch_f_tch_h_pdch:used", "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 }, - { "chan_tch_f_tch_h_pdch:total", "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 }, - { "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator", "s", 16, GSM_T3122_DEFAULT }, - { "rach_busy", "RACH slots with signal above threshold", "%", 16, 0 }, - { "rach_access", "RACH slots with access bursts in them", "%", 16, 0 }, - { "oml_connected", "Number of OML links connected", "", 16, 0 }, - { "rsl_connected", "Number of RSL links connected", "", 16, 0 }, - { "lchan_borken", "Number of lchans in the BORKEN state", "", 16, 0 }, - { "ts_borken", "Number of timeslots in the BORKEN state", "", 16, 0 }, + [BTS_STAT_CHAN_LOAD_AVERAGE] = { "chanloadavg", "Channel load average", "%", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_USED] = { "chan_ccch_sdcch4:used", + "Number of CCCH+SDCCH4 channels used", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_TOTAL] = { "chan_ccch_sdcch4:total", + "Number of CCCH+SDCCH4 channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_USED] = { "chan_tch_f:used", + "Number of TCH/F channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TOTAL] = { "chan_tch_f:total", + "Number of TCH/F channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_H_USED] = { "chan_tch_h:used", + "Number of TCH/H channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_H_TOTAL] = { "chan_tch_h:total", + "Number of TCH/H channels total", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_USED] = { "chan_sdcch8:used", + "Number of SDCCH8 channels used", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_TOTAL] = { "chan_sdcch8:total", + "Number of SDCCH8 channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_PDCH_USED] = { "chan_tch_f_pdch:used", + "Number of TCH/F_PDCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_PDCH_TOTAL] = { "chan_tch_f_pdch:total", + "Number of TCH/F_PDCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_USED] = { "chan_ccch_sdcch4_cbch:used", + "Number of CCCH+SDCCH4+CBCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_CCCH_SDCCH4_CBCH_TOTAL] = { "chan_ccch_sdcch4_cbch:total", + "Number of CCCH+SDCCH4+CBCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_CBCH_USED] = { "chan_sdcch8_cbch:used", + "Number of SDCCH8+CBCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_SDCCH8_CBCH_TOTAL] = { "chan_sdcch8_cbch:total", + "Number of SDCCH8+CBCH channels total", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_USED] = { "chan_tch_f_tch_h_pdch:used", + "Number of TCH/F_TCH/H_PDCH channels used", "", 16, 0 }, + [BTS_STAT_CHAN_TCH_F_TCH_H_PDCH_TOTAL] = { "chan_tch_f_tch_h_pdch:total", + "Number of TCH/F_TCH/H_PDCH channels total", "", 16, 0 }, + [BTS_STAT_T3122] = { "T3122", "T3122 IMMEDIATE ASSIGNMENT REJECT wait indicator", + "s", 16, GSM_T3122_DEFAULT }, + [BTS_STAT_RACH_BUSY] = { "rach_busy", + "RACH slots with signal above threshold", "%", 16, 0 }, + [BTS_STAT_RACH_ACCESS] = { "rach_access", + "RACH slots with access bursts in them", "%", 16, 0 }, + [BTS_STAT_OML_CONNECTED] = { "oml_connected", "Number of OML links connected", "", 16, 0 }, + [BTS_STAT_RSL_CONNECTED] = { "rsl_connected", "Number of RSL links connected", "", 16, 0 }, + [BTS_STAT_LCHAN_BORKEN] = { "lchan_borken", + "Number of lchans in the BORKEN state", "", 16, 0 }, + [BTS_STAT_TS_BORKEN] = { "ts_borken", + "Number of timeslots in the BORKEN state", "", 16, 0 }, }; static const struct osmo_stat_item_group_desc bts_statg_desc = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic29f3a7e6fb16955bc74cc163d45a243b373183a Gerrit-Change-Number: 18718 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 15:52:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 15:52:06 +0000 Subject: Change in osmocom-bb[master]: firmware/apps/rssi: enlarge text buffer in refresh_display() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18747 ) Change subject: firmware/apps/rssi: enlarge text buffer in refresh_display() ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18747/1/src/target/firmware/apps/rssi/main.c File src/target/firmware/apps/rssi/main.c: https://gerrit.osmocom.org/c/osmocom-bb/+/18747/1/src/target/firmware/apps/rssi/main.c at 197 PS1, Line 197: sprintf(text, "%c%cE%c%c", (power >= 40) ? 'D':'G', Would be great using snprintf too. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7980727b78f7622d792d82170f73c90ac5770397 Gerrit-Change-Number: 18747 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 15:52:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 15:52:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 15:52:16 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: cosmetic: add missing comma to debug print In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18748 ) Change subject: firmware/layer1: cosmetic: add missing comma to debug print ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Icfc403e500c24628da722ab378fba31923afd1a1 Gerrit-Change-Number: 18748 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 15:52:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jun 9 15:58:14 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 09 Jun 2020 15:58:14 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5edfb19e236fb_642f2b139387c5e06136a1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 435s] [1929/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 435s] [1930/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 435s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 435s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 435s] [1933/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 435s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 436s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 436s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 436s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 436s] ../src/udm/context.c: In function ?udm_ue_add?: [ 436s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 436s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 436s] ~~^ [ 436s] %d [ 436s] cc1: some warnings being treated as errors [ 436s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 436s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 436s] [1938/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 436s] ninja: build stopped: subcommand failed. [ 436s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 436s] make: *** [debian/rules:11: binary] Error 1 [ 436s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 436s] ### VM INTERACTION START ### [ 439s] [ 424.314092] sysrq: SysRq : Power Off [ 439s] [ 424.330463] reboot: Power down [ 440s] ### VM INTERACTION END ### [ 440s] [ 440s] armbuild21 failed "build open5gs_1.2.5.20200609.dsc" at Tue Jun 9 15:57:58 UTC 2020. [ 440s] -- 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 Jun 9 16:05:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 16:05:40 +0000 Subject: Change in osmo-bts[master]: scheduler.c: Fix trailing whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18750 ) Change subject: scheduler.c: Fix trailing whitespace ...................................................................... scheduler.c: Fix trailing whitespace Change-Id: I9842470fcad074863bd30550ac63640754de1d37 --- M src/common/scheduler.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/50/18750/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 5b398d1..55cb36a 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -827,7 +827,7 @@ } -/* +/* * ready-to-send indication (to upper layer) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9842470fcad074863bd30550ac63640754de1d37 Gerrit-Change-Number: 18750 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 Jun 9 16:05:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 16:05:41 +0000 Subject: Change in osmo-bts[master]: scheduler: Fix reading out of buffer during tx of dummy burst on PDCH... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18751 ) Change subject: scheduler: Fix reading out of buffer during tx of dummy burst on PDCH TS with EGPRS enabled ...................................................................... scheduler: Fix reading out of buffer during tx of dummy burst on PDCH TS with EGPRS enabled If for whatever reason (eg fn-advance too small) there's no burst available for a PDCH TS where EGPRS is enabled, a dummy burst of size GSM_BURST_LEN would be selected in _sched_dl_burst(), but the nbits length would still be set to EGPRS_BURST_LEN above by func() pointer (tx_pdtch_fn()). As a result, trx_if_send_burst() would later read EGPRS_BURST_LEN from the dummy burst of size GSM_BURST_LEN. The issue was found by ASan. See OS#4606 for more info. Fixes: OS#4606 Change-Id: Iba6ccceed5c0f1db810259768678f174d39cbf8b --- M src/common/scheduler.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/51/18751/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 55cb36a..021a4cd 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1211,6 +1211,8 @@ trx_chan_desc[chan].name, fn, tn, bid); #endif bits = (ubit_t *) dummy_burst; + if (nbits) + *nbits = ARRAY_SIZE(dummy_burst); } return bits; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba6ccceed5c0f1db810259768678f174d39cbf8b Gerrit-Change-Number: 18751 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 Jun 9 16:09:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 16:09:03 +0000 Subject: Change in osmo-bts[master]: scheduler.c: Fix trailing whitespace In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18750 ) Change subject: scheduler.c: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9842470fcad074863bd30550ac63640754de1d37 Gerrit-Change-Number: 18750 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 09 Jun 2020 16:09:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 16:14:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 16:14:07 +0000 Subject: Change in osmo-bsc[master]: gsm_data.h: Remove period at end of counter descriptionn In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18749 ) Change subject: gsm_data.h: Remove period at end of counter descriptionn ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18749/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18749/1//COMMIT_MSG at 7 PS1, Line 7: gsm_data.h: Remove period at end of counter descriptionn Now you need to send a patch named "Remove character n at the end of commit descriptionn" and you enter an infinite loop. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I045cef207603074bd018e40f984263d03db31405 Gerrit-Change-Number: 18749 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 16:14:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 16:14:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 16:14:25 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18719 ) Change subject: abis_rsl: Count successful channel requests ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 16: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 Tue Jun 9 16:14:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 16:14:58 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18720 ) Change subject: Count assignment rates per BTS as well ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 16:14:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 16:18:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 16:18:44 +0000 Subject: Change in osmo-bts[master]: scheduler.c: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18750 ) Change subject: scheduler.c: Fix trailing whitespace ...................................................................... scheduler.c: Fix trailing whitespace Change-Id: I9842470fcad074863bd30550ac63640754de1d37 --- M src/common/scheduler.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 5b398d1..55cb36a 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -827,7 +827,7 @@ } -/* +/* * ready-to-send indication (to upper layer) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9842470fcad074863bd30550ac63640754de1d37 Gerrit-Change-Number: 18750 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 Jun 9 16:19:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 9 Jun 2020 16:19:24 +0000 Subject: Change in osmo-bts[master]: scheduler: Fix reading out of buffer during tx of dummy burst on PDCH... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18751 ) Change subject: scheduler: Fix reading out of buffer during tx of dummy burst on PDCH TS with EGPRS enabled ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18751/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/18751/1//COMMIT_MSG at 7 PS1, Line 7: Fix reading out of buffer during tx of dummy burst on PDCH TS with EGPRS enabled Commit description is a bit too long, it could be just "... fix dummy burst buffer overrun". -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba6ccceed5c0f1db810259768678f174d39cbf8b Gerrit-Change-Number: 18751 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 09 Jun 2020 16:19: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 Tue Jun 9 16:59:44 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 16:59:44 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints 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-mgw/+/18745 to look at the new patch set (#2). Change subject: endp: add name generator function for E1 endpoints ...................................................................... endp: add name generator function for E1 endpoints Currently the endpoint name that is generated for an E1 endpoint is not correct. Let's add an endpoint name generator function that derives a full endpoint name for a given E1 index Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Related: OS#2547 --- M src/libosmo-mgcp/mgcp_endp.c 1 file changed, 23 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 17:00:15 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 17:00:15 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... Patch Set 2: (2 comments) (ensure all messages are sent) https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1//COMMIT_MSG at 10 PS1, Line 10: correct. Lets add an endpoint name generator function that derives a > Let's Done https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/1/src/libosmo-mgcp/mgcp_endp.c at 87 PS1, Line 87: gen_e1_epname(ep_name_buf, trunk->trunk_nr, index / 14, index % 14); > So you'll be in the end crafting an index value to pass it to mgcp_endp_alloc(), to then uncraft it [?] When the trunk is allocated all it knows is how many endpoints it has to allocate. The index is just for the moment of allocation so that the endp alloc function can generate the name. I had the name generation in mgcp_trunk.c before but I think that the "knowlege" on how the name is generated should only be in mgcp_endp.c. We also remove complexity, the trunk no longer has to distinguish between the E1 and virtual when generating the name. An alternate solution would be to let mgcp_endp_alloc() allocate all endpoints, then the index would not have to passed as a parameter. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 17:00: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 Tue Jun 9 17:30:38 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 17:30:38 +0000 Subject: Change in osmo-bsc[master]: gsm_data.h: Remove period at end of counter description In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 to look at the new patch set (#2). Change subject: gsm_data.h: Remove period at end of counter description ...................................................................... gsm_data.h: Remove period at end of counter description Change-Id: I045cef207603074bd018e40f984263d03db31405 --- M include/osmocom/bsc/gsm_data.h 1 file changed, 18 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/49/18749/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I045cef207603074bd018e40f984263d03db31405 Gerrit-Change-Number: 18749 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 17:30:38 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 17:30:38 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 to look at the new patch set (#3). Change subject: abis_rsl: Count successful channel requests ...................................................................... abis_rsl: Count successful channel requests Ticket: SYS#4877 Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c 2 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/19/18719/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 17:30:38 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 17:30:38 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 to look at the new patch set (#4). Change subject: Count assignment rates per BTS as well ...................................................................... Count assignment rates per BTS as well This adds the assignment counters for the BTS as well and changes the assignment_count() macro to increase both the counters for the BSC as well as the BTS. Related: SYS#4877 Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c 2 files changed, 29 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/20/18720/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 17:32:28 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 9 Jun 2020 17:32:28 +0000 Subject: Change in osmo-bsc[master]: gsm_data.h: Remove period at end of counter description In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18749 ) Change subject: gsm_data.h: Remove period at end of counter description ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18749/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18749/1//COMMIT_MSG at 7 PS1, Line 7: gsm_data.h: Remove period at end of counter descriptionn > Now you need to send a patch named [?] I blame my fast computer. It registered two keystrokes where I only intended oneeee :-) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I045cef207603074bd018e40f984263d03db31405 Gerrit-Change-Number: 18749 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 17:32:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jun 9 17:42:57 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 09 Jun 2020 17:42:57 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5edfca39b27c1_642f2b139387c5e06403da@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 541s] [1933/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/pcrf:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/rx:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/common:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/gx [ 541s] [1934/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 541s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 541s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-build.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 541s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 541s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 541s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 541s] ../src/udm/context.c: In function ?udm_ue_add?: [ 541s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 541s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 541s] ~~^ [ 541s] %d [ 541s] cc1: some warnings being treated as errors [ 541s] [1938/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 541s] [1939/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 541s] [1940/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/ue-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/ue-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 541s] [1941/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/nf-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 542s] [1942/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 542s] ninja: build stopped: subcommand failed. [ 542s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 542s] make: *** [debian/rules:11: binary] Error 1 [ 542s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 542s] ### VM INTERACTION START ### [ 545s] [ 514.824769] sysrq: SysRq : Power Off [ 545s] [ 514.835568] reboot: Power down [ 546s] ### VM INTERACTION END ### [ 546s] [ 546s] obs-arm-5 failed "build open5gs_1.2.5.20200609.dsc" at Tue Jun 9 17:42:53 UTC 2020. [ 546s] -- 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 Jun 9 18:00:12 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 18:00:12 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 to look at the new patch set (#5). Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 903 insertions(+), 629 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/18644/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 9 18:00:14 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 9 Jun 2020 18:00:14 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/1 diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 7774e40..33ca116 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -137,9 +137,7 @@ * e1 trunk for now. */ prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; if (strncmp(epname, MGCP_ENDPOINT_PREFIX_E1_TRUNK, prefix_len) == 0) { - LOGP(DLMGCP, LOGL_ERROR, - "endpoint name \"%s\" suggests an E1 trunk, but E1 trunks are not implemented in this version of osmo-mgw!\n", epname); - return NULL; + return mgcp_trunk_by_num(cfg, atoi(epname+prefix_len)); } /* Earlier versions of osmo-mgw were accepting endpoint names -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 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 Jun 9 20:40:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 20:40:12 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18744 ) Change subject: sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18744 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: If0bcc9f7cb70e4ef324b3295d2174d11982a4bde Gerrit-Change-Number: 18744 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 09 Jun 2020 20:40: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 Jun 9 20:40:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 9 Jun 2020 20:40:15 +0000 Subject: Change in osmo-gsm-tester[master]: sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18744 ) Change subject: sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline ...................................................................... sysmocom/ttcn3/jenkins-run.sh: Pass confg file as cmdline Fix after recent huge refactoring. Change-Id: If0bcc9f7cb70e4ef324b3295d2174d11982a4bde --- M sysmocom/ttcn3/jenkins-run.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/sysmocom/ttcn3/jenkins-run.sh b/sysmocom/ttcn3/jenkins-run.sh index 2bc687d..1688b88 100755 --- a/sysmocom/ttcn3/jenkins-run.sh +++ b/sysmocom/ttcn3/jenkins-run.sh @@ -44,7 +44,7 @@ # jenkins build job. # On failure, first clean up below and then return the exit code. exit_code="1" -if python3 -u "$(which osmo-gsm-tester.py)" "$trial_dir" $OSMO_GSM_TESTER_OPTS ; then +if python3 -u "$(which osmo-gsm-tester.py)" -c "$OSMO_GSM_TESTER_CONF" "$trial_dir" $OSMO_GSM_TESTER_OPTS ; then exit_code="0" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18744 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: If0bcc9f7cb70e4ef324b3295d2174d11982a4bde Gerrit-Change-Number: 18744 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 admin at opensuse.org Wed Jun 10 01:41:36 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 10 Jun 2020 01:41:36 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee03a5c68ef5_642f2b139387c5e07533cc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 187s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 187s] [1941/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 187s] FAILED: src/udm/udm at sta/context.c.o [ 187s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 187s] ../src/udm/context.c: In function ?udm_ue_add?: [ 187s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 187s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 187s] ~~^ [ 187s] %d [ 187s] cc1: some warnings being treated as errors [ 187s] [1942/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 187s] [1943/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -lidn -ldl -lsctp -lgcrypt -lgnutls -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 187s] [1944/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 187s] [1945/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/ue-sm.c.o' -MF 'src/udm/udm at sta/ue-sm.c.o.d' -o 'src/udm/udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 187s] [1946/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 187s] [1947/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/sbi-path.c.o' -MF 'src/udm/udm at sta/sbi-path.c.o.d' -o 'src/udm/udm at sta/sbi-path.c.o' -c ../src/udm/sbi-path.c [ 187s] [1948/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 187s] ninja: build stopped: subcommand failed. [ 187s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 187s] debian/rules:11: recipe for target 'binary' failed [ 187s] make: *** [binary] Error 1 [ 187s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 187s] ### VM INTERACTION START ### [ 190s] [ 181.210273] sysrq: SysRq : Power Off [ 190s] [ 181.214457] reboot: Power down [ 191s] ### VM INTERACTION END ### [ 191s] [ 191s] lamb15 failed "build open5gs_1.2.5.20200610.dsc" at Wed Jun 10 01:41:19 UTC 2020. [ 191s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 10 01:47:36 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 10 Jun 2020 01:47:36 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee03bc4997c2_642f2b139387c5e0754144@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 211s] [1919/2112] cc -Isrc/nrf/src at nrf@@nrf at sta -Isrc/nrf -I../src/nrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' -MF 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o.d' -o 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' -c ../src/nrf/nrf-sm.c [ 211s] [1920/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 211s] [1921/2112] rm -f src/pcrf/libpcrf.a && gcc-ar csrD src/pcrf/libpcrf.a 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-init.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-context.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-fd-path.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-rx-path.c.o' [ 211s] [1922/2112] cc -Isrc/nrf/src at nrf@@nrf at sta -Isrc/nrf -I../src/nrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/nrf/src at nrf@@nrf at sta/nf-sm.c.o' -MF 'src/nrf/src at nrf@@nrf at sta/nf-sm.c.o.d' -o 'src/nrf/src at nrf@@nrf at sta/nf-sm.c.o' -c ../src/nrf/nf-sm.c [ 211s] [1923/2112] rm -f src/nrf/libnrf.a && gcc-ar csrD src/nrf/libnrf.a 'src/nrf/src at nrf@@nrf at sta/context.c.o' 'src/nrf/src at nrf@@nrf at sta/event.c.o' 'src/nrf/src at nrf@@nrf at sta/timer.c.o' 'src/nrf/src at nrf@@nrf at sta/nnrf-handler.c.o' 'src/nrf/src at nrf@@nrf at sta/nnrf-build.c.o' 'src/nrf/src at nrf@@nrf at sta/sbi-path.c.o' 'src/nrf/src at nrf@@nrf at sta/nf-sm.c.o' 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' 'src/nrf/src at nrf@@nrf at sta/init.c.o' [ 211s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 212s] [1925/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 212s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 212s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 212s] ../src/udm/context.c: In function ?udm_ue_add?: [ 212s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 212s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 212s] ~~^ [ 212s] %d [ 212s] cc1: some warnings being treated as errors [ 212s] [1926/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 212s] [1927/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/src at pcrf@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/src at pcrf@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lrt -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 212s] [1928/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 212s] ninja: build stopped: subcommand failed. [ 212s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 212s] make: *** [debian/rules:11: binary] Error 1 [ 212s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 212s] ### VM INTERACTION START ### [ 215s] [ 205.021310] sysrq: SysRq : Power Off [ 215s] [ 205.023759] reboot: Power down [ 215s] ### VM INTERACTION END ### [ 215s] [ 215s] wildcard2 failed "build open5gs_1.2.5.20200610.dsc" at Wed Jun 10 01:47:33 UTC 2020. [ 215s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 10 01:56:27 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 10 Jun 2020 01:56:27 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee03de0680f4_642f2b139387c5e075543d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: types -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -c ../src/udr/nnrf-handler.c [ 524s] [1926/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 524s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 525s] [1928/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 525s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 525s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 525s] ../src/udm/context.c: In function ?udm_ue_add?: [ 525s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 525s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 525s] ~~^ [ 525s] %d [ 525s] cc1: some warnings being treated as errors [ 525s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 525s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 525s] [1931/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 525s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 525s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 525s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 525s] [1935/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 525s] ninja: build stopped: subcommand failed. [ 525s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 525s] make: *** [debian/rules:11: binary] Error 1 [ 525s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 525s] ### VM INTERACTION START ### [ 528s] [ 515.859549] sysrq: SysRq : Power Off [ 528s] [ 515.868649] reboot: Power down [ 528s] ### VM INTERACTION END ### [ 528s] [ 528s] lamb58 failed "build open5gs_1.2.5.20200610.dsc" at Wed Jun 10 01:56:18 UTC 2020. [ 528s] -- 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 Jun 10 07:25:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 07:25:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18753 ) Change subject: BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() ...................................................................... BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() Another surprise from the latest osmo-bts release: it may send us CCCH LOAD INDication message during the RSL bring up. Ignore it. Change-Id: Iab22b620a5f7b07fe03c1b13bebef2931d14879d --- M bts/BTS_Tests.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/53/18753/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 012327e..b098fc6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -188,6 +188,8 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for RSL bring up"); } + /* osmo-bts may send us CCCH LOAD INDication or whatever else */ + [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; } } function f_init_rsl(charstring id) runs on test_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iab22b620a5f7b07fe03c1b13bebef2931d14879d Gerrit-Change-Number: 18753 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 Jun 10 08:00:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 08:00:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18753 ) Change subject: BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() ...................................................................... Patch Set 1: Verified+1 Code-Review+2 See Jenkins build#608. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iab22b620a5f7b07fe03c1b13bebef2931d14879d Gerrit-Change-Number: 18753 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 10 Jun 2020 08:00: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 Jun 10 08:09:34 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Wed, 10 Jun 2020 08:09:34 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 2: (1 comment) > Patch Set 1: > > (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583/1/src/osmo_gsm_tester/templates/srsenb.conf.tmpl File src/osmo_gsm_tester/templates/srsenb.conf.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583/1/src/osmo_gsm_tester/templates/srsenb.conf.tmpl at 28 PS1, Line 28: s1c_bind_addr = ${enb.gtp_bind_addr} > multi-arch It's not working like you suggested. The run_addr is not put there but the ssh_addr. But I really can't spend more time on that. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 08:09:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 08:12:10 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Wed, 10 Jun 2020 08:12:10 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb: fix RI config In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18582 ) Change subject: amarisoft_enb: fix RI config ...................................................................... amarisoft_enb: fix RI config this cause all MIMO modes to fail because RI reporting was disabled Change-Id: Ic25233cf7feb4ded8b3d0f440191cc958d8bc0ec --- M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 29b5fb8..8bb55d3 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -152,11 +152,13 @@ sr_period: 20, /* CQI report config */ - cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */ + cqi_period: 160, /* period (ms). Must be >= 32 for HD-FDD */ /* RI reporting is done with a period of m_ri * cqi_period. m_ri = 0 (default) disables RI reporting. */ -// m_ri: 8, + % if int(enb.get('transmission_mode')) > 1: + m_ri: 8, + % endif pucch_dedicated: { /* ack/nack feedback mode when carrier aggregation is -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18582 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: Ic25233cf7feb4ded8b3d0f440191cc958d8bc0ec Gerrit-Change-Number: 18582 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 08:26:52 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Wed, 10 Jun 2020 08:26:52 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: add PRACH, reestablishment and paging counter In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 to look at the new patch set (#5). Change subject: ms_srs: add PRACH, reestablishment and paging counter ...................................................................... ms_srs: add PRACH, reestablishment and paging counter this allows to query the number of PRACH attempts and paging messages received during a test Change-Id: I592ace7c38d98bfbbec5001a3cdfffe21733ef9f --- M src/osmo_gsm_tester/obj/ms_srs.py 1 file changed, 16 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/38/18538/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 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: I592ace7c38d98bfbbec5001a3cdfffe21733ef9f Gerrit-Change-Number: 18538 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 08:47:55 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Wed, 10 Jun 2020 08:47:55 +0000 Subject: Change in osmo-gsm-tester[master]: enb: refactor ue_max_rate() and move helper function back to sub classes In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534 ) Change subject: enb: refactor ue_max_rate() and move helper function back to sub classes ...................................................................... enb: refactor ue_max_rate() and move helper function back to sub classes It turned out that the Amarisoft and SRS eNB scheduler produces slightly different maximum data rates for both UL and DL. Change-Id: I30fa7006906d101c53ba586fb06bced3945aa960 --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py 3 files changed, 50 insertions(+), 25 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 6814ee8..699b66f 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -220,29 +220,4 @@ def addr(self): return self._run_node.run_addr() - def ue_max_rate(self, downlink=True): - # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64 - max_phy_rate_tm1_dl = { 6 : 3.5e6, - 15 : 11e6, - 25 : 18e6, - 50 : 36e6, - 75 : 55e6, - 100 : 75e6 } - max_phy_rate_tm1_ul = { 6 : 0.9e6, - 15 : 4.7e6, - 25 : 10e6, - 50 : 23e6, - 75 : 34e6, - 100 : 51e6 } - if downlink: - max_rate = max_phy_rate_tm1_dl[self.num_prb()] - else: - max_rate = max_phy_rate_tm1_ul[self.num_prb()] - - #TODO: calculate for non-standard prb numbers. - if downlink and self._txmode > 2: - max_rate *= 2 - - return max_rate - # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index 8f624e6..3602f31 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -233,4 +233,29 @@ rfemu_obj = rfemu.get_instance_by_type(rfemu_cfg['type'], rfemu_cfg) return rfemu_obj + def ue_max_rate(self, downlink=True): + # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64 + max_phy_rate_tm1_dl = { 6 : 3.2e6, + 15 : 9.2e6, + 25 : 18e6, + 50 : 36e6, + 75 : 55e6, + 100 : 75e6 } + max_phy_rate_tm1_ul = { 6 : 2.0e6, + 15 : 5.1e6, + 25 : 10e6, + 50 : 21e6, + 75 : 32e6, + 100 : 51e6 } + if downlink: + max_rate = max_phy_rate_tm1_dl[self.num_prb()] + else: + max_rate = max_phy_rate_tm1_ul[self.num_prb()] + + # MIMO only supported for Downlink + if downlink and self._txmode > 2: + max_rate *= 2 + + return max_rate + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index e192530..33ee16b 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -232,4 +232,29 @@ rfemu_obj = rfemu.get_instance_by_type(rfemu_cfg['type'], rfemu_cfg) return rfemu_obj + def ue_max_rate(self, downlink=True): + # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64 + max_phy_rate_tm1_dl = { 6 : 3.5e6, + 15 : 11e6, + 25 : 18e6, + 50 : 36e6, + 75 : 55e6, + 100 : 75e6 } + max_phy_rate_tm1_ul = { 6 : 1.7e6, + 15 : 4.7e6, + 25 : 10e6, + 50 : 23e6, + 75 : 34e6, + 100 : 51e6 } + if downlink: + max_rate = max_phy_rate_tm1_dl[self.num_prb()] + else: + max_rate = max_phy_rate_tm1_ul[self.num_prb()] + + # MIMO only supported for Downlink + if downlink and self._txmode > 2: + max_rate *= 2 + + return max_rate + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18534 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: I30fa7006906d101c53ba586fb06bced3945aa960 Gerrit-Change-Number: 18534 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 09:03:16 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Wed, 10 Jun 2020 09:03:16 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf_tmpl: fix whitespaces In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 ) Change subject: srsenb_sib.conf_tmpl: fix whitespaces ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 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: Ifbd3c8bd97d7e2d3f165e88f3358dce9e7e33067 Gerrit-Change-Number: 18623 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 09:03:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 10:55:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 10:55:00 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583/1/src/osmo_gsm_tester/templates/srsenb.conf.tmpl File src/osmo_gsm_tester/templates/srsenb.conf.tmpl: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583/1/src/osmo_gsm_tester/templates/srsenb.conf.tmpl at 28 PS1, Line 28: s1c_bind_addr = ${enb.gtp_bind_addr} > It's not working like you suggested. The run_addr is not put there but the ssh_addr. [?] enb.py configure() does: """ config.overlay(values, dict(enb={ 'addr': self.addr() })) """ and the addr() is: """ def addr(self): return self._run_node.run_addr() """ So if you say it's not working it's most probably because you didn't rebase on top of current master. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 10:55:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: srs_andre 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 Jun 10 10:56:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 10:56:13 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: add PRACH, reestablishment and paging counter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 ) Change subject: ms_srs: add PRACH, reestablishment and paging counter ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 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: I592ace7c38d98bfbbec5001a3cdfffe21733ef9f Gerrit-Change-Number: 18538 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 10:56:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 10:57:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 10:57:11 +0000 Subject: Change in osmo-bsc[master]: gsm_data.h: Remove period at end of counter description In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18749 ) Change subject: gsm_data.h: Remove period at end of counter description ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I045cef207603074bd018e40f984263d03db31405 Gerrit-Change-Number: 18749 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 10: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 Wed Jun 10 11:04:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:04:15 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 3: Otherwise if you think there's a bug I can have a look at it. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 11:04:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 11:27:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:27:01 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add run function to EPC In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 ) Change subject: epc: add run function to EPC ...................................................................... epc: add run function to EPC this allows, for example, to run a ping originating from the core to the UE Change-Id: Id86c61cbccd41b77f94f125d8d127e2ab5e46cd9 --- M src/osmo_gsm_tester/obj/epc.py 1 file changed, 9 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/epc.py b/src/osmo_gsm_tester/obj/epc.py index 177e662..dfeba74 100644 --- a/src/osmo_gsm_tester/obj/epc.py +++ b/src/osmo_gsm_tester/obj/epc.py @@ -76,6 +76,15 @@ return epc_class(testenv, run_node) + def run_wait(self, name, popen_args): + ''' Execute process on EPC node, useful for MT traffic ''' + if self._run_node.is_local(): + proc = process.Process(name, self.run_dir, popen_args) + else: + proc = self.rem_host.RemoteProcess(name, popen_args) + proc.launch_sync() + return proc + ################### # PUBLIC (test API included) ################### -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18536 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: Id86c61cbccd41b77f94f125d8d127e2ab5e46cd9 Gerrit-Change-Number: 18536 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 11:27:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:27:01 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: add PRACH, reestablishment and paging counter In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 ) Change subject: ms_srs: add PRACH, reestablishment and paging counter ...................................................................... ms_srs: add PRACH, reestablishment and paging counter this allows to query the number of PRACH attempts and paging messages received during a test Change-Id: I592ace7c38d98bfbbec5001a3cdfffe21733ef9f --- M src/osmo_gsm_tester/obj/ms_srs.py 1 file changed, 16 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 3e1b3ff..1922bef 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -323,18 +323,30 @@ proc.launch_sync() return proc - def _get_counter_handover_success(self): - # Match against sample line: "HO success" + def _get_counter_stdout(self, keyword): + # Match stdout against keyword n = 0 stdout_lines = (self.process.get_stdout() or '').splitlines() for l in stdout_lines: - if l == 'HO successful': + if keyword in l: n += 1 return n def get_counter(self, counter_name): if counter_name == 'handover_success': - return self._get_counter_handover_success() + return self._get_counter_stdout('HO successful') + if counter_name == 'prach_sent': + return self._get_counter_stdout('Random Access Transmission') + if counter_name == 'paging_received': + return self._get_counter_stdout('S-TMSI match in paging message') + if counter_name == 'reestablishment_attempts': + return self._get_counter_stdout('RRC Connection Reestablishment') + if counter_name == 'reestablishment_ok': + return self._get_counter_stdout('Reestablishment OK') + if counter_name == 'rrc_connected_transitions': + return self._get_counter_stdout('RRC Connected') + if counter_name == 'rrc_idle_transitions': + return self._get_counter_stdout('RRC IDLE') raise log.Error('counter %s not implemented!' % counter_name) def verify_metric(self, value, operation='avg', metric='dl_brate', criterion='gt', window=1): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18538 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: I592ace7c38d98bfbbec5001a3cdfffe21733ef9f Gerrit-Change-Number: 18538 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 11:27:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:27:02 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf_tmpl: fix whitespaces In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 ) Change subject: srsenb_sib.conf_tmpl: fix whitespaces ...................................................................... srsenb_sib.conf_tmpl: fix whitespaces Change-Id: Ifbd3c8bd97d7e2d3f165e88f3358dce9e7e33067 --- M src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl 1 file changed, 16 insertions(+), 17 deletions(-) Approvals: srs_andre: Verified Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl index 70e642c..1ce8e96 100644 --- a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl @@ -9,18 +9,18 @@ ( { si_periodicity = 16; - si_mapping_info = []; // comma-separated array of SIB-indexes (from 3 to 13). + si_mapping_info = []; // comma-separated array of SIB-indexes (from 3 to 13). // Leave empty or commented to just scheduler sib2 } ); system_info_value_tag = 0; }; -sib2 = +sib2 = { rr_config_common_sib = { - rach_cnfg = + rach_cnfg = { num_ra_preambles = 52; preamble_init_rx_target_pwr = -104; @@ -30,11 +30,11 @@ mac_con_res_timer = 64; // in ms max_harq_msg3_tx = 4; }; - bcch_cnfg = + bcch_cnfg = { modification_period_coeff = 16; // in ms }; - pcch_cnfg = + pcch_cnfg = { default_paging_cycle = 32; // in rf nB = "1"; @@ -54,25 +54,25 @@ zero_correlation_zone_config = 5; }; }; - pdsch_cnfg = + pdsch_cnfg = { /* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1 */ p_b = 1; rs_power = 0; }; - pusch_cnfg = + pusch_cnfg = { n_sb = 1; hopping_mode = "inter-subframe"; pusch_hopping_offset = 2; enable_64_qam = false; // 64QAM PUSCH is not currently enabled - ul_rs = + ul_rs = { - cyclic_shift = 0; + cyclic_shift = 0; group_assignment_pusch = 0; - group_hopping_enabled = false; - sequence_hopping_enabled = false; + group_hopping_enabled = false; + sequence_hopping_enabled = false; }; }; pucch_cnfg = @@ -90,7 +90,7 @@ delta_flist_pucch = { format_1 = 0; - format_1b = 3; + format_1b = 3; format_2 = 1; format_2a = 2; format_2b = 2; @@ -110,13 +110,12 @@ n311 = 1; }; - freqInfo = + freqInfo = { - ul_carrier_freq_present = true; - ul_bw_present = true; - additional_spectrum_emission = 1; + ul_carrier_freq_present = true; + ul_bw_present = true; + additional_spectrum_emission = 1; }; time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. }; - -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18623 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: Ifbd3c8bd97d7e2d3f165e88f3358dce9e7e33067 Gerrit-Change-Number: 18623 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 11:27:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:27:02 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: increase default T311 value to 10s In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18624 ) Change subject: srsenb_sib.conf.tmpl: increase default T311 value to 10s ...................................................................... srsenb_sib.conf.tmpl: increase default T311 value to 10s this matches the default of Amarisoft eNB so tests can use the same values Change-Id: Ic81fb6428751305d8b37a25bddb0d018ca6f51f6 --- M src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl index 1ce8e96..ecd49e9 100644 --- a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl @@ -106,7 +106,7 @@ t301 = 100; // in ms t310 = 1000; // in ms n310 = 1; - t311 = 1000; // in ms + t311 = 10000; // in ms n311 = 1; }; -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18624 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: Ic81fb6428751305d8b37a25bddb0d018ca6f51f6 Gerrit-Change-Number: 18624 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 11:27:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:27:02 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: reduce RRC inactivity timer to 5s In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18625 ) Change subject: srsenb.conf.tmpl: reduce RRC inactivity timer to 5s ...................................................................... srsenb.conf.tmpl: reduce RRC inactivity timer to 5s the default value of 60s is too long to trigger errors in the handling of this timer. So a 5s timer is more likely to reveal potential issues during the test execution Change-Id: Id7a6739487c7875c4f26a47d05978c9ea9f33873 --- M src/osmo_gsm_tester/templates/srsenb.conf.tmpl 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index b3efd22..e0c54a1 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -274,7 +274,7 @@ #pregenerate_signals = false #tx_amplitude = 0.6 #link_failure_nof_err = 50 -#rrc_inactivity_timer = 60000 +rrc_inactivity_timer = 5000 #max_prach_offset_us = 30 #eea_pref_list = EEA0, EEA2, EEA1 #eia_pref_list = EIA2, EIA1, EIA0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18625 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: Id7a6739487c7875c4f26a47d05978c9ea9f33873 Gerrit-Change-Number: 18625 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 11:35:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:35:54 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 ) Change subject: ms_srs: refactor UE state getter functions ...................................................................... Patch Set 7: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/7/src/osmo_gsm_tester/obj/ms.py File src/osmo_gsm_tester/obj/ms.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/7/src/osmo_gsm_tester/obj/ms.py at 82 PS7, Line 82: ''' Checks wheter MS is registered with core network and has optained an IP, If MCC/MNC are given it check for this ''' extra whitespace. typo: whether. typo: optained. BTW, in 2G being registered doesn't mean you have an IP address. So I would describe generally this method as: '''Check whether MS is considered registered with the target network. In 2G networks, and MS is registered if it had a successful Location Update in CS. In 4G networks, an UE is considered registered with the core network if it has obtained and IP address. If MCC/MNC are given it tries to manually register against that specific network.''' https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/7/src/osmo_gsm_tester/obj/ms_srs.py File src/osmo_gsm_tester/obj/ms_srs.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535/7/src/osmo_gsm_tester/obj/ms_srs.py at 310 PS7, Line 310: def is_rrc_idle(self): AS requested please drop this API. It will really ease maintainership. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 7 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 11:35: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 Wed Jun 10 11:38:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 11:38:05 +0000 Subject: Change in osmo-gsm-tester[master]: 4g_suite: add MT and MO test cases In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 ) Change subject: 4g_suite: add MT and MO test cases ...................................................................... Patch Set 7: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539/7/sysmocom/suites/4g/rrc_idle_mo_ping.py File sysmocom/suites/4g/rrc_idle_mo_ping.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539/7/sysmocom/suites/4g/rrc_idle_mo_ping.py at 23 PS7, Line 23: wait(ue.is_rrc_idle) wait(lambda: not ue.is_rrc_connected()) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539/7/sysmocom/suites/4g/rrc_idle_mt_ping.py File sysmocom/suites/4g/rrc_idle_mt_ping.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539/7/sysmocom/suites/4g/rrc_idle_mt_ping.py at 23 PS7, Line 23: wait(ue.is_rrc_idle) wait(lambda: not ue.is_rrc_connected()) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 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: I5c7639f2c6953964a5b6979bc35f59464dbda43f Gerrit-Change-Number: 18539 Gerrit-PatchSet: 7 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 11:38:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 13:03:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 13:03:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18753 ) Change subject: BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() ...................................................................... BTS: fix latest: ignore mismatching messages in as_rsl_init_guard() Another surprise from the latest osmo-bts release: it may send us CCCH LOAD INDication message during the RSL bring up. Ignore it. Change-Id: Iab22b620a5f7b07fe03c1b13bebef2931d14879d --- M bts/BTS_Tests.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved; Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 012327e..b098fc6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -188,6 +188,8 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for RSL bring up"); } + /* osmo-bts may send us CCCH LOAD INDication or whatever else */ + [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; } } function f_init_rsl(charstring id) runs on test_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iab22b620a5f7b07fe03c1b13bebef2931d14879d Gerrit-Change-Number: 18753 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 13:22:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 13:22:25 +0000 Subject: Change in osmo-bts[master]: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18734 ) Change subject: scheduler: fix trx_sched_ul_burst(): ignore NOPE.ind during handover ...................................................................... Patch Set 2: Hi Harald, > I'm just not entirely sure if the way you fix it is ok. We introduced the NOPE indications to fix measurement reporting. The BTS produces measurement reports as soon as the channel is activated, *also* if we are waiting for access bursts early during HO-activated lchans. hmm, I didn't know that we expect Uplink measurements even before a handover RACH is received and the handover is considered completed. Good to know, thanks! > So Ideally, we'd make sure that the uplink measurement reports sent on RSL are corrrect in terms of e.g. the RSSI they report (using RSSI from all bursts received [I assume NOPE indications also carry RSSI?) while at the same time of course making sure that NOPE indications don't appear as an access burst. Yeah, a NOPE.ind carries all measurements (including RSSI), just like a normal Uplink burst. I will then change the logic to not handle such indications as handover RACH, but rather as normal bursts. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Gerrit-Change-Number: 18734 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 10 Jun 2020 13:22:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 13:25:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 13:25:35 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18507 to look at the new patch set (#7). Change subject: add osmo_mobile_identity API ...................................................................... add osmo_mobile_identity API Implement better API around 3GPP TS 24.008 Mobile Identity coding. struct osmo_mobile_identity is a decoded representation of the raw Mobile Identity, with a string representation as well as dedicated raw uint32_t TMSI. The aim is to remove all uncertainty about decoded buffer sizes / data types. I have patches ready for all osmo programs, completely replacing the Mobile Identity coding with this new API. Hence deprecate the old MI API. New API functions provide properly size-checking implementations of: - decoding a raw MI from a bunch of MI octets; - locating and decoding MI from a full 3GPP TS 24.008 Complete Layer 3 msgb; - encoding to a buffer; - encoding to the end of a msgb. Other than the old gsm48_generate_mid(), omit a TLV tag and length from encoding. Many callers manually stripped the tag and value after calling gsm48_generate_mid(). The aim is to leave writing a TL to the caller entirely, especially since some callers need to use a TvL, i.e. support a variable-size length of 8 or 16 bit. New validity checks so far not implemented anywhere else: - stricter validation of number of digits of IMSI, IMEI, IMEI-SV MI. - stricter on filler nibbles to be 0xf. Rationale: While implementing osmo-bsc's MSC pooling feature in osmo-bsc, this API will be used to reduce the number of times a Mobile Identity is extracted from a raw RSL message. Extracting the Mobile Identity from messages has numerous duplicate implementations across our code with various levels of specialization. https://xkcd.com/927/ To name a few: - libosmocore: gsm48_mi_to_string(), osmo_mi_name_buf() - osmo-bsc: extract_sub() - osmo-msc: mm_rx_loc_upd_req(), cm_serv_reuse_conn(), gsm48_rx_mm_serv_req(), vlr_proc_acc_req() We have existing functions to produce a human readable string from a Mobile Identity, more or less awkward: - gsm48_mi_to_string() decodes a TMSI as a decimal number. These days we use hexadecimal TMSI everywhere. - osmo_mi_name_buf() decodes the BCD digits from a raw MI every time, so we'd need to pass around the raw message bytes. Also, osmo_mi_name_buf() has the wrong signature, it should return a length like snprintf(). - osmo-bsc's extract_sub() first uses gsm48_mi_to_string() which encodes the raw uint32_t TMSI to a string, and then calls strtoul() via tmsi_from_string() to code those back to a raw uint32_t. Each of the above implementations employ their own size overflow checks, each invoke osmo_bcd2str() and implement their own TMSI osmo_load32be() handling. Too much code dup, let's hope that each and every one is correct. In osmo-bsc, I am now implementing MSC pooling, and need to extract NRI bits from a TMSI Mobile Identity. Since none of the above functions are general enough to be re-used, I found myself again copy-pasting Mobile Identity code: locating the MI in a 24.008 message with proper size checks, decoding MI octets. This time I would like it to become a generally re-usable API. Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gsm/gsm0808.c M src/gsm/gsm29118.c M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 13 files changed, 1,152 insertions(+), 151 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/07/18507/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 13:36:36 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 10 Jun 2020 13:36:36 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 to look at the new patch set (#6). Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 904 insertions(+), 629 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/18644/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 13:36:36 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 10 Jun 2020 13:36:36 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints 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-mgw/+/18745 to look at the new patch set (#4). Change subject: endp: add name generator function for E1 endpoints ...................................................................... endp: add name generator function for E1 endpoints Currently the endpoint name that is generated for an E1 endpoint is not correct. Let's add an endpoint name generator function that derives a full endpoint name for a given E1 index Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Related: OS#2547 --- A include/osmocom/mgcp_client/mgcp_common.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 140 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 4 Gerrit-Owner: dexter 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 Wed Jun 10 13:36:38 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 10 Jun 2020 13:36:38 +0000 Subject: Change in osmo-mgw[master]: endp: move endpoint name generation into mgcp_endp.c References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18754 ) Change subject: endp: move endpoint name generation into mgcp_endp.c ...................................................................... endp: move endpoint name generation into mgcp_endp.c When the trunk allocates its endpoints by using mgcp_endp_alloc() ist passes the name for each endpoint as a parameter. In order to generate the name endpoint specific knowlege is required. This process can be simplified, since all what mgcp_trunk_alloc_endpts() does is calling mgcp_endp_alloc() in a loop in order to generate a consecuitve series of endpoints. The endpoint names are generated from the index of the for loop. When we just pass the index instead of the endpoint name to mgcp_endp_alloc(), then we can greatly simplify the code since all the knowledge about the name generation can go into mgcp_endp.c. The endpoint will name itsself by the trunk properites and the index number we pass with the allocator function. Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Related: OS#2659 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_trunk.c 3 files changed, 21 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/54/18754/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 1fe8266..b3627b0 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -103,7 +103,8 @@ uint32_t x_osmo_ign; }; -struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name); +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, + unsigned int index); void mgcp_endp_release(struct mgcp_endpoint *endp); struct mgcp_endpoint *mgcp_endp_by_name_trunk(int *cause, const char *epname, struct mgcp_trunk *trunk); diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 62b0854..38d83d5 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -33,13 +33,23 @@ .rtp.cleanup_cb = mgcp_cleanup_rtp_bridge_cb }; +/* Generate virtual endpoint name from given parameters */ +static void gen_virtual_epname(char *epname, const char *domain, + unsigned int index) +{ + snprintf(epname, MGCP_ENDPOINT_MAXLEN, "%s%x@%s", + MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, index, domain); +} + /*! allocate an endpoint and set default values. * \param[in] trunk configuration. - * \param[in] name endpoint name. + * \param[in] name endpoint index. * \returns endpoint on success, NULL on failure. */ -struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name) +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, + unsigned int index) { struct mgcp_endpoint *endp; + char ep_name_buf[MGCP_ENDPOINT_MAXLEN]; endp = talloc_zero(trunk->endpoints, struct mgcp_endpoint); if (!endp) @@ -48,14 +58,16 @@ INIT_LLIST_HEAD(&endp->conns); endp->cfg = trunk->cfg; endp->trunk = trunk; - endp->name = talloc_strdup(endp, name); switch (trunk->trunk_type) { case MGCP_TRUNK_VIRTUAL: endp->type = &ep_typeset.rtp; + gen_virtual_epname(ep_name_buf, trunk->cfg->domain, index); break; case MGCP_TRUNK_E1: - /* FIXME: Implement E1 allocation */ + /* FIXME: E1 trunk implementation is work in progress, this endpoint + * name is incomplete (subslots) */ + snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x", MGCP_ENDPOINT_PREFIX_E1_TRUNK, index); LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); break; default: @@ -63,6 +75,8 @@ trunk->trunk_type, __FILE__, __LINE__); } + endp->name = talloc_strdup(endp, ep_name_buf); + return endp; } diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 15e4a0a..7774e40 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -64,7 +64,6 @@ int mgcp_trunk_alloc_endpts(struct mgcp_trunk *trunk) { int i; - char ep_name_buf[MGCP_ENDPOINT_MAXLEN]; struct mgcp_endpoint *endp; /* Make sure the amount of requested endpoints does not execeed @@ -88,22 +87,7 @@ /* create endpoints */ for (i = 0; i < trunk->vty_number_endpoints; ++i) { - switch (trunk->trunk_type) { - case MGCP_TRUNK_VIRTUAL: - snprintf(ep_name_buf, sizeof(ep_name_buf), "%s%x@%s", MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, i, - trunk->cfg->domain); - break; - case MGCP_TRUNK_E1: - /* FIXME: E1 trunk implementation is work in progress, this endpoint - * name is incomplete (subslots) */ - snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x", MGCP_ENDPOINT_PREFIX_E1_TRUNK, i); - break; - default: - osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", - trunk->trunk_type, __FILE__, __LINE__); - } - - endp = mgcp_endp_alloc(trunk, ep_name_buf); + endp = mgcp_endp_alloc(trunk, i); if (!endp) { talloc_free(trunk->endpoints); return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Gerrit-Change-Number: 18754 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 Jun 10 13:36:38 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 10 Jun 2020 13:36:38 +0000 Subject: Change in osmo-mgw[master]: endp: add typeset for e1-endpoints References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18755 ) Change subject: endp: add typeset for e1-endpoints ...................................................................... endp: add typeset for e1-endpoints Add an endpoint typeset for E1 support, also lets add dummy callbacks for the cleanup and rtp dispatch functionality. Related: OS#2547 Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c 4 files changed, 34 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/55/18755/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index b3627b0..7a39c0d 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -60,6 +60,7 @@ /*! MGCP endpoint typeset */ struct mgcp_endpoint_typeset { struct mgcp_endpoint_type rtp; + struct mgcp_endpoint_type e1; }; /*! static MGCP endpoint typeset (pre-initalized, read-only) */ diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 174bfd9..2d4857b 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -271,7 +271,10 @@ int mgcp_send_dummy(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn); int mgcp_dispatch_rtp_bridge_cb(int proto, struct sockaddr_in *addr, char *buf, unsigned int buf_size, struct mgcp_conn *conn); +int mgcp_dispatch_e1_bridge_cb(int proto, struct sockaddr_in *addr, char *buf, + unsigned int buf_size, struct mgcp_conn *conn); void mgcp_cleanup_rtp_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn); +void mgcp_cleanup_e1_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn); int mgcp_bind_net_rtp_port(struct mgcp_endpoint *endp, int rtp_port, struct mgcp_conn_rtp *conn); void mgcp_free_rtp_port(struct mgcp_rtp_end *end); diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 2211044..88dcb63 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -30,7 +30,11 @@ /* Specify endpoint properties for RTP endpoint */ .rtp.max_conns = 2, .rtp.dispatch_rtp_cb = mgcp_dispatch_rtp_bridge_cb, - .rtp.cleanup_cb = mgcp_cleanup_rtp_bridge_cb + .rtp.cleanup_cb = mgcp_cleanup_rtp_bridge_cb, + /* Specify endpoint properties for E1 endpoint */ + .e1.max_conns = 1, + .e1.dispatch_rtp_cb = mgcp_dispatch_e1_bridge_cb, + .e1.cleanup_cb = mgcp_cleanup_e1_bridge_cb, }; /* Generate virtual endpoint name from given parameters */ diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 7651486..565151a 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1328,6 +1328,21 @@ } +/*! dispatch incoming RTP packet to E1 subslot + * \param[in] proto protocol (MGCP_CONN_TYPE_RTP or MGCP_CONN_TYPE_RTCP) + * \param[in] addr socket address where the RTP packet has been received from + * \param[in] buf buffer that hold the RTP payload + * \param[in] buf_size size data length of buf + * \param[in] conn originating connection + * \returns 0 on success, -1 on ERROR */ +int mgcp_dispatch_e1_bridge_cb(int proto, struct sockaddr_in *addr, char *buf, + unsigned int buf_size, struct mgcp_conn *conn) +{ + LOGPCONN(conn, DRTP, LOGL_FATAL, + "cannot dispatch! E1 support is not implemented yet!\n"); + return -1; +} + /*! cleanup an endpoint when a connection on an RTP bridge endpoint is removed. * \param[in] endp Endpoint on which the connection resides. * \param[in] conn Connection that is about to be removed (ignored). @@ -1347,6 +1362,16 @@ } } +/*! cleanup an endpoint when a connection on an E1 endpoint is removed. + * \param[in] endp Endpoint on which the connection resides. + * \param[in] conn Connection that is about to be removed (ignored). + * \returns 0 on success, -1 on ERROR. */ +void mgcp_cleanup_e1_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn) +{ + LOGPCONN(conn, DRTP, LOGL_FATAL, + "cannot dispatch! E1 support is not implemented yet!\n"); +} + /* Handle incoming RTP data from NET */ static int rtp_data_net(struct osmo_fd *fd, unsigned int what) { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 Gerrit-Change-Number: 18755 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 Jun 10 13:50:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 13:50:30 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: properly handle NOPE.ind during handover In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 to look at the new patch set (#3). Change subject: osmo-bts-trx/scheduler: properly handle NOPE.ind during handover ...................................................................... osmo-bts-trx/scheduler: properly handle NOPE.ind during handover Looking at GSMTAP during handover, I've noticed many packets on RACH looking pretty much like false positives, all with RA=0x00. I correlated GSMTAP traces with TRXD traces, and figured out that they all are triggered by NOPE indications from osmo-trx. Since a NOPE.ind carries no valid burst, all its bits are set to zero. Funny enough, this sequence is still decoded just fine as a valid RACH, so that's why we see it on GSMTAP. Later on it gets rejected by L1SAP due to bad RSSI, ToA, and/or C/I ratio. The is a side effect of [1]. In order to ensure proper Uplink measurement reporting during handover, including the time before the handover RACH is received, let's treat and handle NOPE indications as Normal Bursts. [1] Ice45d5986610d9bcef2a7e41f0a395ec779e3928 Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Related: OS#4592 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 9 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/18734/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Gerrit-Change-Number: 18734 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria 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 Jun 10 13:55:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 13:55:47 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 3: Code-Review-2 > Patch Set 3: > > Otherwise if you think there's a bug I can have a look at it. I just tested it and it's working fine here: """ enb: - label: srsENB-zmq type: srsenb rf_dev_type: zmq rf_dev_args: auto run_node: run_type: ssh run_addr: 10.42.42.117 ssh_user: jenkins ssh_addr: 10.42.42.116 """ """" $ ss -l -n -p | grep enb -B1 u_dgr UNCONN 0 0 * 1289 * 0 udp UNCONN 0 0 10.42.42.117:2152 *:* users:(("srsenb",pid=60591,fd=15)) -- tcp LISTEN 0 5 172.16.0.1:5003 *:* users:(("iperf3",pid=60753,fd=3)) tcp LISTEN 0 100 10.42.42.117:2000 *:* users:(("srsenb",pid=60591,fd=10)) """" So this patch is indeed not needed and can be abandoned. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 13:55:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 14:09:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 14:09:56 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 6: (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 40 PS6, Line 40: struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name) trailing whitespace https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 49 PS6, Line 49: endp->cfg = trunk->cfg; Not sure if whitespace at start of this line is correct. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 14:09: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 Jun 10 14:13:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 14:13:28 +0000 Subject: Change in osmo-mgw[master]: endp: move endpoint name generation into mgcp_endp.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18754 ) Change subject: endp: move endpoint name generation into mgcp_endp.c ...................................................................... Patch Set 1: (4 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18754/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/18754/1//COMMIT_MSG at 21 PS1, Line 21: endpoint will name itsself by the trunk properites and the index number typo: properties https://gerrit.osmocom.org/c/osmo-mgw/+/18754/1/include/osmocom/mgcp/mgcp_endp.h File include/osmocom/mgcp/mgcp_endp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18754/1/include/osmocom/mgcp/mgcp_endp.h at 107 PS1, Line 107: unsigned int index); no need to split new line https://gerrit.osmocom.org/c/osmo-mgw/+/18754/1/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18754/1/src/libosmo-mgcp/mgcp_endp.c at 65 PS1, Line 65: gen_virtual_epname(ep_name_buf, trunk->cfg->domain, index); It's a bit strange having a function for one type while still using snprintf directly here for another. https://gerrit.osmocom.org/c/osmo-mgw/+/18754/1/src/libosmo-mgcp/mgcp_endp.c at 78 PS1, Line 78: endp->name = talloc_strdup(endp, ep_name_buf); What about using talloc_asprintf() instead of snprintf + talloc_strdup? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Gerrit-Change-Number: 18754 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 14:13: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 Wed Jun 10 14:49:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 14:49:42 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#8) to the change originally created by srs_andre. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 ) Change subject: ms_srs: refactor UE state getter functions ...................................................................... ms_srs: refactor UE state getter functions rename UE helper functions to query RRC connected/idle state and adapt tests accordingly also add helper to retrieve assinged IP address Change-Id: I6cd057e34b4df6a1a73695355dd6406d7e039546 --- M src/osmo_gsm_tester/obj/ms.py M src/osmo_gsm_tester/obj/ms_amarisoft.py M src/osmo_gsm_tester/obj/ms_ofono.py M src/osmo_gsm_tester/obj/ms_srs.py M sysmocom/suites/4g/handover.py M sysmocom/suites/4g/iperf3_dl.py M sysmocom/suites/4g/iperf3_ul.py M sysmocom/suites/4g/ping.py 8 files changed, 53 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/35/18535/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 8 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 14:49:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 14:49:42 +0000 Subject: Change in osmo-gsm-tester[master]: 4g_suite: add MT and MO test cases In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#8) to the change originally created by srs_andre. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 ) Change subject: 4g_suite: add MT and MO test cases ...................................................................... 4g_suite: add MT and MO test cases add two new test cases to test paging (MT) and MO traffic Change-Id: I5c7639f2c6953964a5b6979bc35f59464dbda43f --- A sysmocom/suites/4g/rrc_idle_mo_ping.py A sysmocom/suites/4g/rrc_idle_mt_ping.py 2 files changed, 83 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/39/18539/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 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: I5c7639f2c6953964a5b6979bc35f59464dbda43f Gerrit-Change-Number: 18539 Gerrit-PatchSet: 8 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:37:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:37:58 +0000 Subject: Change in osmo-gsm-tester[master]: tests: Replace is_connected() with is_registered() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 ) Change subject: tests: Replace is_connected() with is_registered() ...................................................................... tests: Replace is_connected() with is_registered() API was renamed and old name deprecated, let's use it everywhere. Change-Id: Ic91dddcfd1a5a17c35d15a8a14628b3923229523 --- M doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py M doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py M doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py M doc/examples/4g_srsLTE/suites/4g/ping.py M src/osmo_gsm_tester/obj/ms_ofono.py M sysmocom/suites/debug/interactive.py M sysmocom/suites/dynts/switch_tch_pdch.py M sysmocom/suites/encryption/lib/testlib.py M sysmocom/suites/gprs/lib/testlib.py M sysmocom/suites/gprs/ping.py M sysmocom/suites/gprs/ping_idle_ping.py M sysmocom/suites/nitb_debug/interactive.py M sysmocom/suites/nitb_netreg/register.py M sysmocom/suites/nitb_netreg/register_default.py M sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py M sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py M sysmocom/suites/nitb_sms/mo_mt_sms.py M sysmocom/suites/nitb_ussd/assert_extension.py M sysmocom/suites/smpp/esme_ms_sms_storeforward.py M sysmocom/suites/smpp/esme_ms_sms_transaction.py M sysmocom/suites/sms/mo_mt_sms.py M sysmocom/suites/ussd/assert_extension.py M sysmocom/suites/voice/lib/testlib.py 23 files changed, 52 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/56/18756/1 diff --git a/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py b/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py index 51e78c0..738a2d8 100755 --- a/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py +++ b/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py @@ -21,7 +21,7 @@ bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) hlr.subscriber_add(ms_mo) hlr.subscriber_add(ms_mt) @@ -33,8 +33,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, msc.mcc_mnc()) -wait(ms_mt.is_connected, msc.mcc_mnc()) +wait(ms_mo.is_registered, msc.mcc_mnc()) +wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo, ms_mt) sms = ms_mo.sms_send(ms_mt) diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py index d90c80b..b90f04f 100755 --- a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py +++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py @@ -15,7 +15,7 @@ enb.start(epc) print('waiting for ENB to connect to EPC...') -wait(epc.enb_is_connected, enb) +wait(epc.enb.is_registered, enb) print('ENB is connected to EPC') ue.connect(enb) @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_registered, None) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py index 453cdfa..193cce6 100755 --- a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py +++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py @@ -15,7 +15,7 @@ enb.start(epc) print('waiting for ENB to connect to EPC...') -wait(epc.enb_is_connected, enb) +wait(epc.enb.is_registered, enb) print('ENB is connected to EPC') ue.connect(enb) @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_registered, None) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/doc/examples/4g_srsLTE/suites/4g/ping.py b/doc/examples/4g_srsLTE/suites/4g/ping.py index c81a35d..1712df3 100755 --- a/doc/examples/4g_srsLTE/suites/4g/ping.py +++ b/doc/examples/4g_srsLTE/suites/4g/ping.py @@ -11,12 +11,12 @@ enb.start(epc) print('waiting for ENB to connect to EPC...') -wait(epc.enb_is_connected, enb) +wait(epc.enb.is_registered, enb) print('ENB is connected to EPC') ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_registered, None) print('UE is attached') proc = ue.run_netns_wait('ping', ('ping', '-c', '10', epc.tun_addr())) diff --git a/src/osmo_gsm_tester/obj/ms_ofono.py b/src/osmo_gsm_tester/obj/ms_ofono.py index e03427e..cec6824 100644 --- a/src/osmo_gsm_tester/obj/ms_ofono.py +++ b/src/osmo_gsm_tester/obj/ms_ofono.py @@ -519,10 +519,6 @@ return True return False - def is_connected(self, mcc_mnc=None): - '''Convenience helper to keep old test API''' - return self.is_registered(mcc_mnc) - def schedule_scan_register(self, mcc_mnc): if self.register_attempts > NETREG_MAX_REGISTER_ATTEMPTS: raise log.Error('Failed to find Network Operator', mcc_mnc=mcc_mnc, attempts=self.register_attempts) @@ -547,7 +543,7 @@ # So far the easiest seems to check if we are now registered and # otherwise schedule a scan again. self.err('Scan() failed, retrying if needed:', e) - if not self.is_connected(mcc_mnc): + if not self.is_registered(mcc_mnc): self.schedule_scan_register(mcc_mnc) else: self.log('Already registered with network', mcc_mnc) @@ -632,7 +628,7 @@ self.cancel_pending_dbus_methods() self.power_cycle() self.register_attempts = 0 - if self.is_connected(mcc_mnc): + if self.is_registered(mcc_mnc): self.log('Already registered with', mcc_mnc if mcc_mnc else 'default network') else: self.log('Connect to', mcc_mnc if mcc_mnc else 'default network') diff --git a/sysmocom/suites/debug/interactive.py b/sysmocom/suites/debug/interactive.py index fa53cc8..a7f301a 100755 --- a/sysmocom/suites/debug/interactive.py +++ b/sysmocom/suites/debug/interactive.py @@ -27,7 +27,7 @@ bts.start() print('Waiting for bts to connect to bsc...') -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) print('Waiting for bts to be ready...') wait(bts.ready_for_pcu) pcu.start() @@ -54,7 +54,7 @@ elif 'wait-registered'.startswith(cmd): try: for m in modems: - wait(m.is_connected, msc.mcc_mnc()) + wait(m.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, *modems) except Timeout: print('Timeout while waiting for registration.') diff --git a/sysmocom/suites/dynts/switch_tch_pdch.py b/sysmocom/suites/dynts/switch_tch_pdch.py index 7be4be7..656c767 100755 --- a/sysmocom/suites/dynts/switch_tch_pdch.py +++ b/sysmocom/suites/dynts/switch_tch_pdch.py @@ -59,7 +59,7 @@ bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) print('Waiting for bts to be ready...') wait(bts.ready_for_pcu) pcu.start() @@ -76,8 +76,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, msc.mcc_mnc()) -wait(ms_mt.is_connected, msc.mcc_mnc()) +wait(ms_mo.is_registered, msc.mcc_mnc()) +wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo) wait(msc.subscriber_attached, ms_mt) diff --git a/sysmocom/suites/encryption/lib/testlib.py b/sysmocom/suites/encryption/lib/testlib.py index ed76e6f..423592f 100644 --- a/sysmocom/suites/encryption/lib/testlib.py +++ b/sysmocom/suites/encryption/lib/testlib.py @@ -23,7 +23,7 @@ bsc.bts_add(bts) bsc.start() bts.start() - wait(bsc.bts_is_connected, bts) + wait(bsc.bts.is_registered, bts) ms.log_info() good_ki = ms.ki() @@ -39,7 +39,7 @@ sleep(40) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04) print('Asserting modem did not register') # FIXME: this can fail because ofono qmi signals registered before being accepted by network. See OS#2458 - # assert not ms.is_connected(msc.mcc_mnc()) + # assert not ms.is_registered(msc.mcc_mnc()) assert not msc.subscriber_attached(ms) hlr.subscriber_delete(ms) @@ -50,5 +50,5 @@ else: print('Attempt connection with wrong KI, should work as it is not used...') ms.connect(msc.mcc_mnc()) - wait(ms.is_connected, msc.mcc_mnc()) + wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) diff --git a/sysmocom/suites/gprs/lib/testlib.py b/sysmocom/suites/gprs/lib/testlib.py index 1421229..65b2a13 100644 --- a/sysmocom/suites/gprs/lib/testlib.py +++ b/sysmocom/suites/gprs/lib/testlib.py @@ -72,7 +72,7 @@ bsc.start() bts.start() - wait(bsc.bts_is_connected, bts) + wait(bsc.bts.is_registered, bts) print('Waiting for bts to be ready...') wait(bts.ready_for_pcu) pcu.start() @@ -85,7 +85,7 @@ print('waiting for modems to attach...') for ms in ms_li: - wait(ms.is_connected, msc.mcc_mnc()) + wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, *ms_li) print('waiting for modems to attach to data services...') diff --git a/sysmocom/suites/gprs/ping.py b/sysmocom/suites/gprs/ping.py index 9a7acde..a70db35 100755 --- a/sysmocom/suites/gprs/ping.py +++ b/sysmocom/suites/gprs/ping.py @@ -27,7 +27,7 @@ bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) print('Waiting for bts to be ready...') wait(bts.ready_for_pcu) pcu.start() @@ -40,7 +40,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) print('waiting for modems to attach to data services...') diff --git a/sysmocom/suites/gprs/ping_idle_ping.py b/sysmocom/suites/gprs/ping_idle_ping.py index 88ecbdb..8538685 100755 --- a/sysmocom/suites/gprs/ping_idle_ping.py +++ b/sysmocom/suites/gprs/ping_idle_ping.py @@ -32,7 +32,7 @@ bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) print('Waiting for bts to be ready...') wait(bts.ready_for_pcu) pcu.start() @@ -45,7 +45,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) print('waiting for modems to attach to data services...') diff --git a/sysmocom/suites/nitb_debug/interactive.py b/sysmocom/suites/nitb_debug/interactive.py index bd68a57..df40afd 100755 --- a/sysmocom/suites/nitb_debug/interactive.py +++ b/sysmocom/suites/nitb_debug/interactive.py @@ -10,7 +10,7 @@ nitb.bts_add(bts) nitb.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(nitb.bts.is_registered, bts) for m in modems: nitb.subscriber_add(m) @@ -31,7 +31,7 @@ elif 'wait-registered'.startswith(cmd): try: for m in modems: - wait(m.is_connected, nitb.mcc_mnc()) + wait(m.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, *modems) except Timeout: print('Timeout while waiting for registration.') diff --git a/sysmocom/suites/nitb_netreg/register.py b/sysmocom/suites/nitb_netreg/register.py index fd171b3..11ac8a2 100755 --- a/sysmocom/suites/nitb_netreg/register.py +++ b/sysmocom/suites/nitb_netreg/register.py @@ -10,7 +10,7 @@ nitb.bts_add(bts) nitb.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(nitb.bts.is_registered, bts) nitb.subscriber_add(ms) @@ -18,5 +18,5 @@ print(ms.info()) -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) diff --git a/sysmocom/suites/nitb_netreg/register_default.py b/sysmocom/suites/nitb_netreg/register_default.py index 6531049..3be0ec8 100755 --- a/sysmocom/suites/nitb_netreg/register_default.py +++ b/sysmocom/suites/nitb_netreg/register_default.py @@ -10,7 +10,7 @@ nitb.bts_add(bts) nitb.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(nitb.bts.is_registered, bts) nitb.subscriber_add(ms) @@ -18,5 +18,5 @@ print(ms.info()) -wait(ms.is_connected) +wait(ms.is_registered) wait(nitb.subscriber_attached, ms) diff --git a/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py b/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py index 29a5ced..879c39f 100755 --- a/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py +++ b/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py @@ -22,7 +22,7 @@ nitb.smsc.esme_add(esme) nitb.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(nitb.bts.is_registered, bts) esme.connect() nitb.subscriber_add(ms) @@ -38,7 +38,7 @@ print('MS registers and will receive the SMS...') ms.connect(nitb.mcc_mnc()) -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) wait(ms.sms_was_received, msg) print('Waiting to receive and consume sms receipt with reference', umref) diff --git a/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py b/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py index 2963b6e..c7a0907 100755 --- a/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py +++ b/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py @@ -20,7 +20,7 @@ nitb.smsc.esme_add(esme) nitb.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(nitb.bts.is_registered, bts) esme.connect() nitb.subscriber_add(ms) @@ -28,7 +28,7 @@ ms.log_info() print('waiting for modem to attach...') -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) print('sending first sms...') diff --git a/sysmocom/suites/nitb_sms/mo_mt_sms.py b/sysmocom/suites/nitb_sms/mo_mt_sms.py index d1cece6..480230a 100755 --- a/sysmocom/suites/nitb_sms/mo_mt_sms.py +++ b/sysmocom/suites/nitb_sms/mo_mt_sms.py @@ -10,7 +10,7 @@ nitb.bts_add(bts) nitb.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(nitb.bts.is_registered, bts) nitb.subscriber_add(ms_mo) nitb.subscriber_add(ms_mt) @@ -22,8 +22,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, nitb.mcc_mnc()) -wait(ms_mt.is_connected, nitb.mcc_mnc()) +wait(ms_mo.is_registered, nitb.mcc_mnc()) +wait(ms_mt.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms_mo, ms_mt) sms = ms_mo.sms_send(ms_mt) diff --git a/sysmocom/suites/nitb_ussd/assert_extension.py b/sysmocom/suites/nitb_ussd/assert_extension.py index 6246e61..bb99c00 100755 --- a/sysmocom/suites/nitb_ussd/assert_extension.py +++ b/sysmocom/suites/nitb_ussd/assert_extension.py @@ -11,7 +11,7 @@ nitb.bts_add(bts) nitb.start() bts.start() -wait(nitb.bts_is_connected, bts) +wait(nitb.bts.is_registered, bts) nitb.subscriber_add(ms) @@ -19,7 +19,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) # ofono (qmi) currently changes state to 'registered' jut after sending diff --git a/sysmocom/suites/smpp/esme_ms_sms_storeforward.py b/sysmocom/suites/smpp/esme_ms_sms_storeforward.py index 232d1d3..7e7245f 100755 --- a/sysmocom/suites/smpp/esme_ms_sms_storeforward.py +++ b/sysmocom/suites/smpp/esme_ms_sms_storeforward.py @@ -32,7 +32,7 @@ mgw_bsc.start() bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) esme.connect() hlr.subscriber_add(ms) @@ -50,7 +50,7 @@ print('MS registers and will receive the SMS...') ms.connect(msc.mcc_mnc()) -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) wait(ms.sms_was_received, msg) print('Waiting to receive and consume sms receipt with reference', umref) diff --git a/sysmocom/suites/smpp/esme_ms_sms_transaction.py b/sysmocom/suites/smpp/esme_ms_sms_transaction.py index d42012b..751f5c1 100755 --- a/sysmocom/suites/smpp/esme_ms_sms_transaction.py +++ b/sysmocom/suites/smpp/esme_ms_sms_transaction.py @@ -30,7 +30,7 @@ mgw_bsc.start() bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) esme.connect() hlr.subscriber_add(ms) @@ -38,7 +38,7 @@ ms.log_info() print('waiting for modem to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) print('sending first sms...') diff --git a/sysmocom/suites/sms/mo_mt_sms.py b/sysmocom/suites/sms/mo_mt_sms.py index 51e78c0..738a2d8 100755 --- a/sysmocom/suites/sms/mo_mt_sms.py +++ b/sysmocom/suites/sms/mo_mt_sms.py @@ -21,7 +21,7 @@ bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) hlr.subscriber_add(ms_mo) hlr.subscriber_add(ms_mt) @@ -33,8 +33,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, msc.mcc_mnc()) -wait(ms_mt.is_connected, msc.mcc_mnc()) +wait(ms_mo.is_registered, msc.mcc_mnc()) +wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo, ms_mt) sms = ms_mo.sms_send(ms_mt) diff --git a/sysmocom/suites/ussd/assert_extension.py b/sysmocom/suites/ussd/assert_extension.py index bac311f..65272ab 100755 --- a/sysmocom/suites/ussd/assert_extension.py +++ b/sysmocom/suites/ussd/assert_extension.py @@ -22,7 +22,7 @@ bsc.start() bts.start() -wait(bsc.bts_is_connected, bts) +wait(bsc.bts.is_registered, bts) hlr.subscriber_add(ms) @@ -31,7 +31,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) # ofono (qmi) currently changes state to 'registered' jut after sending diff --git a/sysmocom/suites/voice/lib/testlib.py b/sysmocom/suites/voice/lib/testlib.py index 3ec6d67..13dcc13 100644 --- a/sysmocom/suites/voice/lib/testlib.py +++ b/sysmocom/suites/voice/lib/testlib.py @@ -33,7 +33,7 @@ bsc.start() bts.start() - wait(bsc.bts_is_connected, bts) + wait(bsc.bts.is_registered, bts) hlr.subscriber_add(ms_mo) hlr.subscriber_add(ms_mt) @@ -45,8 +45,8 @@ ms_mt.log_info() print('waiting for modems to attach...') - wait(ms_mo.is_connected, msc.mcc_mnc()) - wait(ms_mt.is_connected, msc.mcc_mnc()) + wait(ms_mo.is_registered, msc.mcc_mnc()) + wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo, ms_mt) assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 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: Ic91dddcfd1a5a17c35d15a8a14628b3923229523 Gerrit-Change-Number: 18756 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 Jun 10 15:38:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:38:10 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 ) Change subject: ms_srs: refactor UE state getter functions ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 8 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 15:38: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 Jun 10 15:38:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:38:19 +0000 Subject: Change in osmo-gsm-tester[master]: 4g_suite: add MT and MO test cases In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 ) Change subject: 4g_suite: add MT and MO test cases ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 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: I5c7639f2c6953964a5b6979bc35f59464dbda43f Gerrit-Change-Number: 18539 Gerrit-PatchSet: 8 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 15:38: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 Jun 10 15:39:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:00 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 ) Change subject: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 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: I63888435553bba4f7be88cc745e24472921a7fb4 Gerrit-Change-Number: 18636 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 15:39: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 Jun 10 15:39:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:09 +0000 Subject: Change in osmo-gsm-tester[master]: enb_amarisoft: decrease max rate for TM2+ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18717 ) Change subject: enb_amarisoft: decrease max rate for TM2+ ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18717 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: I128085e308f400622683905245d42f92a631e81d Gerrit-Change-Number: 18717 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 15:39:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:39:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:22 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ms: refactor base_rate selection for ZMQ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 ) Change subject: enb,ms: refactor base_rate selection for ZMQ ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 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: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c Gerrit-Change-Number: 18637 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 15:39:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:39:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:32 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: refactor UE state getter functions In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 ) Change subject: ms_srs: refactor UE state getter functions ...................................................................... ms_srs: refactor UE state getter functions rename UE helper functions to query RRC connected/idle state and adapt tests accordingly also add helper to retrieve assinged IP address Change-Id: I6cd057e34b4df6a1a73695355dd6406d7e039546 --- M src/osmo_gsm_tester/obj/ms.py M src/osmo_gsm_tester/obj/ms_amarisoft.py M src/osmo_gsm_tester/obj/ms_ofono.py M src/osmo_gsm_tester/obj/ms_srs.py M sysmocom/suites/4g/handover.py M sysmocom/suites/4g/iperf3_dl.py M sysmocom/suites/4g/iperf3_ul.py M sysmocom/suites/4g/ping.py 8 files changed, 53 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/ms.py b/src/osmo_gsm_tester/obj/ms.py index e74377d..b39d3ee 100644 --- a/src/osmo_gsm_tester/obj/ms.py +++ b/src/osmo_gsm_tester/obj/ms.py @@ -77,6 +77,20 @@ raise log.Error('MS type not supported:', ms_type) return ms_class(testenv, conf) + @abstractmethod + def is_registered(self, mcc_mnc=None): + '''Check whether MS is considered registered with the target network. In + 2G networks, and MS is registered if it had a successful Location Update + in CS. In 4G networks, an UE is considered registered with the core + network if it has obtained and IP address. If MCC/MNC are given it tries + to manually register against that specific network.''' + pass + + @abstractmethod + def get_assigned_addr(self, ipv6=False): + ''' Returns last assigned IP address ''' + pass + ################### # PUBLIC (test API included) ################### diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py index e99cca3..432f759 100644 --- a/src/osmo_gsm_tester/obj/ms_amarisoft.py +++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py @@ -296,13 +296,19 @@ self.rem_host.scp('scp-cfg-rf-to-remote', self.config_rf_file, self.remote_config_rf_file) self.rem_host.scp('scp-ifup-to-remote', self.ifup_file, self.remote_ifup_file) - def is_connected(self, mcc_mnc=None): + def is_registered(self, mcc_mnc=None): # lteue doesn't call the ifup script until after it becomes attached, so # simply look for our ifup script output at the end of it: return 'netns %s configured' % (self.netns()) in (self.process.get_stdout() or '') + def is_rrc_connected(self): + return self.is_registered() + def is_attached(self): - return self.is_connected() + return self.is_registered() + + def get_assigned_addr(self, ipv6=False): + raise log.Error('API not implemented!') def running(self): return not self.process.terminated() diff --git a/src/osmo_gsm_tester/obj/ms_ofono.py b/src/osmo_gsm_tester/obj/ms_ofono.py index e1ddbc8..e03427e 100644 --- a/src/osmo_gsm_tester/obj/ms_ofono.py +++ b/src/osmo_gsm_tester/obj/ms_ofono.py @@ -487,6 +487,9 @@ return self._apn_ipaddr return 'dynamic' + def get_assigned_addr(self, ipv6=False): + raise log.Error('API not implemented!') + def features(self): return self._conf.get('features', []) @@ -501,7 +504,7 @@ def _on_netreg_property_changed(self, name, value): self.dbg('%r.PropertyChanged() -> %s=%s' % (I_NETREG, name, value)) - def is_connected(self, mcc_mnc=None): + def is_registered(self, mcc_mnc=None): netreg = self.dbus.interface(I_NETREG) prop = netreg.GetProperties() status = prop.get('Status') @@ -516,6 +519,10 @@ return True return False + def is_connected(self, mcc_mnc=None): + '''Convenience helper to keep old test API''' + return self.is_registered(mcc_mnc) + def schedule_scan_register(self, mcc_mnc): if self.register_attempts > NETREG_MAX_REGISTER_ATTEMPTS: raise log.Error('Failed to find Network Operator', mcc_mnc=mcc_mnc, attempts=self.register_attempts) diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 1922bef..604d5c7 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -19,6 +19,7 @@ import os import pprint +import re from ..core import log, util, config, template, process, remote from ..core import schema @@ -300,11 +301,26 @@ self.rem_host.recreate_remote_dir(self.remote_run_dir) self.rem_host.scp('scp-cfg-to-remote', self.config_file, self.remote_config_file) - def is_connected(self, mcc_mnc=None): + def is_rrc_connected(self): + ''' Check whether UE is RRC connected using console message ''' + pos_connected = (self.process.get_stdout() or '').rfind('RRC Connected') + pos_released = (self.process.get_stdout() or '').rfind('RRC IDLE') + return pos_connected > pos_released + + def is_registered(self, mcc_mnc=None): + ''' Checks if UE is EMM registered ''' return 'Network attach successful.' in (self.process.get_stdout() or '') - def is_attached(self): - return self.is_connected() + def get_assigned_addr(self, ipv6=False): + if ipv6: + raise log.Error('IPv6 not implemented!') + else: + stdout_lines = (self.process.get_stdout() or '').splitlines() + for line in reversed(stdout_lines): + if line.find('Network attach successful. IP: ') != -1: + ipv4_addr = re.findall( r'[0-9]+(?:\.[0-9]+){3}', line) + return ipv4_addr[0] + return None def running(self): return not self.process.terminated() diff --git a/sysmocom/suites/4g/handover.py b/sysmocom/suites/4g/handover.py index b0837d8..6bb6456 100755 --- a/sysmocom/suites/4g/handover.py +++ b/sysmocom/suites/4g/handover.py @@ -46,7 +46,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), duration + 30) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_rrc_connected) print('UE is attached') rfemu_cell1 = enb.get_rfemu(0) diff --git a/sysmocom/suites/4g/iperf3_dl.py b/sysmocom/suites/4g/iperf3_dl.py index d90c80b..055ce97 100755 --- a/sysmocom/suites/4g/iperf3_dl.py +++ b/sysmocom/suites/4g/iperf3_dl.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_rrc_connected) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/sysmocom/suites/4g/iperf3_ul.py b/sysmocom/suites/4g/iperf3_ul.py index 453cdfa..6e24070 100755 --- a/sysmocom/suites/4g/iperf3_ul.py +++ b/sysmocom/suites/4g/iperf3_ul.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_rrc_connected) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/sysmocom/suites/4g/ping.py b/sysmocom/suites/4g/ping.py index c81a35d..0fb2edb 100755 --- a/sysmocom/suites/4g/ping.py +++ b/sysmocom/suites/4g/ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_rrc_connected) print('UE is attached') proc = ue.run_netns_wait('ping', ('ping', '-c', '10', epc.tun_addr())) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18535 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: I6cd057e34b4df6a1a73695355dd6406d7e039546 Gerrit-Change-Number: 18535 Gerrit-PatchSet: 8 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:39:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:32 +0000 Subject: Change in osmo-gsm-tester[master]: 4g_suite: add MT and MO test cases In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 ) Change subject: 4g_suite: add MT and MO test cases ...................................................................... 4g_suite: add MT and MO test cases add two new test cases to test paging (MT) and MO traffic Change-Id: I5c7639f2c6953964a5b6979bc35f59464dbda43f --- A sysmocom/suites/4g/rrc_idle_mo_ping.py A sysmocom/suites/4g/rrc_idle_mt_ping.py 2 files changed, 83 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/sysmocom/suites/4g/rrc_idle_mo_ping.py b/sysmocom/suites/4g/rrc_idle_mo_ping.py new file mode 100755 index 0000000..de643df --- /dev/null +++ b/sysmocom/suites/4g/rrc_idle_mo_ping.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * + +epc = tenv.epc() +enb = tenv.enb() +ue = tenv.modem() + +epc.subscriber_add(ue) +epc.start() +enb.ue_add(ue) +enb.start(epc) + +print('waiting for ENB to connect to EPC...') +wait(epc.enb_is_connected, enb) +print('ENB is connected to EPC') + +ue.connect(enb) +print('waiting for UE to attach...') +wait(ue.is_rrc_connected) +print('UE is RRC connected') + +print('waiting until RRC connection gets released...') +wait(lambda: not ue.is_rrc_connected()) +print('UE is RRC idle') + +# Wait a bit +sleep(5) + +# Generate MO traffic +proc = ue.run_netns_wait('ping', ('ping', '-c', '1', epc.tun_addr())) +output = proc.get_stdout() + +# Check PRACH transmissions +num_prach_sent = ue.get_counter('prach_sent') +if num_prach_sent != 2: + raise Exception("Expected to have sent exactly 2 PRACHs, but in fact sent {}".format(num_prach_sent)) + +print(output) +test.set_report_stdout(output) diff --git a/sysmocom/suites/4g/rrc_idle_mt_ping.py b/sysmocom/suites/4g/rrc_idle_mt_ping.py new file mode 100755 index 0000000..7caba32 --- /dev/null +++ b/sysmocom/suites/4g/rrc_idle_mt_ping.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +from osmo_gsm_tester.testenv import * + +epc = tenv.epc() +enb = tenv.enb() +ue = tenv.modem() + +epc.subscriber_add(ue) +epc.start() +enb.ue_add(ue) +enb.start(epc) + +print('waiting for ENB to connect to EPC...') +wait(epc.enb_is_connected, enb) +print('ENB is connected to EPC') + +ue.connect(enb) +print('waiting for UE to attach...') +wait(ue.is_rrc_connected) +print('UE is RRC connected') + +print('waiting until RRC connection gets released...') +wait(lambda: not ue.is_rrc_connected()) +print('UE is RRC idle') + +# Wait a bit +sleep(5) + +# Generate MO traffic, send single ping +proc = epc.run_wait('ping', ('ping', '-c', '1', ue.get_assigned_addr())) +output = proc.get_stdout() + +# Check paging received +num_paging_received = ue.get_counter('paging_received') +if num_paging_received != 1: + raise Exception("Expected to receive exactly 1 paging message, but in fact received {}".format(num_paging_received)) + +# Check PRACH transmissions +num_prach_sent = ue.get_counter('prach_sent') +if num_prach_sent != 2: + raise Exception("Expected to have sent exactly 2 PRACHs, but in fact sent {}".format(num_prach_sent)) + +print(output) +test.set_report_stdout(output) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18539 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: I5c7639f2c6953964a5b6979bc35f59464dbda43f Gerrit-Change-Number: 18539 Gerrit-PatchSet: 8 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:39:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:33 +0000 Subject: Change in osmo-gsm-tester[master]: handover.py: fix typo in test In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18626 ) Change subject: handover.py: fix typo in test ...................................................................... handover.py: fix typo in test Change-Id: I9a52a341d7575807d3e52460e1aa24732e3b3112 --- M sysmocom/suites/4g/handover.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/sysmocom/suites/4g/handover.py b/sysmocom/suites/4g/handover.py index 6bb6456..bc49266 100755 --- a/sysmocom/suites/4g/handover.py +++ b/sysmocom/suites/4g/handover.py @@ -70,7 +70,7 @@ print("Exception while terminating process %r" % repr(process)) raise e -rest_str = 'Got %d successful handovers (>= %d) during %d seconds' % (num_handovers, threshold, duration) +res_str = 'Got %d successful handovers (>= %d) during %d seconds' % (num_handovers, threshold, duration) print(res_str) test.set_report_stdout(res_str) proc.terminate() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18626 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: I9a52a341d7575807d3e52460e1aa24732e3b3112 Gerrit-Change-Number: 18626 Gerrit-PatchSet: 6 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:39:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:33 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 ) Change subject: enb_srs: add extra head room for max rate with 6 PRB in MIMO mode ...................................................................... enb_srs: add extra head room for max rate with 6 PRB in MIMO mode the overhead with 6 PRB and MIMO is a bit higher when compared to other PRBs resulting in lower achievable throughput Change-Id: I63888435553bba4f7be88cc745e24472921a7fb4 --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 7 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 33ee16b..9dc8113 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -252,8 +252,13 @@ max_rate = max_phy_rate_tm1_ul[self.num_prb()] # MIMO only supported for Downlink - if downlink and self._txmode > 2: - max_rate *= 2 + if downlink: + if self._txmode > 2: + max_rate *= 2 + + # For 6 PRBs the max throughput is significantly lower + if self._txmode >= 2 and self.num_prb() == 6: + max_rate *= 0.85 return max_rate -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18636 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: I63888435553bba4f7be88cc745e24472921a7fb4 Gerrit-Change-Number: 18636 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:39:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:33 +0000 Subject: Change in osmo-gsm-tester[master]: enb_amarisoft: decrease max rate for TM2+ In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18717 ) Change subject: enb_amarisoft: decrease max rate for TM2+ ...................................................................... enb_amarisoft: decrease max rate for TM2+ perhaps additional CRS for MIMO up to 25 PRB result in slighlt lower max rate Change-Id: I128085e308f400622683905245d42f92a631e81d --- M src/osmo_gsm_tester/obj/enb_amarisoft.py 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index 3602f31..f6f2cb0 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -253,8 +253,12 @@ max_rate = max_phy_rate_tm1_ul[self.num_prb()] # MIMO only supported for Downlink - if downlink and self._txmode > 2: - max_rate *= 2 + if downlink: + if self._txmode > 2: + max_rate *= 2 + # Lower max MCS for TM2 and above results in lower max rate + if self._txmode >= 2 and self.num_prb() <= 25: + max_rate *= 0.85 return max_rate -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18717 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: I128085e308f400622683905245d42f92a631e81d Gerrit-Change-Number: 18717 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:39:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:39:33 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ms: refactor base_rate selection for ZMQ In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 ) Change subject: enb,ms: refactor base_rate selection for ZMQ ...................................................................... enb,ms: refactor base_rate selection for ZMQ Use tailored sample rate only use for 6, 50 and 75 PRB. For all other bandwidths, we use the full LTE rate and downsample. With 5.76e6 as base sample rate, for example, we had some issue during the tests like: [zmq] Error: tx time is 0.178 ms in the past (7833600 < 7835648) [zmq] Error: tx time is 0.011 ms in the past (7835520 < 7835648) Using a higher sample rate seems to work better. Change-Id: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/ms_amarisoft.py M src/osmo_gsm_tester/obj/ms_srs.py 3 files changed, 9 insertions(+), 21 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 699b66f..b221cb9 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -142,18 +142,14 @@ #reference: srsLTE.git srslte_symbol_sz() def num_prb2symbol_sz(self, num_prb): - if num_prb <= 6: + if num_prb == 6: return 128 - if num_prb <= 15: - return 256 - if num_prb <= 25: - return 384 - if num_prb <= 50: + if num_prb == 50: return 768 - if num_prb <= 75: + if num_prb == 75: return 1024 - if num_prb <= 110: - return 1536 + return 1536 + raise log.Error('invalid num_prb %r', num_prb) def num_prb2base_srate(self, num_prb): diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py index 432f759..b2dc9c7 100644 --- a/src/osmo_gsm_tester/obj/ms_amarisoft.py +++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py @@ -45,8 +45,6 @@ return 128 if num_prb <= 15: return 256 - if num_prb <= 25: - return 384 if num_prb <= 50: return 768 if num_prb <= 75: diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 604d5c7..0aad954 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -52,19 +52,13 @@ #reference: srsLTE.git srslte_symbol_sz() def num_prb2symbol_sz(num_prb): - if num_prb <= 6: + if num_prb == 6: return 128 - if num_prb <= 15: - return 256 - if num_prb <= 25: - return 384 - if num_prb <= 50: + if num_prb == 50: return 768 - if num_prb <= 75: + if num_prb == 75: return 1024 - if num_prb <= 110: - return 1536 - raise log.Error('invalid num_prb %r', num_prb) + return 1536 def num_prb2base_srate(num_prb): return num_prb2symbol_sz(num_prb) * 15 * 1000 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18637 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: I53678587b2c5e0e5dccb1b55a328ad2f1a97fc4c Gerrit-Change-Number: 18637 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:51:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:51:06 +0000 Subject: Change in osmo-gsm-tester[master]: doc/manual: Fix links to nonexistent sections References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18757 ) Change subject: doc/manual: Fix links to nonexistent sections ...................................................................... doc/manual: Fix links to nonexistent sections Change-Id: I8742fa9c41d3ab95d41e299179df19c3d1e0a65b --- M doc/manuals/chapters/config.adoc M doc/manuals/chapters/install.adoc 2 files changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/57/18757/1 diff --git a/doc/manuals/chapters/config.adoc b/doc/manuals/chapters/config.adoc index 18ff55d..b4e4a95 100644 --- a/doc/manuals/chapters/config.adoc +++ b/doc/manuals/chapters/config.adoc @@ -326,15 +326,15 @@ A 'resources.conf' is validated by the <>. That means it is structured as a list of items for each resource type, where -each item has one or more attributes -- for an example, see -<>. +each item has one or more attributes -- looking for an example, see {app-name} +subdirectory _doc/examples_. Side note: at first sight it might make sense to the reader to rather structure e.g. the 'ip_address' or 'arfcn' configuration as + '"arfcn: GSM-1800: [512, 514, ...]"', + -but the more verbose format is chosen to stay consistent with the general -structure of resource configurations, which the resource allocation algorithm -uses to resolve required resources according to their traits. These +but the more verbose format is chosen in general to stay consistent with the +general structure of resource configurations, which the resource allocation +algorithm uses to resolve required resources according to their traits. These configurations look cumbersome because they exhibit only one trait / a trait that is repeated numerous times. No special notation for these cases is available (yet). diff --git a/doc/manuals/chapters/install.adoc b/doc/manuals/chapters/install.adoc index 445b53c..0e48e9d 100644 --- a/doc/manuals/chapters/install.adoc +++ b/doc/manuals/chapters/install.adoc @@ -309,7 +309,7 @@ wide install, in which case you could omit the explicit PATH to "$PWD/osmo-gsm-tester/src". *** This assumes that there are configuration files for osmo-gsm-tester placed - on the system (see <>). + on the system (see <>). *** If you'd like to check the behavior of test failures, you can uncomment the line below "# debug" to produce a build failure on every run. Note that this test typically produces a quite empty run result, since it launches no @@ -687,4 +687,4 @@ ---- NOTE: The configuration will be looked up in various places, see -<>. +<>. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18757 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: I8742fa9c41d3ab95d41e299179df19c3d1e0a65b Gerrit-Change-Number: 18757 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 Jun 10 15:56:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:56:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix f_enc_IMEI_L3() oddevenIndicator References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 ) Change subject: fix f_enc_IMEI_L3() oddevenIndicator ...................................................................... fix f_enc_IMEI_L3() oddevenIndicator f_gen_imei() calls f_enc_IMEI_L3() with a 14 digits argument, but the IMEI_L3 template used is hardcoded to 15 digits. So the oddevenIndicator must always indicate odd, not depend on the digits argument. f_gen_imei() should probably also compose a Luhn checksum, leaving that to another patch. Found by using the new osmo_mobile_identity API in osmo-msc, which is stricter about odd/even and filler digits than our previous implementations. See osmo-msc Idfc8e576e10756aeaacf5569f6178068313eb7ea . Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0 --- M library/L3_Templates.ttcn 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/58/18758/1 diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 3032503..ba91180 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -184,11 +184,20 @@ private function f_enc_IMEI_L3(hexstring digits) return IMEI_L3 { var IMEI_L3 l3; var integer len := lengthof(digits); - if (len rem 2 == 1) { /* modulo remainder */ - l3.oddevenIndicator := '1'B; - } else { - l3.oddevenIndicator := '0'B; - } + /* IMEI_L3 is always 15 digits. That is actually a 14 digit IMEI + a Luhn checksum digit (see + * libosmocore/include/osmocom/gsm/protocol/gsm_23_003.h) + * + * Here, we must not make the oddevenIndicator depend on the 'digits' parameter, because: + * - The IMEI_L3 template assumes always 15 digits. + * - The 'digits' parameter, however, may also contain less digits, 14 in the case of + * f_gen_imei(). + * - The IMEI_L3 template will then fill up with zeros to make 15 digits. + * Hence oddevenIndicator must always indicate 'odd' == '1'B. + * + * FIXME: if the caller passes less than 15 digits, the Luhn checksum digit then ends up zero == most probably + * wrong. + */ + l3.oddevenIndicator := '1'B; l3.digits := digits; return l3; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0 Gerrit-Change-Number: 18758 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 Jun 10 15:56:42 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:56:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move type RAN_Configurations to RAN_Adapter.ttcnpp References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 ) Change subject: move type RAN_Configurations to RAN_Adapter.ttcnpp ...................................................................... move type RAN_Configurations to RAN_Adapter.ttcnpp So far used only in MSC_Tests.ttcn, but soon to be used also in BSC_Tests.ttcn. Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 --- M library/RAN_Adapter.ttcnpp M msc/MSC_Tests.ttcn 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/59/18759/1 diff --git a/library/RAN_Adapter.ttcnpp b/library/RAN_Adapter.ttcnpp index f84fd34..f1b9d82 100644 --- a/library/RAN_Adapter.ttcnpp +++ b/library/RAN_Adapter.ttcnpp @@ -65,6 +65,8 @@ integer rctx }; +type record of RAN_Configuration RAN_Configurations; + private function init_pars(inout RAN_Adapter ba, in RAN_Configuration cfg) { ba.sccp_pars := { sio := { diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 35ca84a..bfac7e9 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -81,7 +81,6 @@ import from TCCConversion_Functions all; const integer NUM_BSC := 3; -type record of RAN_Configuration RAN_Configurations; /* Needed for SGsAP SMS */ import from MobileL3_SMS_Types all; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 Gerrit-Change-Number: 18759 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 Jun 10 15:56:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:56:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 ) Change subject: bsc: allow multiple MSCs ...................................................................... bsc: allow multiple MSCs Similar to the MSC tests, have several g_bssap and mp_bssap_cfg. Prepare for MSC pool tests. Replace g_bssap with a g_bssap[NUM_MSC] array. Replace mp_bssap_cfg with an mp_bssap_cfg[NUM_MSC] array. Requires patch I1986e4ef43beee161c82193694421b56136c1afe in docker-playground to match the new required BSC_Tests.cfg format. Related: OS#3682 Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn M bsc/MSC_ConnectionHandler.ttcn 3 files changed, 120 insertions(+), 74 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/18760/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 48766f1..fb7ee25 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -59,6 +59,7 @@ import from SCCPasp_Types all; const integer NUM_BTS := 3; +const integer NUM_MSC := 3; const float T3101_MAX := 12.0; /* make sure to sync this with the osmo-bts.cfg you're using */ @@ -87,7 +88,7 @@ var MGCP_Emulation_CT vc_MGCP; port TELNETasp_PT BSCVTY; - var RAN_Adapter g_bssap; + var RAN_Adapter g_bssap[NUM_MSC]; /* for old legacy-tests only */ port BSSAP_CODEC_PT BSSAP; @@ -119,16 +120,40 @@ /* IP address at which the test binds */ charstring mp_test_ip := "127.0.0.1"; - RAN_Configuration mp_bssap_cfg := { - transport := BSSAP_TRANSPORT_AoIP, - sccp_service_type := "mtp3_itu", - sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" }, - own_pc := 185, - own_ssn := 254, - peer_pc := 187, - peer_ssn := 254, - sio := '83'O, - rctx := 0 + RAN_Configurations mp_bssap_cfg := { + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" }, + own_pc := 185, /* 0.23.1 first MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 0 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23906, "127.0.0.1", 2905, "127.0.0.1" }, + own_pc := 2, /* 0.0.2 second MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 2 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23907, "127.0.0.1", 2905, "127.0.0.1" }, + own_pc := 3, /* 0.0.3 third MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 3 + } }; /* Whether to enable osmux tests. Can be dropped completely and enable @@ -139,15 +164,16 @@ uint8_t mp_exp_ms_power_level := 7; } -private function f_gen_test_hdlr_pars() return TestHdlrParams { +private function f_gen_test_hdlr_pars(integer bssap_idx := 0) return TestHdlrParams { var TestHdlrParams pars := valueof(t_def_TestHdlrPars); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { pars.aoip := true; } else { pars.aoip := false; } pars.exp_ms_power_level := mp_exp_ms_power_level; + pars.mscpool.bssap_idx := bssap_idx; return pars; } @@ -158,13 +184,15 @@ mtc.stop; } -private function f_legacy_bssap_reset() runs on test_CT { +private function f_legacy_bssap_reset(integer bssap_idx := 0) runs on test_CT { var BSSAP_N_UNITDATA_ind ud_ind; timer T := 5.0; - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[bssap_idx].sccp_addr_peer, g_bssap[bssap_idx].sccp_addr_own, + ts_BSSMAP_Reset(0, g_osmux_enabled))); T.start; alt { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap.sccp_addr_own, g_bssap.sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { + [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap[bssap_idx].sccp_addr_own, g_bssap[bssap_idx].sccp_addr_peer, + tr_BSSMAP_ResetAck(g_osmux_enabled))) { log("Received RESET-ACK in response to RESET, we're ready to go!"); } [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset(g_osmux_enabled))) -> value ud_ind { @@ -306,7 +334,7 @@ mgw_udp_port := 2427, /* Enable it for SCCPlite, since we have 2 MGCP sockets towards MGW (UDP one + the on with MGCP over IPA forwarded from MSC one) */ - multi_conn_mode := (mp_bssap_cfg.transport == BSSAP_TRANSPORT_SCCPlite_SERVER) + multi_conn_mode := (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) }; vc_MGCP := MGCP_Emulation_CT.create(id); @@ -344,7 +372,9 @@ /* global initialization function * \param nr_bts Number of BTSs we should start/bring up * \param handler_mode Start an RSL_Emulation_CT component (true) or not (false) */ -function f_init(integer nr_bts := NUM_BTS, boolean handler_mode := false, boolean allow_osmux := false) runs on test_CT { +function f_init(integer nr_bts := NUM_BTS, boolean handler_mode := false, boolean allow_osmux := false, + integer nr_msc := 1) runs on test_CT { + var integer bssap_idx; var integer i; if (g_initialized) { @@ -360,19 +390,21 @@ f_vty_allow_osmux(allow_osmux); } - /* Call a function of our 'parent component' RAN_Adapter_CT to start the - * MSC-side BSSAP emulation */ - if (handler_mode) { - var RanOps ranops := MSC_RanOps; - ranops.use_osmux := g_osmux_enabled; - f_ran_adapter_init(g_bssap, mp_bssap_cfg, "VirtMSC", ranops); - connect(self:SCCPLITE_IPA_CTRL, g_bssap.vc_RAN:CTRL_CLIENT); - f_ran_adapter_start(g_bssap); - } else { - f_ran_adapter_init(g_bssap, mp_bssap_cfg, "VirtMSC", omit); - connect(self:BSSAP, g_bssap.vc_SCCP:SCCP_SP_PORT); - f_ran_adapter_start(g_bssap); - f_legacy_bssap_reset(); + for (bssap_idx := 0; bssap_idx < nr_msc; bssap_idx := bssap_idx+1) { + /* Call a function of our 'parent component' RAN_Adapter_CT to start the + * MSC-side BSSAP emulation */ + if (handler_mode) { + var RanOps ranops := MSC_RanOps; + ranops.use_osmux := g_osmux_enabled; + f_ran_adapter_init(g_bssap[bssap_idx], mp_bssap_cfg[bssap_idx], "VirtMSC", ranops); + connect(self:SCCPLITE_IPA_CTRL, g_bssap[bssap_idx].vc_RAN:CTRL_CLIENT); + f_ran_adapter_start(g_bssap[bssap_idx]); + } else { + f_ran_adapter_init(g_bssap[bssap_idx], mp_bssap_cfg[bssap_idx], "VirtMSC", omit); + connect(self:BSSAP, g_bssap[bssap_idx].vc_SCCP:SCCP_SP_PORT); + f_ran_adapter_start(g_bssap[bssap_idx]); + f_legacy_bssap_reset(); + } } f_ipa_ctrl_start(mp_bsc_ip, mp_bsc_ctrl_port); @@ -612,16 +644,17 @@ /* Verify that the BSC refuses any BSSAP connection from the MSC (They are all BSC->MSC direction, * except for the inter-BSC handover, MT side) */ -testcase TC_outbound_connect() runs on test_CT { +testcase TC_outbound_connect(integer bssap_idx := 0) runs on test_CT { f_init(1); - BSSAP.send(ts_BSSAP_CONNECT_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, 2342, ts_BSSMAP_AssignmentReq)); + BSSAP.send(ts_BSSAP_CONNECT_req(g_bssap[bssap_idx].sccp_addr_peer, g_bssap[bssap_idx].sccp_addr_own, + 2342, ts_BSSMAP_AssignmentReq)); BSSAP.receive(tr_BSSAP_DISC_ind(2342, ?, ?)); setverdict(pass); } /* Test behavior if MSC answers with CREF to CR */ -testcase TC_assignment_cic_only() runs on test_CT { +testcase TC_assignment_cic_only(integer bssap_idx := 0) runs on test_CT { var BSSAP_N_CONNECT_ind rx_c_ind; var RSL_Message rx_rsl; var DchanTuple dt; @@ -629,7 +662,7 @@ f_init(1); dt := f_est_dchan('23'O, 23, '00000000'O); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { /* send assignment without AoIP IEs */ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_AssignmentReq(ts_BSSMAP_IE_CIC(0, 1)))); } else { @@ -651,10 +684,10 @@ } /* generate an assignment request for either AoIP or SCCPlite */ -function f_gen_ass_req(boolean osmux_enabled := false) return PDU_BSSAP { +function f_gen_ass_req(boolean osmux_enabled := false, integer bssap_idx := 0) return PDU_BSSAP { var PDU_BSSAP ass_cmd; var BSSMAP_IE_Osmo_OsmuxCID osmux_cid := valueof(ts_OsmuxCID(0)); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342)); if (osmux_enabled) { @@ -669,9 +702,9 @@ return ass_cmd; } -function f_gen_handover_req() return PDU_BSSAP { +function f_gen_handover_req(integer bssap_idx := 0) return PDU_BSSAP { var PDU_BSSAP ho_req; - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342)); ho_req := valueof(ts_BSSMAP_HandoverRequest(omit, tla)); @@ -683,10 +716,10 @@ } /* generate an assignment complete template for either AoIP or SCCPlite */ -function f_gen_exp_compl(boolean expect_osmux := false) return template PDU_BSSAP { +function f_gen_exp_compl(boolean expect_osmux := false, integer bssap_idx := 0) return template PDU_BSSAP { var template PDU_BSSAP exp_compl; var BSSMAP_IE_Osmo_OsmuxCID osmux_cid := valueof(ts_OsmuxCID(0)); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { if (expect_osmux) { exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?, osmux_cid); } else { @@ -1055,9 +1088,9 @@ IPA_RSL[0].clear; /* perform BSSAP RESET, expect RESET ACK and DISC.ind on connection */ - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[0].sccp_addr_peer, g_bssap[0].sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); interleave { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap.sccp_addr_own, g_bssap.sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } + [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap[0].sccp_addr_own, g_bssap[0].sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } [] BSSAP.receive(tr_BSSAP_DISC_ind(dt.sccp_conn_id, ?, ?)) { } } @@ -1258,10 +1291,6 @@ setverdict(pass); } -function f_bssap_tx_ud(template PDU_BSSAP bssap) runs on test_CT { - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, bssap)); -} - /*********************************************************************** * Paging Testing @@ -1314,7 +1343,8 @@ bssmap_chneed := omit; } - f_bssap_tx_ud(ts_BSSMAP_Paging(imsi, cid_list, tmsi, bssmap_chneed)); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[0].sccp_addr_peer, g_bssap[0].sccp_addr_own, + ts_BSSMAP_Paging(imsi, cid_list, tmsi, bssmap_chneed))); if (not istemplatekind(tmsi, "omit")) { mi := t_MI_TMSI(tmsi); @@ -1583,9 +1613,9 @@ f_pageing_helper('001010123456789'H, cid_list, c_BtsId_all); /* Perform a BSSMAP Reset and wait for ACK */ - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[0].sccp_addr_peer, g_bssap[0].sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); alt { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap.sccp_addr_own, g_bssap.sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } + [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap[0].sccp_addr_own, g_bssap[0].sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } [] BSSAP.receive { repeat; } } @@ -1744,8 +1774,8 @@ type function void_fn(charstring id) runs on MSC_ConnHdlr; /* helper function to create and connect a MSC_ConnHdlr component */ -private function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { - connect(vc_conn:RAN, g_bssap.vc_RAN:PROC); +private function f_connect_handler(inout MSC_ConnHdlr vc_conn, integer bssap_idx := 0) runs on test_CT { + connect(vc_conn:RAN, g_bssap[bssap_idx].vc_RAN:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC); @@ -1757,7 +1787,7 @@ connect(vc_conn:RSL2, bts[2].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL2_PROC, bts[2].rsl.vc_RSL:RSL_PROC); } - connect(vc_conn:BSSAP, g_bssap.vc_RAN:CLIENT); + connect(vc_conn:BSSAP, g_bssap[bssap_idx].vc_RAN:CLIENT); connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); connect(vc_conn:MGCP_MULTI, vc_MGCP:MGCP_CLIENT_MULTI); } @@ -1766,8 +1796,12 @@ runs on test_CT return MSC_ConnHdlr { var charstring id := testcasename(); var MSC_ConnHdlr vc_conn; + var integer bssap_idx := 0; + if (isvalue(pars)) { + bssap_idx := valueof(pars).mscpool.bssap_idx; + } vc_conn := MSC_ConnHdlr.create(id); - f_connect_handler(vc_conn); + f_connect_handler(vc_conn, bssap_idx); vc_conn.start(f_handler_init(fn, id, pars)); return vc_conn; } @@ -2063,7 +2097,7 @@ var template PDU_BSSAP exp_compl := f_gen_exp_compl(g_pars.use_osmux); /* puzzle together the ASSIGNMENT REQ for given codec[s] */ - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { ass_cmd.pdu.bssmap.assignmentRequest.codecList := g_pars.ass_codec_list; exp_compl.pdu.bssmap.assignmentComplete.speechCodec.codecElements[0] := g_pars.ass_codec_list.codecElements[0]; @@ -2118,7 +2152,7 @@ var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail; /* puzzle together the ASSIGNMENT REQ for given codec[s] */ - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { ass_cmd.pdu.bssmap.assignmentRequest.codecList := g_pars.ass_codec_list; } ass_cmd.pdu.bssmap.assignmentRequest.channelType := @@ -3323,8 +3357,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_into_this_bsc), pars); vc_conn.done; @@ -3396,8 +3430,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_msc_clears), pars); vc_conn.done; @@ -3476,8 +3510,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_msc_clears_after_ho_detect), pars); vc_conn.done; @@ -3557,8 +3591,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_no_detect), pars); vc_conn.done; @@ -3628,8 +3662,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_no_detect2), pars); vc_conn.done; @@ -4422,7 +4456,7 @@ execute( TC_ctrl_msc_connection_status() ); execute( TC_ctrl_msc0_connection_status() ); execute( TC_ctrl() ); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_SCCPlite_SERVER) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) { execute( TC_ctrl_location() ); } @@ -4453,7 +4487,7 @@ execute( TC_assignment_sign() ); execute( TC_assignment_fr_a5_0() ); execute( TC_assignment_fr_a5_1() ); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { execute( TC_assignment_fr_a5_1_codec_missing() ); } execute( TC_assignment_fr_a5_3() ); @@ -4468,7 +4502,7 @@ execute( TC_assignment_codec_amr_f() ); execute( TC_assignment_codec_amr_h() ); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { execute( TC_assignment_codec_amr_f_S1() ); execute( TC_assignment_codec_amr_h_S1() ); execute( TC_assignment_codec_amr_f_S124() ); diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 6087133..72fb525 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -161,8 +161,8 @@ /* helper function to create and connect a MSC_ConnHdlr component */ /* FIXME: Why can't we use BSC_Tests.f_connect_andler() ?!? */ -private function f_connect_handler(inout LCLS_MSC_ConnHdlr vc_conn) runs on lcls_test_CT { - connect(vc_conn:RAN, g_bssap.vc_RAN:PROC); +private function f_connect_handler(inout LCLS_MSC_ConnHdlr vc_conn, integer bssap_idx := 0) runs on lcls_test_CT { + connect(vc_conn:RAN, g_bssap[bssap_idx].vc_RAN:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC); @@ -170,7 +170,7 @@ connect(vc_conn:RSL1, bts[1].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL1_PROC, bts[1].rsl.vc_RSL:RSL_PROC); } - connect(vc_conn:BSSAP, g_bssap.vc_RAN:CLIENT); + connect(vc_conn:BSSAP, g_bssap[bssap_idx].vc_RAN:CLIENT); connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); } diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index f1d2e63..593f4d6 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -514,6 +514,12 @@ SCCP_PAR_Address sccp_addr_bsc } +type record TestHdlrParamsMSCPool { + integer bssap_idx, + integer rsl_idx, + PDU_ML3_MS_NW l3_info optional +} + type record TestHdlrParams { OCT1 ra, GsmFrameNumber fn, @@ -529,7 +535,8 @@ uint5_t exp_ms_power_level, boolean exp_ms_power_params, boolean aoip, - boolean use_osmux + boolean use_osmux, + TestHdlrParamsMSCPool mscpool }; /* Note: Do not use valueof() to get a value of this template, use @@ -556,7 +563,12 @@ exp_ms_power_level := 7, /* calculated from osmo-bsc.cfg "ms max power" */ exp_ms_power_params := false, aoip := true, - use_osmux := false + use_osmux := false, + mscpool := { + bssap_idx := 0, + rsl_idx := 0, + l3_info := omit + } } function f_create_chan_and_exp() runs on MSC_ConnHdlr { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 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 Jun 10 15:56:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:56:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 ) Change subject: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() ...................................................................... RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() For tr_RSL_PAGING_CMD, also check comp_ref against null. Upon receiving a tr_RSL_PAGING_CMD, the code tries to dispatch the Paging Command to all valid clients. However, the ConnectionTable[*].comp_ref is *always* present, and actually null for unconnected clients. So, before this patch, a Paging Command from osmo-bsc gets sent to a null client, which disconnects the RSL emulation and aborts the test. There is currently no test using this, but the upcoming MSC pool tests will: see I21cbab193cd0de2e5692665442eae113d5f61904. Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 --- M library/RSL_Emulation.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/61/18761/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index bb11340..618cf11 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -548,7 +548,7 @@ [bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD(?, ?), sid := ?)) -> value rx_rsl { /* broadcast to all clients? */ for (i := 0; i < sizeof(ConnectionTable); i := i + 1) { - if (ispresent(ConnectionTable[i].comp_ref)) { + if (ispresent(ConnectionTable[i].comp_ref) and ConnectionTable[i].comp_ref != null) { CLIENT_PT.send(rx_rsl.rsl) to ConnectionTable[i].comp_ref; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 Gerrit-Change-Number: 18761 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 Jun 10 15:56:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:56:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 ) Change subject: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr ...................................................................... RAN_Emulation: allow sending UnitData from MSC_ConnHdlr Add BSSAP_N_UNITDATA_req to RAN_Conn_PT, so that we are able to send a Paging from a test function that runs on MSC_ConnHdlr. This will be needed by upcoming MSC pool tests, see I21cbab193cd0de2e5692665442eae113d5f61904. Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930 --- M library/RAN_Emulation.ttcnpp 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/62/18762/1 diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index 7e98b8b..5450706 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -162,6 +162,7 @@ inout #ifdef RAN_EMULATION_BSSAP PDU_BSSAP, + BSSAP_N_UNITDATA_req, /* Client requests us to create SCCP Connection */ BSSAP_Conn_Req, #endif @@ -839,6 +840,7 @@ var BSSAP_N_DISCONNECT_ind disc_ind; var BSSAP_Conn_Req creq; var PDU_BSSAP bssap; + var BSSAP_N_UNITDATA_req bssap_ud; var RAN_ConnHdlr vc_conn; var integer targetPointCode; var N_Sd_Array last_n_sd; @@ -898,6 +900,10 @@ BSSAP.send(ts_BSSAP_DATA_req(conn_id, bssap)); } + [] CLIENT.receive(BSSAP_N_UNITDATA_req:?) -> value bssap_ud sender vc_conn { + BSSAP.send(bssap_ud); + } + /* Disconnect request client -> SCCP */ [] CLIENT.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { var integer conn_id := f_conn_id_by_comp(vc_conn); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930 Gerrit-Change-Number: 18762 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 Jun 10 15:56:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:56:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 799 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/18763/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index fb7ee25..0a6bc28 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -20,6 +20,7 @@ * level testing. */ +import from Misc_Helpers all; import from General_Types all; import from Osmocom_Types all; import from GSM_Types all; @@ -369,6 +370,14 @@ "sccp-timer iar " & int2str(g_bsc_sccp_timer_iar)}); } +private function f_logp(charstring log_msg) runs on MSC_ConnHdlr +{ + // log on TTCN3 log output + log(log_msg); + // log in stderr log + f_vty_transceive(BSCVTY, "logp lglobal notice " & log_msg); +} + /* global initialization function * \param nr_bts Number of BTSs we should start/bring up * \param handler_mode Start an RSL_Emulation_CT component (true) or not (false) */ @@ -4443,6 +4452,707 @@ vc_conn.done; } +/*********************************************************************** + * MSC Pooling + ***********************************************************************/ + +function f_tmsi_nri(integer nri_v, octetstring base_tmsi := '42000023'O, integer nri_bitlen := 10) return octetstring +{ + return int2oct( oct2int('42000023'O) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ), + 4); +} + +template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) := + ts_MI_TMSI_LV(tmsi := f_tmsi_nri(nri_v, nri_bitlen := nri_bitlen)); + +private function f_perform_clear() runs on MSC_ConnHdlr { + f_logp("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)) { + f_logp("Got RSL RR Release"); + } + [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { + f_logp("Got RSL Deact SACCH"); + } + [] BSSAP.receive(tr_BSSMAP_ClearComplete) { + f_logp("Got BSSMAP Clear Complete"); + /* Also drop the SCCP connection */ + BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + } + [] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { + f_logp("Got RSL RF Chan Rel, sending Rel Ack"); + RSL.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr)); + } + } +} + +private function f_perform_clear_on_RSL1() runs on MSC_ConnHdlr { + f_logp("MSC instructs BSC to clear channel"); + BSSAP.send(ts_BSSMAP_ClearCommand(0)); + interleave { + [] RSL1.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { + f_logp("Got RSL RR Release"); + } + [] RSL1.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { + f_logp("Got RSL Deact SACCH"); + } + [] BSSAP.receive(tr_BSSMAP_ClearComplete) { + f_logp("Got BSSMAP Clear Complete"); + /* Also drop the SCCP connection */ + BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + } + [] RSL1.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { + f_logp("Got RSL RF Chan Rel, sending Rel Ack"); + RSL1.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr)); + } + } +} + +private function f_perform_clear_on_RSL2() runs on MSC_ConnHdlr { + f_logp("MSC instructs BSC to clear channel"); + BSSAP.send(ts_BSSMAP_ClearCommand(0)); + interleave { + [] RSL2.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { + f_logp("Got RSL RR Release"); + } + [] RSL2.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { + f_logp("Got RSL Deact SACCH"); + } + [] BSSAP.receive(tr_BSSMAP_ClearComplete) { + f_logp("Got BSSMAP Clear Complete"); + /* Also drop the SCCP connection */ + BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + } + [] RSL2.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { + f_logp("Got RSL RF Chan Rel, sending Rel Ack"); + RSL2.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr)); + } + } +} + +private function f_perform_compl_l3(template PDU_ML3_MS_NW l3_info, boolean do_clear := true) +runs on MSC_ConnHdlr { + timer T := 10.0; + var octetstring l3_enc := enc_PDU_ML3_MS_NW(valueof(l3_info)); + + f_logp("establish channel, send Complete Layer 3 Info"); + f_create_bssmap_exp(l3_enc); + + /* RSL_Emulation.f_chan_est() on RSL: */ + //RSL_Emulation.f_chan_est(g_pars.ra, l3_enc, g_pars.link_id, g_pars.fn); + var RSL_Message rx_rsl; + var GsmRrMessage rr; + + /* request a channel to be established */ + RSL.send(ts_RSLDC_ChanRqd(g_pars.ra, g_pars.fn)); + /* expect immediate assignment */ + //rx_rsl := f_rx_or_fail(tr_RSL_IMM_ASSIGN); + timer Tt := 10.0; + + /* request a channel to be established */ + Tt.start; + alt { + [] RSL.receive(tr_RSL_IMM_ASSIGN) -> value rx_rsl { + Tt.stop; + } + [] RSL.receive { + setverdict(fail, "Unexpected RSL message on DCHAN"); + mtc.stop; + } + [] Tt.timeout { + setverdict(fail, "Timeout waiting for RSL on DCHAN"); + mtc.stop; + } + } + rr := dec_GsmRrMessage(rx_rsl.ies[1].body.full_imm_ass_info.payload); + g_chan_nr := rr.payload.imm_ass.chan_desc.chan_nr; + RSL.send(ts_RSL_EST_IND(g_chan_nr, valueof(g_pars.link_id), l3_enc)); + + + f_logp("expect BSSAP Complete Layer 3 Info at MSC"); + var template PDU_BSSAP exp_l3_compl; + exp_l3_compl := tr_BSSMAP_ComplL3() + if (g_pars.aoip == false) { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := omit; + } else { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := ?; + } + + var PDU_BSSAP bssap; + T.start; + alt { + [] BSSAP.receive(exp_l3_compl) -> value bssap { + f_logp("received expected Complete Layer 3 Info at MSC"); + log("rx exp_l3_compl = ", bssap); + } + [] BSSAP.receive(tr_BSSMAP_ComplL3) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received non-matching COMPLETE LAYER 3 INFORMATION"); + } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for COMPLETE LAYER 3 INFORMATION"); + } + } + + /* start ciphering, if requested */ + if (ispresent(g_pars.encr)) { + f_logp("start ciphering"); + f_cipher_mode(g_pars.encr.enc_alg, g_pars.encr.enc_key); + } + + if (do_clear) { + f_perform_clear(); + } + setverdict(pass); + f_sleep(1.0); +} + +private function f_perform_compl_l3_on_RSL1(template PDU_ML3_MS_NW l3_info, boolean do_clear := true) +runs on MSC_ConnHdlr { + timer T := 10.0; + var octetstring l3_enc := enc_PDU_ML3_MS_NW(valueof(l3_info)); + + f_logp("establish channel, send Complete Layer 3 Info"); + f_create_bssmap_exp(l3_enc); + + /* RSL_Emulation.f_chan_est() on RSL1: */ + //RSL_Emulation.f_chan_est(g_pars.ra, l3_enc, g_pars.link_id, g_pars.fn); + var RSL_Message rx_rsl; + var GsmRrMessage rr; + + /* request a channel to be established */ + RSL1.send(ts_RSLDC_ChanRqd(g_pars.ra, g_pars.fn)); + /* expect immediate assignment */ + //rx_rsl := f_rx_or_fail(tr_RSL_IMM_ASSIGN); + timer Tt := 10.0; + + /* request a channel to be established */ + Tt.start; + alt { + [] RSL1.receive(tr_RSL_IMM_ASSIGN) -> value rx_rsl { + Tt.stop; + } + [] RSL1.receive { + setverdict(fail, "Unexpected RSL message on DCHAN"); + mtc.stop; + } + [] Tt.timeout { + setverdict(fail, "Timeout waiting for RSL on DCHAN"); + mtc.stop; + } + } + rr := dec_GsmRrMessage(rx_rsl.ies[1].body.full_imm_ass_info.payload); + g_chan_nr := rr.payload.imm_ass.chan_desc.chan_nr; + RSL1.send(ts_RSL_EST_IND(g_chan_nr, valueof(g_pars.link_id), l3_enc)); + + + f_logp("expect BSSAP Complete Layer 3 Info at MSC"); + var template PDU_BSSAP exp_l3_compl; + exp_l3_compl := tr_BSSMAP_ComplL3() + if (g_pars.aoip == false) { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := omit; + } else { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := ?; + } + + var PDU_BSSAP bssap; + T.start; + alt { + [] BSSAP.receive(exp_l3_compl) -> value bssap { + f_logp("received expected Complete Layer 3 Info at MSC"); + log("rx exp_l3_compl = ", bssap); + } + [] BSSAP.receive(tr_BSSMAP_ComplL3) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received non-matching COMPLETE LAYER 3 INFORMATION"); + } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for COMPLETE LAYER 3 INFORMATION"); + } + } + + /* start ciphering, if requested */ + if (ispresent(g_pars.encr)) { + f_logp("start ciphering"); + f_cipher_mode(g_pars.encr.enc_alg, g_pars.encr.enc_key); + } + + if (do_clear) { + f_perform_clear_on_RSL1(); + } + setverdict(pass); + f_sleep(1.0); +} + +private function f_perform_compl_l3_on_RSL2(template PDU_ML3_MS_NW l3_info, boolean do_clear := true) +runs on MSC_ConnHdlr { + timer T := 10.0; + var octetstring l3_enc := enc_PDU_ML3_MS_NW(valueof(l3_info)); + + f_logp("establish channel, send Complete Layer 3 Info"); + f_create_bssmap_exp(l3_enc); + + /* RSL_Emulation.f_chan_est() on RSL2: */ + //RSL_Emulation.f_chan_est(g_pars.ra, l3_enc, g_pars.link_id, g_pars.fn); + var RSL_Message rx_rsl; + var GsmRrMessage rr; + + /* request a channel to be established */ + RSL2.send(ts_RSLDC_ChanRqd(g_pars.ra, g_pars.fn)); + /* expect immediate assignment */ + //rx_rsl := f_rx_or_fail(tr_RSL_IMM_ASSIGN); + timer Tt := 10.0; + + /* request a channel to be established */ + Tt.start; + alt { + [] RSL2.receive(tr_RSL_IMM_ASSIGN) -> value rx_rsl { + Tt.stop; + } + [] RSL2.receive { + setverdict(fail, "Unexpected RSL message on DCHAN"); + mtc.stop; + } + [] Tt.timeout { + setverdict(fail, "Timeout waiting for RSL on DCHAN"); + mtc.stop; + } + } + rr := dec_GsmRrMessage(rx_rsl.ies[1].body.full_imm_ass_info.payload); + g_chan_nr := rr.payload.imm_ass.chan_desc.chan_nr; + RSL2.send(ts_RSL_EST_IND(g_chan_nr, valueof(g_pars.link_id), l3_enc)); + + + f_logp("expect BSSAP Complete Layer 3 Info at MSC"); + var template PDU_BSSAP exp_l3_compl; + exp_l3_compl := tr_BSSMAP_ComplL3() + if (g_pars.aoip == false) { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := omit; + } else { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := ?; + } + + var PDU_BSSAP bssap; + T.start; + alt { + [] BSSAP.receive(exp_l3_compl) -> value bssap { + f_logp("received expected Complete Layer 3 Info at MSC"); + log("rx exp_l3_compl = ", bssap); + } + [] BSSAP.receive(tr_BSSMAP_ComplL3) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received non-matching COMPLETE LAYER 3 INFORMATION"); + } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for COMPLETE LAYER 3 INFORMATION"); + } + } + + /* start ciphering, if requested */ + if (ispresent(g_pars.encr)) { + f_logp("start ciphering"); + f_cipher_mode(g_pars.encr.enc_alg, g_pars.encr.enc_key); + } + + if (do_clear) { + f_perform_clear_on_RSL2(); + } + setverdict(pass); + f_sleep(1.0); +} + +private function f_tc_mscpool_compl_l3(charstring id) runs on MSC_ConnHdlr { + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + if (g_pars.mscpool.rsl_idx == 0) { + f_perform_compl_l3(g_pars.mscpool.l3_info); + } else if (g_pars.mscpool.rsl_idx == 1) { + f_perform_compl_l3_on_RSL1(g_pars.mscpool.l3_info); + } else if (g_pars.mscpool.rsl_idx == 2) { + f_perform_compl_l3_on_RSL2(g_pars.mscpool.l3_info); + } +} + +/* Various Complete Layer 3 by IMSI all end up with the first MSC, because the other MSCs are not connected. */ +private function f_tc_mscpool_L3Compl_on_1_msc(charstring id) runs on MSC_ConnHdlr { + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + f_perform_compl_l3( ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H))) ); + f_perform_compl_l3( ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_IMSI_LV('001010000000002'H))) ); + f_perform_compl_l3( ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H))) ); + f_perform_compl_l3( ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_IMSI_LV('001010000000004'H))) ); +} +testcase TC_mscpool_L3Compl_on_1_msc() runs on test_CT { + + f_init(1, true); + f_sleep(1.0); + var MSC_ConnHdlr vc_conn; + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + vc_conn := f_start_handler(refers(f_tc_mscpool_L3Compl_on_1_msc), pars); + vc_conn.done; +} + +/* Three Layer 3 Complete by IMSI are round-robin'ed across two connected MSCs */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL, and callong f_perform_location_updating() three + * times, but that fails. */ +testcase TC_mscpool_L3Complete_by_imsi_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 0 + * (configured in osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL, and callong f_perform_location_updating() three + * times, but that fails. */ +testcase TC_mscpool_LU_by_tmsi_null_nri_0_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 1 + * (configured in osmo-bsc.cfg). In this case, one of the MSC also has the NULL-NRI as part of its owned NRIs, but the + * NULL-NRI setting is stronger than that. */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL, and callong f_perform_location_updating() three + * times, but that fails. */ +testcase TC_mscpool_LU_by_tmsi_null_nri_1_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI not + * assigned to any MSC (configured in osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL, and callong f_perform_location_updating() three + * times, but that fails. */ +testcase TC_mscpool_L3Complete_by_tmsi_unassigned_nri_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + /* An NRI that is not assigned to any MSC */ + pars1.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(1023)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + /* An NRI that is not assigned to any MSC */ + pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(768)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + /* An NRI that is not assigned to any MSC */ + pars3.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_SS_ACT, valueof(ts_MI_TMSI_NRI_LV(819)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI + * assigned to an MSC that is currently not connected (configured in osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL, and callong f_perform_location_updating() three + * times, but that fails. */ +testcase TC_mscpool_L3Complete_by_tmsi_valid_nri_msc_not_connected_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + /* An NRI that is assigned to an unconnected MSC */ + pars1.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(512)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + /* An NRI that is assigned to an unconnected MSC */ + pars2.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(767)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + /* An NRI that is assigned to an unconnected MSC */ + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(750)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three Layer 3 Complete by TMSI with valid NRI for the second MSC are all directed to the second MSC (configured in + * osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL, and callong f_perform_location_updating() three + * times, but that fails. */ +testcase TC_mscpool_L3Complete_by_tmsi_valid_nri_1() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* All TMSIs in this test point at the second MSC, set the round robin to point at the first MSC to make sure + * this is not using round-robin. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars1.mscpool.rsl_idx := 0; + /* An NRI of the second MSC's range (256-511) */ + pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(256)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + /* An NRI of the second MSC's range (256-511) */ + pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(260)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars3.mscpool.rsl_idx := 2; + /* An NRI of the second MSC's range (256-511) */ + pars3.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(511)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Layer 3 Complete by TMSI with valid NRI for the third MSC are directed to the third MSC (configured in osmo-bsc.cfg), + * while a round-robin remains unaffected by that. */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL, and callong f_perform_location_updating() three + * times, but that fails. */ +testcase TC_mscpool_L3Complete_by_tmsi_valid_nri_2() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* All TMSIs in this test point at the third MSC, set the round robin to point at the second MSC to make sure + * this is not using round-robin. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 2); + pars1.mscpool.rsl_idx := 0; + /* An NRI of the third MSC's range (512-767) */ + pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(512)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); + pars2.mscpool.rsl_idx := 1; + /* An NRI of the third MSC's range (512-767) */ + pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(678)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* The above forwardings to third MSC have not affected the round robin, which still points at the second MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000013'H)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by IMSI, which would be + * round-robined to another MSC, to make sure the Paging->Response relation is stronger than the NRI->MSC mapping. */ +private function f_tc_mscpool_paging_imsi(charstring id) runs on MSC_ConnHdlr { + var template BSSMAP_FIELD_CellIdentificationList cid_list := { cIl_CI := { ts_BSSMAP_CI_CI(0) } }; + //cid_list := { cIl_allInBSS := ''O }; + var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH; + var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2)); + var BSSAP_N_UNITDATA_req paging; + var hexstring imsi := '001010000000123'H; + + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + valueof(ts_BSSMAP_Paging(imsi, cid_list, omit, bssmap_chneed)))); + BSSAP.send(paging); + + /* Register any RSL conn so that the Paging Command gets received here. With the current RSL_Emulation's main() + * handling of '[bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD()))' it doesn't matter at all which + * channel number is picked here. */ + var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(0, RSL_CHAN_NR_INVALID)); + f_rslem_register(0, new_chan_nr); + RSL.receive(tr_RSL_PAGING_CMD(tr_MI_IMSI(imsi))); + f_rslem_unregister(0, new_chan_nr); + + /* Despite the round robin pointing at the second MSC ('roundrobin next 1'), the earlier Paging for the same IMSI + * causes this Paging Response to go to the first MSC (bssap_idx := 0). */ + f_perform_compl_l3( ts_PAG_RESP(valueof(ts_MI_IMSI_LV(imsi))) ); + setverdict(pass); + f_sleep(1.0); +} +testcase TC_mscpool_paging_and_response_imsi() runs on test_CT { + f_init(nr_bts := 1, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* Testing a Paging on the first MSC to get a Paging Response back to the first MSC. Set round robin to the + * second MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_imsi), pars1); + vc_conn1.done; +} + +/* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by TMSI with an NRI value + * that matches a different MSC, to make sure the Paging->Response relation is stronger than the NRI->MSC mapping. */ +private function f_tc_mscpool_paging_tmsi(charstring id) runs on MSC_ConnHdlr { + var template BSSMAP_FIELD_CellIdentificationList cid_list := { cIl_CI := { ts_BSSMAP_CI_CI(0) } }; + //cid_list := { cIl_allInBSS := ''O }; + var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH; + var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2)); + var integer nri_v := 300; /* <-- second MSC's NRI */ + var octetstring tmsi := f_tmsi_nri(nri_v); + var BSSAP_N_UNITDATA_req paging; + + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + valueof(ts_BSSMAP_Paging('001010000000011'H, cid_list, tmsi, bssmap_chneed)))); + BSSAP.send(paging); + + /* Register any RSL conn so that the Paging Command gets received here. With the current RSL_Emulation's main() + * handling of '[bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD()))' it doesn't matter at all which + * channel number is picked here. */ + var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(0, RSL_CHAN_NR_INVALID)); + f_rslem_register(0, new_chan_nr); + RSL.receive(tr_RSL_PAGING_CMD(t_MI_TMSI(tmsi))); + f_rslem_unregister(0, new_chan_nr); + + /* Despite the NRI matching the second MSC (NRI from 'msc 1' in osmo-bsc.cfg) and round robin pointing at the + * third MSC ('roundrobin next 2'), the earlier Paging for the same TMSI causes this Paging Response to go to + * the first MSC (bssap_idx := 0). */ + f_perform_compl_l3( ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(nri_v))) ); + setverdict(pass); + f_sleep(1.0); +} +testcase TC_mscpool_paging_and_response_tmsi() runs on test_CT { + f_init(nr_bts := 1, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* Testing a Paging on the first MSC to get a Paging Response back to the first MSC. Set round robin to the + * third MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 2"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_tmsi), pars1); + vc_conn1.done; +} + /* Dyn PDCH todo: * activate OSMO as TCH/F * activate OSMO as TCH/H @@ -4614,10 +5324,22 @@ /* Power control related */ execute( TC_assignment_verify_ms_power_params_ie() ); + + /* MSC pooling */ + execute( TC_mscpool_L3Compl_on_1_msc() ); + execute( TC_mscpool_L3Complete_by_imsi_round_robin() ); + execute( TC_mscpool_LU_by_tmsi_null_nri_0_round_robin() ); + execute( TC_mscpool_LU_by_tmsi_null_nri_1_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_unassigned_nri_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_msc_not_connected_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_1() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_2() ); + execute( TC_mscpool_paging_and_response_imsi() ); + execute( TC_mscpool_paging_and_response_tmsi() ); + /* at bottom as they might crash OsmoBSC before OS#3182 is fixed */ execute( TC_early_conn_fail() ); execute( TC_late_conn_fail() ); - } } diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 593f4d6..fece825 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -482,7 +482,7 @@ } /* register an expect with the BSSMAP core */ -private function f_create_bssmap_exp(octetstring l3_enc) runs on MSC_ConnHdlr { +function f_create_bssmap_exp(octetstring l3_enc) runs on MSC_ConnHdlr { RAN.call(RAN_register:{l3_enc, self}) { [] RAN.getreply(RAN_register:{?, ?}) {}; } @@ -516,6 +516,8 @@ type record TestHdlrParamsMSCPool { integer bssap_idx, + SCCP_PAR_Address sccp_addr_msc optional, + SCCP_PAR_Address sccp_addr_bsc optional, integer rsl_idx, PDU_ML3_MS_NW l3_info optional } @@ -566,6 +568,8 @@ use_osmux := false, mscpool := { bssap_idx := 0, + sccp_addr_msc := omit, + sccp_addr_bsc := omit, rsl_idx := 0, l3_info := omit } diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index ba91180..d36f9dc 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -278,6 +278,77 @@ } }; +template LocationUpdatingType LU_Type_Normal := { + lut := '00'B, + spare1_1 := '0'B, + fop := '0'B +}; + +template LocationUpdatingType LU_Type_Periodic := { + lut := '01'B, + spare1_1 := '0'B, + fop := '0'B +}; + +template LocationUpdatingType LU_Type_IMSI_Attach := { + lut := '10'B, + spare1_1 := '0'B, + fop := '0'B +}; + +/* Send template for LOCATION UPDATING REQUEST */ +template PDU_ML3_MS_NW ts_LU_REQ(template LocationUpdatingType lu_type, MobileIdentityLV mi_lv) := { + discriminator := '0000'B, /* overwritten */ + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + mm := { + locationUpdateRequest := { + messageType := '000000'B, /* overwritten */ + nsd := '00'B, + locationUpdatingType := lu_type, + cipheringKeySequenceNumber := { '000'B, '0'B }, + locationAreaIdentification := { + mcc_mnc := '123456'O, + lac := '172A'O + }, + mobileStationClassmark1 := ts_CM1, + mobileIdentityLV := mi_lv, + classmarkInformationType2_forUMTS := omit, + additionalUpdateParameterTV := omit, + deviceProperties := omit, + mS_NetworkFeatureSupport := omit + } + } + } +} + +template PDU_ML3_NW_MS ts_LU_ACCEPT(template MobileIdentityTLV mi_tlv := omit) := { + discriminator := '0000'B, /* overwritten */ + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + mm := { + locationUpdateAccept := { + messageType := '000000'B, /* overwritten */ + nsd := '00'B, + locationAreaIdentification := { + mcc_mnc := '123456'O, + lac := '172A'O + }, + mobileIdentityTLV := mi_tlv, + followOnProceed := omit, + cTS_Permission := omit, + equivalentPLMNs := omit, + emergencyNumberList := omit, + perMS_T3212 := omit + } + } + } +} + /* Send template for CM SERVICE REQUEST */ template (value) PDU_ML3_MS_NW ts_CM_SERV_REQ(CmServiceType serv_type, MobileIdentityLV mi_lv) := { discriminator := '0000'B, /* overwritten */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 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 Jun 10 15:57:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:11 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() 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/+/18712 to look at the new patch set (#2). Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... remove extract_sub(), add bsc_subscr_find_or_create_by_mi() Use the new osmo_mobile_identity API to shed some code dup and simplify. gsm48_paging_extract_mi() is now unused, drop. (More refactoring to use osmo_mobile_identity follows in subsequent patch.) Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b --- M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/gsm_04_08_rr.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/gsm_08_08.c 6 files changed, 53 insertions(+), 58 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/18712/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:57:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:11 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere 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/+/18713 to look at the new patch set (#3). Change subject: use osmo_mobile_identity API everywhere ...................................................................... use osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/gsm_04_08_rr.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c 8 files changed, 66 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/18713/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:57:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:13 +0000 Subject: Change in osmo-bsc[master]: tweak log category for Compl L3 error References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18764 ) Change subject: tweak log category for Compl L3 error ...................................................................... tweak log category for Compl L3 error At this time, no MSC has been selected for handling this subscriber, so DMSC is clearly the wrong logging category. Change-Id: I9c6373e5f28c9c69a0609889188ef28ade11da3d --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/64/18764/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 7f54fe6..a5f7493 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -154,7 +154,7 @@ bool is_emerg = false; if (msgb_l3len(msg) < sizeof(*gh)) { - LOGP(DMSC, LOGL_ERROR, "There is no GSM48 header here.\n"); + LOGP(DRSL, LOGL_ERROR, "There is no GSM48 header here.\n"); return NULL; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9c6373e5f28c9c69a0609889188ef28ade11da3d Gerrit-Change-Number: 18764 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 Jun 10 15:57:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:13 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... MSC pooling: make NRI mappings VTY configurable Use the osmo_nri_ranges API to manage each MSC's NRI ranges by VTY configuration. Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c A tests/nri_cfg.vty 7 files changed, 386 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/18765/1 diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index 43adaec..3df2774 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -179,6 +179,8 @@ /* UDP socket for proxying MGCP via SCCPlite/IPA */ struct osmo_fd ofd; } mgcp_ipa; + + struct osmo_nri_ranges *nri_ranges; }; int osmo_bsc_msc_init(struct bsc_msc_data *msc); @@ -190,6 +192,7 @@ struct bsc_msc_data *osmo_msc_data_alloc(struct gsm_network *, int); + struct osmo_cell_global_id *cgi_for_msc(struct bsc_msc_data *msc, struct gsm_bts *bts); /* Helper function to calculate the port number for a given diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 45a868c..ee1784c 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1700,6 +1700,9 @@ /* Don't refuse to start with mutually exclusive codec settings */ bool allow_unusable_timeslots; + + uint8_t nri_bitlen; + struct osmo_nri_ranges *null_nri_ranges; }; struct gsm_audio_support { diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 80658ec..509d09c 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -35,6 +35,7 @@ #include #include #include +#include #include @@ -1110,6 +1111,7 @@ { struct gsm_network *gsmnet = gsmnet_from_vty(vty); int i; + struct osmo_nri_range *r; vty_out(vty, "network%s", VTY_NEWLINE); vty_out(vty, " network country code %s%s", osmo_mcc_name(gsmnet->plmn.mcc), VTY_NEWLINE); @@ -1159,6 +1161,21 @@ if (gsmnet->allow_unusable_timeslots) vty_out(vty, " allow-unusable-timeslots%s", VTY_NEWLINE); + if (gsmnet->nri_bitlen != OSMO_NRI_BITLEN_DEFAULT) { + if (gsmnet->nri_bitlen < 1 || gsmnet->nri_bitlen > 15) + vty_out(vty, " %% INVALID:"); + vty_out(vty, " nri bitlen %u%s", gsmnet->nri_bitlen, VTY_NEWLINE); + } + + llist_for_each_entry(r, &gsmnet->null_nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri null add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } + return CMD_SUCCESS; } @@ -2058,6 +2075,63 @@ return CMD_SUCCESS; } +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +#define NULL_NRI_STR "Define NULL-NRI values that cause re-assignment of an MS to a different MSC, for MSC pooling.\n" +#define NRI_FIRST_LAST_STR "First value of the NRI value range: either decimal ('23') or hexadecimal ('0x17')\n" \ + "Last value of the NRI value range: either decimal ('23') or hexadecimal ('0x17');" \ + " if omitted, apply only the first value.\n" +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" + +DEFUN(cfg_net_nri_bitlen, + cfg_net_nri_bitlen_cmd, + "nri bitlen <1-15>", + NRI_STR + "Set number of bits that an NRI has, to extract from TMSI identities (always starting just after the TMSI's most significant octet).\n" + "bit count (default: " OSMO_STRINGIFY_VAL(NRI_BITLEN_DEFAULT) ")\n") +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + gsmnet->nri_bitlen = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_nri_null_add, cfg_net_nri_null_add_cmd, + "nri null add FIRST [LAST]", + NRI_STR NULL_NRI_STR "Add NULL-NRI value (or range)\n" + NRI_FIRST_LAST_STR) +{ + int rc; + const char *message; + rc = osmo_nri_ranges_vty_add(&message, NULL, bsc_gsmnet->null_nri_ranges, argc, argv, + bsc_gsmnet->nri_bitlen); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN(cfg_net_nri_null_del, cfg_net_nri_null_del_cmd, + "nri null del FIRST [LAST]", + NRI_STR NULL_NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + "First NRI value to del: either decimal ('23') or hexadecimal ('0x17')\n" + "Last NRI value to del: either decimal ('23') or hexadecimal ('0x17');" + " if omitted, only del the first value.\n") +{ + int rc; + const char *message; + rc = osmo_nri_ranges_vty_del(&message, NULL, bsc_gsmnet->null_nri_ranges, argc, argv); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT "%s", message, NRI_ARGS_TO_STR_ARGS(argc, argv), + VTY_NEWLINE); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + + /* per-BTS configuration */ DEFUN(cfg_bts, cfg_bts_cmd, @@ -5400,6 +5474,9 @@ install_element(GSMNET_NODE, &cfg_net_neci_cmd); install_element(GSMNET_NODE, &cfg_net_dtx_cmd); install_element(GSMNET_NODE, &cfg_net_pag_any_tch_cmd); + install_element(GSMNET_NODE, &cfg_net_nri_bitlen_cmd); + install_element(GSMNET_NODE, &cfg_net_nri_null_add_cmd); + install_element(GSMNET_NODE, &cfg_net_nri_null_del_cmd); install_element(GSMNET_NODE, &cfg_bts_cmd); install_node(&bts_node, config_write_bts); diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 34403fa..353099d 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -18,6 +18,7 @@ */ #include +#include #include #include @@ -90,5 +91,8 @@ net->mgw.tdefs = g_mgw_tdefs; osmo_tdefs_reset(net->mgw.tdefs); + net->null_nri_ranges = osmo_nri_ranges_alloc(net); + net->nri_bitlen = OSMO_NRI_BITLEN_DEFAULT; + return net; } diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index 30b54f3..ce07518 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -34,6 +34,7 @@ #include #include +#include #include @@ -228,6 +229,8 @@ msc_data->mgcp_ipa.local_addr = talloc_strdup(msc_data, "0.0.0.0"); msc_data->mgcp_ipa.local_port = 0; /* dynamic */ + msc_data->nri_ranges = osmo_nri_ranges_alloc(msc_data); + return msc_data; } diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 34a56de..63744d5 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -52,8 +53,10 @@ 1, }; +#define MSC_NR_RANGE "<0-1000>" + DEFUN(cfg_net_msc, cfg_net_msc_cmd, - "msc [<0-1000>]", "Configure MSC details\n" "MSC connection to configure\n") + "msc [" MSC_NR_RANGE "]", "Configure MSC details\n" "MSC connection to configure\n") { int index = argc == 1 ? atoi(argv[0]) : 0; struct bsc_msc_data *msc; @@ -99,6 +102,8 @@ vty_out(vty, " amr-payload bandwith-efficient%s", VTY_NEWLINE); } +static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose); + static void write_msc(struct vty *vty, struct bsc_msc_data *msc) { vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); @@ -170,6 +175,8 @@ vty_out(vty, " osmux %s%s", msc->use_osmux == OSMUX_USAGE_ON ? "on" : "only", VTY_NEWLINE); } + + msc_write_nri(vty, msc, false); } static int config_write_msc(struct vty *vty) @@ -784,6 +791,129 @@ return CMD_SUCCESS; } + +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +#define NRI_FIRST_LAST_STR "First value of the NRI value range: either decimal ('23') or hexadecimal ('0x17')\n" \ + "Last value of the NRI value range: either decimal ('23') or hexadecimal ('0x17');" \ + " if omitted, apply only the first value.\n" + +#define NRI_WARN(MSC, FORMAT, args...) do { \ + vty_out(vty, "%% Warning: msc %d: " FORMAT "%s", MSC->nr, ##args, VTY_NEWLINE); \ + LOGP(DMSC, LOGL_ERROR, "Warning: msc %d: " FORMAT "\n", MSC->nr, ##args); \ + } while (0) + +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" + +DEFUN(cfg_msc_nri_add, cfg_msc_nri_add_cmd, + "nri add FIRST [LAST]", + NRI_STR "Add NRI value or range to the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + struct bsc_msc_data *other_msc; + bool before; + int rc; + const char *message; + struct osmo_nri_range add_range; + + rc = osmo_nri_ranges_vty_add(&message, &add_range, msc->nri_ranges, argc, argv, bsc_gsmnet->nri_bitlen); + if (message) { + NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + + /* Issue a warning about NRI range overlaps (but still allow them). + * Overlapping ranges will map to whichever MSC comes fist in the bsc_gsmnet->mscs llist, + * which is not necessarily in the order of increasing msc->nr. */ + before = true; + llist_for_each_entry(other_msc, &bsc_gsmnet->mscs, entry) { + if (other_msc == msc) { + before = false; + continue; + } + if (osmo_nri_range_overlaps_ranges(&add_range, other_msc->nri_ranges)) { + NRI_WARN(msc, "NRI range [%d..%d] overlaps between msc %d and msc %d." + " For overlaps, msc %d has higher priority than msc %d", + add_range.first, add_range.last, msc->nr, other_msc->nr, + before ? other_msc->nr : msc->nr, before ? msc->nr : other_msc->nr); + } + } + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_nri_del, cfg_msc_nri_del_cmd, + "nri del FIRST [LAST]", + NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + int rc; + const char *message; + + rc = osmo_nri_ranges_vty_del(&message, NULL, msc->nri_ranges, argc, argv); + if (message) { + NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose) +{ + struct osmo_nri_range *r; + + if (verbose) { + vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); + if (llist_empty(&msc->nri_ranges->entries)) { + vty_out(vty, " %% no NRI mappings%s", VTY_NEWLINE); + return; + } + } + + llist_for_each_entry(r, &msc->nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } +} + +DEFUN(cfg_msc_show_nri, cfg_msc_show_nri_cmd, + "show nri", + SHOW_STR NRI_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc_write_nri(vty, msc, true); + return CMD_SUCCESS; +} + +DEFUN(show_nri, show_nri_cmd, + "show nri [" MSC_NR_RANGE "]", + SHOW_STR NRI_STR "Optional MSC number to limit to\n") +{ + struct bsc_msc_data *msc; + if (argc > 0) { + int msc_nr = atoi(argv[0]); + msc = osmo_msc_data_find(bsc_gsmnet, msc_nr); + if (!msc) { + vty_out(vty, "%% No such MSC%s", VTY_NEWLINE); + return CMD_SUCCESS; + } + msc_write_nri(vty, msc, true); + return CMD_SUCCESS; + } + + llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) { + msc_write_nri(vty, msc, true); + } + return CMD_SUCCESS; +} + int bsc_vty_init_extra(void) { struct gsm_network *net = bsc_gsmnet; @@ -831,6 +961,9 @@ install_element(MSC_NODE, &cfg_msc_cs7_bsc_addr_cmd); install_element(MSC_NODE, &cfg_msc_cs7_msc_addr_cmd); install_element(MSC_NODE, &cfg_msc_cs7_asp_proto_cmd); + install_element(MSC_NODE, &cfg_msc_nri_add_cmd); + install_element(MSC_NODE, &cfg_msc_nri_del_cmd); + install_element(MSC_NODE, &cfg_msc_show_nri_cmd); /* Deprecated: ping time config, kept to support legacy config files. */ install_element(MSC_NODE, &cfg_net_msc_no_ping_time_cmd); @@ -842,6 +975,7 @@ install_element_ve(&show_pos_cmd); install_element_ve(&logging_fltr_imsi_cmd); install_element_ve(&show_subscr_all_cmd); + install_element_ve(&show_nri_cmd); install_element(ENABLE_NODE, &gen_position_trap_cmd); diff --git a/tests/nri_cfg.vty b/tests/nri_cfg.vty new file mode 100644 index 0000000..2b38ec4 --- /dev/null +++ b/tests/nri_cfg.vty @@ -0,0 +1,161 @@ +OsmoBSC> show nri +msc 0 + % no NRI mappings + +OsmoBSC> enable +OsmoBSC# configure terminal + +OsmoBSC(config)# msc 0 + +OsmoBSC(config-msc)# list +... + nri add FIRST [LAST] + nri del FIRST [LAST] + show nri +... +OsmoBSC(config-msc)# nri ? + add Add NRI value or range to the NRI mapping for this MSC + del Remove NRI value or range from the NRI mapping for this MSC +OsmoBSC(config-msc)# nri add ? + FIRST First value of the NRI value range: either decimal ('23') or hexadecimal ('0x17') +OsmoBSC(config-msc)# nri add 23 ? + [LAST] Last value of the NRI value range: either decimal ('23') or hexadecimal ('0x17'); if omitted, apply only the first value. + +OsmoBSC(config-msc)# nri add potato +% Warning: msc 0: Error: cannot parse NRI range: potato +OsmoBSC(config-msc)# nri add 0xbanana +% Warning: msc 0: Error: cannot parse NRI range: 0xbanana +OsmoBSC(config-msc)# nri add 0xFFFFFFFFFF +% Warning: msc 0: Error: cannot parse NRI range: 0xFFFFFFFFFF +OsmoBSC(config-msc)# nri add 0 0xdefg +% Warning: msc 0: Error: cannot parse NRI range: 0..0xdefg + +OsmoBSC(config-msc)# nri add 23 +OsmoBSC(config-msc)# nri add 0x100 0x1ff +OsmoBSC(config-msc)# nri add 100 200 +OsmoBSC(config-msc)# nri add 1024 1024 +% Warning: msc 0: Warning: NRI range surpasses current NRI bitlen: 1024..1024 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 23 + nri add 100 200 + nri add 256 511 + nri add 1024 +OsmoBSC(config-msc)# exit + +OsmoBSC(config)# ### Do msc 2 first, to see that the order of mscs in the internal list is not determined by the msc->nr, +OsmoBSC(config)# ### and whichever was configured first gets higher priority for overlaps. + +OsmoBSC(config)# msc 2 +OsmoBSC(config-msc)# nri add 200 300 +% Warning: msc 2: NRI range [200..300] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +OsmoBSC(config-msc)# nri add 1024 1025 +% Warning: msc 2: Warning: NRI range surpasses current NRI bitlen: 1024..1025 +% Warning: msc 2: NRI range [1024..1025] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +OsmoBSC(config-msc)# exit + +OsmoBSC(config)# msc 1 +OsmoBSC(config-msc)# nri add 42 +OsmoBSC(config-msc)# nri add 0x200 0x2FF +OsmoBSC(config-msc)# nri add 200 300 +% Warning: msc 1: NRI range [200..300] overlaps between msc 1 and msc 0. For overlaps, msc 0 has higher priority than msc 1 +% Warning: msc 1: NRI range [200..300] overlaps between msc 1 and msc 2. For overlaps, msc 2 has higher priority than msc 1 +OsmoBSC(config-msc)# nri add 1024 1025 +% Warning: msc 1: Warning: NRI range surpasses current NRI bitlen: 1024..1025 +% Warning: msc 1: NRI range [1024..1025] overlaps between msc 1 and msc 0. For overlaps, msc 0 has higher priority than msc 1 +% Warning: msc 1: NRI range [1024..1025] overlaps between msc 1 and msc 2. For overlaps, msc 2 has higher priority than msc 1 +OsmoBSC(config-msc)# show nri +msc 1 + nri add 42 + nri add 200 300 + nri add 512 767 + nri add 1024 1025 +OsmoBSC(config-msc)# exit + +OsmoBSC(config)# do show nri +msc 0 + nri add 23 + nri add 100 200 + nri add 256 511 + nri add 1024 +msc 2 + nri add 200 300 + nri add 1024 1025 +msc 1 + nri add 42 + nri add 200 300 + nri add 512 767 + nri add 1024 1025 + +OsmoBSC(config)# network +OsmoBSC(config-net)# nri bitlen 11 +OsmoBSC(config-net)# show running-config +... +network +... + nri bitlen 11 +... +msc 0 +... + nri add 23 + nri add 100 200 + nri add 256 511 + nri add 1024 +... +msc 2 +... + nri add 200 300 + nri add 1024 1025 +... +msc 1 +... + nri add 42 + nri add 200 300 + nri add 512 767 + nri add 1024 1025 +... +OsmoBSC(config-net)# exit + +OsmoBSC(config)# msc 0 +OsmoBSC(config-msc)# nri del 0 10000 +OsmoBSC(config-msc)# exit +OsmoBSC(config)# msc 1 +OsmoBSC(config-msc)# nri del 0 10000 +OsmoBSC(config-msc)# exit +OsmoBSC(config)# msc 2 +OsmoBSC(config-msc)# nri del 0 10000 +OsmoBSC(config-msc)# exit +OsmoBSC(config)# do show nri +msc 0 + % no NRI mappings +msc 2 + % no NRI mappings +msc 1 + % no NRI mappings + +OsmoBSC(config)# msc 0 +OsmoBSC(config-msc)# nri add 0 1000 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 1000 +OsmoBSC(config-msc)# nri del 23 +OsmoBSC(config-msc)# nri del 200 300 +OsmoBSC(config-msc)# nri del 1000 2000 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 22 + nri add 24 199 + nri add 301 999 +OsmoBSC(config-msc)# nri add 23 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 199 + nri add 301 999 +OsmoBSC(config-msc)# nri add 200 300 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 999 +OsmoBSC(config-msc)# nri add 1000 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 1000 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 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 Jun 10 15:57:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:13 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: implement NAS node selection by NRI from TMSI References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18766 ) Change subject: MSC pooling: implement NAS node selection by NRI from TMSI ...................................................................... MSC pooling: implement NAS node selection by NRI from TMSI If applicable, choose MSC from NRI, extracted from TMSI MI. Change-Id: Ifbdea197b26e88751a391c8a80c41f04e7d5e047 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 43 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/18766/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index a5f7493..0707c65 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -152,6 +153,8 @@ uint8_t round_robin_next_nr; struct bsc_subscr *subscr; bool is_emerg = false; + int16_t nri_v = -1; + bool is_null_nri = false; if (msgb_l3len(msg) < sizeof(*gh)) { LOGP(DRSL, LOGL_ERROR, "There is no GSM48 header here.\n"); @@ -186,16 +189,45 @@ } } - /* TODO: extract NRI from MI */ +#define LOG_NRI(LOGLEVEL, FORMAT, ARGS...) \ + LOGP(DMSC, LOGLEVEL, "%s NRI(%d)=0x%x=%d: " FORMAT, osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), \ + net->nri_bitlen, nri_v, nri_v, ##ARGS) + + /* Extract NRI bits from TMSI, possibly indicating which MSC is responsible */ + if (mi.type == GSM_MI_TYPE_TMSI) { + if (osmo_tmsi_nri_v_get(&nri_v, mi.tmsi, net->nri_bitlen)) { + LOGP(DMSC, LOGL_ERROR, "Unable to retrieve NRI from TMSI, nri_bitlen == %u\n", net->nri_bitlen); + nri_v = -1; + } else { + is_null_nri = osmo_nri_v_matches_ranges(nri_v, net->null_nri_ranges); + if (is_null_nri) + LOG_NRI(LOGL_DEBUG, "this is a NULL-NRI\n"); + } + } /* Iterate MSCs to find one that matches the extracted NRI, and the next round-robin target for the case no NRI * match is found. */ round_robin_next_nr = (is_emerg ? net->mscs_round_robin_next_emerg_nr : net->mscs_round_robin_next_nr); llist_for_each_entry(msc, &net->mscs, entry) { - if (!is_msc_usable(msc, is_emerg)) - continue; + bool nri_matches_msc = (nri_v >= 0 && osmo_nri_v_matches_ranges(nri_v, msc->nri_ranges)); - /* TODO: return msc when extracted NRI matches this MSC */ + if (!is_msc_usable(msc, is_emerg)) { + if (nri_matches_msc) + LOG_NRI(LOGL_DEBUG, "matches msc %d, but this MSC is currently not connected\n", + msc->nr); + continue; + } + + /* Return MSC if it matches this NRI, with some debug logging. */ + if (nri_matches_msc) { + if (is_null_nri) { + LOG_NRI(LOGL_DEBUG, "matches msc %d, but this NRI is also configured as NULL-NRI\n", + msc->nr); + } else { + LOG_NRI(LOGL_DEBUG, "matches msc %d\n", msc->nr); + return msc; + } + } /* Figure out the next round-robin MSC. The MSCs may appear unsorted in net->mscs. Make sure to linearly * round robin the MSCs by number: pick the lowest msc->nr >= round_robin_next_nr, and also remember the @@ -207,6 +239,9 @@ msc_round_robin_next = msc; } + if (nri_v >= 0 && !is_null_nri) + LOG_NRI(LOGL_DEBUG, "No MSC found for this NRI, doing round-robin\n"); + /* No dedicated MSC found. Choose by round-robin. * If msc_round_robin_next is NULL, there are either no more MSCs at/after mscs_round_robin_next_nr, or none of * them are usable -- wrap to the start. */ @@ -217,12 +252,16 @@ return NULL; } + LOGP(DMSC, LOGL_DEBUG, "New subscriber %s: MSC round-robin selects msc %d\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + /* An MSC was picked by round-robin, so update the next round-robin nr to pick */ if (is_emerg) net->mscs_round_robin_next_emerg_nr = msc_target->nr + 1; else net->mscs_round_robin_next_nr = msc_target->nr + 1; return msc_target; +#undef LOG_NRI } static int handle_page_resp(struct gsm_subscriber_connection *conn, struct msgb *msg) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifbdea197b26e88751a391c8a80c41f04e7d5e047 Gerrit-Change-Number: 18766 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 Jun 10 15:57:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:14 +0000 Subject: Change in osmo-bsc[master]: vty: add 'mscpool roundrobin next' for ttcn3 tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18767 ) Change subject: vty: add 'mscpool roundrobin next' for ttcn3 tests ...................................................................... vty: add 'mscpool roundrobin next' for ttcn3 tests In the ttcn3 tests, the MSC round robin algorithm is affected by what tests ran before, so an osmo-bsc test needs this to reset the round robin to get predictable behavior to test against. Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/18767/1 diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 63744d5..719198f 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -914,6 +914,18 @@ return CMD_SUCCESS; } +DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, + "mscpool roundrobin next " MSC_NR_RANGE, + "MSC pooling: load balancing across multiple MSCs.\n" + "Adjust current state of the MSC round-robin algorithm (for testing).\n" + "Set the MSC nr to direct the next new subscriber to (for testing).\n" + "MSC number, as in the config file; if the number does not exist," + " the round-robin continues to the next valid number.\n") +{ + bsc_gsmnet->mscs_round_robin_next_nr = atoi(argv[0]); + return CMD_SUCCESS; +} + int bsc_vty_init_extra(void) { struct gsm_network *net = bsc_gsmnet; @@ -978,6 +990,7 @@ install_element_ve(&show_nri_cmd); install_element(ENABLE_NODE, &gen_position_trap_cmd); + install_element(ENABLE_NODE, &mscpool_roundrobin_next_cmd); install_element(CFG_LOG_NODE, &logging_fltr_imsi_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c Gerrit-Change-Number: 18767 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 Jun 10 15:57:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:14 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18768 ) Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... log: add MSC number to bsc_subscr_conn_fsm id Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/18768/1 diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 3da9d66..ebf650a 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -1067,7 +1067,8 @@ /* Compose an FSM ID, if possible from the current subscriber information */ void gscon_update_id(struct gsm_subscriber_connection *conn) { - osmo_fsm_inst_update_id_f(conn->fi, "conn%u%s%s", + osmo_fsm_inst_update_id_f(conn->fi, "msc%u-conn%u%s%s", + conn->sccp.msc->nr, conn->sccp.conn_id, conn->bsub? "_" : "", conn->bsub? bsc_subscr_id(conn->bsub) : ""); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 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 Jun 10 15:57:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 15:57:14 +0000 Subject: Change in osmo-bsc[master]: debug: log about matching Paging Response to earlier Paging References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18769 ) Change subject: debug: log about matching Paging Response to earlier Paging ...................................................................... debug: log about matching Paging Response to earlier Paging Change-Id: I277d3236686dd5a5a21113ef2ddfd29341190086 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/69/18769/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 0707c65..834a3e9 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -183,8 +183,15 @@ if (subscr) { msc_target = paging_get_msc(conn_get_bts(conn), subscr); bsc_subscr_put(subscr); - if (is_msc_usable(msc_target, is_emerg)) + if (is_msc_usable(msc_target, is_emerg)) { + LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, "%s matches earlier Paging from msc %d\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); return msc_target; + } else { + LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, + "%s matches earlier Paging from msc %d, but this MSC is not connected\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + } msc_target = NULL; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I277d3236686dd5a5a21113ef2ddfd29341190086 Gerrit-Change-Number: 18769 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 Jun 10 15:58:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:58:01 +0000 Subject: Change in osmo-gsm-tester[master]: tests: Replace is_connected() with is_registered() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 to look at the new patch set (#2). Change subject: tests: Replace is_connected() with is_registered() ...................................................................... tests: Replace is_connected() with is_registered() API was renamed and old name deprecated, let's use it everywhere. Change-Id: Ic91dddcfd1a5a17c35d15a8a14628b3923229523 --- M doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py M doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py M doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py M doc/examples/4g_srsLTE/suites/4g/ping.py M src/osmo_gsm_tester/obj/ms_ofono.py M sysmocom/suites/debug/interactive.py M sysmocom/suites/dynts/switch_tch_pdch.py M sysmocom/suites/encryption/lib/testlib.py M sysmocom/suites/gprs/lib/testlib.py M sysmocom/suites/gprs/ping.py M sysmocom/suites/gprs/ping_idle_ping.py M sysmocom/suites/nitb_debug/interactive.py M sysmocom/suites/nitb_netreg/register.py M sysmocom/suites/nitb_netreg/register_default.py M sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py M sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py M sysmocom/suites/nitb_sms/mo_mt_sms.py M sysmocom/suites/nitb_ussd/assert_extension.py M sysmocom/suites/smpp/esme_ms_sms_storeforward.py M sysmocom/suites/smpp/esme_ms_sms_transaction.py M sysmocom/suites/sms/mo_mt_sms.py M sysmocom/suites/ussd/assert_extension.py M sysmocom/suites/voice/lib/testlib.py 23 files changed, 30 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/56/18756/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 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: Ic91dddcfd1a5a17c35d15a8a14628b3923229523 Gerrit-Change-Number: 18756 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 Wed Jun 10 15:59:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:59:03 +0000 Subject: Change in osmo-gsm-tester[master]: doc/manual: Fix links to nonexistent sections In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18757 ) Change subject: doc/manual: Fix links to nonexistent sections ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18757 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: I8742fa9c41d3ab95d41e299179df19c3d1e0a65b Gerrit-Change-Number: 18757 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 15:59:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 15:59:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 15:59:05 +0000 Subject: Change in osmo-gsm-tester[master]: doc/manual: Fix links to nonexistent sections In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18757 ) Change subject: doc/manual: Fix links to nonexistent sections ...................................................................... doc/manual: Fix links to nonexistent sections Change-Id: I8742fa9c41d3ab95d41e299179df19c3d1e0a65b --- M doc/manuals/chapters/config.adoc M doc/manuals/chapters/install.adoc 2 files changed, 7 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/doc/manuals/chapters/config.adoc b/doc/manuals/chapters/config.adoc index 18ff55d..b4e4a95 100644 --- a/doc/manuals/chapters/config.adoc +++ b/doc/manuals/chapters/config.adoc @@ -326,15 +326,15 @@ A 'resources.conf' is validated by the <>. That means it is structured as a list of items for each resource type, where -each item has one or more attributes -- for an example, see -<>. +each item has one or more attributes -- looking for an example, see {app-name} +subdirectory _doc/examples_. Side note: at first sight it might make sense to the reader to rather structure e.g. the 'ip_address' or 'arfcn' configuration as + '"arfcn: GSM-1800: [512, 514, ...]"', + -but the more verbose format is chosen to stay consistent with the general -structure of resource configurations, which the resource allocation algorithm -uses to resolve required resources according to their traits. These +but the more verbose format is chosen in general to stay consistent with the +general structure of resource configurations, which the resource allocation +algorithm uses to resolve required resources according to their traits. These configurations look cumbersome because they exhibit only one trait / a trait that is repeated numerous times. No special notation for these cases is available (yet). diff --git a/doc/manuals/chapters/install.adoc b/doc/manuals/chapters/install.adoc index 445b53c..0e48e9d 100644 --- a/doc/manuals/chapters/install.adoc +++ b/doc/manuals/chapters/install.adoc @@ -309,7 +309,7 @@ wide install, in which case you could omit the explicit PATH to "$PWD/osmo-gsm-tester/src". *** This assumes that there are configuration files for osmo-gsm-tester placed - on the system (see <>). + on the system (see <>). *** If you'd like to check the behavior of test failures, you can uncomment the line below "# debug" to produce a build failure on every run. Note that this test typically produces a quite empty run result, since it launches no @@ -687,4 +687,4 @@ ---- NOTE: The configuration will be looked up in various places, see -<>. +<>. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18757 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: I8742fa9c41d3ab95d41e299179df19c3d1e0a65b Gerrit-Change-Number: 18757 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 Wed Jun 10 16:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 16:00:39 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere 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-msc/+/18715 to look at the new patch set (#2). Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea --- M include/osmocom/msc/gsm_04_08.h M include/osmocom/msc/msub.h M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/msub.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_access_req_fsm.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 20 files changed, 231 insertions(+), 256 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/18715/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 16:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 16:00:39 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18770 ) Change subject: add rudimentary NRI support for MSC pooling ...................................................................... add rudimentary NRI support for MSC pooling This patch served for a manual testing counterpart for osmo-bsc to implement MSC pooling. This enables a basic MSC pooling setup, but for a production setup, osmo-msc would still lack various features related to unloading subscribers to another MSC as explained in 3GPP TS 23.236. Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 --- M include/osmocom/msc/vlr.h M src/libmsc/msc_vty.c M src/libvlr/vlr.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_hlr_timeout.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c 16 files changed, 243 insertions(+), 122 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/70/18770/1 diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 83f83c7..3b9bbc4 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -269,6 +269,8 @@ bool auth_reuse_old_sets_on_error; bool parq_retrieve_imsi; bool is_ps; + uint8_t nri_bitlen; + struct osmo_nri_ranges *nri_ranges; } cfg; /* A free-form pointer for use by the caller */ void *user_ctx; diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index a629b5c..fa374e9 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -662,6 +663,77 @@ return CMD_SUCCESS; } +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +DEFUN(cfg_msc_nri_bitlen, cfg_msc_nri_bitlen_cmd, + "nri bitlen <0-15>", + NRI_STR + "Set number of NRI bits to place in TMSI identities (always starting just after the most significant octet)\n" + "bit count (default: " OSMO_STRINGIFY_VAL(NRI_BITLEN_DEFAULT) ")\n") +{ + gsmnet->vlr->cfg.nri_bitlen = atoi(argv[0]); + return CMD_SUCCESS; +} + +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" + +DEFUN(cfg_msc_nri_add, cfg_msc_nri_add_cmd, + "nri add FIRST [LAST]", + NRI_STR "Add NRI value or range to the NRI mapping for this MSC\n" + "First NRI value to add: either decimal ('23') or hexadecimal ('0x17')\n" + "Last NRI value to add: either decimal ('23') or hexadecimal ('0x17');" + " if omitted, only add the first value.\n") +{ + const char *message; + int rc = osmo_nri_ranges_vty_add(&message, NULL, gsmnet->vlr->cfg.nri_ranges, argc, argv, gsmnet->vlr->cfg.nri_bitlen); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_nri_del, cfg_msc_nri_del_cmd, + "nri del FIRST [LAST]", + NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + "First NRI value to del: either decimal ('23') or hexadecimal ('0x17')\n" + "Last NRI value to del: either decimal ('23') or hexadecimal ('0x17');" + " if omitted, only del the first value.\n") +{ + const char *message; + int rc = osmo_nri_ranges_vty_del(&message, NULL, gsmnet->vlr->cfg.nri_ranges, argc, argv); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +static void msc_write_nri(struct vty *vty) +{ + struct osmo_nri_range *r; + + llist_for_each_entry(r, &gsmnet->vlr->cfg.nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } +} + +DEFUN(show_nri, show_nri_cmd, + "show nri", + SHOW_STR NRI_STR) +{ + msc_write_nri(vty); + return CMD_SUCCESS; +} + static int config_write_msc(struct vty *vty) { vty_out(vty, "msc%s", VTY_NEWLINE); @@ -727,6 +799,8 @@ /* Timer introspection commands (generic osmo_tdef API) */ osmo_tdef_vty_groups_write(vty, " "); + msc_write_nri(vty); + return CMD_SUCCESS; } @@ -2007,6 +2081,9 @@ install_element(MSC_NODE, &cfg_msc_no_sms_over_gsup_cmd); install_element(MSC_NODE, &cfg_msc_osmux_cmd); install_element(MSC_NODE, &cfg_msc_handover_number_range_cmd); + install_element(MSC_NODE, &cfg_msc_nri_bitlen_cmd); + install_element(MSC_NODE, &cfg_msc_nri_add_cmd); + install_element(MSC_NODE, &cfg_msc_nri_del_cmd); neighbor_ident_vty_init(msc_network); @@ -2028,6 +2105,7 @@ install_element_ve(&show_bsc_cmd); install_element_ve(&show_msc_conn_cmd); install_element_ve(&show_msc_transaction_cmd); + install_element_ve(&show_nri_cmd); install_element_ve(&sms_send_pend_cmd); install_element_ve(&sms_delete_expired_cmd); diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 3a44d30..b8c131e 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -320,6 +321,7 @@ { struct vlr_instance *vlr = vsub->vlr; uint32_t tmsi; + int16_t nri_v; int tried, rc; struct vlr_subscr *other_vsub; @@ -329,6 +331,13 @@ LOGP(DDB, LOGL_ERROR, "osmo_get_rand_id() failed: %s\n", strerror(-rc)); return rc; } + + if (!llist_empty(&vlr->cfg.nri_ranges->entries)) + osmo_tmsi_nri_v_limit_by_ranges(&tmsi, vlr->cfg.nri_ranges, vlr->cfg.nri_bitlen); + osmo_tmsi_nri_v_get(&nri_v, tmsi, vlr->cfg.nri_bitlen); + LOGP(DVLR, LOGL_DEBUG, "New NRI from range [%s] = 0x%x --> TMSI 0x%08x\n", + osmo_nri_ranges_to_str_c(OTC_SELECT, vlr->cfg.nri_ranges), nri_v, tmsi); + /* throw the dice again, if the TSMI doesn't fit */ if (tmsi == GSM_RESERVED_TMSI) continue; @@ -1224,6 +1233,7 @@ struct vlr_instance *vlr_alloc(void *ctx, const struct vlr_ops *ops) { struct vlr_instance *vlr = talloc_zero(ctx, struct vlr_instance); + OSMO_ASSERT(vlr); /* Some of these are needed only on UTRAN, but in case the caller wants @@ -1246,6 +1256,8 @@ /* defaults */ vlr->cfg.assign_tmsi = true; + vlr->cfg.nri_bitlen = OSMO_NRI_BITLEN_DEFAULT; + vlr->cfg.nri_ranges = osmo_nri_ranges_alloc(vlr); /* reset shared timer definitions */ osmo_tdefs_reset(msc_tdefs_vlr); diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index fc33b38..7362423 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_twice_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -108,6 +108,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -504,7 +505,7 @@ ===== test_auth_use_twice_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_twice_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -624,6 +625,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -1036,7 +1038,7 @@ ===== test_auth_use_twice_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_infinitely_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1144,6 +1146,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -1644,7 +1647,7 @@ ===== test_auth_use_infinitely_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_infinitely_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1764,6 +1767,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -2288,7 +2292,7 @@ ===== test_auth_use_infinitely_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_auth_reuse_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2396,6 +2400,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -2676,7 +2681,7 @@ ===== test_no_auth_reuse_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_auth_reuse_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2796,6 +2801,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -3084,8 +3090,8 @@ ===== test_no_auth_reuse_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index a8c7984..bdd1c90 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mo - Total time passed: 0.000000 s @@ -121,6 +121,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -474,7 +475,7 @@ ===== test_call_mo: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mt - Total time passed: 0.000000 s @@ -595,6 +596,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -945,7 +947,7 @@ ===== test_call_mt: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mt2 - Total time passed: 0.000000 s @@ -1066,6 +1068,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -1370,7 +1373,7 @@ ===== test_call_mt2: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mo_to_unknown - Total time passed: 0.000000 s @@ -1491,6 +1494,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -1798,7 +1802,7 @@ ===== test_call_mo_to_unknown: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mo_to_unknown_timeout - Total time passed: 0.000000 s @@ -1919,6 +1923,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -2222,8 +2227,8 @@ ===== test_call_mo_to_unknown_timeout: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index 7042355..0c686d1 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen - Location Update request causes a GSUP Send Auth Info request to HLR @@ -584,7 +584,7 @@ ===== test_gsm_authen: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_tmsi - Location Update request causes a GSUP Send Auth Info request to HLR @@ -716,6 +716,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -1249,6 +1250,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x18 --> TMSI 0x07060504 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:TMSInew-0x07060504) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:TMSInew-0x07060504:GERAN-A:LU, with TMSI 0x07060504 @@ -1407,7 +1409,7 @@ ===== test_gsm_authen_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1719,7 +1721,7 @@ ===== test_gsm_authen_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_imei_nack - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1984,7 +1986,7 @@ ===== test_gsm_authen_imei_nack: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_imei_err - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2250,7 +2252,7 @@ ===== test_gsm_authen_imei_err: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_tmsi_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2447,6 +2449,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -2603,7 +2606,7 @@ ===== test_gsm_authen_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_milenage_authen - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3161,7 +3164,7 @@ ===== test_gsm_milenage_authen: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_wrong_sres_length - Total time passed: 0.000000 s @@ -3306,8 +3309,8 @@ ===== test_wrong_sres_length: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index e753096..67c1f79 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph - Location Update request causes a GSUP Send Auth Info request to HLR @@ -652,7 +652,7 @@ ===== test_ciph: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_tmsi - Location Update request causes a GSUP Send Auth Info request to HLR @@ -792,6 +792,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -1352,7 +1353,7 @@ ===== test_ciph_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1671,7 +1672,7 @@ ===== test_ciph_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_imeisv - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1955,7 +1956,7 @@ ===== test_ciph_imeisv: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_tmsi_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2159,6 +2160,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -2315,7 +2317,7 @@ ===== test_ciph_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_ciph_in_umts_env - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2912,7 +2914,7 @@ ===== test_gsm_ciph_in_umts_env: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_a5_3_supported - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3556,7 +3558,7 @@ ===== test_a5_3_supported: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_cm_service_needs_classmark_update - Location Update request causes a GSUP Send Auth Info request to HLR @@ -4178,8 +4180,8 @@ ===== test_cm_service_needs_classmark_update: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index f0d94b4..51fc0e8 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_unknown_imsi - Location Update request causes a GSUP Send Auth Info request to HLR @@ -101,7 +101,7 @@ ===== test_hlr_rej_auth_info_unknown_imsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_net_fail - Location Update request causes a GSUP Send Auth Info request to HLR @@ -202,7 +202,7 @@ ===== test_hlr_rej_auth_info_net_fail: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_net_fail_reuse_tuples @@ -528,7 +528,7 @@ ===== test_hlr_rej_auth_info_net_fail_reuse_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_net_fail_no_reuse_tuples @@ -794,7 +794,7 @@ ===== test_hlr_rej_auth_info_net_fail_no_reuse_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples @@ -1061,7 +1061,7 @@ ===== test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_acc_but_no_auth_tuples - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1161,7 +1161,7 @@ ===== test_hlr_acc_but_no_auth_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_lu - Location Update request causes a GSUP LU request to HLR @@ -1264,7 +1264,7 @@ ===== test_hlr_rej_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_no_insert_data - Location Update request causes a GSUP LU request to HLR @@ -1380,8 +1380,8 @@ ===== test_hlr_no_insert_data: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 3717533..d68b4f7 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_timeout_lu_auth_info - Total time passed: 0.000000 s @@ -110,7 +110,7 @@ ===== test_hlr_timeout_lu_auth_info: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_timeout_lu_upd_loc_result - Total time passed: 0.000000 s @@ -237,8 +237,8 @@ ===== test_hlr_timeout_lu_upd_loc_result: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 66ea0bb..653e56c 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ms_timeout_lu_auth_resp - Total time passed: 0.000000 s @@ -129,7 +129,7 @@ ===== test_ms_timeout_lu_auth_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ms_timeout_cm_auth_resp - Total time passed: 0.000000 s @@ -402,7 +402,7 @@ ===== test_ms_timeout_cm_auth_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ms_timeout_paging - Total time passed: 0.000000 s @@ -710,7 +710,7 @@ ===== test_ms_timeout_paging: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_classmark_update_timeout - Total time passed: 0.000000 s @@ -863,8 +863,8 @@ ===== test_classmark_update_timeout: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 2ee21da..19fcbac 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen - Location Update request causes a GSUP LU request to HLR @@ -451,7 +451,7 @@ ===== test_no_authen: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_tmsi - Location Update request causes a GSUP LU request to HLR @@ -540,6 +540,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -976,6 +977,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x18 --> TMSI 0x07060504 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:TMSInew-0x07060504) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:TMSInew-0x07060504:GERAN-A:LU, with TMSI 0x07060504 @@ -1134,7 +1136,7 @@ ===== test_no_authen_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imei - Location Update request causes a GSUP LU request to HLR @@ -1385,7 +1387,7 @@ ===== test_no_authen_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_tmsi_imei - Location Update request causes a GSUP LU request to HLR @@ -1521,6 +1523,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_HLR_IMEI_ACK DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -1671,7 +1674,7 @@ ===== test_no_authen_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv - Location Update request causes an IMEISV ID request back to the MS @@ -1892,7 +1895,7 @@ ===== test_no_authen_imeisv: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv_imei - Location Update request causes an IMEISV ID request back to the MS @@ -2124,7 +2127,7 @@ ===== test_no_authen_imeisv_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv_tmsi - Location Update request causes an IMEISV ID request back to the MS @@ -2233,6 +2236,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -2432,6 +2436,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x18 --> TMSI 0x07060504 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:TMSInew-0x07060504) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:TMSInew-0x07060504:GERAN-A:LU, with TMSI 0x07060504 @@ -2590,7 +2595,7 @@ ===== test_no_authen_imeisv_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv_tmsi_imei - Location Update request causes an IMEISV ID request back to the MS @@ -2707,6 +2712,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100) VLR: update for IMSI=901700000004620 (MSISDN=46071) DVLR lu_compl_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000004620:MSISDN-46071:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -2859,7 +2865,7 @@ ===== test_no_authen_imeisv_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_subscr_expire - Total time passed: 0.000000 s @@ -2994,8 +3000,8 @@ ===== test_no_authen_subscr_expire: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 48086a7..4bad93e 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_2nd_conn - Location Update Request on one connection @@ -190,7 +190,7 @@ ===== test_reject_2nd_conn: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_lu_during_lu - Location Update Request @@ -331,7 +331,7 @@ ===== test_reject_lu_during_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_cm_during_lu - Location Update Request @@ -477,7 +477,7 @@ ===== test_reject_cm_during_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_paging_resp_during_lu - Location Update Request @@ -617,7 +617,7 @@ ===== test_reject_paging_resp_during_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_lu_during_cm @@ -853,7 +853,7 @@ ===== test_reject_lu_during_cm: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_cm_during_cm @@ -1094,7 +1094,7 @@ ===== test_reject_cm_during_cm: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_paging_resp_during_cm @@ -1319,7 +1319,7 @@ ===== test_reject_paging_resp_during_cm: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_lu_during_paging_resp @@ -1619,7 +1619,7 @@ ===== test_reject_lu_during_paging_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_accept_cm_during_paging_resp @@ -1943,7 +1943,7 @@ ===== test_accept_cm_during_paging_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_paging_resp_during_paging_resp @@ -2240,8 +2240,8 @@ ===== test_reject_paging_resp_during_paging_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index ad8d822..be1a888 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_cm_service_without_lu - CM Service Request without a prior Location Updating @@ -65,7 +65,7 @@ ===== test_cm_service_without_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_two_lu - Location Update request causes a GSUP LU request to HLR @@ -404,7 +404,7 @@ ===== test_two_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_lu_unknown_tmsi - Location Update request with unknown TMSI sends ID Request for IMSI @@ -584,8 +584,8 @@ ===== test_lu_unknown_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index cd4cf5c..f7f3e78 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ss_ussd_mo_geran - Location Update request causes a GSUP LU request to HLR @@ -237,7 +237,7 @@ ===== test_ss_ussd_mo_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ss_ussd_no_geran - Location Update request causes a GSUP LU request to HLR @@ -499,8 +499,8 @@ ===== test_ss_ussd_no_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 53cce79..bcb2584 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -108,6 +108,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -602,7 +603,7 @@ ===== test_umts_authen_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -712,6 +713,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -1210,7 +1212,7 @@ ===== test_umts_authen_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_auth_ciph_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1330,6 +1332,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -1842,7 +1845,7 @@ ===== test_umts_auth_ciph_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_resync_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1978,6 +1981,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:GERAN-A:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:GERAN-A:LU, with TMSI 0x03020100 @@ -2074,7 +2078,7 @@ ===== test_umts_authen_resync_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_resync_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2212,6 +2216,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -2308,7 +2313,7 @@ ===== test_umts_authen_resync_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_auth_ciph_resync_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2456,6 +2461,7 @@ DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() +DVLR New NRI from range [empty] = 0x8 --> TMSI 0x03020100 DVLR SUBSCR(IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100) VLR: update for IMSI=901700000010650 (MSISDN=42342) DVLR lu_compl_vlr_fsm(IMSI-901700000010650:MSISDN-42342:UTRAN-Iu:LU){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF - sending LU Accept for IMSI-901700000010650:MSISDN-42342:TMSInew-0x03020100:UTRAN-Iu:LU, with TMSI 0x03020100 @@ -2552,7 +2558,7 @@ ===== test_umts_auth_ciph_resync_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_short_res_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2670,7 +2676,7 @@ ===== test_umts_authen_too_short_res_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_short_res_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2788,7 +2794,7 @@ ===== test_umts_authen_too_short_res_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_long_res_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2906,7 +2912,7 @@ ===== test_umts_authen_too_long_res_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_long_res_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3024,7 +3030,7 @@ ===== test_umts_authen_too_long_res_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_only_sres_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3142,7 +3148,7 @@ ===== test_umts_authen_only_sres_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_only_sres_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3260,8 +3266,8 @@ ===== test_umts_authen_only_sres_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index e00c337..21af3ca 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -1049,30 +1049,31 @@ talloc_report_full(msgb_ctx, stderr); /* Expecting these to stick around in msc_vlr_tests_ctx: * full talloc report on 'msgb' (total 0 bytes in 1 blocks) - * talloc_total_blocks(tall_bsc_ctx) == 19 - * full talloc report on 'msc_vlr_tests_ctx' (total 6532 bytes in 19 blocks) - * struct osmo_gsup_client contains 256 bytes in 1 blocks (ref 0) 0x56143306aa10 - * struct gsm_network contains 4775 bytes in 11 blocks (ref 0) 0x5614330697e0 - * struct mgcp_client contains 688 bytes in 1 blocks (ref 0) 0x56143306ad80 - * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x56143306ac80 - * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x56143306ab80 - * struct gsup_client_mux contains 152 bytes in 2 blocks (ref 0) 0x56143306a8a0 - * struct ipaccess_unit contains 64 bytes in 1 blocks (ref 0) 0x56143306a960 - * struct vlr_instance contains 248 bytes in 1 blocks (ref 0) 0x56143306a740 - * no_gsup_server contains 15 bytes in 1 blocks (ref 0) 0x56143306a6c0 - * stat_item.c:96 contains 144 bytes in 2 blocks (ref 0) 0x56143306a550 - * stat_item.c:118 contains 96 bytes in 1 blocks (ref 0) 0x56143306a5f0 - * rate_ctr.c:234 contains 2352 bytes in 1 blocks (ref 0) 0x561433069bb0 - * logging contains 1501 bytes in 5 blocks (ref 0) 0x561433068fe0 - * struct log_target contains 244 bytes in 2 blocks (ref 0) 0x561433069610 - * struct log_category contains 76 bytes in 1 blocks (ref 0) 0x561433069720 - * struct log_info contains 1256 bytes in 2 blocks (ref 0) 0x561433069050 - * struct log_info_cat contains 1216 bytes in 1 blocks (ref 0) 0x5614330690e0 - * msgb contains 0 bytes in 1 blocks (ref 0) 0x561433068f70 + * talloc_total_blocks(tall_bsc_ctx) == 20 + * full talloc report on 'msc_vlr_tests_ctx' (total 6556 bytes in 20 blocks) + * struct osmo_gsup_client contains 264 bytes in 1 blocks (ref 0) 0x613000000260 + * struct gsm_network contains 4791 bytes in 12 blocks (ref 0) 0x6190000000e0 + * struct mgcp_client contains 688 bytes in 1 blocks (ref 0) 0x6180000000e0 + * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x611000000320 + * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x6110000001e0 + * struct gsup_client_mux contains 152 bytes in 2 blocks (ref 0) 0x6100000001a0 + * struct ipaccess_unit contains 64 bytes in 1 blocks (ref 0) 0x60e000023180 + * struct vlr_instance contains 264 bytes in 2 blocks (ref 0) 0x6130000000a0 + * struct osmo_nri_ranges contains 16 bytes in 1 blocks (ref 0) 0x60b000000360 + * no_gsup_server contains 15 bytes in 1 blocks (ref 0) 0x60b0000002b0 + * ../../../src/libosmocore/src/stat_item.c:96 contains 144 bytes in 2 blocks (ref 0) 0x60d000000170 + * ../../../src/libosmocore/src/stat_item.c:118 contains 96 bytes in 1 blocks (ref 0) 0x6100000000a0 + * ../../../src/libosmocore/src/rate_ctr.c:234 contains 2352 bytes in 1 blocks (ref 0) 0x61e0000000e0 + * logging contains 1501 bytes in 5 blocks (ref 0) 0x60b000000200 + * struct log_target contains 244 bytes in 2 blocks (ref 0) 0x6120000000a0 + * struct log_category contains 76 bytes in 1 blocks (ref 0) 0x60f0000000a0 + * struct log_info contains 1256 bytes in 2 blocks (ref 0) 0x60d0000000a0 + * struct log_info_cat contains 1216 bytes in 1 blocks (ref 0) 0x61a0000000e0 + * msgb contains 0 bytes in 1 blocks (ref 0) 0x608000000180 */ fprintf(stderr, "talloc_total_blocks(tall_bsc_ctx) == %zu\n", talloc_total_blocks(msc_vlr_tests_ctx)); - if (talloc_total_blocks(msc_vlr_tests_ctx) != 19) + if (talloc_total_blocks(msc_vlr_tests_ctx) != 20) talloc_report_full(msc_vlr_tests_ctx, stderr); fprintf(stderr, "\n"); } -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 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 Jun 10 16:31:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 16:31:23 +0000 Subject: Change in osmo-gsm-tester[master]: tests: Replace is_connected() with is_registered() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 ) Change subject: tests: Replace is_connected() with is_registered() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 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: Ic91dddcfd1a5a17c35d15a8a14628b3923229523 Gerrit-Change-Number: 18756 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 16: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 Jun 10 16:31:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 16:31:25 +0000 Subject: Change in osmo-gsm-tester[master]: tests: Replace is_connected() with is_registered() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 ) Change subject: tests: Replace is_connected() with is_registered() ...................................................................... tests: Replace is_connected() with is_registered() API was renamed and old name deprecated, let's use it everywhere. Change-Id: Ic91dddcfd1a5a17c35d15a8a14628b3923229523 --- M doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py M doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py M doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py M doc/examples/4g_srsLTE/suites/4g/ping.py M src/osmo_gsm_tester/obj/ms_ofono.py M sysmocom/suites/debug/interactive.py M sysmocom/suites/dynts/switch_tch_pdch.py M sysmocom/suites/encryption/lib/testlib.py M sysmocom/suites/gprs/lib/testlib.py M sysmocom/suites/gprs/ping.py M sysmocom/suites/gprs/ping_idle_ping.py M sysmocom/suites/nitb_debug/interactive.py M sysmocom/suites/nitb_netreg/register.py M sysmocom/suites/nitb_netreg/register_default.py M sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py M sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py M sysmocom/suites/nitb_sms/mo_mt_sms.py M sysmocom/suites/nitb_ussd/assert_extension.py M sysmocom/suites/smpp/esme_ms_sms_storeforward.py M sysmocom/suites/smpp/esme_ms_sms_transaction.py M sysmocom/suites/sms/mo_mt_sms.py M sysmocom/suites/ussd/assert_extension.py M sysmocom/suites/voice/lib/testlib.py 23 files changed, 30 insertions(+), 34 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py b/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py index 51e78c0..d7606e4 100755 --- a/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py +++ b/doc/examples/2g_osmocom/suites/sms/mo_mt_sms.py @@ -33,8 +33,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, msc.mcc_mnc()) -wait(ms_mt.is_connected, msc.mcc_mnc()) +wait(ms_mo.is_registered, msc.mcc_mnc()) +wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo, ms_mt) sms = ms_mo.sms_send(ms_mt) diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py index d90c80b..d84c078 100755 --- a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py +++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_registered, None) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py index 453cdfa..2592632 100755 --- a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py +++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_registered, None) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/doc/examples/4g_srsLTE/suites/4g/ping.py b/doc/examples/4g_srsLTE/suites/4g/ping.py index c81a35d..ca35053 100755 --- a/doc/examples/4g_srsLTE/suites/4g/ping.py +++ b/doc/examples/4g_srsLTE/suites/4g/ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_connected, None) +wait(ue.is_registered, None) print('UE is attached') proc = ue.run_netns_wait('ping', ('ping', '-c', '10', epc.tun_addr())) diff --git a/src/osmo_gsm_tester/obj/ms_ofono.py b/src/osmo_gsm_tester/obj/ms_ofono.py index e03427e..cec6824 100644 --- a/src/osmo_gsm_tester/obj/ms_ofono.py +++ b/src/osmo_gsm_tester/obj/ms_ofono.py @@ -519,10 +519,6 @@ return True return False - def is_connected(self, mcc_mnc=None): - '''Convenience helper to keep old test API''' - return self.is_registered(mcc_mnc) - def schedule_scan_register(self, mcc_mnc): if self.register_attempts > NETREG_MAX_REGISTER_ATTEMPTS: raise log.Error('Failed to find Network Operator', mcc_mnc=mcc_mnc, attempts=self.register_attempts) @@ -547,7 +543,7 @@ # So far the easiest seems to check if we are now registered and # otherwise schedule a scan again. self.err('Scan() failed, retrying if needed:', e) - if not self.is_connected(mcc_mnc): + if not self.is_registered(mcc_mnc): self.schedule_scan_register(mcc_mnc) else: self.log('Already registered with network', mcc_mnc) @@ -632,7 +628,7 @@ self.cancel_pending_dbus_methods() self.power_cycle() self.register_attempts = 0 - if self.is_connected(mcc_mnc): + if self.is_registered(mcc_mnc): self.log('Already registered with', mcc_mnc if mcc_mnc else 'default network') else: self.log('Connect to', mcc_mnc if mcc_mnc else 'default network') diff --git a/sysmocom/suites/debug/interactive.py b/sysmocom/suites/debug/interactive.py index fa53cc8..3b6a338 100755 --- a/sysmocom/suites/debug/interactive.py +++ b/sysmocom/suites/debug/interactive.py @@ -54,7 +54,7 @@ elif 'wait-registered'.startswith(cmd): try: for m in modems: - wait(m.is_connected, msc.mcc_mnc()) + wait(m.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, *modems) except Timeout: print('Timeout while waiting for registration.') diff --git a/sysmocom/suites/dynts/switch_tch_pdch.py b/sysmocom/suites/dynts/switch_tch_pdch.py index 7be4be7..26c108e 100755 --- a/sysmocom/suites/dynts/switch_tch_pdch.py +++ b/sysmocom/suites/dynts/switch_tch_pdch.py @@ -76,8 +76,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, msc.mcc_mnc()) -wait(ms_mt.is_connected, msc.mcc_mnc()) +wait(ms_mo.is_registered, msc.mcc_mnc()) +wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo) wait(msc.subscriber_attached, ms_mt) diff --git a/sysmocom/suites/encryption/lib/testlib.py b/sysmocom/suites/encryption/lib/testlib.py index ed76e6f..87581c6 100644 --- a/sysmocom/suites/encryption/lib/testlib.py +++ b/sysmocom/suites/encryption/lib/testlib.py @@ -39,7 +39,7 @@ sleep(40) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04) print('Asserting modem did not register') # FIXME: this can fail because ofono qmi signals registered before being accepted by network. See OS#2458 - # assert not ms.is_connected(msc.mcc_mnc()) + # assert not ms.is_registered(msc.mcc_mnc()) assert not msc.subscriber_attached(ms) hlr.subscriber_delete(ms) @@ -50,5 +50,5 @@ else: print('Attempt connection with wrong KI, should work as it is not used...') ms.connect(msc.mcc_mnc()) - wait(ms.is_connected, msc.mcc_mnc()) + wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) diff --git a/sysmocom/suites/gprs/lib/testlib.py b/sysmocom/suites/gprs/lib/testlib.py index 1421229..510dc72 100644 --- a/sysmocom/suites/gprs/lib/testlib.py +++ b/sysmocom/suites/gprs/lib/testlib.py @@ -85,7 +85,7 @@ print('waiting for modems to attach...') for ms in ms_li: - wait(ms.is_connected, msc.mcc_mnc()) + wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, *ms_li) print('waiting for modems to attach to data services...') diff --git a/sysmocom/suites/gprs/ping.py b/sysmocom/suites/gprs/ping.py index 9a7acde..421aa26 100755 --- a/sysmocom/suites/gprs/ping.py +++ b/sysmocom/suites/gprs/ping.py @@ -40,7 +40,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) print('waiting for modems to attach to data services...') diff --git a/sysmocom/suites/gprs/ping_idle_ping.py b/sysmocom/suites/gprs/ping_idle_ping.py index 88ecbdb..099650c 100755 --- a/sysmocom/suites/gprs/ping_idle_ping.py +++ b/sysmocom/suites/gprs/ping_idle_ping.py @@ -45,7 +45,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) print('waiting for modems to attach to data services...') diff --git a/sysmocom/suites/nitb_debug/interactive.py b/sysmocom/suites/nitb_debug/interactive.py index bd68a57..21f4175 100755 --- a/sysmocom/suites/nitb_debug/interactive.py +++ b/sysmocom/suites/nitb_debug/interactive.py @@ -31,7 +31,7 @@ elif 'wait-registered'.startswith(cmd): try: for m in modems: - wait(m.is_connected, nitb.mcc_mnc()) + wait(m.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, *modems) except Timeout: print('Timeout while waiting for registration.') diff --git a/sysmocom/suites/nitb_netreg/register.py b/sysmocom/suites/nitb_netreg/register.py index fd171b3..4977f66 100755 --- a/sysmocom/suites/nitb_netreg/register.py +++ b/sysmocom/suites/nitb_netreg/register.py @@ -18,5 +18,5 @@ print(ms.info()) -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) diff --git a/sysmocom/suites/nitb_netreg/register_default.py b/sysmocom/suites/nitb_netreg/register_default.py index 6531049..67299fe 100755 --- a/sysmocom/suites/nitb_netreg/register_default.py +++ b/sysmocom/suites/nitb_netreg/register_default.py @@ -18,5 +18,5 @@ print(ms.info()) -wait(ms.is_connected) +wait(ms.is_registered) wait(nitb.subscriber_attached, ms) diff --git a/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py b/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py index 29a5ced..f9617e2 100755 --- a/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py +++ b/sysmocom/suites/nitb_smpp/esme_ms_sms_storeforward.py @@ -38,7 +38,7 @@ print('MS registers and will receive the SMS...') ms.connect(nitb.mcc_mnc()) -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) wait(ms.sms_was_received, msg) print('Waiting to receive and consume sms receipt with reference', umref) diff --git a/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py b/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py index 2963b6e..ade8054 100755 --- a/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py +++ b/sysmocom/suites/nitb_smpp/esme_ms_sms_transaction.py @@ -28,7 +28,7 @@ ms.log_info() print('waiting for modem to attach...') -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) print('sending first sms...') diff --git a/sysmocom/suites/nitb_sms/mo_mt_sms.py b/sysmocom/suites/nitb_sms/mo_mt_sms.py index d1cece6..0f2ebfc 100755 --- a/sysmocom/suites/nitb_sms/mo_mt_sms.py +++ b/sysmocom/suites/nitb_sms/mo_mt_sms.py @@ -22,8 +22,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, nitb.mcc_mnc()) -wait(ms_mt.is_connected, nitb.mcc_mnc()) +wait(ms_mo.is_registered, nitb.mcc_mnc()) +wait(ms_mt.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms_mo, ms_mt) sms = ms_mo.sms_send(ms_mt) diff --git a/sysmocom/suites/nitb_ussd/assert_extension.py b/sysmocom/suites/nitb_ussd/assert_extension.py index 6246e61..e547131 100755 --- a/sysmocom/suites/nitb_ussd/assert_extension.py +++ b/sysmocom/suites/nitb_ussd/assert_extension.py @@ -19,7 +19,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, nitb.mcc_mnc()) +wait(ms.is_registered, nitb.mcc_mnc()) wait(nitb.subscriber_attached, ms) # ofono (qmi) currently changes state to 'registered' jut after sending diff --git a/sysmocom/suites/smpp/esme_ms_sms_storeforward.py b/sysmocom/suites/smpp/esme_ms_sms_storeforward.py index 232d1d3..6ec414b 100755 --- a/sysmocom/suites/smpp/esme_ms_sms_storeforward.py +++ b/sysmocom/suites/smpp/esme_ms_sms_storeforward.py @@ -50,7 +50,7 @@ print('MS registers and will receive the SMS...') ms.connect(msc.mcc_mnc()) -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) wait(ms.sms_was_received, msg) print('Waiting to receive and consume sms receipt with reference', umref) diff --git a/sysmocom/suites/smpp/esme_ms_sms_transaction.py b/sysmocom/suites/smpp/esme_ms_sms_transaction.py index d42012b..5a5a470 100755 --- a/sysmocom/suites/smpp/esme_ms_sms_transaction.py +++ b/sysmocom/suites/smpp/esme_ms_sms_transaction.py @@ -38,7 +38,7 @@ ms.log_info() print('waiting for modem to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) print('sending first sms...') diff --git a/sysmocom/suites/sms/mo_mt_sms.py b/sysmocom/suites/sms/mo_mt_sms.py index 51e78c0..d7606e4 100755 --- a/sysmocom/suites/sms/mo_mt_sms.py +++ b/sysmocom/suites/sms/mo_mt_sms.py @@ -33,8 +33,8 @@ ms_mt.log_info() print('waiting for modems to attach...') -wait(ms_mo.is_connected, msc.mcc_mnc()) -wait(ms_mt.is_connected, msc.mcc_mnc()) +wait(ms_mo.is_registered, msc.mcc_mnc()) +wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo, ms_mt) sms = ms_mo.sms_send(ms_mt) diff --git a/sysmocom/suites/ussd/assert_extension.py b/sysmocom/suites/ussd/assert_extension.py index bac311f..87f2ee5 100755 --- a/sysmocom/suites/ussd/assert_extension.py +++ b/sysmocom/suites/ussd/assert_extension.py @@ -31,7 +31,7 @@ ms.log_info() print('waiting for modems to attach...') -wait(ms.is_connected, msc.mcc_mnc()) +wait(ms.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms) # ofono (qmi) currently changes state to 'registered' jut after sending diff --git a/sysmocom/suites/voice/lib/testlib.py b/sysmocom/suites/voice/lib/testlib.py index 3ec6d67..83a6de4 100644 --- a/sysmocom/suites/voice/lib/testlib.py +++ b/sysmocom/suites/voice/lib/testlib.py @@ -45,8 +45,8 @@ ms_mt.log_info() print('waiting for modems to attach...') - wait(ms_mo.is_connected, msc.mcc_mnc()) - wait(ms_mt.is_connected, msc.mcc_mnc()) + wait(ms_mo.is_registered, msc.mcc_mnc()) + wait(ms_mt.is_registered, msc.mcc_mnc()) wait(msc.subscriber_attached, ms_mo, ms_mt) assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18756 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: Ic91dddcfd1a5a17c35d15a8a14628b3923229523 Gerrit-Change-Number: 18756 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 16:47:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 16:47:09 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins/Dockerfile: Install source-highlight References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18771 ) Change subject: debian-stretch-jenkins/Dockerfile: Install source-highlight ...................................................................... debian-stretch-jenkins/Dockerfile: Install source-highlight It is needed by some user manuals using code snippet syntax higlhlighting, such as osmo-gsm-tester one: """ [source,python] ---- sleep(3) # sleep for 3 seconds ---- """ asciidoc: WARNING: test_api.adoc: line 19: filter non-zero exit code: source-highlight -f xhtml -s python: returned 127 asciidoc: WARNING: test_api.adoc: line 19: no output from filter: source-highlight -f xhtml -s python Change-Id: I8427179f7cfc0c9150e5327803ca89adffedb8f1 --- M debian-stretch-jenkins/Dockerfile 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/71/18771/1 diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index e519f26..158f7d7 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -103,6 +103,7 @@ rsync \ sdcc \ sqlite3 \ + source-highlight \ stow \ sudo \ systemd \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8427179f7cfc0c9150e5327803ca89adffedb8f1 Gerrit-Change-Number: 18771 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 Jun 10 16:47:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 16:47:22 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins/Dockerfile: Install source-highlight In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18771 ) Change subject: debian-stretch-jenkins/Dockerfile: Install source-highlight ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8427179f7cfc0c9150e5327803ca89adffedb8f1 Gerrit-Change-Number: 18771 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 16:47:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 16:49:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 16:49:00 +0000 Subject: Change in osmo-gsm-tester[master]: ttcn3: Don't overwrite output junit file on multiple testsuites References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18772 ) Change subject: ttcn3: Don't overwrite output junit file on multiple testsuites ...................................................................... ttcn3: Don't overwrite output junit file on multiple testsuites Change-Id: I803fa8766acb4e90c4a735a420b24ef18ef6b0c9 --- M sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py M sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/72/18772/1 diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py index f0e8667..394e76e 100644 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py @@ -10,7 +10,7 @@ bts_tmpl_file = os.path.join(testdir, 'scripts', 'BTS_Tests.cfg.tmpl') script_run_dir = tenv.test().get_run_dir().new_dir('ttcn3') bts_cfg_file = os.path.join(str(script_run_dir), 'BTS_Tests.cfg') - junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-') + tenv.test().basename + '.xml' + junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-' + tenv.suite().name() + '.' + tenv.test().module_name() + '.xml') if bts.bts_type() == 'osmo-bts-trx': pcu_available = True pcu_sk = bts.pcu_socket_path() diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh b/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh index daac3e0..535268a 100755 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh @@ -88,6 +88,6 @@ echo "Copying TTCN3 junit file to $JUNIT_TTCN3_DST_FILE" cp $VOL_BASE_DIR/bts-tester/junit-xml-*.log $JUNIT_TTCN3_DST_FILE -sed -i "s#classname='BTS_Tests'#classname='$(basename $JUNIT_TTCN3_DST_FILE)'#g" $JUNIT_TTCN3_DST_FILE +sed -i "s#classname='BTS_Tests'#classname='$(basename $JUNIT_TTCN3_DST_FILE '.xml')'#g" $JUNIT_TTCN3_DST_FILE exit $child_exit_code -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18772 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: I803fa8766acb4e90c4a735a420b24ef18ef6b0c9 Gerrit-Change-Number: 18772 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 Jun 10 16:59:27 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 16:59:27 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 6: (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h at 461 PS6, Line 461: /* BTS implementation flags (internal use, not exposed via OML) */ > (so maybe reflect "internal" in the naming? bts_internal_flag_get(), bts_internal_flag_set()?) Done https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h at 465 PS6, Line 465: (bts->flags |= (typeof(bts->flags)) flag) > (braces around this are slightly weird) Done https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/include/osmo-bts/gsm_data_shared.h at 468 PS6, Line 468: #define BTS_IMPL_FLAG_MS_PWR_CTRL_DSP (1 << 0) > ( s/IMPL/INTERNAL/ ?) Done https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/18591/6/src/common/vty.c at 843 PS6, Line 843: vty_out(vty, " Implementation flags:%s", VTY_NEWLINE); > "Implementation" is a very general term, basically all code is implementation. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 16:59:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 16:59:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 16:59:41 +0000 Subject: Change in osmo-bts[master]: oml: fix TL16V length calculation in add_bts_feat() In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18592 to look at the new patch set (#8). Change subject: oml: fix TL16V length calculation in add_bts_feat() ...................................................................... oml: fix TL16V length calculation in add_bts_feat() An additional octet is only needed if total number of features cannot be devided by 8 without the remainder. Fix this. Change-Id: Ie501e5a635493830e0597f7b2fa287b6448e660d --- M src/common/oml.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/92/18592/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie501e5a635493830e0597f7b2fa287b6448e660d Gerrit-Change-Number: 18592 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 16:59:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 16:59:41 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18600 to look at the new patch set (#7). Change subject: osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC ...................................................................... osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC EGPRS support, in particular MCS channel coding, was introduced to osmo-bts-trx years ago, but we still report that it's not supported. Let's stop confusing BSC, and set this feature too. Change-Id: Iaf92764d266e12efd2350967deffae50fbbb3b9e --- M src/osmo-bts-trx/main.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/00/18600/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iaf92764d266e12efd2350967deffae50fbbb3b9e Gerrit-Change-Number: 18600 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 Wed Jun 10 16:59:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 16:59:41 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: Hello lynxis lazus, pespin, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 to look at the new patch set (#7). Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Do not mix public and private BTS features, use libosmocore's API It was a very bad idea to mix "public" BTS features, that are reported to the BSC via OML, and those features, that are used locally (and exclusively) in osmo-bts. Why? At least because we already have the BTS feature manipulation API in libosmocore, that is used by osmo-bsc, but for some reason not by osmo-bts. New features added to libosmocore would clash with the existing "internal" ones like BTS_FEAT_MS_PWR_CTRL_DSP. So what this change does can be described as follows: - remove duplicate definition of the "public" features, - use libosmocore's API for the "public" features, - separate both "internal" and "public" features: - the "public" features continue to live in bitvec, - the "internal" features become flags, - s/BTS_FEAT/BTS_INTERNAL_FLAG/g. Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e --- M include/osmo-bts/gsm_data_shared.h M src/common/bts.c M src/common/gsm_data_shared.c M src/common/l1sap.c M src/common/vty.c M src/osmo-bts-litecell15/main.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-sysmo/main.c M src/osmo-bts-trx/main.c M src/osmo-bts-virtual/main.c M tests/misc/misc_test.c 12 files changed, 110 insertions(+), 132 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/18591/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 16:59:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 16:59:43 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: use bitvec API to allocate the feature vector References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18773 ) Change subject: gsm_data_shared: use bitvec API to allocate the feature vector ...................................................................... gsm_data_shared: use bitvec API to allocate the feature vector Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c M src/common/oml.c 3 files changed, 4 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/18773/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index dc7d39f..ab7ee72 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -523,8 +523,7 @@ char sub_model[MAX_VERSION_LENGTH]; /* features of a given BTS set/reported via OML */ - struct bitvec features; - uint8_t _features_data[MAX_BTS_FEATURES/8]; + struct bitvec *features; /* Connected PCU version (if any) */ char pcu_version[MAX_VERSION_LENGTH]; diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index c05f59d..e23b04b 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -322,8 +322,8 @@ } bts->c0->ts[0].pchan = GSM_PCHAN_CCCH_SDCCH4; - bts->features.data = &bts->_features_data[0]; - bts->features.data_len = sizeof(bts->_features_data); + bts->features = bitvec_alloc(MAX_BTS_FEATURES / 8, bts); + OSMO_ASSERT(bts->features != NULL); return bts; } diff --git a/src/common/oml.c b/src/common/oml.c index 587a808..5610ab1 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -174,7 +174,7 @@ static inline void add_bts_feat(struct msgb *msg, const struct gsm_bts *bts) { unsigned int len = OSMO_BYTES_FOR_BITS(_NUM_BTS_FEAT); - msgb_tl16v_put(msg, NM_ATT_MANUF_ID, len, bts->_features_data); + msgb_tl16v_put(msg, NM_ATT_MANUF_ID, len, bts->features->data); } static inline void add_trx_attr(struct msgb *msg, const struct gsm_bts_trx *trx) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 Gerrit-Change-Number: 18773 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 Jun 10 17:04:39 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:04:39 +0000 Subject: Change in osmocom-bb[master]: trxcon: fix potential buffer overflow in l1ctl_proc_est_req_h1() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18542 ) Change subject: trxcon: fix potential buffer overflow in l1ctl_proc_est_req_h1() ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmocom-bb/+/18542/2/src/host/trxcon/l1ctl.c File src/host/trxcon/l1ctl.c: https://gerrit.osmocom.org/c/osmocom-bb/+/18542/2/src/host/trxcon/l1ctl.c at 610 PS2, Line 610: LOGP(DL1C, LOGL_ERROR, "More than 64 channels in mobile allocation?!?\n"); > rather write the actual "%lu", ARRAY_SIZE(ma) than hardode "64" It's always 64 according to the specs., so I don't think it's critical. I mean it's not just a maximum that we support. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I10f03ca66412a4a7094b0f4a7319411d5d5818ef Gerrit-Change-Number: 18542 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 17:04:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:04:54 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:04:54 +0000 Subject: Change in osmocom-bb[master]: trxcon: fix potential buffer overflow in l1ctl_proc_est_req_h1() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18542 ) Change subject: trxcon: fix potential buffer overflow in l1ctl_proc_est_req_h1() ...................................................................... trxcon: fix potential buffer overflow in l1ctl_proc_est_req_h1() Change-Id: I10f03ca66412a4a7094b0f4a7319411d5d5818ef --- M src/host/trxcon/l1ctl.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: neels: 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/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c index 84e1ec6..192cdd1 100644 --- a/src/host/trxcon/l1ctl.c +++ b/src/host/trxcon/l1ctl.c @@ -606,6 +606,9 @@ if (!h->n) { LOGP(DL1C, LOGL_ERROR, "No channels in mobile allocation?!?\n"); return -EINVAL; + } else if (h->n > ARRAY_SIZE(ma)) { + LOGP(DL1C, LOGL_ERROR, "More than 64 channels in mobile allocation?!?\n"); + return -EINVAL; } /* Convert from network to host byte order */ -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I10f03ca66412a4a7094b0f4a7319411d5d5818ef Gerrit-Change-Number: 18542 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria 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 admin at opensuse.org Wed Jun 10 17:12:56 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 10 Jun 2020 17:12:56 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee1149b2e1df_642f2b139387c5e01059232@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 656s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 656s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 657s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 657s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 657s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 657s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 657s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 658s] [1935/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 658s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 658s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 658s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 658s] ../src/udm/context.c: In function ?udm_ue_add?: [ 658s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 658s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 658s] ~~^ [ 658s] %d [ 658s] cc1: some warnings being treated as errors [ 659s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 659s] ninja: build stopped: subcommand failed. [ 659s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1 [ 659s] make: *** [debian/rules:11: binary] Error 1 [ 659s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 659s] ### VM INTERACTION START ### [ 662s] [ 638.262339] sysrq: SysRq : Power Off [ 662s] [ 638.264337] reboot: Power down [ 662s] ### VM INTERACTION END ### [ 662s] [ 662s] armbuild04 failed "build open5gs_1.2.5.20200610.dsc" at Wed Jun 10 17:12:38 UTC 2020. [ 662s] -- 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 Jun 10 17:24:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:24:54 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 7: Code-Review+2 my +1 and laforge's +1 combined -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 17:24: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 Jun 10 17:26:17 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:26:17 +0000 Subject: Change in osmo-sgsn[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 to look at the new patch set (#2). Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 --- M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M src/gprs/gprs_gb_parse.c M src/sgsn/gprs_gmm.c M tests/gbproxy/gbproxy_test.c 6 files changed, 135 insertions(+), 120 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/16/18716/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 Gerrit-Change-Number: 18716 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:28:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:28:20 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg: adjust cfg for multiple MSCs References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18774 ) Change subject: BSC_Tests.cfg: adjust cfg for multiple MSCs ...................................................................... BSC_Tests.cfg: adjust cfg for multiple MSCs This only enables ttcn to be able to connect multiple MSCs. To be able to use this in the BSC_Tests, osmo-bsc.cfg needs adjusting in an upcoming patch; tests using this are in osmo-ttcn3-hacks I21cbab193cd0de2e5692665442eae113d5f61904. Depends: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f (osmo-ttcn3-hacks) Change-Id: I1986e4ef43beee161c82193694421b56136c1afe --- M ttcn3-bsc-test/BSC_Tests.cfg M ttcn3-bsc-test/osmo-stp.cfg 2 files changed, 50 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/74/18774/1 diff --git a/ttcn3-bsc-test/BSC_Tests.cfg b/ttcn3-bsc-test/BSC_Tests.cfg index a27d099..fab146d 100644 --- a/ttcn3-bsc-test/BSC_Tests.cfg +++ b/ttcn3-bsc-test/BSC_Tests.cfg @@ -13,15 +13,39 @@ BSC_Tests.mp_test_ip := "172.18.2.203"; BSC_Tests.mp_enable_osmux_test := true; BSC_Tests.mp_bssap_cfg := { - transport := BSSAP_TRANSPORT_AoIP, - sccp_service_type := "mtp3_itu", - sctp_addr := { 23905, "172.18.2.203", 2905, "172.18.2.200" }, - own_pc := 185, - own_ssn := 254, - peer_pc := 187, - peer_ssn := 254, - sio := '83'O, - rctx := 1 + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23905, "172.18.2.203", 2905, "172.18.2.200" }, + own_pc := 185, /* 0.23.1 first MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 1 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23906, "172.18.2.203", 2905, "172.18.2.200" }, + own_pc := 2, /* 0.0.2 second MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 2 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23907, "172.18.2.203", 2905, "172.18.2.200" }, + own_pc := 3, /* 0.0.3 third MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 3 + } }; BSC_Tests_CBSP.mp_cgi_bts0 := { '001'H, '01'H, 1, 0 }; BSC_Tests_CBSP.mp_cgi_bts1 := { '001'H, '01'H, 1, 1 }; diff --git a/ttcn3-bsc-test/osmo-stp.cfg b/ttcn3-bsc-test/osmo-stp.cfg index 9102114..0c6d3a2 100644 --- a/ttcn3-bsc-test/osmo-stp.cfg +++ b/ttcn3-bsc-test/osmo-stp.cfg @@ -45,8 +45,25 @@ as virt-msc0 m3ua asp virt-msc0-0 routing-key 1 0.23.1 + + asp virt-msc1-0 23906 2905 m3ua + local-ip 172.18.2.200 + remote-ip 172.18.2.203 + as virt-msc1 m3ua + asp virt-msc1-0 + routing-key 2 0.0.2 + + asp virt-msc2-0 23907 2905 m3ua + local-ip 172.18.2.200 + remote-ip 172.18.2.203 + as virt-msc2 m3ua + asp virt-msc2-0 + routing-key 3 0.0.3 + route-table system update route 0.23.1 7.255.7 linkset virt-msc0 + update route 0.0.2 7.255.7 linkset virt-msc1 + update route 0.0.3 7.255.7 linkset virt-msc2 listen m3ua 2905 accept-asp-connections dynamic-permitted listen ipa 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1986e4ef43beee161c82193694421b56136c1afe Gerrit-Change-Number: 18774 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 Jun 10 17:28:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:28:20 +0000 Subject: Change in docker-playground[master]: bsc: adjust osmo-bsc.cfg for MSC pooling tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18775 ) Change subject: bsc: adjust osmo-bsc.cfg for MSC pooling tests ...................................................................... bsc: adjust osmo-bsc.cfg for MSC pooling tests Depends: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 (osmo-bsc) Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b --- M ttcn3-bsc-test/osmo-bsc.cfg 1 file changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/75/18775/1 diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg index 271b228..d49e6f2 100644 --- a/ttcn3-bsc-test/osmo-bsc.cfg +++ b/ttcn3-bsc-test/osmo-bsc.cfg @@ -58,6 +58,10 @@ cs7 instance 0 asp asp-clnt-msc-0 2905 2905 m3ua remote-ip 172.18.2.200 + sccp-address msc2 + point-code 0.0.2 + sccp-address msc3 + point-code 0.0.3 network network country code 1 mobile network code 1 @@ -389,6 +393,27 @@ codec-list fr1 fr2 fr3 hr1 hr3 mgw remote-ip 172.18.2.203 lcls-mode mgw-loop +msc 1 + msc-addr msc2 + mgw remote-ip 172.18.2.203 +msc 2 + msc-addr msc3 + mgw remote-ip 172.18.2.203 + +network + nri bitlen 10 + # a NULL NRI that is outside the NRI ranges used by the MSCs: + nri null add 0 + # a NULL NRI that is also used by an MSC: + nri null add 1 +msc 0 + nri add 1 255 +msc 1 + nri add 256 511 +msc 2 + nri add 512 767 + # range 768-1024 is not assigned to any MSC on purpose + bsc mid-call-timeout 0 no missing-msc-text -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b Gerrit-Change-Number: 18775 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 Jun 10 17:28:21 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:28:21 +0000 Subject: Change in docker-playground[master]: MSC_Tests.cfg: tweak comments References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18776 ) Change subject: MSC_Tests.cfg: tweak comments ...................................................................... MSC_Tests.cfg: tweak comments Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 --- M ttcn3-msc-test/MSC_Tests.cfg 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/76/18776/1 diff --git a/ttcn3-msc-test/MSC_Tests.cfg b/ttcn3-msc-test/MSC_Tests.cfg index 1614d24..1e5fd61 100644 --- a/ttcn3-msc-test/MSC_Tests.cfg +++ b/ttcn3-msc-test/MSC_Tests.cfg @@ -14,9 +14,9 @@ transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23906, "172.18.1.103", 2905, "172.18.1.200" }, - own_pc := 193, /* 0.24.1 */ + own_pc := 193, /* 0.24.1 BSC emulation [0] */ own_ssn := 254, - peer_pc := 185, /* 0.23.1 */ + peer_pc := 185, /* 0.23.1 osmo-msc */ peer_ssn := 254, sio := '83'O, rctx := 0 @@ -25,9 +25,9 @@ transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23907, "172.18.1.103", 2905, "172.18.1.200" }, - own_pc := 194, /* 0.24.2 */ + own_pc := 194, /* 0.24.2 BSC emulation [1] */ own_ssn := 254, - peer_pc := 185, /* 0.23.1 */ + peer_pc := 185, /* 0.23.1 osmo-msc */ peer_ssn := 254, sio := '83'O, rctx := 1 @@ -36,9 +36,9 @@ transport := RANAP_TRANSPORT_IuCS, sccp_service_type := "mtp3_itu", sctp_addr := { 23908, "172.18.1.103", 2905, "172.18.1.200" }, - own_pc := 195, /* 0.24.3 */ + own_pc := 195, /* 0.24.3 BSC emulation [2] */ own_ssn := 142, - peer_pc := 185, /* 0.23.1 */ + peer_pc := 185, /* 0.23.1 osmo-msc */ peer_ssn := 142, sio := '83'O, rctx := 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 Gerrit-Change-Number: 18776 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 Jun 10 17:33:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:33:07 +0000 Subject: Change in osmo-bts[master]: oml: fix TL16V length calculation in add_bts_feat() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18592 ) Change subject: oml: fix TL16V length calculation in add_bts_feat() ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie501e5a635493830e0597f7b2fa287b6448e660d Gerrit-Change-Number: 18592 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 17:33:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:33:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:33:35 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18600 ) Change subject: osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iaf92764d266e12efd2350967deffae50fbbb3b9e Gerrit-Change-Number: 18600 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 17:33: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 Jun 10 17:35:34 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:35:34 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: use bitvec API to allocate the feature vector In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18773 ) Change subject: gsm_data_shared: use bitvec API to allocate the feature vector ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18773/1/src/common/gsm_data_shared.c File src/common/gsm_data_shared.c: https://gerrit.osmocom.org/c/osmo-bts/+/18773/1/src/common/gsm_data_shared.c at 325 PS1, Line 325: bts->features = bitvec_alloc(MAX_BTS_FEATURES / 8, bts); (should this also be OSMO_BYTES_FOR_BITS()?) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 Gerrit-Change-Number: 18773 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 17:35:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:38:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:38:16 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: use bitvec API to allocate the feature vector 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/+/18773 to look at the new patch set (#2). Change subject: gsm_data_shared: use bitvec API to allocate the feature vector ...................................................................... gsm_data_shared: use bitvec API to allocate the feature vector Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c M src/common/oml.c 3 files changed, 6 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/18773/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 Gerrit-Change-Number: 18773 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:38:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:38:16 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: Hello lynxis lazus, pespin, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 to look at the new patch set (#8). Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Do not mix public and private BTS features, use libosmocore's API It was a very bad idea to mix "public" BTS features, that are reported to the BSC via OML, and those features, that are used locally (and exclusively) in osmo-bts. Why? At least because we already have the BTS feature manipulation API in libosmocore, that is used by osmo-bsc, but for some reason not by osmo-bts. New features added to libosmocore would clash with the existing "internal" ones like BTS_FEAT_MS_PWR_CTRL_DSP. So what this change does can be described as follows: - remove duplicate definition of the "public" features, - use libosmocore's API for the "public" features, - separate both "internal" and "public" features: - the "public" features continue to live in bitvec, - the "internal" features become flags, - s/BTS_FEAT/BTS_INTERNAL_FLAG/g. Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e --- M include/osmo-bts/gsm_data_shared.h M src/common/bts.c M src/common/gsm_data_shared.c M src/common/l1sap.c M src/common/vty.c M src/osmo-bts-litecell15/main.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-sysmo/main.c M src/osmo-bts-trx/main.c M src/osmo-bts-virtual/main.c M tests/misc/misc_test.c 12 files changed, 110 insertions(+), 132 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/18591/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:38:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:38:33 +0000 Subject: Change in osmo-bts[master]: oml: fix TL16V length calculation in add_bts_feat() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18592 ) Change subject: oml: fix TL16V length calculation in add_bts_feat() ...................................................................... oml: fix TL16V length calculation in add_bts_feat() An additional octet is only needed if total number of features cannot be devided by 8 without the remainder. Fix this. Change-Id: Ie501e5a635493830e0597f7b2fa287b6448e660d --- M src/common/oml.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index c2c1248..587a808 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -173,7 +173,8 @@ /* Add BTS features as 3GPP TS 52.021 ?9.4.30 Manufacturer Id */ static inline void add_bts_feat(struct msgb *msg, const struct gsm_bts *bts) { - msgb_tl16v_put(msg, NM_ATT_MANUF_ID, _NUM_BTS_FEAT/8 + 1, bts->_features_data); + unsigned int len = OSMO_BYTES_FOR_BITS(_NUM_BTS_FEAT); + msgb_tl16v_put(msg, NM_ATT_MANUF_ID, len, bts->_features_data); } static inline void add_trx_attr(struct msgb *msg, const struct gsm_bts_trx *trx) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18592 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie501e5a635493830e0597f7b2fa287b6448e660d Gerrit-Change-Number: 18592 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria 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 Wed Jun 10 17:38:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:38:34 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18600 ) Change subject: osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC ...................................................................... osmo-bts-trx: indicate BTS_FEAT_EGPRS support to BSC EGPRS support, in particular MCS channel coding, was introduced to osmo-bts-trx years ago, but we still report that it's not supported. Let's stop confusing BSC, and set this feature too. Change-Id: Iaf92764d266e12efd2350967deffae50fbbb3b9e --- M src/osmo-bts-trx/main.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 3c1c892..3ccd597 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -111,6 +111,7 @@ bts->c0->nominal_power = 23; gsm_bts_set_feature(bts, BTS_FEAT_GPRS); + gsm_bts_set_feature(bts, BTS_FEAT_EGPRS); gsm_bts_set_feature(bts, BTS_FEAT_OML_ALERTS); gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iaf92764d266e12efd2350967deffae50fbbb3b9e Gerrit-Change-Number: 18600 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria 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 Wed Jun 10 17:40:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 17:40:20 +0000 Subject: Change in osmo-mgw[master]: endp: move endpoint name generation into mgcp_endp.c In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18754 ) Change subject: endp: move endpoint name generation into mgcp_endp.c ...................................................................... Patch Set 1: Code-Review+1 I agree with pespin, but no deal breakers -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Gerrit-Change-Number: 18754 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 17:40: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 Jun 10 17:41:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:41:34 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: use bitvec API to allocate the feature vector In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18773 ) Change subject: gsm_data_shared: use bitvec API to allocate the feature vector ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18773/1/src/common/gsm_data_shared.c File src/common/gsm_data_shared.c: https://gerrit.osmocom.org/c/osmo-bts/+/18773/1/src/common/gsm_data_shared.c at 325 PS1, Line 325: bts->features = bitvec_alloc(MAX_BTS_FEATURES / 8, bts); > (should this also be OSMO_BYTES_FOR_BITS()?) I don't think it's necessary given that this macro is defined in libosmocore, and divided by 8 without remainder. We can change this later. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 Gerrit-Change-Number: 18773 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 17:41:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:55:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 17:55:49 +0000 Subject: Change in osmo-gsm-tester[master]: EventLoop: Fix log error "Origin parent loop" during wait() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18777 ) Change subject: EventLoop: Fix log error "Origin parent loop" during wait() ...................................................................... EventLoop: Fix log error "Origin parent loop" during wait() Setting the log.ctx manually is not needed anymore and it's actually harmful since all palces where it was used, a log.Origin already in path was being passed, causing a origin loop. Change-Id: I0511b9f7bc59e3c7f2269ff3155d0c95db58d063 --- M src/osmo_gsm_tester/core/event_loop.py M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/bts_nanobts.py M src/osmo_gsm_tester/obj/bts_osmotrx.py M src/osmo_gsm_tester/obj/esme.py M src/osmo_gsm_tester/obj/ms_ofono.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/obj/osmocon.py M src/osmo_gsm_tester/obj/powersupply.py M src/osmo_gsm_tester/obj/powersupply_sispm.py M src/osmo_gsm_tester/testenv.py 11 files changed, 29 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/77/18777/1 diff --git a/src/osmo_gsm_tester/core/event_loop.py b/src/osmo_gsm_tester/core/event_loop.py index fe88ef4..4092a66 100644 --- a/src/osmo_gsm_tester/core/event_loop.py +++ b/src/osmo_gsm_tester/core/event_loop.py @@ -85,9 +85,8 @@ self.gctx.iteration(may_block) self.deferred_handling.handle_queue() - def wait_no_raise(self, log_obj, condition, condition_args, condition_kwargs, timeout, timestep): + def wait_no_raise(self, condition, condition_args, condition_kwargs, timeout, timestep): if not timeout or timeout < 0: - self = log_obj raise log.Error('wait() *must* time out at some point.', timeout=timeout) if timestep < 0.1: timestep = 0.1 @@ -105,14 +104,13 @@ success = wait_req.condition_ack return success - def wait(self, log_obj, condition, *condition_args, timeout=300, timestep=1, **condition_kwargs): - if not self.wait_no_raise(log_obj, condition, condition_args, condition_kwargs, timeout, timestep): - log.ctx(log_obj) + def wait(self, condition, *condition_args, timeout=300, timestep=1, **condition_kwargs): + if not self.wait_no_raise(condition, condition_args, condition_kwargs, timeout, timestep): raise log.Error('Wait timeout', condition=condition, timeout=timeout, timestep=timestep) - def sleep(self, log_obj, seconds): + def sleep(self, seconds): assert seconds > 0. - self.wait_no_raise(log_obj, lambda: False, [], {}, timeout=seconds, timestep=seconds) + self.wait_no_raise(lambda: False, [], {}, timeout=seconds, timestep=seconds) MainLoop = EventLoop() diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 33ae69a..8954674 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -347,7 +347,7 @@ return self.result is not None def wait(self, timeout=300): - MainLoop.wait(self, self.terminated, timeout=timeout) + MainLoop.wait(self.terminated, timeout=timeout) def stdin_write(self, cmd): ''' diff --git a/src/osmo_gsm_tester/obj/bts_nanobts.py b/src/osmo_gsm_tester/obj/bts_nanobts.py index a818a8f..03730a6 100644 --- a/src/osmo_gsm_tester/obj/bts_nanobts.py +++ b/src/osmo_gsm_tester/obj/bts_nanobts.py @@ -139,7 +139,7 @@ # Let some time for BTS to restart. It takes much more than 20 secs, and # this way we make sure we don't catch responses in abisip-find prior to # BTS restarting. - MainLoop.sleep(self, 20) + MainLoop.sleep(20) self.dbg('Starting to connect id %d trx %d to' % (unitid, trx_i), self.bsc) ipfind = AbisIpFind(self.testenv, self.run_dir, local_bind_ip, 'postconf') @@ -150,7 +150,7 @@ else: self.dbg('nanoBTS id %d trx %d no need to change OML IP (%s) and restart' % (unitid, trx_i, running_oml_ip)) - MainLoop.wait(self, self.bsc.bts_is_connected, self, timeout=600) + MainLoop.wait(self.bsc.bts_is_connected, self, timeout=600) self.log('nanoBTS connected to BSC') #According to roh, it can be configured to use a static IP in a permanent way: @@ -239,11 +239,11 @@ return self.get_line_by_ip(ipaddr) is not None def wait_bts_ready(self, ipaddr): - MainLoop.wait(self, self.bts_ready, ipaddr) + MainLoop.wait(self.bts_ready, ipaddr) # There's a period of time after boot in which nanobts answers to # abisip-find but tcp RSTs ipacces-config conns. Let's wait in here a # bit more time to avoid failing after stating the BTS is ready. - MainLoop.sleep(self, 2) + MainLoop.sleep(2) class IpAccessConfig(log.Origin): testenv = None diff --git a/src/osmo_gsm_tester/obj/bts_osmotrx.py b/src/osmo_gsm_tester/obj/bts_osmotrx.py index 0eeef49..8eed8cf 100644 --- a/src/osmo_gsm_tester/obj/bts_osmotrx.py +++ b/src/osmo_gsm_tester/obj/bts_osmotrx.py @@ -173,7 +173,7 @@ self.trx = OsmoTrx.get_instance_by_type(self.get_osmo_trx_type(), self.testenv, self.conf_for_osmotrx()) self.trx.start(keepalive) self.log('Waiting for %s to start up...' % self.trx.name()) - MainLoop.wait(self, self.trx.trx_ready) + MainLoop.wait(self.trx.trx_ready) self.inst = util.Dir(os.path.abspath(self.testenv.suite().trial().get_inst('osmo-bts'))) lib = self.inst.child('lib') @@ -374,7 +374,7 @@ break keep_trying = keep_trying - 1 self.log('Configuring SC5 TRX failed, retrying %d more times' % keep_trying) - MainLoop.sleep(self, 5) + MainLoop.sleep(5) if keep_trying == 0: raise log.Error('Failed configuring SC5!') self.ready = True diff --git a/src/osmo_gsm_tester/obj/esme.py b/src/osmo_gsm_tester/obj/esme.py index 13e1bba..cd416ab 100644 --- a/src/osmo_gsm_tester/obj/esme.py +++ b/src/osmo_gsm_tester/obj/esme.py @@ -190,7 +190,7 @@ umref, self.pdus_pending = self.sms_send(sms_obj, mode, receipt) self.dbg('pdus_pending:', self.pdus_pending) self.client.set_message_sent_handler(self._process_pdus_pending) - MainLoop.wait(self, lambda: len(self.pdus_pending) == 0, timeout=10) + MainLoop.wait(lambda: len(self.pdus_pending) == 0, timeout=10) return umref finally: self.client.set_message_sent_handler(old_func) diff --git a/src/osmo_gsm_tester/obj/ms_ofono.py b/src/osmo_gsm_tester/obj/ms_ofono.py index cec6824..b604325 100644 --- a/src/osmo_gsm_tester/obj/ms_ofono.py +++ b/src/osmo_gsm_tester/obj/ms_ofono.py @@ -317,7 +317,7 @@ self.log('Setting', name, val) self.interface(iface).SetProperty(name, Variant('b', val)) - MainLoop.wait(self, self.property_is, name, bool_val) + MainLoop.wait(self.property_is, name, bool_val) def set_powered(self, powered=True): self.set_bool('Powered', powered) @@ -461,10 +461,10 @@ if not self.is_powered(): self.set_powered() # wait for SimManager iface to appear after we power on - MainLoop.wait(self, self.dbus.has_interface, I_SIMMGR, timeout=10) + MainLoop.wait(self.dbus.has_interface, I_SIMMGR, timeout=10) simmgr = self.dbus.interface(I_SIMMGR) # If properties are requested quickly, it may happen that Sim property is still not there. - MainLoop.wait(self, lambda: simmgr.GetProperties().get('SubscriberIdentity', None) is not None, timeout=10) + MainLoop.wait(lambda: simmgr.GetProperties().get('SubscriberIdentity', None) is not None, timeout=10) props = simmgr.GetProperties() self.dbg('got SIM properties', props) self._imsi = props.get('SubscriberIdentity', None) @@ -606,7 +606,7 @@ self.set_powered(False) req_ifaces = self._required_ifaces() for iface in req_ifaces: - MainLoop.wait(self, lambda: not self.dbus.has_interface(iface), timeout=10) + MainLoop.wait(lambda: not self.dbus.has_interface(iface), timeout=10) def power_cycle(self): 'Power the modem and put it online, power cycle it if it was already on' @@ -618,7 +618,7 @@ self.dbg('Powering on') self.set_powered() self.set_online() - MainLoop.wait(self, self.dbus.has_interface, *req_ifaces, timeout=10) + MainLoop.wait(self.dbus.has_interface, *req_ifaces, timeout=10) def connect(self, mcc_mnc=None): 'Connect to MCC+MNC' @@ -671,7 +671,7 @@ # Activate can only be called after we are attached ctx.SetProperty('Active', Variant('b', True)) - MainLoop.wait(self, lambda: ctx.GetProperties()['Active'] == True) + MainLoop.wait(lambda: ctx.GetProperties()['Active'] == True) self.log('context activated', path=ctx_path, apn=apn, user=user, properties=ctx.GetProperties()) return ctx_path @@ -679,7 +679,7 @@ self.dbg('deactivate_context', path=ctx_id) ctx = systembus_get(ctx_id) ctx.SetProperty('Active', Variant('b', False)) - MainLoop.wait(self, lambda: ctx.GetProperties()['Active'] == False) + MainLoop.wait(lambda: ctx.GetProperties()['Active'] == False) self.dbg('deactivate_context active=false, removing', path=ctx_id) connmgr = self.dbus.interface(I_CONNMGR) connmgr.RemoveContext(ctx_id) @@ -770,7 +770,7 @@ else: caller_msisdn = str(caller_msisdn_or_modem) self.dbg('Waiting for incoming call from:', caller_msisdn) - MainLoop.wait(self, lambda: self._find_call_msisdn_state(caller_msisdn, 'incoming') is not None, timeout=timeout) + MainLoop.wait(lambda: self._find_call_msisdn_state(caller_msisdn, 'incoming') is not None, timeout=timeout) return self._find_call_msisdn_state(caller_msisdn, 'incoming') def call_answer(self, call_id): diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 0aad954..3aa6b0a 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -123,7 +123,7 @@ def sleep_after_stop(self): # Only sleep once if self.stop_sleep_time > 0: - MainLoop.sleep(self, self.stop_sleep_time) + MainLoop.sleep(self.stop_sleep_time) self.stop_sleep_time = 0 def stop(self): diff --git a/src/osmo_gsm_tester/obj/osmocon.py b/src/osmo_gsm_tester/obj/osmocon.py index c37cf36..18ee382 100644 --- a/src/osmo_gsm_tester/obj/osmocon.py +++ b/src/osmo_gsm_tester/obj/osmocon.py @@ -89,7 +89,7 @@ self.testenv.remember_to_stop(self.process) self.process.launch() self.log('Waiting for osmocon to be up and running') - MainLoop.wait(self, os.path.exists, self.l2_socket_path()) + MainLoop.wait(os.path.exists, self.l2_socket_path()) def running(self): return not self.process.terminated() diff --git a/src/osmo_gsm_tester/obj/powersupply.py b/src/osmo_gsm_tester/obj/powersupply.py index bc7c0e3..7715a46 100644 --- a/src/osmo_gsm_tester/obj/powersupply.py +++ b/src/osmo_gsm_tester/obj/powersupply.py @@ -47,7 +47,7 @@ def power_cycle(self, sleep=0): """Turns off the device, waits N.N seconds, then turn on the device.""" self.power_set(False) - MainLoop.sleep(self, sleep) + MainLoop.sleep(sleep) self.power_set(True) def get_instance_by_type(pwsupply_type, pwsupply_opt): diff --git a/src/osmo_gsm_tester/obj/powersupply_sispm.py b/src/osmo_gsm_tester/obj/powersupply_sispm.py index 0b1ad07..4fec83e 100644 --- a/src/osmo_gsm_tester/obj/powersupply_sispm.py +++ b/src/osmo_gsm_tester/obj/powersupply_sispm.py @@ -48,7 +48,7 @@ except USBError as e: if e.errno == 16 or e.errno==110: self.log('skip usb error, retry', repr(e)) - MainLoop.sleep(self, 0.1) + MainLoop.sleep(0.1) continue raise e diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 7ca854b..4709b4c 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -345,13 +345,13 @@ log = test.log dbg = test.dbg err = test.err - wait = lambda *args, **kwargs: MainLoop.wait(suite_run, *args, **kwargs) - wait_no_raise = lambda *args, **kwargs: MainLoop.wait_no_raise(suite_run, *args, **kwargs) - sleep = lambda *args, **kwargs: MainLoop.sleep(suite_run, *args, **kwargs) + tenv = TestEnv(suite_run, _test) + wait = MainLoop.wait + wait_no_raise = MainLoop.wait_no_raise + sleep = MainLoop.sleep poll = MainLoop.poll Sms = Sms_class process = process_module - tenv = TestEnv(suite_run, _test) prompt = tenv.prompt return tenv -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18777 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: I0511b9f7bc59e3c7f2269ff3155d0c95db58d063 Gerrit-Change-Number: 18777 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 Jun 10 17:59:47 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:59:47 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: use bitvec API to allocate the feature vector In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18773 ) Change subject: gsm_data_shared: use bitvec API to allocate the feature vector ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 Gerrit-Change-Number: 18773 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 17:59: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 Jun 10 17:59:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:59:51 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 17:59: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 Jun 10 17:59:56 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:59:56 +0000 Subject: Change in osmo-bts[master]: gsm_data_shared: use bitvec API to allocate the feature vector In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18773 ) Change subject: gsm_data_shared: use bitvec API to allocate the feature vector ...................................................................... gsm_data_shared: use bitvec API to allocate the feature vector Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c M src/common/oml.c 3 files changed, 6 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index dc7d39f..f3855f7 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -523,8 +523,7 @@ char sub_model[MAX_VERSION_LENGTH]; /* features of a given BTS set/reported via OML */ - struct bitvec features; - uint8_t _features_data[MAX_BTS_FEATURES/8]; + struct bitvec *features; /* Connected PCU version (if any) */ char pcu_version[MAX_VERSION_LENGTH]; @@ -744,13 +743,13 @@ static inline int gsm_bts_set_feature(struct gsm_bts *bts, enum gsm_bts_features feat) { OSMO_ASSERT(_NUM_BTS_FEAT < MAX_BTS_FEATURES); - return bitvec_set_bit_pos(&bts->features, feat, 1); + return bitvec_set_bit_pos(bts->features, feat, 1); } static inline bool gsm_bts_has_feature(const struct gsm_bts *bts, enum gsm_bts_features feat) { OSMO_ASSERT(_NUM_BTS_FEAT < MAX_BTS_FEATURES); - return bitvec_get_bit_pos(&bts->features, feat); + return bitvec_get_bit_pos(bts->features, feat); } void gsm_abis_mo_reset(struct gsm_abis_mo *mo); diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index c05f59d..e23b04b 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -322,8 +322,8 @@ } bts->c0->ts[0].pchan = GSM_PCHAN_CCCH_SDCCH4; - bts->features.data = &bts->_features_data[0]; - bts->features.data_len = sizeof(bts->_features_data); + bts->features = bitvec_alloc(MAX_BTS_FEATURES / 8, bts); + OSMO_ASSERT(bts->features != NULL); return bts; } diff --git a/src/common/oml.c b/src/common/oml.c index 587a808..5610ab1 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -174,7 +174,7 @@ static inline void add_bts_feat(struct msgb *msg, const struct gsm_bts *bts) { unsigned int len = OSMO_BYTES_FOR_BITS(_NUM_BTS_FEAT); - msgb_tl16v_put(msg, NM_ATT_MANUF_ID, len, bts->_features_data); + msgb_tl16v_put(msg, NM_ATT_MANUF_ID, len, bts->features->data); } static inline void add_trx_attr(struct msgb *msg, const struct gsm_bts_trx *trx) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I19ecfc619c0dc2bfd14f054d17e222c4e16f6238 Gerrit-Change-Number: 18773 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 17:59:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 17:59:57 +0000 Subject: Change in osmo-bts[master]: Do not mix public and private BTS features, use libosmocore's API In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18591 ) Change subject: Do not mix public and private BTS features, use libosmocore's API ...................................................................... Do not mix public and private BTS features, use libosmocore's API It was a very bad idea to mix "public" BTS features, that are reported to the BSC via OML, and those features, that are used locally (and exclusively) in osmo-bts. Why? At least because we already have the BTS feature manipulation API in libosmocore, that is used by osmo-bsc, but for some reason not by osmo-bts. New features added to libosmocore would clash with the existing "internal" ones like BTS_FEAT_MS_PWR_CTRL_DSP. So what this change does can be described as follows: - remove duplicate definition of the "public" features, - use libosmocore's API for the "public" features, - separate both "internal" and "public" features: - the "public" features continue to live in bitvec, - the "internal" features become flags, - s/BTS_FEAT/BTS_INTERNAL_FLAG/g. Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e --- M include/osmo-bts/gsm_data_shared.h M src/common/bts.c M src/common/gsm_data_shared.c M src/common/l1sap.c M src/common/vty.c M src/osmo-bts-litecell15/main.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-sysmo/main.c M src/osmo-bts-trx/main.c M src/osmo-bts-virtual/main.c M tests/misc/misc_test.c 12 files changed, 110 insertions(+), 132 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index f3855f7..7cfbfeb 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -38,8 +39,6 @@ #define MAX_VERSION_LENGTH 64 -#define MAX_BTS_FEATURES 128 - struct gsm_lchan; struct osmo_rtp_socket; struct pcu_sock_state; @@ -402,35 +401,21 @@ TRX_PHY_VERSION, }; -/* N. B: always add new features to the end of the list (right before _NUM_BTS_FEAT) to avoid breaking compatibility - with BTS compiled against earlier version of this header. Also make sure that the description strings - gsm_bts_features_descs[] in gsm_data_shared.c are also updated accordingly! */ -enum gsm_bts_features { - BTS_FEAT_HSCSD, - BTS_FEAT_GPRS, - BTS_FEAT_EGPRS, - BTS_FEAT_ECSD, - BTS_FEAT_HOPPING, - BTS_FEAT_MULTI_TSC, - BTS_FEAT_OML_ALERTS, - BTS_FEAT_AGCH_PCH_PROP, - BTS_FEAT_CBCH, - BTS_FEAT_SPEECH_F_V1, - BTS_FEAT_SPEECH_H_V1, - BTS_FEAT_SPEECH_F_EFR, - BTS_FEAT_SPEECH_F_AMR, - BTS_FEAT_SPEECH_H_AMR, - BTS_FEAT_ETWS_PN, - BTS_FEAT_MS_PWR_CTRL_DSP, - /* When the feature is set then the measurement data is included in - * (PRIM_PH_DATA) and struct ph_tch_param (PRIM_TCH). Otherwise the - * measurement data is passed using a separate MPH INFO MEAS IND. - * (See also ticket: OS#2977) */ - BTS_FEAT_MEAS_PAYLOAD_COMB, - _NUM_BTS_FEAT -}; +/* BTS implementation flags (internal use, not exposed via OML) */ +#define bts_internal_flag_get(bts, flag) \ + ((bts->flags & (typeof(bts->flags)) flag) != 0) +#define bts_internal_flag_set(bts, flag) \ + bts->flags |= (typeof(bts->flags)) flag -extern const struct value_string gsm_bts_features_descs[]; +/* TODO: add a brief description of this flag */ +#define BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP (1 << 0) +/* When this flag is set then the measurement data is included in + * (PRIM_PH_DATA) and struct ph_tch_param (PRIM_TCH). Otherwise the + * measurement data is passed using a separate MPH INFO MEAS IND. + * (See also ticket: OS#2977) */ +#define BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB (1 << 1) + +extern const struct value_string bts_impl_flag_desc[]; struct gsm_bts_gprs_nsvc { struct gsm_bts *bts; @@ -522,8 +507,10 @@ char version[MAX_VERSION_LENGTH]; char sub_model[MAX_VERSION_LENGTH]; - /* features of a given BTS set/reported via OML */ + /* public features of a given BTS (set/reported via OML) */ struct bitvec *features; + /* implementation flags of a given BTS (not exposed via OML) */ + uint16_t flags; /* Connected PCU version (if any) */ char pcu_version[MAX_VERSION_LENGTH]; @@ -740,18 +727,6 @@ return lchan->name; } -static inline int gsm_bts_set_feature(struct gsm_bts *bts, enum gsm_bts_features feat) -{ - OSMO_ASSERT(_NUM_BTS_FEAT < MAX_BTS_FEATURES); - return bitvec_set_bit_pos(bts->features, feat, 1); -} - -static inline bool gsm_bts_has_feature(const struct gsm_bts *bts, enum gsm_bts_features feat) -{ - OSMO_ASSERT(_NUM_BTS_FEAT < MAX_BTS_FEATURES); - return bitvec_get_bit_pos(bts->features, feat); -} - void gsm_abis_mo_reset(struct gsm_abis_mo *mo); struct gsm_abis_mo * diff --git a/src/common/bts.c b/src/common/bts.c index 9710a2c..d8a6ff2 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -194,7 +194,7 @@ osmo_rtp_init(tall_rtp_ctx); /* features implemented in 'common', available for all models */ - gsm_bts_set_feature(bts, BTS_FEAT_ETWS_PN); + osmo_bts_set_feature(bts->features, BTS_FEAT_ETWS_PN); rc = bts_model_init(bts); if (rc < 0) { @@ -258,7 +258,7 @@ tpp->ramp.step_interval_sec = 1; /* IF BTS model doesn't DSP/HW support MS Power Control Loop, enable osmo algo by default: */ - if (!gsm_bts_has_feature(trx->bts, BTS_FEAT_MS_PWR_CTRL_DSP)) + if (!bts_internal_flag_get(trx->bts, BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP)) trx->ms_pwr_ctl_soft = true; rc = bts_model_trx_init(trx); @@ -797,7 +797,7 @@ int bts_supports_cm(struct gsm_bts *bts, enum gsm_phys_chan_config pchan, enum gsm48_chan_mode cm) { - enum gsm_bts_features feature = _NUM_BTS_FEAT; + enum osmo_bts_features feature = _NUM_BTS_FEAT; /* We assume that signalling support is mandatory, * there is no BTS_FEAT_* definition to check that. */ @@ -845,7 +845,7 @@ } /* Check if the feature is supported by this BTS */ - if (gsm_bts_has_feature(bts, feature)) + if (osmo_bts_has_feature(bts->features, feature)) return 1; return 0; diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index e23b04b..c680001 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -92,24 +92,9 @@ return get_value_string(osmo_bts_variant_names, v); } -const struct value_string gsm_bts_features_descs[] = { - { BTS_FEAT_HSCSD, "HSCSD" }, - { BTS_FEAT_GPRS, "GPRS" }, - { BTS_FEAT_EGPRS, "EGPRS" }, - { BTS_FEAT_ECSD, "ECSD" }, - { BTS_FEAT_HOPPING, "Frequency Hopping" }, - { BTS_FEAT_MULTI_TSC, "Multi-TSC" }, - { BTS_FEAT_OML_ALERTS, "OML Alerts" }, - { BTS_FEAT_AGCH_PCH_PROP, "AGCH/PCH proportional allocation" }, - { BTS_FEAT_CBCH, "CBCH" }, - { BTS_FEAT_SPEECH_F_V1, "Fullrate speech V1" }, - { BTS_FEAT_SPEECH_H_V1, "Halfrate speech V1" }, - { BTS_FEAT_SPEECH_F_EFR, "Fullrate speech EFR" }, - { BTS_FEAT_SPEECH_F_AMR, "Fullrate speech AMR" }, - { BTS_FEAT_SPEECH_H_AMR, "Halfrate speech AMR" }, - { BTS_FEAT_ETWS_PN, "ETWS Primary Notification on PCH" }, - { BTS_FEAT_MS_PWR_CTRL_DSP, "DSP/HW based MS Power Control Loop" }, - { BTS_FEAT_MEAS_PAYLOAD_COMB, "Measurement and Payload data combined"}, +const struct value_string bts_impl_flag_desc[] = { + { BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP, "DSP/HW based MS Power Control Loop" }, + { BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB, "Measurement and Payload data combined" }, { 0, NULL } }; diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 84d4859..dad1b49 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -757,8 +757,8 @@ break; case PRIM_INFO_MEAS: /* We should never get an INFO_IND with PRIM_INFO_MEAS - * when BTS_FEAT_MEAS_PAYLOAD_COMB is enabled */ - if (gsm_bts_has_feature(trx->bts, BTS_FEAT_MEAS_PAYLOAD_COMB)) + * when BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB is set */ + if (bts_internal_flag_get(trx->bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB)) OSMO_ASSERT(false); process_l1sap_meas_data(trx, l1sap, PRIM_MPH_INFO); @@ -1279,7 +1279,7 @@ /* The ph_data_param contained in the l1sap primitive may contain * measurement data. If this data is present, forward it for * processing */ - if (gsm_bts_has_feature(trx->bts, BTS_FEAT_MEAS_PAYLOAD_COMB)) + if (bts_internal_flag_get(trx->bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB)) process_l1sap_meas_data(trx, l1sap, PRIM_PH_DATA); if (ts_is_pdch(&trx->ts[tn])) { @@ -1399,7 +1399,7 @@ /* The ph_tch_param contained in the l1sap primitive may contain * measurement data. If this data is present, forward it for * processing */ - if (gsm_bts_has_feature(trx->bts, BTS_FEAT_MEAS_PAYLOAD_COMB)) + if (bts_internal_flag_get(trx->bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB)) process_l1sap_meas_data(trx, l1sap, PRIM_TCH); msgb_pull_to_l2(msg); diff --git a/src/common/vty.c b/src/common/vty.c index 1d74b36..3dfd387 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -766,7 +766,7 @@ struct gsm_bts_trx *trx = vty->index; bool soft = !strcmp(argv[0], "osmo"); - if (!soft && !gsm_bts_has_feature(trx->bts, BTS_FEAT_MS_PWR_CTRL_DSP)) { + if (!soft && !bts_internal_flag_get(trx->bts, BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP)) { /* NOTE: osmo-bts-trx used to have its own (low-level) MS Power Control loop, which * has been ripped out in favour of the common implementation. Configuration files * may still contain 'dsp', so let's be tolerant and override 'dsp' by 'osmo'. */ @@ -827,13 +827,27 @@ static void bts_dump_vty_features(struct vty *vty, struct gsm_bts *bts) { unsigned int i; - bool no_features = true; + bool no_features; + vty_out(vty, " Features:%s", VTY_NEWLINE); - for (i = 0; i < _NUM_BTS_FEAT; i++) { - if (gsm_bts_has_feature(bts, i)) { + 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", get_value_string(gsm_bts_features_descs, i), VTY_NEWLINE); + vty_out(vty, "%-40s%s", osmo_bts_feature_name(i), VTY_NEWLINE); + no_features = false; + } + } + + if (no_features) + vty_out(vty, " (not available)%s", VTY_NEWLINE); + + vty_out(vty, " BTS model specific (internal) flags:%s", VTY_NEWLINE); + + for (i = 0, no_features = true; i < sizeof(bts->flags) * 8; i++) { + if (bts_internal_flag_get(bts, i)) { + vty_out(vty, " %03u ", i); + vty_out(vty, "%-40s%s", get_value_string(bts_impl_flag_desc, i), VTY_NEWLINE); no_features = false; } } diff --git a/src/osmo-bts-litecell15/main.c b/src/osmo-bts-litecell15/main.c index ef02135..b48d3ec 100644 --- a/src/osmo-bts-litecell15/main.c +++ b/src/osmo-bts-litecell15/main.c @@ -110,16 +110,17 @@ exit(23); } - gsm_bts_set_feature(bts, BTS_FEAT_GPRS); - gsm_bts_set_feature(bts, BTS_FEAT_EGPRS); - gsm_bts_set_feature(bts, BTS_FEAT_OML_ALERTS); - gsm_bts_set_feature(bts, BTS_FEAT_AGCH_PCH_PROP); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_EFR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_MS_PWR_CTRL_DSP); + osmo_bts_set_feature(bts->features, BTS_FEAT_GPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_EGPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_OML_ALERTS); + osmo_bts_set_feature(bts->features, BTS_FEAT_AGCH_PCH_PROP); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_EFR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); + + bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP); bts_model_vty_init(bts); diff --git a/src/osmo-bts-oc2g/main.c b/src/osmo-bts-oc2g/main.c index f9bb0cb..a0f4d4a 100644 --- a/src/osmo-bts-oc2g/main.c +++ b/src/osmo-bts-oc2g/main.c @@ -111,16 +111,17 @@ exit(23); } - gsm_bts_set_feature(bts, BTS_FEAT_GPRS); - gsm_bts_set_feature(bts, BTS_FEAT_EGPRS); - gsm_bts_set_feature(bts, BTS_FEAT_OML_ALERTS); - gsm_bts_set_feature(bts, BTS_FEAT_AGCH_PCH_PROP); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_EFR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_MS_PWR_CTRL_DSP); + osmo_bts_set_feature(bts->features, BTS_FEAT_GPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_EGPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_OML_ALERTS); + osmo_bts_set_feature(bts->features, BTS_FEAT_AGCH_PCH_PROP); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_EFR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); + + bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP); bts_model_vty_init(bts); diff --git a/src/osmo-bts-octphy/l1_if.c b/src/osmo-bts-octphy/l1_if.c index fb62f8b..0adc8fe 100644 --- a/src/osmo-bts-octphy/l1_if.c +++ b/src/osmo-bts-octphy/l1_if.c @@ -779,13 +779,13 @@ /* FIXME: what is the nominal transmit power of the PHY/board? */ bts->c0->nominal_power = 15; - gsm_bts_set_feature(bts, BTS_FEAT_GPRS); - gsm_bts_set_feature(bts, BTS_FEAT_OML_ALERTS); + osmo_bts_set_feature(bts->features, BTS_FEAT_GPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_OML_ALERTS); #if defined(cOCTVC1_GSM_LOGICAL_CHANNEL_COMBINATION_ENUM_FCCH_SCH_BCCH_CCCH_SDCCH4_CBCH_SACCHC4) && defined(cOCTVC1_GSM_LOGICAL_CHANNEL_COMBINATION_ENUM_SDCCH8_CBCH_SACCHC8) - gsm_bts_set_feature(bts, BTS_FEAT_CBCH); + osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); #endif - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); bts_model_vty_init(bts); diff --git a/src/osmo-bts-sysmo/main.c b/src/osmo-bts-sysmo/main.c index 44c6d5d..51a14c7 100644 --- a/src/osmo-bts-sysmo/main.c +++ b/src/osmo-bts-sysmo/main.c @@ -76,18 +76,19 @@ exit(23); } - gsm_bts_set_feature(bts, BTS_FEAT_CBCH); - gsm_bts_set_feature(bts, BTS_FEAT_GPRS); - gsm_bts_set_feature(bts, BTS_FEAT_EGPRS); - gsm_bts_set_feature(bts, BTS_FEAT_OML_ALERTS); - gsm_bts_set_feature(bts, BTS_FEAT_AGCH_PCH_PROP); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_EFR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_MS_PWR_CTRL_DSP); - gsm_bts_set_feature(bts, BTS_FEAT_MEAS_PAYLOAD_COMB); + osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); + osmo_bts_set_feature(bts->features, BTS_FEAT_GPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_EGPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_OML_ALERTS); + osmo_bts_set_feature(bts->features, BTS_FEAT_AGCH_PCH_PROP); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_EFR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); + + bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP); + bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB); bts_model_vty_init(bts); diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 3ccd597..bd3d0cb 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -110,16 +110,17 @@ * through TRXC. */ bts->c0->nominal_power = 23; - gsm_bts_set_feature(bts, BTS_FEAT_GPRS); - gsm_bts_set_feature(bts, BTS_FEAT_EGPRS); - gsm_bts_set_feature(bts, BTS_FEAT_OML_ALERTS); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_EFR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_CBCH); - gsm_bts_set_feature(bts, BTS_FEAT_MEAS_PAYLOAD_COMB); + osmo_bts_set_feature(bts->features, BTS_FEAT_GPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_EGPRS); + osmo_bts_set_feature(bts->features, BTS_FEAT_OML_ALERTS); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_EFR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); + + bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB); bts_model_vty_init(bts); diff --git a/src/osmo-bts-virtual/main.c b/src/osmo-bts-virtual/main.c index a6fc290..fb5d357 100644 --- a/src/osmo-bts-virtual/main.c +++ b/src/osmo-bts-virtual/main.c @@ -62,13 +62,13 @@ bts->variant = BTS_OSMO_VIRTUAL; bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3); - gsm_bts_set_feature(bts, BTS_FEAT_OML_ALERTS); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_EFR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_CBCH); + osmo_bts_set_feature(bts->features, BTS_FEAT_OML_ALERTS); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_EFR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); bts_model_vty_init(bts); diff --git a/tests/misc/misc_test.c b/tests/misc/misc_test.c index c4d3a59..439d6b3 100644 --- a/tests/misc/misc_test.c +++ b/tests/misc/misc_test.c @@ -166,10 +166,10 @@ bts = gsm_bts_alloc(ctx, 0); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_V1); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_F_AMR); - gsm_bts_set_feature(bts, BTS_FEAT_SPEECH_H_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_V1); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); + osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); OSMO_ASSERT(bts_supports_cm (bts, GSM_PCHAN_TCH_F, GSM48_CMODE_SPEECH_V1) == 1); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf792d02323bb73e3b8d46384c7890cb1eb4731e Gerrit-Change-Number: 18591 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 18:03:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 18:03:49 +0000 Subject: Change in osmo-gsm-tester[master]: EventLoop: Fix log error "Origin parent loop" during wait() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18777 ) Change subject: EventLoop: Fix log error "Origin parent loop" during wait() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18777 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: I0511b9f7bc59e3c7f2269ff3155d0c95db58d063 Gerrit-Change-Number: 18777 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 18:03: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 Jun 10 18:03:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 18:03:52 +0000 Subject: Change in osmo-gsm-tester[master]: EventLoop: Fix log error "Origin parent loop" during wait() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18777 ) Change subject: EventLoop: Fix log error "Origin parent loop" during wait() ...................................................................... EventLoop: Fix log error "Origin parent loop" during wait() Setting the log.ctx manually is not needed anymore and it's actually harmful since all palces where it was used, a log.Origin already in path was being passed, causing a origin loop. Change-Id: I0511b9f7bc59e3c7f2269ff3155d0c95db58d063 --- M src/osmo_gsm_tester/core/event_loop.py M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/bts_nanobts.py M src/osmo_gsm_tester/obj/bts_osmotrx.py M src/osmo_gsm_tester/obj/esme.py M src/osmo_gsm_tester/obj/ms_ofono.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/obj/osmocon.py M src/osmo_gsm_tester/obj/powersupply.py M src/osmo_gsm_tester/obj/powersupply_sispm.py M src/osmo_gsm_tester/testenv.py 11 files changed, 29 insertions(+), 31 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/event_loop.py b/src/osmo_gsm_tester/core/event_loop.py index fe88ef4..4092a66 100644 --- a/src/osmo_gsm_tester/core/event_loop.py +++ b/src/osmo_gsm_tester/core/event_loop.py @@ -85,9 +85,8 @@ self.gctx.iteration(may_block) self.deferred_handling.handle_queue() - def wait_no_raise(self, log_obj, condition, condition_args, condition_kwargs, timeout, timestep): + def wait_no_raise(self, condition, condition_args, condition_kwargs, timeout, timestep): if not timeout or timeout < 0: - self = log_obj raise log.Error('wait() *must* time out at some point.', timeout=timeout) if timestep < 0.1: timestep = 0.1 @@ -105,14 +104,13 @@ success = wait_req.condition_ack return success - def wait(self, log_obj, condition, *condition_args, timeout=300, timestep=1, **condition_kwargs): - if not self.wait_no_raise(log_obj, condition, condition_args, condition_kwargs, timeout, timestep): - log.ctx(log_obj) + def wait(self, condition, *condition_args, timeout=300, timestep=1, **condition_kwargs): + if not self.wait_no_raise(condition, condition_args, condition_kwargs, timeout, timestep): raise log.Error('Wait timeout', condition=condition, timeout=timeout, timestep=timestep) - def sleep(self, log_obj, seconds): + def sleep(self, seconds): assert seconds > 0. - self.wait_no_raise(log_obj, lambda: False, [], {}, timeout=seconds, timestep=seconds) + self.wait_no_raise(lambda: False, [], {}, timeout=seconds, timestep=seconds) MainLoop = EventLoop() diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 33ae69a..8954674 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -347,7 +347,7 @@ return self.result is not None def wait(self, timeout=300): - MainLoop.wait(self, self.terminated, timeout=timeout) + MainLoop.wait(self.terminated, timeout=timeout) def stdin_write(self, cmd): ''' diff --git a/src/osmo_gsm_tester/obj/bts_nanobts.py b/src/osmo_gsm_tester/obj/bts_nanobts.py index a818a8f..03730a6 100644 --- a/src/osmo_gsm_tester/obj/bts_nanobts.py +++ b/src/osmo_gsm_tester/obj/bts_nanobts.py @@ -139,7 +139,7 @@ # Let some time for BTS to restart. It takes much more than 20 secs, and # this way we make sure we don't catch responses in abisip-find prior to # BTS restarting. - MainLoop.sleep(self, 20) + MainLoop.sleep(20) self.dbg('Starting to connect id %d trx %d to' % (unitid, trx_i), self.bsc) ipfind = AbisIpFind(self.testenv, self.run_dir, local_bind_ip, 'postconf') @@ -150,7 +150,7 @@ else: self.dbg('nanoBTS id %d trx %d no need to change OML IP (%s) and restart' % (unitid, trx_i, running_oml_ip)) - MainLoop.wait(self, self.bsc.bts_is_connected, self, timeout=600) + MainLoop.wait(self.bsc.bts_is_connected, self, timeout=600) self.log('nanoBTS connected to BSC') #According to roh, it can be configured to use a static IP in a permanent way: @@ -239,11 +239,11 @@ return self.get_line_by_ip(ipaddr) is not None def wait_bts_ready(self, ipaddr): - MainLoop.wait(self, self.bts_ready, ipaddr) + MainLoop.wait(self.bts_ready, ipaddr) # There's a period of time after boot in which nanobts answers to # abisip-find but tcp RSTs ipacces-config conns. Let's wait in here a # bit more time to avoid failing after stating the BTS is ready. - MainLoop.sleep(self, 2) + MainLoop.sleep(2) class IpAccessConfig(log.Origin): testenv = None diff --git a/src/osmo_gsm_tester/obj/bts_osmotrx.py b/src/osmo_gsm_tester/obj/bts_osmotrx.py index 0eeef49..8eed8cf 100644 --- a/src/osmo_gsm_tester/obj/bts_osmotrx.py +++ b/src/osmo_gsm_tester/obj/bts_osmotrx.py @@ -173,7 +173,7 @@ self.trx = OsmoTrx.get_instance_by_type(self.get_osmo_trx_type(), self.testenv, self.conf_for_osmotrx()) self.trx.start(keepalive) self.log('Waiting for %s to start up...' % self.trx.name()) - MainLoop.wait(self, self.trx.trx_ready) + MainLoop.wait(self.trx.trx_ready) self.inst = util.Dir(os.path.abspath(self.testenv.suite().trial().get_inst('osmo-bts'))) lib = self.inst.child('lib') @@ -374,7 +374,7 @@ break keep_trying = keep_trying - 1 self.log('Configuring SC5 TRX failed, retrying %d more times' % keep_trying) - MainLoop.sleep(self, 5) + MainLoop.sleep(5) if keep_trying == 0: raise log.Error('Failed configuring SC5!') self.ready = True diff --git a/src/osmo_gsm_tester/obj/esme.py b/src/osmo_gsm_tester/obj/esme.py index 13e1bba..cd416ab 100644 --- a/src/osmo_gsm_tester/obj/esme.py +++ b/src/osmo_gsm_tester/obj/esme.py @@ -190,7 +190,7 @@ umref, self.pdus_pending = self.sms_send(sms_obj, mode, receipt) self.dbg('pdus_pending:', self.pdus_pending) self.client.set_message_sent_handler(self._process_pdus_pending) - MainLoop.wait(self, lambda: len(self.pdus_pending) == 0, timeout=10) + MainLoop.wait(lambda: len(self.pdus_pending) == 0, timeout=10) return umref finally: self.client.set_message_sent_handler(old_func) diff --git a/src/osmo_gsm_tester/obj/ms_ofono.py b/src/osmo_gsm_tester/obj/ms_ofono.py index cec6824..b604325 100644 --- a/src/osmo_gsm_tester/obj/ms_ofono.py +++ b/src/osmo_gsm_tester/obj/ms_ofono.py @@ -317,7 +317,7 @@ self.log('Setting', name, val) self.interface(iface).SetProperty(name, Variant('b', val)) - MainLoop.wait(self, self.property_is, name, bool_val) + MainLoop.wait(self.property_is, name, bool_val) def set_powered(self, powered=True): self.set_bool('Powered', powered) @@ -461,10 +461,10 @@ if not self.is_powered(): self.set_powered() # wait for SimManager iface to appear after we power on - MainLoop.wait(self, self.dbus.has_interface, I_SIMMGR, timeout=10) + MainLoop.wait(self.dbus.has_interface, I_SIMMGR, timeout=10) simmgr = self.dbus.interface(I_SIMMGR) # If properties are requested quickly, it may happen that Sim property is still not there. - MainLoop.wait(self, lambda: simmgr.GetProperties().get('SubscriberIdentity', None) is not None, timeout=10) + MainLoop.wait(lambda: simmgr.GetProperties().get('SubscriberIdentity', None) is not None, timeout=10) props = simmgr.GetProperties() self.dbg('got SIM properties', props) self._imsi = props.get('SubscriberIdentity', None) @@ -606,7 +606,7 @@ self.set_powered(False) req_ifaces = self._required_ifaces() for iface in req_ifaces: - MainLoop.wait(self, lambda: not self.dbus.has_interface(iface), timeout=10) + MainLoop.wait(lambda: not self.dbus.has_interface(iface), timeout=10) def power_cycle(self): 'Power the modem and put it online, power cycle it if it was already on' @@ -618,7 +618,7 @@ self.dbg('Powering on') self.set_powered() self.set_online() - MainLoop.wait(self, self.dbus.has_interface, *req_ifaces, timeout=10) + MainLoop.wait(self.dbus.has_interface, *req_ifaces, timeout=10) def connect(self, mcc_mnc=None): 'Connect to MCC+MNC' @@ -671,7 +671,7 @@ # Activate can only be called after we are attached ctx.SetProperty('Active', Variant('b', True)) - MainLoop.wait(self, lambda: ctx.GetProperties()['Active'] == True) + MainLoop.wait(lambda: ctx.GetProperties()['Active'] == True) self.log('context activated', path=ctx_path, apn=apn, user=user, properties=ctx.GetProperties()) return ctx_path @@ -679,7 +679,7 @@ self.dbg('deactivate_context', path=ctx_id) ctx = systembus_get(ctx_id) ctx.SetProperty('Active', Variant('b', False)) - MainLoop.wait(self, lambda: ctx.GetProperties()['Active'] == False) + MainLoop.wait(lambda: ctx.GetProperties()['Active'] == False) self.dbg('deactivate_context active=false, removing', path=ctx_id) connmgr = self.dbus.interface(I_CONNMGR) connmgr.RemoveContext(ctx_id) @@ -770,7 +770,7 @@ else: caller_msisdn = str(caller_msisdn_or_modem) self.dbg('Waiting for incoming call from:', caller_msisdn) - MainLoop.wait(self, lambda: self._find_call_msisdn_state(caller_msisdn, 'incoming') is not None, timeout=timeout) + MainLoop.wait(lambda: self._find_call_msisdn_state(caller_msisdn, 'incoming') is not None, timeout=timeout) return self._find_call_msisdn_state(caller_msisdn, 'incoming') def call_answer(self, call_id): diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 0aad954..3aa6b0a 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -123,7 +123,7 @@ def sleep_after_stop(self): # Only sleep once if self.stop_sleep_time > 0: - MainLoop.sleep(self, self.stop_sleep_time) + MainLoop.sleep(self.stop_sleep_time) self.stop_sleep_time = 0 def stop(self): diff --git a/src/osmo_gsm_tester/obj/osmocon.py b/src/osmo_gsm_tester/obj/osmocon.py index c37cf36..18ee382 100644 --- a/src/osmo_gsm_tester/obj/osmocon.py +++ b/src/osmo_gsm_tester/obj/osmocon.py @@ -89,7 +89,7 @@ self.testenv.remember_to_stop(self.process) self.process.launch() self.log('Waiting for osmocon to be up and running') - MainLoop.wait(self, os.path.exists, self.l2_socket_path()) + MainLoop.wait(os.path.exists, self.l2_socket_path()) def running(self): return not self.process.terminated() diff --git a/src/osmo_gsm_tester/obj/powersupply.py b/src/osmo_gsm_tester/obj/powersupply.py index bc7c0e3..7715a46 100644 --- a/src/osmo_gsm_tester/obj/powersupply.py +++ b/src/osmo_gsm_tester/obj/powersupply.py @@ -47,7 +47,7 @@ def power_cycle(self, sleep=0): """Turns off the device, waits N.N seconds, then turn on the device.""" self.power_set(False) - MainLoop.sleep(self, sleep) + MainLoop.sleep(sleep) self.power_set(True) def get_instance_by_type(pwsupply_type, pwsupply_opt): diff --git a/src/osmo_gsm_tester/obj/powersupply_sispm.py b/src/osmo_gsm_tester/obj/powersupply_sispm.py index 0b1ad07..4fec83e 100644 --- a/src/osmo_gsm_tester/obj/powersupply_sispm.py +++ b/src/osmo_gsm_tester/obj/powersupply_sispm.py @@ -48,7 +48,7 @@ except USBError as e: if e.errno == 16 or e.errno==110: self.log('skip usb error, retry', repr(e)) - MainLoop.sleep(self, 0.1) + MainLoop.sleep(0.1) continue raise e diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 7ca854b..4709b4c 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -345,13 +345,13 @@ log = test.log dbg = test.dbg err = test.err - wait = lambda *args, **kwargs: MainLoop.wait(suite_run, *args, **kwargs) - wait_no_raise = lambda *args, **kwargs: MainLoop.wait_no_raise(suite_run, *args, **kwargs) - sleep = lambda *args, **kwargs: MainLoop.sleep(suite_run, *args, **kwargs) + tenv = TestEnv(suite_run, _test) + wait = MainLoop.wait + wait_no_raise = MainLoop.wait_no_raise + sleep = MainLoop.sleep poll = MainLoop.poll Sms = Sms_class process = process_module - tenv = TestEnv(suite_run, _test) prompt = tenv.prompt return tenv -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18777 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: I0511b9f7bc59e3c7f2269ff3155d0c95db58d063 Gerrit-Change-Number: 18777 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 Wed Jun 10 18:08:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 18:08:14 +0000 Subject: Change in osmo-pcu[master]: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP 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/+/17708 to look at the new patch set (#2). Change subject: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP ...................................................................... bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c --- M src/bts.cpp M src/bts.h M src/pcu_vty.c 3 files changed, 19 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/08/17708/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c Gerrit-Change-Number: 17708 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 Wed Jun 10 18:08:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 18:08:14 +0000 Subject: Change in osmo-pcu[master]: bts: fix send_gsmtap_rach(): properly pack 11 bit RA In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 to look at the new patch set (#2). Change subject: bts: fix send_gsmtap_rach(): properly pack 11 bit RA ...................................................................... bts: fix send_gsmtap_rach(): properly pack 11 bit RA According to 3GPP TS 44.004, section 7.4a, two alternative RACH block formats are specified: 8 bit (1 octet) and 11 bit. The bit order is LSB (right to left), byte order is MSB. In PCUIF RACH.ind structure (see gsm_pcu_if_rach_ind) we use a field of type uint16_t to store RA values regardles of the block format. Thus when packing it to bytes, we cannot just cast uint16_t* to uint8_t*, we need to do some bit shifting. Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb --- M src/bts.cpp 1 file changed, 14 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/17709/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb Gerrit-Change-Number: 17709 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 18:14:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 18:14:10 +0000 Subject: Change in osmo-pcu[master]: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17708 ) Change subject: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP ...................................................................... Patch Set 2: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/17708/2/src/bts.h File src/bts.h: https://gerrit.osmocom.org/c/osmo-pcu/+/17708/2/src/bts.h at 340 PS2, Line 340: void send_gsmtap_rach(const struct rach_ind_params *rip, You could keep categ as first param, like in the other 2 functions. https://gerrit.osmocom.org/c/osmo-pcu/+/17708/2/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/17708/2/src/bts.cpp at 437 PS2, Line 437: send_gsmtap(categ, true, rip->trx_nr, rip->ts_nr, gsmtap_chan, I'd really prefer it calling send_gsmtap_meas directly in order to avoid yet another function call: send_gsmtap_rach -> send_gsmtap -> send_gsmtap_meas Otherwise it's already confusing. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c Gerrit-Change-Number: 17708 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 18:14: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 Jun 10 18:15:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 18:15:21 +0000 Subject: Change in osmo-pcu[master]: bts: fix send_gsmtap_rach(): properly pack 11 bit RA In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17709 ) Change subject: bts: fix send_gsmtap_rach(): properly pack 11 bit RA ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb Gerrit-Change-Number: 17709 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 18:15: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 Jun 10 18:30:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 18:30:03 +0000 Subject: Change in osmo-pcu[master]: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/17708 to look at the new patch set (#3). Change subject: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP ...................................................................... bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c --- M src/bts.cpp M src/bts.h M src/pcu_vty.c 3 files changed, 18 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/08/17708/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c Gerrit-Change-Number: 17708 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 18:30:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 18:30:03 +0000 Subject: Change in osmo-pcu[master]: bts: fix send_gsmtap_rach(): properly pack 11 bit RA In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 to look at the new patch set (#3). Change subject: bts: fix send_gsmtap_rach(): properly pack 11 bit RA ...................................................................... bts: fix send_gsmtap_rach(): properly pack 11 bit RA According to 3GPP TS 44.004, section 7.4a, two alternative RACH block formats are specified: 8 bit (1 octet) and 11 bit. The bit order is LSB (right to left), byte order is MSB. In PCUIF RACH.ind structure (see gsm_pcu_if_rach_ind) we use a field of type uint16_t to store RA values regardles of the block format. Thus when packing it to bytes, we cannot just cast uint16_t* to uint8_t*, we need to do some bit shifting. Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb --- M src/bts.cpp 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/17709/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb Gerrit-Change-Number: 17709 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 Wed Jun 10 18:50:47 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 18:50:47 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 10: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18506/10/include/osmocom/gsm/gsm23236.h File include/osmocom/gsm/gsm23236.h: https://gerrit.osmocom.org/c/libosmocore/+/18506/10/include/osmocom/gsm/gsm23236.h at 35 PS10, Line 35: osmo_nri_ranges Maybe 'osmo_nri_range_list', so the name reflects that it's a _list_ of ranges. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 10 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 18:50: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 Wed Jun 10 18:51:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 18:51:10 +0000 Subject: Change in osmo-pcu[master]: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17708 ) Change subject: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c Gerrit-Change-Number: 17708 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 18:51:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 18:51:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 18:51:26 +0000 Subject: Change in osmo-pcu[master]: bts: fix send_gsmtap_rach(): properly pack 11 bit RA In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17709 ) Change subject: bts: fix send_gsmtap_rach(): properly pack 11 bit RA ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb Gerrit-Change-Number: 17709 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 18:51:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Jun 10 18:54:39 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 10 Jun 2020 18:54:39 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee12c829970a_642f2b139387c5e0109565a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1217s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1217s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1218s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1219s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1219s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1219s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1220s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1220s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1221s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1221s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1221s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1221s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1221s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1221s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1221s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1221s] ~~^ [ 1221s] %d [ 1221s] cc1: some warnings being treated as errors [ 1221s] ninja: build stopped: subcommand failed. [ 1221s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1221s] make: *** [debian/rules:11: binary] Error 1 [ 1221s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1221s] ### VM INTERACTION START ### [ 1224s] [ 1192.490491] sysrq: SysRq : Power Off [ 1224s] [ 1192.493354] reboot: Power down [ 1225s] ### VM INTERACTION END ### [ 1225s] [ 1225s] armbuild10 failed "build open5gs_1.2.5.20200610.dsc" at Wed Jun 10 18:54:36 UTC 2020. [ 1225s] -- 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 Jun 10 18:57:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 18:57:11 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 6: hey wait, where did all my comments go? Seems you changed the Change-Id of this patch. Initially this was: https://gerrit.osmocom.org/c/osmo-mgw/+/18372 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 18:57: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 Jun 10 19:25:43 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Wed, 10 Jun 2020 19:25:43 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 3: > Patch Set 3: Code-Review-2 > > > Patch Set 3: > > > > Otherwise if you think there's a bug I can have a look at it. > > I just tested it and it's working fine here: > > """ > enb: > - label: srsENB-zmq > type: srsenb > rf_dev_type: zmq > rf_dev_args: auto > run_node: > run_type: ssh > run_addr: 10.42.42.117 > ssh_user: jenkins > ssh_addr: 10.42.42.116 > """ > > """" > $ ss -l -n -p | grep enb -B1 > u_dgr UNCONN 0 0 * 1289 * 0 > udp UNCONN 0 0 10.42.42.117:2152 *:* users:(("srsenb",pid=60591,fd=15)) > -- > tcp LISTEN 0 5 172.16.0.1:5003 *:* users:(("iperf3",pid=60753,fd=3)) > tcp LISTEN 0 100 10.42.42.117:2000 *:* users:(("srsenb",pid=60591,fd=10)) > """" > > So this patch is indeed not needed and can be abandoned. To give some context, I've recently changed the resources.conf to run eNB and EPC on the same machine. And to run srsUE on it's own machine. But for the eNB to connect to the EPC I need gtp_bind_addr and s1c_bind_addr to be the same. See here: [enb] # need hex value here for enb_id due to bug: https://github.com/srsLTE/srsLTE/issues/485 enb_id = 0x19b mcc = 901 mnc = 70 mme_addr = 127.0.1.100 gtp_bind_addr = 127.0.1.1 s1c_bind_addr = 127.0.1.1 n_prb = 100 tm = 1 nof_ports = 1 You are right that if I put just "addr" as s1c_bind_addr and set the run_addr to 127.0.1.1, I can get the above mentioned config and the eNB attached to the EPC. But the same run_addr is also used for the ZMQ radio and this is then not working. Perhaps UHD works. This is the stdout of srsUE: Reading configuration file /osmo-gsm-tester-srsue/srsue/srsue.conf... Built in Release mode using commit 34bc192f7 on branch build_branch. Opening 1 channels in RF device=zmq with args=tx_port0=tcp://10.12.1.206:2001,tx_port1=tcp://10.12.1.206:2003,tx_port2=tcp://10.12.1.206:2005,tx_port3=tcp://10.12.1.206:2007,rx_port0=tcp://127.0.1.1:2000,rx_port1=tcp://127.0.1.1:2002,rx_port2=tcp://127.0.1.1:2004,rx_port3=tcp://127.0.1.1:2006,rx_freq0=2630e6,tx_freq0=2510e6,id=ue,base_srate=23040000 CHx base_srate=23040000 CHx id=ue Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation) CH0 rx_port=tcp://127.0.1.1:2000 CH0 rx_freq=2630e6 CH0 tx_port=tcp://10.12.1.206:2001 CH0 tx_freq=2510e6 You see that ZMQ radio tries to receive from this localhost address, but it should receive from the external IP. So in summary, this patch is needed and cant be deleted. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 19:25: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 Wed Jun 10 19:27:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 19:27:24 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 7: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/gb/gprs_bssgp.c at 1178 PS7, Line 1178: return -EINVAL; Would be nice to print a NOTICE here. https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/utils.c File src/utils.c: https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/utils.c at 157 PS7, Line 157: start_nibble < 0 Please submit as a separate change. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 19:27: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 Jun 10 19:32:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 10 Jun 2020 19:32:20 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/utils.c File src/utils.c: https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/utils.c at 194 PS7, Line 194: osmo_str2bcd JFYI, we already have gsm48_decode_bcd_number2() doing something similar. Maybe in a separate change it could start using this function. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 19:32:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 19:41:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 19:41:40 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 6: Code-Review+1 (13 comments) Take a look if any of my remarks make sense, but none of this blocks. I agree with laforge that keeping stats per-trunk is more desirable and also seems to be very easy here, just put a struct mgcp_ratectr in the trunk instead of the cfg? What's the rationale for having only global stats? https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/include/osmocom/mgcp/mgcp.h at 251 PS6, Line 251: * health */ (it seems to be your personal style to prefer vertical comments, so I won't complain. But let me say here once, me personally, I'd prefer using the 120 char width we have agreed on -- especially if it's a new line for only one word.) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 49 PS6, Line 49: endp->cfg = trunk->cfg; > Not sure if whitespace at start of this line is correct. (I don't see anything wrong) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 93 PS6, Line 93: * the same for all endpoints, so no ambiguity is introduced) */ would be nice to define "chop it off": write the epname without the prefix back to the memory pointed at by epname. https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 113 PS6, Line 113: return; maybe default: OSMO_ASSERT(false); https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 118 PS6, Line 118: * it off */ also would be nice to define "chop it off" here: truncate epname by writing a '\0' char where the suffix starts. https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 136 PS6, Line 136: * and not needed to identify the endpoint on the trunk */ I don't understand "all information that is already evaluated". Maybe "return the epname stripped of prefix and suffix and converted to lower case"? Also would be nice to indicate the expected buf size of epname_stripped. https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 140 PS6, Line 140: osmo_str_tolower_buf(epname_stripped, strlen(epname), epname); the second argument is the memory length of epname_stripped to safeguard against writing past its end, regardless of the input strlen. Passing strlen(epname) is breaking the purpose of that len. Since there is no explicit epname_stripped_buflen arg, IIUC this should be MGCP_ENDPOINT_MAXLEN? https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 181 PS6, Line 181: endp->wildcarded_req = false; this function is called "find_...", could be a bad idea to also modify the endp here? Though I must admit that I'm not sure what wildcarded_req does. (then you could also add const to the 'trunk' arg) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 195 PS6, Line 195: struct mgcp_trunk *trunk) const struct mgcp_trunk ? https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 210 PS6, Line 210: trunk->trunk_nr, endp->name); I think set endp->wildcarded = true here? https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_endp.c at 225 PS6, Line 225: if (endp) { and wildcarded = false here? https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_msg.c File src/libosmo-mgcp/mgcp_msg.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_msg.c at 234 PS6, Line 234: line, endp->name); very good to see the "0x1" endp naming go away! https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/6/src/libosmo-mgcp/mgcp_trunk.c at 143 PS6, Line 143: struct mgcp_trunk *mgcp_trunk_by_name(const char *epname, struct mgcp_config *cfg) if this is a new function: the mgcp_trunk_by_num() has cfg as the first argument, better also do that here. (If this is just moving an old function, then rather keep it inconsistent I guess.) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 19:41:40 +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 Jun 10 19:52:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 19:52:23 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 10: Code-Review-1 (9 comments) (marking -1 so you have a chance to read the comments before merging) https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 557 PS10, Line 557: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk)? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 572 PS10, Line 572: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk)? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 582 PS10, Line 582: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk)? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 620 PS10, Line 620: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk)? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 631 PS10, Line 631: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk)? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 642 PS10, Line 642: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk)? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 653 PS10, Line 653: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); ... https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 880 PS10, Line 880: continue; so, where/how is the virtual trunk written to config? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 891 PS10, Line 891: vty_out(vty, " rtp keep-alive %d%s", ...especially since these commands apparently only work for the virtual trunk, as mentioned above? Am I missing something? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 19:52: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 Jun 10 20:00:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 20:00:32 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... Patch Set 4: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/include/osmocom/mgcp_client/mgcp_common.h File include/osmocom/mgcp_client/mgcp_common.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/include/osmocom/mgcp_client/mgcp_common.h at 5 PS4, Line 5: This is an automatic copy of I get the feeling you added this file by accident https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/src/libosmo-mgcp/mgcp_endp.c at 51 PS4, Line 51: { 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; (interesting magic, maybe a comment pointing at where this comes from would be nice) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 10 Jun 2020 20:00: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 Wed Jun 10 20:05:28 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 20:05:28 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 2: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c at 138 PS2, Line 138: prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; wait, what, sizeof() works on compile time char constants? wow. I'd be more comfortable with strlen(). https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c at 140 PS2, Line 140: return mgcp_trunk_by_num(cfg, atoi(epname+prefix_len)); this needs validity checks. What if atoi() returns negative? If atoi() cannot convert, it returns 0, the virtual trunk? Much rather use strtol() with all its error checking in place. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 20:05:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 20:09:36 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 10 Jun 2020 20:09:36 +0000 Subject: Change in osmo-mgw[master]: endp: add typeset for e1-endpoints In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18755 ) Change subject: endp: add typeset for e1-endpoints ...................................................................... Patch Set 1: Code-Review-1 (4 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/include/osmocom/mgcp/mgcp_internal.h File include/osmocom/mgcp/mgcp_internal.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/include/osmocom/mgcp/mgcp_internal.h at 277 PS1, Line 277: void mgcp_cleanup_e1_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn); personally I'd put the e1 functions in a separate block, not interleaved in the rtp ones. https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_endp.c at 37 PS1, Line 37: .e1.cleanup_cb = mgcp_cleanup_e1_bridge_cb, (personally I'd write .e1 = { .max_conns = 1, .dispatch... } ) https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_network.c at 1332 PS1, Line 1332: * \param[in] proto protocol (MGCP_CONN_TYPE_RTP or MGCP_CONN_TYPE_RTCP) please explain how E1 and RTP / RTCP go together. They don't right? https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_network.c at 1368 PS1, Line 1368: * \returns 0 on success, -1 on ERROR. */ there is no return -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 Gerrit-Change-Number: 18755 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 10 Jun 2020 20:09:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 10 20:13:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 10 Jun 2020 20:13:27 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 4: So If I understand correctly, let's say you have: * machineA=10.42.42.10 * machineB=10.42.42.20 with srsUE running on machineA and srsENB and srsEPC on machineB. What would be wrong with using this setup? """ run_node: #epc - run_type: ssh run_addr: 10.42.42.20 ssh_user: jenkins ssh_addr: 10.42.42.20 enb: - label: srsENB-zmq type: srsenb rf_dev_type: zmq rf_dev_args: auto gtp_bind_addr: 127.0.1.1 run_node: run_type: ssh run_addr: 10.42.42.20 ssh_user: jenkins ssh_addr: 10.42.42.20 - label: srsUE-zmq_1 type: srsue rf_dev_type: zmq rf_dev_args: auto imsi: '001010123456789' ki: '00112233445566778899aabbccddeeff' auth_algo: 'xor' features: ['4g'] run_node: run_type: ssh run_addr: 10.42.42.10 ssh_user: jenkins ssh_addr: 10.42.42.10 """ UE<->ENB over zmq: 10.42.42.10 <-> 10.42.42.20 (not same port, anyway we use different IP) ENB<->EPC over S1: 10.42.42.20 <-> 10.42.42.20 (not same port, fine with reusing IP) ENB<->EPC over GTP: 127.0.1.1 <-> 10.42.42.20 (different IP, gtp port must be same in both) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Wed, 10 Jun 2020 20:13:27 +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 Jun 11 01:34:28 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 11 Jun 2020 01:34:28 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee18a369ced0_642f2b139387c5e011929d3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 147s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 147s] [1941/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -lidn -ldl -lsctp -lgcrypt -lgnutls -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 147s] [1942/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 147s] [1943/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 147s] FAILED: src/udm/udm at sta/context.c.o [ 147s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 147s] ../src/udm/context.c: In function ?udm_ue_add?: [ 147s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 147s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 147s] ~~^ [ 147s] %d [ 147s] cc1: some warnings being treated as errors [ 147s] [1944/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-build.c.o' -MF 'src/udm/udm at sta/nudr-build.c.o.d' -o 'src/udm/udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 147s] [1945/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 147s] [1946/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 147s] [1947/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/sbi-path.c.o' -MF 'src/udm/udm at sta/sbi-path.c.o.d' -o 'src/udm/udm at sta/sbi-path.c.o' -c ../src/udm/sbi-path.c [ 148s] [1948/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/ue-sm.c.o' -MF 'src/udm/udm at sta/ue-sm.c.o.d' -o 'src/udm/udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 148s] ninja: build stopped: subcommand failed. [ 148s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 148s] debian/rules:11: recipe for target 'binary' failed [ 148s] make: *** [binary] Error 1 [ 148s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 148s] ### VM INTERACTION START ### [ 151s] [ 143.810028] sysrq: SysRq : Power Off [ 151s] [ 143.814261] reboot: Power down [ 151s] ### VM INTERACTION END ### [ 151s] [ 151s] sheep85 failed "build open5gs_1.2.5.20200611.dsc" at Thu Jun 11 01:34:12 UTC 2020. [ 151s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 11 01:34:28 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 11 Jun 2020 01:34:28 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee18a362b185_642f2b139387c5e011928f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 138s] [1936/2112] cc -Isrc/pgw/34dbbb0@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/34dbbb0@@pgw at sta/pgw-fd-path.c.o' -MF 'src/pgw/34dbbb0@@pgw at sta/pgw-fd-path.c.o.d' -o 'src/pgw/34dbbb0@@pgw at sta/pgw-fd-path.c.o' -c ../src/pgw/pgw-fd-path.c [ 138s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-s[ 130.740628] serial8250: too much work for irq4 [ 138s] trings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/sbi-path.c.o' -MF 'src/udm/3eca12a@@udm at sta/sbi-path.c.o.d' -o 'src/udm/3eca12a@@udm at sta/sbi-path.c.o' -c ../src/udm/sbi-path.c [ 138s] [1938/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 138s] [1939/2112] cc -Isrc/ausf/07dd590@@ausf at sta -Isrc/ausf -I../src/ausf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/ausf/07dd590@@ausf at sta/context.c.o' -MF 'src/ausf/07dd590@@ausf at sta/context.c.o.d' -o 'src/ausf/07dd590@@ausf at sta/context.c.o' -c ../src/ausf/context.c [ 138s] FAILED: src/ausf/07dd590@@ausf at sta/context.c.o [ 138s] cc -Isrc/ausf/07dd590@@ausf at sta -Isrc/ausf -I../src/ausf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/ausf/07dd590@@ausf at sta/context.c.o' -MF 'src/ausf/07dd590@@ausf at sta/context.c.o.d' -o 'src/ausf/07dd590@@ausf at sta/context.c.o' -c ../src/ausf/context.c [ 138s] ../src/ausf/context.c: In function ?ausf_ue_add?: [ 138s] ../src/ausf/context.c:130:25: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 138s] ogs_msprintf("%ld", ogs_pool_index(&ausf_ue_pool, ausf_ue)); [ 138s] ~~^ [ 138s] %d [ 138s] cc1: some warnings being treated as errors [ 138s] [1940/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/nf-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 138s] [1941/2112] cc -Isrc/pgw/34dbbb0@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o' -MF 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.[ 130.812331] serial8250: too much work for irq4 [ 138s] o.d' -o 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o' -c ../src/pgw/pgw-context.c [ 138s] [1942/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/udm-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/udm-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/udm-sm.c.o' -c ../src/udm/udm-sm.c [ 139s] [1943/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 139s] ninja: build stopped: subcommand failed. [ 139s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j16 -v returned exit code 1 [ 139s] make: *** [debian/rules:11: binary] Error 1 [ 139s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 139s] ### VM INTERACTION START ### [ 142s] [ 134.232867] sysrq: SysRq : Power Off [ 142s] [ 134.242125] reboot: Power down [ 142s] ### VM INTERACTION END ### [ 142s] [ 142s] sheep81 failed "build open5gs_1.2.5.20200611.dsc" at Thu Jun 11 01:34:27 UTC 2020. [ 142s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jun 11 01:35:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 11 Jun 2020 01:35:11 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 to look at the new patch set (#2). Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... MSC pooling: make NRI mappings VTY configurable Use the osmo_nri_ranges API to manage each MSC's NRI ranges by VTY configuration. Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c A tests/nri_cfg.vty 7 files changed, 386 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/18765/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 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 Jun 11 01:35:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 11 Jun 2020 01:35:11 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add 'no allow-attach' for MSC off-loading References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18778 ) Change subject: MSC pooling: add 'no allow-attach' for MSC off-loading ...................................................................... MSC pooling: add 'no allow-attach' for MSC off-loading As in 3GPP TS 23.236, to offload an MSC, the BSC must be able to avoid attaching new subscribers to it: 4.5a.1: "UEs being moved from one CN node are stopped from registering to the same CN node again by an O&M command in BSCs and RNCs connected to the pool." Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 --- M include/osmocom/bsc/bsc_msc_data.h M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c M tests/nri_cfg.vty 5 files changed, 48 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/78/18778/1 diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index 3df2774..fc6c2d6 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -181,6 +181,7 @@ } mgcp_ipa; struct osmo_nri_ranges *nri_ranges; + bool allow_attach; }; int osmo_bsc_msc_init(struct bsc_msc_data *msc); diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 0707c65..0064b41 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -231,7 +231,11 @@ /* Figure out the next round-robin MSC. The MSCs may appear unsorted in net->mscs. Make sure to linearly * round robin the MSCs by number: pick the lowest msc->nr >= round_robin_next_nr, and also remember the - * lowest available msc->nr to wrap back to that in case no next MSC is left. */ + * lowest available msc->nr to wrap back to that in case no next MSC is left. + * MSCs configured with `no allow-attach` do not accept new subscribers and hence must not be picked by + * round-robin. */ + if (!msc->allow_attach) + continue; if (!msc_round_robin_first || msc->nr < msc_round_robin_first->nr) msc_round_robin_first = msc; if (msc->nr >= round_robin_next_nr diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index ce07518..157808e 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -230,6 +230,7 @@ msc_data->mgcp_ipa.local_port = 0; /* dynamic */ msc_data->nri_ranges = osmo_nri_ranges_alloc(msc_data); + msc_data->allow_attach = true; return msc_data; } diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 7db7c94..dbdd807 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -177,6 +177,9 @@ } msc_write_nri(vty, msc, false); + + if (!msc->allow_attach) + vty_out(vty, " no allow-attach%s", VTY_NEWLINE); } static int config_write_msc(struct vty *vty) @@ -861,6 +864,28 @@ return CMD_SUCCESS; } +DEFUN(cfg_msc_allow_attach, cfg_msc_allow_attach_cmd, + "allow-attach", + "Allow this MSC to attach new subscribers (default).\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->allow_attach = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_no_allow_attach, cfg_msc_no_allow_attach_cmd, + "no allow-attach", + NO_STR + "Do not assign new subscribers to this MSC." + " Useful if an MSC in an MSC pool is configured to off-load subscribers." + " The MSC will still be operational for already attached subscribers," + " but the NAS node selection function will skip this MSC for new subscribers\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->allow_attach = false; + return CMD_SUCCESS; +} + static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose) { struct osmo_nri_range *r; @@ -964,6 +989,8 @@ install_element(MSC_NODE, &cfg_msc_nri_add_cmd); install_element(MSC_NODE, &cfg_msc_nri_del_cmd); install_element(MSC_NODE, &cfg_msc_show_nri_cmd); + install_element(MSC_NODE, &cfg_msc_allow_attach_cmd); + install_element(MSC_NODE, &cfg_msc_no_allow_attach_cmd); /* Deprecated: ping time config, kept to support legacy config files. */ install_element(MSC_NODE, &cfg_net_msc_no_ping_time_cmd); diff --git a/tests/nri_cfg.vty b/tests/nri_cfg.vty index 2b38ec4..3ab7bf2 100644 --- a/tests/nri_cfg.vty +++ b/tests/nri_cfg.vty @@ -159,3 +159,17 @@ OsmoBSC(config-msc)# show nri msc 0 nri add 0 1000 + +OsmoBSC(config-msc)# show running-config +... ! no allow-attach +OsmoBSC(config-msc)# no allow-attach +OsmoBSC(config-msc)# show running-config +... +msc 0 +... + nri add 0 1000 + no allow-attach +... ! no allow-attach +OsmoBSC(config-msc)# allow-attach +OsmoBSC(config-msc)# show running-config +... ! no allow-attach -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 Gerrit-Change-Number: 18778 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 Jun 11 01:35:12 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 11 Jun 2020 01:35:12 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18779 ) Change subject: mscpool: add user manual chapter ...................................................................... mscpool: add user manual chapter Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e --- A doc/manuals/chapters/mscpool.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 214 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/79/18779/1 diff --git a/doc/manuals/chapters/mscpool.adoc b/doc/manuals/chapters/mscpool.adoc new file mode 100644 index 0000000..65c1f98 --- /dev/null +++ b/doc/manuals/chapters/mscpool.adoc @@ -0,0 +1,212 @@ +== MSC Pooling + +MSC pooling is described in 3GPP TS 23.236, and is supported by OsmoBSC since +mid 2020. + +The aim of MSC pooling is to distribute load from a BSC across multiple MSCs, +which are equivalent and redundant infrastructure for the same core network. + +The main mechanism for MSC pooling is the TMSI identity, which an MSC hands out +to its attached subscribers. Typically 10 bits of the TMSI are designated as a +Network Resource Identifier (NRI) that identifies the originating MSC, and +allows OsmoBSC to direct a subscriber back to the same MSC instance that +previously negotiated the IMSI Attach procedure. Typically, the full NRI value +range available is divided into N even ranges, where each MSC is assigned one +NRI range. + +Subscribers attaching without a TMSI identity, or those with unknown NRI value, +are evenly distributed across MSC instances. OsmoBSC uses a round-robin +approach to distribute load across all connected MSCs. + +A Paging Response from a subscriber is always returned back to whichever MSC +initiated the Paging, regardless of the Mobile Identity used. + +Finally, a NULL-NRI is a special NRI value that indicates that the MSC wishes +to offload this subscriber to a different MSC. A NULL-NRI is an arbitrary NRI +value that is chosen distinctly for each PLMN served by a BSC, so that a +subscriber can be reassigned within that PLMN. Upon (periodic) Location +Updating, an offloading MSC hands out a NULL-NRI value in the assigned TMSI, +along with a non-broadcast LAI. The subscriber will notice the LAI mismatch, +and immediately re-attempt the attach using the TMSI containing the NULL-NRI. +The BSC recognises the NULL-NRI and redirects the subscriber to one of the +other MSCs. A prerequisite for this to work well is that the particular MSC is +previously marked as not accepting new subscribers, in the BSC's configuration. + +The mechanisms described above make up the NAS node selection function +implemented in the BSC. + +3GPP TS 23.236 also defines that an offloading MSC hands subscriber information +to the newly assigned MSC, which takes place outside the scope of the BSC. + +=== Configuring MSC Pooling + +The NRI ranges assigned to each MSC must match in the BSC and the MSC +configuration. If MSC and BSC had inconsistent NRI value ranges configured, +attached subscribers would be redirected MSC instances that did not perform the +attach, possibly rendering the core network unusable. + +==== Connecting Multiple MSCs + +The `cs7 instance` configuration defines the SCCP addresses to reach the MSCs +at. In addition, each MSC is configured by its own `msc` section in the +configuration. An example osmo-bsc.cfg serving three MSCs: + +---- +cs7 instance 0 + # SCCP address book entries for the three MSCs + sccp-address my-msc-0 + point-code 0.23.0 + sccp-address my-msc-1 + point-code 0.23.1 + sccp-address my-msc-2 + point-code 0.23.2 + +# assign each MSC configuration its remote SCCP address +msc 0 + msc-addr my-msc-0 +msc 1 + msc-addr my-msc-1 +msc 2 + msc-addr my-msc-2 + +# configure NRI value ranges +network + nri bitlen 10 + nri null add 0 +msc 0 + nri add 1 341 +msc 1 + nri add 342 682 +msc 2 + nri add 683 1023 +---- + +==== NRI Value Bit Length + +In OsmoBSC, the NRI value's bit length is freely configurable from 1 to 15 +bits. 3GPP TS 23.236 suggests a typical bit length of 10, which is OsmoBSC's +default. The NRI bit length must be identical across the entire MSC pool. + +Change the NRI value bit length in OsmoBSC's VTY configuration like this: + +---- +network + nri bitlen 10 +---- + +In the TMSI bits, regardless of the NRI bit length, the NRI value always starts +just after the most significant octet of a TMSI (most significant bit at TMSI's +bit 23). + +==== NULL-NRI + +Since OsmoBSC supports serving only one PLMN, NULL-NRI are configured globally. +Even though 3GPP TS 23.236 indicates that there is a single NULL-NRI per PLMN, +OsmoBSC allows configuring multiple NULL-NRI values. + +---- +network + nri null add 0 + nri null add 423 +---- + +==== Assigning NRI Ranges to MSCs + +Each MSC configured in OsmoBSC must be assigned a distinct NRI value range. +Overlapping NRI value ranges will cause failure to serve subscribers. + +NRI values are typically configured in ranges, here dividing a 10bit range +(0..1023) into three equal ranges, while leaving 0 available to be configured +as NULL-NRI: + +---- +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +NRI can also be assigned in single values: + +---- +msc 0 + nri add 23 +---- + +Ranges can be constructed arbitrarily by a sequence of `add` and `del` +configurations, here a contrived example: + +---- +msc 0 + nri add 0 342 + nri del 23 + nri del 42 235 + nri add 1000 1023 +---- + +To view the current NRI config in a running OsmoBSC instance, use the +`show nri` command, here showing the result of the contrived example: + +---- +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 22 + nri add 24 41 + nri add 236 342 + nri add 1000 1023 +---- + +On the VIEW and ENABLE VTY nodes, `show nri` shows all MSCs: + +---- +OsmoBSC> show nri +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +When configuring overlapping NRI value ranges across MSCs, the telnet VTY warns +about it, and starting OsmoBSC with such a configuration will fail: + +---- +msc 0 + nri add 1 511 +msc 1 + nri add 512 1023 +msc 2 + nri add 500 555 +---- + +This results in: + +---- +$ osmo-bsc +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 1. For overlaps, msc 1 has higher priority than msc 2 +---- + +==== MSC Offloading + +To effectively offload a particular MSC, it must be marked as no longer taking +new subscribes in OsmoBSC. This can be achieved in the telnet VTY by: + +---- +msc 0 + no allow-attach +---- + +This MSC will, as long as it is connected, continue to serve subscribers +already attached to it. But OsmoBSC will no longer direct new subscribers to +this MSC. + +To re-enable an MSC for attaching new subscribers: + +---- +msc 0 + allow-attach +---- diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index c518c96..862c8f9 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -28,6 +28,8 @@ include::{srcdir}/chapters/smscb.adoc[] +include::{srcdir}/chapters/mscpool.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jun 11 01:36:45 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 11 Jun 2020 01:36:45 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee18ac9b1eb5_642f2b139387c5e01193734@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 299s] [1920/2112] cc -Isrc/nrf/src at nrf@@nrf at sta -Isrc/nrf -I../src/nrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' -MF 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o.d' -o 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' -c ../src/nrf/nrf-sm.c [ 299s] [1921/2112] rm -f src/nrf/libnrf.a && gcc-ar csrD src/nrf/libnrf.a 'src/nrf/src at nrf@@nrf at sta/context.c.o' 'src/nrf/src at nrf@@nrf at sta/event.c.o' 'src/nrf/src at nrf@@nrf at sta/timer.c.o' 'src/nrf/src at nrf@@nrf at sta/nnrf-handler.c.o' 'src/nrf/src at nrf@@nrf at sta/nnrf-build.c.o' 'src/nrf/src at nrf@@nrf at sta/sbi-path.c.o' 'src/nrf/src at nrf@@nrf at sta/nf-sm.c.o' 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' 'src/nrf/src at nrf@@nrf at sta/init.c.o' [ 299s] [1922/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 299s] [1923/2112] rm -f src/pcrf/libpcrf.a && gcc-ar csrD src/pcrf/libpcrf.a 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-init.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-context.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-fd-path.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-rx-path.c.o' [ 299s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 299s] [1925/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 299s] [1926/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 299s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 299s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 299s] ../src/udm/context.c: In function ?udm_ue_add?: [ 299s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 299s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 299s] ~~^ [ 299s] %d [ 299s] cc1: some warnings being treated as errors [ 299s] [1927/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 299s] [1928/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 300s] [1929/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/src at pcrf@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/src at pcrf@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lrt -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 300s] ninja: build stopped: subcommand failed. [ 300s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 300s] make: *** [debian/rules:11: binary] Error 1 [ 300s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 300s] ### VM INTERACTION START ### [ 303s] [ 287.114126] sysrq: SysRq : Power Off [ 303s] [ 287.118304] reboot: Power down [ 303s] ### VM INTERACTION END ### [ 303s] [ 303s] cloud120 failed "build open5gs_1.2.5.20200611.dsc" at Thu Jun 11 01:36:28 UTC 2020. [ 303s] -- 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 Jun 11 01:52:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 11 Jun 2020 01:52:58 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography, glossary: add MSC pooling related bits References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 ) Change subject: bibliography, glossary: add MSC pooling related bits ...................................................................... bibliography, glossary: add MSC pooling related bits Add 3GPP TS 23.236, "NRI" and "MSC pool". Depends: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e (osmo-bsc) Change-Id: I0640db26dc85ab7723c7160e405fc73f412fd706 --- M common/chapters/bibliography.adoc M common/chapters/glossary.adoc 2 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/80/18780/1 diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index 623f648..ad86ac2 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -41,6 +41,9 @@ - [[[3gpp-ts-23-048]]] 3GPP TS 23.048: Security mechanisms for the (U)SIM application toolkit; Stage 2 http://www.3gpp.org/DynaReport/23048.htm +- [[[3gpp-ts-23-236]]] 3GPP TS 23.236: Intra-domain connection of Radio Access + Network (RAN) nodes to multiple Core Network (CN) nodes + http://www.3gpp.org/DynaReport/23236.htm - [[[3gpp-ts-24-007]]] 3GPP TS 24.007: Mobile radio interface signalling layer 3; General Aspects http://www.3gpp.org/DynaReport/24007.htm diff --git a/common/chapters/glossary.adoc b/common/chapters/glossary.adoc index 0c914cb..d6a6c2d 100644 --- a/common/chapters/glossary.adoc +++ b/common/chapters/glossary.adoc @@ -201,6 +201,10 @@ MSC:: Mobile Switching Center; network element in the circuit-switched core network +MSC pool:: + A number of redundant MSCs serving the same core network, which a BSC / RNC + distributes load across; see also the "MSC Pooling" chapter in OsmoBSC's user + manual <> and _3GPP TS 23.236_ <<3gpp-ts-23-236>> MSISDN:: Mobile Subscriber ISDN Number; telephone number of the subscriber MT:: @@ -214,6 +218,10 @@ NITB:: Network In The Box; combines functionality traditionally provided by BSC, MSC, VLR, HLR, SMSC functions; see OsmoNITB +NRI:: + Network Resource Indicator, typically 10 bits of a TMSI indicating which MSC + of an MSC pool attached the subscriber; see also the "MSC Pooling" chapter in + OsmoBSC's user manual <> and _3GPP TS 23.236_ <<3gpp-ts-23-236>> NSEI:: NS Entity Identifier NVCI:: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 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: I0640db26dc85ab7723c7160e405fc73f412fd706 Gerrit-Change-Number: 18780 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 Jun 11 01:53:41 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 11 Jun 2020 01:53:41 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 to look at the new patch set (#2). Change subject: mscpool: add user manual chapter ...................................................................... mscpool: add user manual chapter Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e --- A doc/manuals/chapters/mscpool.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 214 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/79/18779/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jun 11 02:04:28 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 11 Jun 2020 02:04:28 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5ee19139cdd5b_642f2b139387c5e01197578@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Testing/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 121s] touch libfx2.lib [ 121s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 121s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 121s] Making all in src [ 122s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 122s] Making all in common [ 122s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 122s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 122s] /usr/bin/env: 'python': No such file or directory [ 122s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 122s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 122s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 122s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 122s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 122s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 122s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 122s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 122s] make[1]: *** [Makefile:547: all] Error 2 [ 122s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 122s] dh_auto_build: error: make -j1 returned exit code 2 [ 122s] make: *** [debian/rules:13: build] Error 25 [ 122s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 122s] ### VM INTERACTION START ### [ 125s] [ 117.009831] sysrq: SysRq : Power Off [ 125s] [ 117.010997] reboot: Power down [ 125s] ### VM INTERACTION END ### [ 125s] [ 125s] build85 failed "build libusrp_3.4.4.dsc" at Thu Jun 11 02:04:21 UTC 2020. [ 125s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 11 02:06:29 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 11 Jun 2020 02:06:29 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ee191bbb8f6b_642f2b139387c5e01198065@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Unstable/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 213s] touch libfx2.lib [ 213s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 213s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 213s] Making all in src [ 213s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 213s] Making all in common [ 213s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 213s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 213s] /usr/bin/env: 'python': No such file or directory [ 213s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 213s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 213s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 213s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 213s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 213s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 213s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 213s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 213s] make[1]: *** [Makefile:547: all] Error 2 [ 213s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 213s] dh_auto_build: error: make -j1 returned exit code 2 [ 213s] make: *** [debian/rules:13: build] Error 25 [ 213s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 213s] ### VM INTERACTION START ### [ 216s] [ 202.785324] sysrq: SysRq : Power Off [ 216s] [ 202.790503] reboot: Power down [ 217s] ### VM INTERACTION END ### [ 217s] [ 217s] lamb61 failed "build libusrp_3.4.4.dsc" at Thu Jun 11 02:06:22 UTC 2020. [ 217s] -- 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 Jun 11 07:59:55 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 11 Jun 2020 07:59:55 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 4: > Patch Set 4: > > So If I understand correctly, let's say you have: > * machineA=10.42.42.10 > * machineB=10.42.42.20 > with srsUE running on machineA and srsENB and srsEPC on machineB. > > What would be wrong with using this setup? > > """ > run_node: #epc > - run_type: ssh > run_addr: 10.42.42.20 > ssh_user: jenkins > ssh_addr: 10.42.42.20 > > enb: > - label: srsENB-zmq > type: srsenb > rf_dev_type: zmq > rf_dev_args: auto > gtp_bind_addr: 127.0.1.1 > run_node: > run_type: ssh > run_addr: 10.42.42.20 > ssh_user: jenkins > ssh_addr: 10.42.42.20 > > - label: srsUE-zmq_1 > type: srsue > rf_dev_type: zmq > rf_dev_args: auto > imsi: '001010123456789' > ki: '00112233445566778899aabbccddeeff' > auth_algo: 'xor' > features: ['4g'] > run_node: > run_type: ssh > run_addr: 10.42.42.10 > ssh_user: jenkins > ssh_addr: 10.42.42.10 > """ > > UE<->ENB over zmq: 10.42.42.10 <-> 10.42.42.20 (not same port, anyway we use different IP) > ENB<->EPC over S1: 10.42.42.20 <-> 10.42.42.20 (not same port, fine with reusing IP) > ENB<->EPC over GTP: 127.0.1.1 <-> 10.42.42.20 (different IP, gtp port must be same in both) It worked with srsENB/srsEPC. But Amarisoft eNB refuses to connect to to the EPC with this config. ``` /* Enable remote API and Web interface */ com_addr: "10.12.1.195:9001", mme_list: [ { /* address of MME for S1AP connection. Must be modified if the MME runs on a different host. */ mme_addr: "10.12.1.195", }, ], /* GTP bind address (=address of the ethernet interface connected to the MME). Must be modified if the MME runs on a different host. */ gtp_addr: "127.0.1.1", ``` -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Thu, 11 Jun 2020 07:59: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 Jun 11 08:28:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 08:28:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix f_enc_IMEI_L3() oddevenIndicator In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 ) Change subject: fix f_enc_IMEI_L3() oddevenIndicator ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0 Gerrit-Change-Number: 18758 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 08:28:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jun 11 08:55:46 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 11 Jun 2020 08:55:46 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee1f1a18f795_642f2b139387c5e0128815@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1351s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1352s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1353s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1354s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1354s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1354s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1354s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1355s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1355s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1356s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1356s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1356s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1356s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1356s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1356s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1356s] ~~^ [ 1356s] %d [ 1356s] cc1: some warnings being treated as errors [ 1356s] ninja: build stopped: subcommand failed. [ 1356s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1356s] make: *** [debian/rules:11: binary] Error 1 [ 1356s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1356s] ### VM INTERACTION START ### [ 1359s] [ 1314.508183] sysrq: SysRq : Power Off [ 1359s] [ 1314.510413] reboot: Power down [ 1360s] ### VM INTERACTION END ### [ 1360s] [ 1360s] armbuild15 failed "build open5gs_1.2.5.20200611.dsc" at Thu Jun 11 08:55:42 UTC 2020. [ 1360s] -- 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 Jun 11 09:01:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 09:01:39 +0000 Subject: Change in osmo-gsm-tester[master]: ttcn3: Don't overwrite output junit file on multiple testsuites In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18772 ) Change subject: ttcn3: Don't overwrite output junit file on multiple testsuites ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18772 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: I803fa8766acb4e90c4a735a420b24ef18ef6b0c9 Gerrit-Change-Number: 18772 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 09: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 Thu Jun 11 09:01:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 09:01:49 +0000 Subject: Change in osmo-gsm-tester[master]: ttcn3: Don't overwrite output junit file on multiple testsuites In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18772 ) Change subject: ttcn3: Don't overwrite output junit file on multiple testsuites ...................................................................... ttcn3: Don't overwrite output junit file on multiple testsuites Change-Id: I803fa8766acb4e90c4a735a420b24ef18ef6b0c9 --- M sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py M sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py index f0e8667..394e76e 100644 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/lib/testlib.py @@ -10,7 +10,7 @@ bts_tmpl_file = os.path.join(testdir, 'scripts', 'BTS_Tests.cfg.tmpl') script_run_dir = tenv.test().get_run_dir().new_dir('ttcn3') bts_cfg_file = os.path.join(str(script_run_dir), 'BTS_Tests.cfg') - junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-') + tenv.test().basename + '.xml' + junit_ttcn3_dst_file = os.path.join(str(tenv.suite().trial().get_run_dir()), 'trial-' + tenv.suite().name() + '.' + tenv.test().module_name() + '.xml') if bts.bts_type() == 'osmo-bts-trx': pcu_available = True pcu_sk = bts.pcu_socket_path() diff --git a/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh b/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh index daac3e0..535268a 100755 --- a/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh +++ b/sysmocom/ttcn3/suites/ttcn3_bts_tests/scripts/run_ttcn3_docker.sh @@ -88,6 +88,6 @@ echo "Copying TTCN3 junit file to $JUNIT_TTCN3_DST_FILE" cp $VOL_BASE_DIR/bts-tester/junit-xml-*.log $JUNIT_TTCN3_DST_FILE -sed -i "s#classname='BTS_Tests'#classname='$(basename $JUNIT_TTCN3_DST_FILE)'#g" $JUNIT_TTCN3_DST_FILE +sed -i "s#classname='BTS_Tests'#classname='$(basename $JUNIT_TTCN3_DST_FILE '.xml')'#g" $JUNIT_TTCN3_DST_FILE exit $child_exit_code -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18772 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: I803fa8766acb4e90c4a735a420b24ef18ef6b0c9 Gerrit-Change-Number: 18772 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jun 11 09:18:53 2020 From: admin at opensuse.org (OBS Notification) Date: Thu, 11 Jun 2020 09:18:53 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee1f7034e0e3_642f2b139387c5e012941f1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 339s] [1932/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 339s] [1933/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 340s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 340s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-build.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 340s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 340s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 340s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 340s] ../src/udm/context.c: In function ?udm_ue_add?: [ 340s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 340s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 340s] ~~^ [ 340s] %d [ 340s] cc1: some warnings being treated as errors [ 340s] [1937/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/pcrf:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/rx:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/common:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/diameter/gx [ 340s] [1938/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 340s] [1939/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 340s] [1940/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 340s] [1941/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/nf-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 340s] ninja: build stopped: subcommand failed. [ 340s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 340s] make: *** [debian/rules:11: binary] Error 1 [ 340s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 340s] ### VM INTERACTION START ### [ 343s] [ 321.240952] sysrq: SysRq : Power Off [ 343s] [ 321.271248] reboot: Power down [ 344s] ### VM INTERACTION END ### [ 344s] [ 344s] obs-arm-6 failed "build open5gs_1.2.5.20200611.dsc" at Thu Jun 11 09:18:46 UTC 2020. [ 344s] -- 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 Jun 11 10:31:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 10:31:41 +0000 Subject: Change in osmo-gsm-tester[master]: log: Fix OriginLoopError generated in log.Error from testenv.poll() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 ) Change subject: log: Fix OriginLoopError generated in log.Error from testenv.poll() ...................................................................... log: Fix OriginLoopError generated in log.Error from testenv.poll() Change-Id: Iea80d06a30346533e4ecec338b03c72d1f1067ae --- M src/osmo_gsm_tester/core/log.py 1 file changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/81/18781/1 diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 2cf1af0..184294c 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -386,11 +386,12 @@ f = f.f_back if (origin is not None) and (log_ctx_obj is not None): - log_ctx_obj.highest_ancestor()._set_parent(origin) - p = log_ctx_obj - while p: - p._set_log_category(origin._log_category) - p = p._parent + log_ctx_highest_ancestor = log_ctx_obj.highest_ancestor() + # If Both end up in same ancestor it means they are connected to the + # same tree, so no need to connect them, we'll use log_ctx_obj + # specific path in that case. + if log_ctx_highest_ancestor != origin.highest_ancestor(): + log_ctx_highest_ancestor._set_parent(origin) if log_ctx_obj is not None: return log_ctx_obj # may return None -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 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: Iea80d06a30346533e4ecec338b03c72d1f1067ae Gerrit-Change-Number: 18781 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 Jun 11 10:42:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 10:42:03 +0000 Subject: Change in osmo-gsm-tester[master]: log: Fix OriginLoopError generated in log.Error from testenv.poll() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 to look at the new patch set (#2). Change subject: log: Fix OriginLoopError generated in log.Error from testenv.poll() ...................................................................... log: Fix OriginLoopError generated in log.Error from testenv.poll() Change-Id: Iea80d06a30346533e4ecec338b03c72d1f1067ae --- M src/osmo_gsm_tester/core/log.py 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/81/18781/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 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: Iea80d06a30346533e4ecec338b03c72d1f1067ae Gerrit-Change-Number: 18781 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 Jun 11 10:54:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 10:54:18 +0000 Subject: Change in osmo-gsm-tester[master]: log: Fix OriginLoopError generated in log.Error from testenv.poll() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 ) Change subject: log: Fix OriginLoopError generated in log.Error from testenv.poll() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 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: Iea80d06a30346533e4ecec338b03c72d1f1067ae Gerrit-Change-Number: 18781 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 10:54:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 10:54:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 10:54:21 +0000 Subject: Change in osmo-gsm-tester[master]: log: Fix OriginLoopError generated in log.Error from testenv.poll() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 ) Change subject: log: Fix OriginLoopError generated in log.Error from testenv.poll() ...................................................................... log: Fix OriginLoopError generated in log.Error from testenv.poll() Change-Id: Iea80d06a30346533e4ecec338b03c72d1f1067ae --- M src/osmo_gsm_tester/core/log.py 1 file changed, 6 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index 2cf1af0..f1954d1 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -386,7 +386,12 @@ f = f.f_back if (origin is not None) and (log_ctx_obj is not None): - log_ctx_obj.highest_ancestor()._set_parent(origin) + log_ctx_highest_ancestor = log_ctx_obj.highest_ancestor() + # If Both end up in same ancestor it means they are connected to the + # same tree, so no need to connect them, we'll use log_ctx_obj + # specific path in that case. + if log_ctx_highest_ancestor != origin.highest_ancestor(): + log_ctx_highest_ancestor._set_parent(origin) p = log_ctx_obj while p: p._set_log_category(origin._log_category) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18781 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: Iea80d06a30346533e4ecec338b03c72d1f1067ae Gerrit-Change-Number: 18781 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:19:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:19:42 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb: Properly set S1AP SCTP bind ip addr References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18782 ) Change subject: amarisoft_enb: Properly set S1AP SCTP bind ip addr ...................................................................... amarisoft_enb: Properly set S1AP SCTP bind ip addr Change-Id: I8e2b8609cb198c6d5e293cffaa0a9de99600f06d --- M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/82/18782/1 diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 8bb55d3..5690da9 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -41,6 +41,7 @@ mme_list: [ { + s1ap_bind_addr: "${enb.addr}", /* address of MME for S1AP connection. Must be modified if the MME runs on a different host. */ mme_addr: "${enb.mme_addr}", -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18782 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: I8e2b8609cb198c6d5e293cffaa0a9de99600f06d Gerrit-Change-Number: 18782 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 Jun 11 11:25:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:25:15 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 ) Change subject: srsenb.conf.tmpl: use gtp_bind_addr also s1c bind ...................................................................... Patch Set 4: It was not working with AmarisoftENB due to missing setting in its config file. Fixed by: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18782 Now both SRS and Amarisoft ENB work against SRS and Amarisoft EPC, both running on same host, setting run_addr= and setting gtp_bind_addr=127.0.0.2 in ENB. So this patch can be abandoned. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18583 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: Ibf5b0017c781d17c7f20b859c1cda297e2a9cca2 Gerrit-Change-Number: 18583 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Thu, 11 Jun 2020 11:25:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:28:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:28:15 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb: Properly set S1AP SCTP bind ip addr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18782 ) Change subject: amarisoft_enb: Properly set S1AP SCTP bind ip addr ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18782 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: I8e2b8609cb198c6d5e293cffaa0a9de99600f06d Gerrit-Change-Number: 18782 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:28:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:28:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:28:17 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb: Properly set S1AP SCTP bind ip addr In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18782 ) Change subject: amarisoft_enb: Properly set S1AP SCTP bind ip addr ...................................................................... amarisoft_enb: Properly set S1AP SCTP bind ip addr Change-Id: I8e2b8609cb198c6d5e293cffaa0a9de99600f06d --- M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 8bb55d3..5690da9 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -41,6 +41,7 @@ mme_list: [ { + s1ap_bind_addr: "${enb.addr}", /* address of MME for S1AP connection. Must be modified if the MME runs on a different host. */ mme_addr: "${enb.mme_addr}", -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18782 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: I8e2b8609cb198c6d5e293cffaa0a9de99600f06d Gerrit-Change-Number: 18782 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:36:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:36:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move type RAN_Configurations to RAN_Adapter.ttcnpp In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 ) Change subject: move type RAN_Configurations to RAN_Adapter.ttcnpp ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759/1/library/RAN_Adapter.ttcnpp File library/RAN_Adapter.ttcnpp: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759/1/library/RAN_Adapter.ttcnpp at 68 PS1, Line 68: type record of RAN_Configuration RAN_Configurations; I think we usually don't leave a space between the type defintion and the "record of" definition after it. At least for me it's then clear it's just on top of it. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 Gerrit-Change-Number: 18759 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:36:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:41:31 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 11 Jun 2020 11:41:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix f_enc_IMEI_L3() oddevenIndicator In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 ) Change subject: fix f_enc_IMEI_L3() oddevenIndicator ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758/1/library/L3_Templates.ttcn File library/L3_Templates.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758/1/library/L3_Templates.ttcn at 184 PS1, Line 184: f_enc_IMEI_L3 I would expect that this function (like other f_enc_* ones) actually does some encoding and returns an octetstring. This is confusing. Maybe we should rather introduce a template, if it does not exist yet? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758/1/library/L3_Templates.ttcn at 186 PS1, Line 186: var integer len := lengthof(digits); This variable becomes unused. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0 Gerrit-Change-Number: 18758 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 11 Jun 2020 11:41: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 Thu Jun 11 11:42:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:42:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 ) Change subject: bsc: allow multiple MSCs ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760/1/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760/1/bsc/MSC_ConnectionHandler.ttcn at 519 PS1, Line 519: integer rsl_idx, AFAICT rsl_idx and l3_info are not used in this patch? so not related? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:42: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 Thu Jun 11 11:44:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:44:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 ) Change subject: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761/1/library/RSL_Emulation.ttcn File library/RSL_Emulation.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761/1/library/RSL_Emulation.ttcn at 551 PS1, Line 551: if (ispresent(ConnectionTable[i].comp_ref) and ConnectionTable[i].comp_ref != null) { Is this ispresent() really needed? I think they may have been an error here and the same thing you are checking was aimed to be checked before. So you can probably drop the ispresent ? (or otherwise assign := omit to it where needed). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 Gerrit-Change-Number: 18761 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:44:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:47:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:47:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 ) Change subject: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930 Gerrit-Change-Number: 18762 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:47: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 Jun 11 11:49:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:49:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn at 4461 PS1, Line 4461: return int2oct( oct2int('42000023'O) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ), You are missing using base_tmsi instead of hardcoded value here. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:49:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:50:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:50:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn at 4490 PS1, Line 4490: private function f_perform_clear_on_RSL1() runs on MSC_ConnHdlr { Merge RSL1 and RSL2 functions, simply pass the port as a parameter. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:50:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:53:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:53:08 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18712 ) Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18712/2/include/osmocom/bsc/bsc_subscriber.h File include/osmocom/bsc/bsc_subscriber.h: https://gerrit.osmocom.org/c/osmo-bsc/+/18712/2/include/osmocom/bsc/bsc_subscriber.h at 11 PS2, Line 11: struct osmo_mobile_identity; Can we please include structs from header files instead of leaving potentially dangling definitions and avoiding possible redefinitions in all places? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:53:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:54:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 11 Jun 2020 11:54:53 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: LU: ignore TMSI NRI from a different PLMN References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18783 ) Change subject: MSC pooling: LU: ignore TMSI NRI from a different PLMN ...................................................................... MSC pooling: LU: ignore TMSI NRI from a different PLMN Change-Id: Iac1158cff022b6365ce22bb70feaaff93e39172a --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 49 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/18783/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 0707c65..46ef9af 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -123,6 +123,48 @@ return cm->cm_service_type == GSM48_CMSERV_EMERGENCY; } +static bool is_lu_from_other_plmn(struct msgb *msg) +{ + const struct gsm48_hdr *gh; + int8_t pdisc; + uint8_t mtype; + const struct gsm48_loc_upd_req *lu; + struct osmo_location_area_id old_lai; + + if (msgb_l3len(msg) < sizeof(*gh)) + return false; + + gh = msgb_l3(msg); + pdisc = gsm48_hdr_pdisc(gh); + mtype = gsm48_hdr_msg_type(gh); + + switch (pdisc) { + case GSM48_PDISC_MM: + + switch (mtype) { + case GSM48_MT_MM_LOC_UPD_REQUEST: + /* First make sure that lu-> can be dereferenced */ + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) + return false; + + lu = (struct gsm48_loc_upd_req*)gh->data; + gsm48_decode_lai2(&lu->lai, &old_lai); + + if (osmo_plmn_cmp(&old_lai.plmn, &bsc_gsmnet->plmn) != 0) + return true; + break; + + default: + break; + } + break; + default: + break; + } + + return false; +} + static bool is_msc_usable(struct bsc_msc_data *msc, bool is_emerg) { if (is_emerg && !msc->allow_emerg) @@ -198,6 +240,13 @@ if (osmo_tmsi_nri_v_get(&nri_v, mi.tmsi, net->nri_bitlen)) { LOGP(DMSC, LOGL_ERROR, "Unable to retrieve NRI from TMSI, nri_bitlen == %u\n", net->nri_bitlen); nri_v = -1; + } else if (is_lu_from_other_plmn(msg)) { + /* If a subscriber was previously attached to a different PLMN, it might still send the other + * PLMN's TMSI identity in an IMSI Attach. The LU sends a LAI indicating the previous PLMN. If + * it mismatches our PLMN, ignore the NRI. */ + LOG_NRI(LOGL_DEBUG, + "This LU Request indicates a switch from another PLMN. Ignoring the TMSI's NRI.\n"); + nri_v = -1; } else { is_null_nri = osmo_nri_v_matches_ranges(nri_v, net->null_nri_ranges); if (is_null_nri) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iac1158cff022b6365ce22bb70feaaff93e39172a Gerrit-Change-Number: 18783 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 Jun 11 11:57:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:57:09 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18713 ) Change subject: use osmo_mobile_identity API everywhere ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:57: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 Jun 11 11:57:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 11 Jun 2020 11:57:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 to look at the new patch set (#2). Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 917 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/18763/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 11:58:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 11:58:34 +0000 Subject: Change in osmo-bsc[master]: tweak log category for Compl L3 error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18764 ) Change subject: tweak log category for Compl L3 error ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9c6373e5f28c9c69a0609889188ef28ade11da3d Gerrit-Change-Number: 18764 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 11:58:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 12:05:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 12:05:10 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 2: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18765/2/include/osmocom/bsc/bsc_msc_data.h File include/osmocom/bsc/bsc_msc_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/2/include/osmocom/bsc/bsc_msc_data.h at 195 PS2, Line 195: extra whitespace not needed. https://gerrit.osmocom.org/c/osmo-bsc/+/18765/2/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/2/src/osmo-bsc/bsc_vty.c at 1166 PS2, Line 1166: vty_out(vty, " %% INVALID:"); This place doesn't look like the correct one to do this kind of checks and print this kind of warnings. I would expect this invalid setup should be checked during input parsing. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 12:05: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 Jun 11 12:10:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 12:10:32 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: implement NAS node selection by NRI from TMSI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18766 ) Change subject: MSC pooling: implement NAS node selection by NRI from TMSI ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifbdea197b26e88751a391c8a80c41f04e7d5e047 Gerrit-Change-Number: 18766 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 12:10: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 Jun 11 12:13:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 12:13:34 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: LU: ignore TMSI NRI from a different PLMN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18783 ) Change subject: MSC pooling: LU: ignore TMSI NRI from a different PLMN ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iac1158cff022b6365ce22bb70feaaff93e39172a Gerrit-Change-Number: 18783 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 12: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 Thu Jun 11 12:15:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 12:15:38 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add 'no allow-attach' for MSC off-loading In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18778 ) Change subject: MSC pooling: add 'no allow-attach' for MSC off-loading ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18778/2/src/osmo-bsc/gsm_08_08.c File src/osmo-bsc/gsm_08_08.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18778/2/src/osmo-bsc/gsm_08_08.c at 286 PS2, Line 286: if (!msc->allow_attach) Should you check this above? Otherwise if NRI matches it will still use it even if administratively disabled. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 Gerrit-Change-Number: 18778 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 12:15: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 Thu Jun 11 12:33:41 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 11 Jun 2020 12:33:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move type RAN_Configurations to RAN_Adapter.ttcnpp In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 ) Change subject: move type RAN_Configurations to RAN_Adapter.ttcnpp ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 Gerrit-Change-Number: 18759 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 12:33:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 13:30:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:30:32 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18779 ) Change subject: mscpool: add user manual chapter ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:30: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 Jun 11 13:31:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:31:23 +0000 Subject: Change in osmo-bsc[master]: vty: add 'mscpool roundrobin next' for ttcn3 tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18767 ) Change subject: vty: add 'mscpool roundrobin next' for ttcn3 tests ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c Gerrit-Change-Number: 18767 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13: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 Thu Jun 11 13:32:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:32:10 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18768 ) Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18768/4/src/osmo-bsc/bsc_subscr_conn_fsm.c File src/osmo-bsc/bsc_subscr_conn_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18768/4/src/osmo-bsc/bsc_subscr_conn_fsm.c at 1071 PS4, Line 1071: conn->sccp.msc->nr, Are we sure msc is always non NULL here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:32: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 Jun 11 13:32:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:32:40 +0000 Subject: Change in osmo-bsc[master]: debug: log about matching Paging Response to earlier Paging In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18769 ) Change subject: debug: log about matching Paging Response to earlier Paging ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I277d3236686dd5a5a21113ef2ddfd29341190086 Gerrit-Change-Number: 18769 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:32: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 Jun 11 13:34:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:34:16 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18714 ) Change subject: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit ...................................................................... Patch Set 1: There's context lacking here. How can it be that a test was failing before and needs to be changed? -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 Gerrit-Change-Number: 18714 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:34:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 13:35:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:35:38 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18715 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/18715/2/include/osmocom/msc/msub.h File include/osmocom/msc/msub.h: https://gerrit.osmocom.org/c/osmo-msc/+/18715/2/include/osmocom/msc/msub.h at 11 PS2, Line 11: struct osmo_mobile_identity; Will we end up with a list of 100 types here, not knowing even where are they really defined? -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:35: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 Thu Jun 11 13:40:08 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:40:08 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18770 ) Change subject: add rudimentary NRI support for MSC pooling ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13: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 Thu Jun 11 13:41:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:41:57 +0000 Subject: Change in osmo-sgsn[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 Gerrit-Change-Number: 18716 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:41:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 13:42:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:42:43 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18774 ) Change subject: BSC_Tests.cfg: adjust cfg for multiple MSCs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1986e4ef43beee161c82193694421b56136c1afe Gerrit-Change-Number: 18774 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13: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 Thu Jun 11 13:43:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:43:12 +0000 Subject: Change in docker-playground[master]: bsc: adjust osmo-bsc.cfg for MSC pooling tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18775 ) Change subject: bsc: adjust osmo-bsc.cfg for MSC pooling tests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b Gerrit-Change-Number: 18775 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:43:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 13:43:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:43:25 +0000 Subject: Change in docker-playground[master]: MSC_Tests.cfg: tweak comments In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18776 ) Change subject: MSC_Tests.cfg: tweak comments ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 Gerrit-Change-Number: 18776 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:43: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 Jun 11 13:48:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:48:24 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 10: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 10 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:48: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 Jun 11 13:52:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:52:11 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c at 138 PS2, Line 138: prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; > wait, what, sizeof() works on compile time char constants? wow. [?] I guess that's perfectly fine, since a string constant is simply a array of chars with length known at compile time. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:52:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 13:53:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 13:53:03 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography, glossary: add MSC pooling related bits In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 ) Change subject: bibliography, glossary: add MSC pooling related bits ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 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: I0640db26dc85ab7723c7160e405fc73f412fd706 Gerrit-Change-Number: 18780 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 13:53: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 Jun 11 14:14:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 14:14:59 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Add debug log when overlaying templates dir References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 ) Change subject: testenv: Add debug log when overlaying templates dir ...................................................................... testenv: Add debug log when overlaying templates dir Change-Id: I10fdfc5b2e3bf4c96941a3fae53230131f384de9 --- M src/osmo_gsm_tester/testenv.py 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/84/18784/1 diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 4709b4c..d6c18ee 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -154,6 +154,7 @@ if template_dir is None: template.set_templates_dir(template.default_templates_dir()) else: + self.dbg('template dir overlay set: %s' % template_dir) template.set_templates_dir(template_dir, template.default_templates_dir()) def prompt(self, *msgs, **msg_details): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 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: I10fdfc5b2e3bf4c96941a3fae53230131f384de9 Gerrit-Change-Number: 18784 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 Jun 11 14:24:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 14:24:00 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Add debug log when overlaying templates dir In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 to look at the new patch set (#2). Change subject: testenv: Add debug log when overlaying templates dir ...................................................................... testenv: Add debug log when overlaying templates dir Change-Id: I10fdfc5b2e3bf4c96941a3fae53230131f384de9 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/testenv.py 2 files changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/84/18784/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 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: I10fdfc5b2e3bf4c96941a3fae53230131f384de9 Gerrit-Change-Number: 18784 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 Jun 11 14:50:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 11 Jun 2020 14:50:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 ) Change subject: bsc: allow multiple MSCs ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760/2/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760/2/bsc/BSC_Tests.ttcn at 374 PS2, Line 374: * \param Would be good to have description for the new parameter too, like "Number of MSCs we should start/bring up" or so. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 14:50: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 Jun 11 14:52:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 11 Jun 2020 14:52:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 ) Change subject: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 Gerrit-Change-Number: 18761 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 14: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 Jun 11 14:53:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 11 Jun 2020 14:53:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 ) Change subject: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930 Gerrit-Change-Number: 18762 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 14:53:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 15:04:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 11 Jun 2020 15:04:28 +0000 Subject: Change in osmo-trx[master]: Transceiver: Implement TRXC cmd NOMTXPOWER In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18586 ) Change subject: Transceiver: Implement TRXC cmd NOMTXPOWER ...................................................................... Patch Set 2: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-trx/+/18586/2/Transceiver52M/Transceiver.cpp File Transceiver52M/Transceiver.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18586/2/Transceiver52M/Transceiver.cpp at 910 PS2, Line 910: %d", -power Rather return it the same as was received. https://gerrit.osmocom.org/c/osmo-trx/+/18586/2/Transceiver52M/device/lms/LMSDevice.cpp File Transceiver52M/device/lms/LMSDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18586/2/Transceiver52M/device/lms/LMSDevice.cpp at 535 PS2, Line 535: TODO It's more like FIXME... -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Gerrit-Change-Number: 18586 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Thu, 11 Jun 2020 15:04:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 15:08:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:08:26 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Add debug log when overlaying templates dir In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 ) Change subject: testenv: Add debug log when overlaying templates dir ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 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: I10fdfc5b2e3bf4c96941a3fae53230131f384de9 Gerrit-Change-Number: 18784 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 15:08: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 Jun 11 15:08:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:08:29 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Add debug log when overlaying templates dir In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 ) Change subject: testenv: Add debug log when overlaying templates dir ...................................................................... testenv: Add debug log when overlaying templates dir Change-Id: I10fdfc5b2e3bf4c96941a3fae53230131f384de9 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/testenv.py 2 files changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index a7c6422..9c9f5cc 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -639,8 +639,10 @@ trial suiteC test_template_overlay.py ---------------------------------------------- tst test_template_overlay.py:[LINENR]: - Testing: expect to fail on invalid templates overlay dir [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/nonexistent-templatedir [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py] [testenv.py:[LINENR]] tst test_template_overlay.py:[LINENR]: sucess: setting non-existing templates dir raised RuntimeError [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] tst test_template_overlay.py:[LINENR]: [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/mytemplatedir [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py] [testenv.py:[LINENR]] --- ReservedResources: DBG: requesting use of ip_address {specifics={}} [resource.py:[LINENR]] tst suiteC: Using 1 x ip_address (candidates: 1) [resource.py:[LINENR]] tst suiteC: DBG: Picked - _hash: fd103b22c7cf2480d609150e06f4bbd92ac78d8c @@ -705,6 +707,7 @@ local-ip 10.42.42.2 [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] tst test_template_overlay.py:[LINENR]: - New template is used after re-generating cache with set_overlay_template_dir: [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] +tst test_template_overlay.py:[LINENR] DBG: template dir overlay set: [PATH]/selftest/suite_test/suitedirB/suiteC/mytemplatedir [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py] [testenv.py:[LINENR]] run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42_3.2/osmo-stp.cfg'} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] run osmo-stp_10.42.42.2: DBG: STP CONFIG: {'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 4709b4c..d6c18ee 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -154,6 +154,7 @@ if template_dir is None: template.set_templates_dir(template.default_templates_dir()) else: + self.dbg('template dir overlay set: %s' % template_dir) template.set_templates_dir(template_dir, template.default_templates_dir()) def prompt(self, *msgs, **msg_details): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18784 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: I10fdfc5b2e3bf4c96941a3fae53230131f384de9 Gerrit-Change-Number: 18784 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 15:15:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:15:18 +0000 Subject: Change in osmo-gsm-tester[master]: suites/4g: Wait for IP addr received before trying to use the link References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18785 ) Change subject: suites/4g: Wait for IP addr received before trying to use the link ...................................................................... suites/4g: Wait for IP addr received before trying to use the link Otherwise processes using the link like "ping" or "iperf3" may fail because there's still no IP address assigned. Change-Id: I28137f10a19db01fe90b24830a60342a448d1e92 --- M sysmocom/suites/4g/handover.py M sysmocom/suites/4g/iperf3_dl.py M sysmocom/suites/4g/iperf3_ul.py M sysmocom/suites/4g/ping.py M sysmocom/suites/4g/rrc_idle_mo_ping.py M sysmocom/suites/4g/rrc_idle_mt_ping.py 6 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/85/18785/1 diff --git a/sysmocom/suites/4g/handover.py b/sysmocom/suites/4g/handover.py index bc49266..8bfb585 100755 --- a/sysmocom/suites/4g/handover.py +++ b/sysmocom/suites/4g/handover.py @@ -46,7 +46,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), duration + 30) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') rfemu_cell1 = enb.get_rfemu(0) diff --git a/sysmocom/suites/4g/iperf3_dl.py b/sysmocom/suites/4g/iperf3_dl.py index 055ce97..26df79b 100755 --- a/sysmocom/suites/4g/iperf3_dl.py +++ b/sysmocom/suites/4g/iperf3_dl.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/sysmocom/suites/4g/iperf3_ul.py b/sysmocom/suites/4g/iperf3_ul.py index 6e24070..15cde95 100755 --- a/sysmocom/suites/4g/iperf3_ul.py +++ b/sysmocom/suites/4g/iperf3_ul.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/sysmocom/suites/4g/ping.py b/sysmocom/suites/4g/ping.py index 0fb2edb..0297317 100755 --- a/sysmocom/suites/4g/ping.py +++ b/sysmocom/suites/4g/ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') proc = ue.run_netns_wait('ping', ('ping', '-c', '10', epc.tun_addr())) diff --git a/sysmocom/suites/4g/rrc_idle_mo_ping.py b/sysmocom/suites/4g/rrc_idle_mo_ping.py index de643df..ced798d 100755 --- a/sysmocom/suites/4g/rrc_idle_mo_ping.py +++ b/sysmocom/suites/4g/rrc_idle_mo_ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is RRC connected') print('waiting until RRC connection gets released...') diff --git a/sysmocom/suites/4g/rrc_idle_mt_ping.py b/sysmocom/suites/4g/rrc_idle_mt_ping.py index 7caba32..fb3c32c 100755 --- a/sysmocom/suites/4g/rrc_idle_mt_ping.py +++ b/sysmocom/suites/4g/rrc_idle_mt_ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is RRC connected') print('waiting until RRC connection gets released...') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18785 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: I28137f10a19db01fe90b24830a60342a448d1e92 Gerrit-Change-Number: 18785 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 Jun 11 15:17:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:17:30 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: Update resources.conf syntax changes References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18786 ) Change subject: osmo-gsm-tester: Update resources.conf syntax changes ...................................................................... osmo-gsm-tester: Update resources.conf syntax changes Change-Id: Iaa3e43d6878933b1f01026d58b01b1009fe4cd78 --- M osmo-gsm-tester/jenkins.sh M osmo-gsm-tester/resources.conf 2 files changed, 11 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/86/18786/1 diff --git a/osmo-gsm-tester/jenkins.sh b/osmo-gsm-tester/jenkins.sh index 64de38f..a198608 100755 --- a/osmo-gsm-tester/jenkins.sh +++ b/osmo-gsm-tester/jenkins.sh @@ -81,7 +81,7 @@ echo Starting container with osmo-gsm-tester main unit OSMO_GSM_TESTER_CONF=${OSMO_GSM_TESTER_CONF:-/tmp/osmo-gsm-tester/sysmocom/main.conf} -OSMO_GSM_TESTER_OPTS=${OSMO_GSM_TESTER_OPTS:--T -l dbg -s 4g:srsenb-rftype at zmq+srsue-rftype@zmq -t ping} +OSMO_GSM_TESTER_OPTS=${OSMO_GSM_TESTER_OPTS:--T -l dbg -s 4g:srsue-rftype at zmq+srsenb-rftype@zmq+mod-enb-nprb at 6 -t =ping.py} docker run --rm \ --cap-add=NET_ADMIN \ --cap-add=SYS_ADMIN \ diff --git a/osmo-gsm-tester/resources.conf b/osmo-gsm-tester/resources.conf index a687edb..22ff85e 100644 --- a/osmo-gsm-tester/resources.conf +++ b/osmo-gsm-tester/resources.conf @@ -37,8 +37,11 @@ - label: srsENB-zmq type: srsenb rf_dev_type: zmq - remote_user: jenkins - addr: 172.18.50.101 + run_node: + run_type: ssh + run_addr: 172.18.50.101 + ssh_user: jenkins + ssh_addr: 172.18.50.101 arfcn: - arfcn: 512 @@ -55,9 +58,12 @@ - label: srsUE-zmq_1 type: srsue rf_dev_type: zmq - remote_user: jenkins - addr: 172.18.50.100 imsi: '001010123456789' ki: '00112233445566778899aabbccddeeff' auth_algo: 'xor' features: ['4g'] + run_node: + run_type: ssh + run_addr: 172.18.50.100 + ssh_user: jenkins + ssh_addr: 172.18.50.100 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iaa3e43d6878933b1f01026d58b01b1009fe4cd78 Gerrit-Change-Number: 18786 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 Jun 11 15:17:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:17:40 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: Update resources.conf syntax changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18786 ) Change subject: osmo-gsm-tester: Update resources.conf syntax changes ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iaa3e43d6878933b1f01026d58b01b1009fe4cd78 Gerrit-Change-Number: 18786 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 15:17: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 Jun 11 15:17:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:17:42 +0000 Subject: Change in docker-playground[master]: osmo-gsm-tester: Update resources.conf syntax changes In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18786 ) Change subject: osmo-gsm-tester: Update resources.conf syntax changes ...................................................................... osmo-gsm-tester: Update resources.conf syntax changes Change-Id: Iaa3e43d6878933b1f01026d58b01b1009fe4cd78 --- M osmo-gsm-tester/jenkins.sh M osmo-gsm-tester/resources.conf 2 files changed, 11 insertions(+), 5 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/osmo-gsm-tester/jenkins.sh b/osmo-gsm-tester/jenkins.sh index 64de38f..a198608 100755 --- a/osmo-gsm-tester/jenkins.sh +++ b/osmo-gsm-tester/jenkins.sh @@ -81,7 +81,7 @@ echo Starting container with osmo-gsm-tester main unit OSMO_GSM_TESTER_CONF=${OSMO_GSM_TESTER_CONF:-/tmp/osmo-gsm-tester/sysmocom/main.conf} -OSMO_GSM_TESTER_OPTS=${OSMO_GSM_TESTER_OPTS:--T -l dbg -s 4g:srsenb-rftype at zmq+srsue-rftype@zmq -t ping} +OSMO_GSM_TESTER_OPTS=${OSMO_GSM_TESTER_OPTS:--T -l dbg -s 4g:srsue-rftype at zmq+srsenb-rftype@zmq+mod-enb-nprb at 6 -t =ping.py} docker run --rm \ --cap-add=NET_ADMIN \ --cap-add=SYS_ADMIN \ diff --git a/osmo-gsm-tester/resources.conf b/osmo-gsm-tester/resources.conf index a687edb..22ff85e 100644 --- a/osmo-gsm-tester/resources.conf +++ b/osmo-gsm-tester/resources.conf @@ -37,8 +37,11 @@ - label: srsENB-zmq type: srsenb rf_dev_type: zmq - remote_user: jenkins - addr: 172.18.50.101 + run_node: + run_type: ssh + run_addr: 172.18.50.101 + ssh_user: jenkins + ssh_addr: 172.18.50.101 arfcn: - arfcn: 512 @@ -55,9 +58,12 @@ - label: srsUE-zmq_1 type: srsue rf_dev_type: zmq - remote_user: jenkins - addr: 172.18.50.100 imsi: '001010123456789' ki: '00112233445566778899aabbccddeeff' auth_algo: 'xor' features: ['4g'] + run_node: + run_type: ssh + run_addr: 172.18.50.100 + ssh_user: jenkins + ssh_addr: 172.18.50.100 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iaa3e43d6878933b1f01026d58b01b1009fe4cd78 Gerrit-Change-Number: 18786 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 15:31:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:31:11 +0000 Subject: Change in osmo-gsm-tester[master]: suites/4g: Wait for IP addr received before trying to use the link In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18785 ) Change subject: suites/4g: Wait for IP addr received before trying to use the link ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18785 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: I28137f10a19db01fe90b24830a60342a448d1e92 Gerrit-Change-Number: 18785 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 15:31:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 15:31:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 15:31:14 +0000 Subject: Change in osmo-gsm-tester[master]: suites/4g: Wait for IP addr received before trying to use the link In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18785 ) Change subject: suites/4g: Wait for IP addr received before trying to use the link ...................................................................... suites/4g: Wait for IP addr received before trying to use the link Otherwise processes using the link like "ping" or "iperf3" may fail because there's still no IP address assigned. Change-Id: I28137f10a19db01fe90b24830a60342a448d1e92 --- M sysmocom/suites/4g/handover.py M sysmocom/suites/4g/iperf3_dl.py M sysmocom/suites/4g/iperf3_ul.py M sysmocom/suites/4g/ping.py M sysmocom/suites/4g/rrc_idle_mo_ping.py M sysmocom/suites/4g/rrc_idle_mt_ping.py 6 files changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/sysmocom/suites/4g/handover.py b/sysmocom/suites/4g/handover.py index bc49266..8bfb585 100755 --- a/sysmocom/suites/4g/handover.py +++ b/sysmocom/suites/4g/handover.py @@ -46,7 +46,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), duration + 30) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') rfemu_cell1 = enb.get_rfemu(0) diff --git a/sysmocom/suites/4g/iperf3_dl.py b/sysmocom/suites/4g/iperf3_dl.py index 055ce97..26df79b 100755 --- a/sysmocom/suites/4g/iperf3_dl.py +++ b/sysmocom/suites/4g/iperf3_dl.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/sysmocom/suites/4g/iperf3_ul.py b/sysmocom/suites/4g/iperf3_ul.py index 6e24070..15cde95 100755 --- a/sysmocom/suites/4g/iperf3_ul.py +++ b/sysmocom/suites/4g/iperf3_ul.py @@ -26,7 +26,7 @@ proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns())) diff --git a/sysmocom/suites/4g/ping.py b/sysmocom/suites/4g/ping.py index 0fb2edb..0297317 100755 --- a/sysmocom/suites/4g/ping.py +++ b/sysmocom/suites/4g/ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is attached') proc = ue.run_netns_wait('ping', ('ping', '-c', '10', epc.tun_addr())) diff --git a/sysmocom/suites/4g/rrc_idle_mo_ping.py b/sysmocom/suites/4g/rrc_idle_mo_ping.py index de643df..ced798d 100755 --- a/sysmocom/suites/4g/rrc_idle_mo_ping.py +++ b/sysmocom/suites/4g/rrc_idle_mo_ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is RRC connected') print('waiting until RRC connection gets released...') diff --git a/sysmocom/suites/4g/rrc_idle_mt_ping.py b/sysmocom/suites/4g/rrc_idle_mt_ping.py index 7caba32..fb3c32c 100755 --- a/sysmocom/suites/4g/rrc_idle_mt_ping.py +++ b/sysmocom/suites/4g/rrc_idle_mt_ping.py @@ -16,7 +16,7 @@ ue.connect(enb) print('waiting for UE to attach...') -wait(ue.is_rrc_connected) +wait(ue.is_registered) print('UE is RRC connected') print('waiting until RRC connection gets released...') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18785 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: I28137f10a19db01fe90b24830a60342a448d1e92 Gerrit-Change-Number: 18785 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 16:19:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 16:19:34 +0000 Subject: Change in osmo-gsm-tester[master]: test: Store brief log per test and use as default report_stdout References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18787 ) Change subject: test: Store brief log per test and use as default report_stdout ...................................................................... test: Store brief log per test and use as default report_stdout Change-Id: I0972ba56a42c24f3d3b1bc94bcbdaca86026046a --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/core/trial.py 3 files changed, 13 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/87/18787/1 diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index f1954d1..b8182f5 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -46,6 +46,9 @@ C_BUS = 'bus' C_DEFAULT = '---' +FILE_LOG = 'log' +FILE_LOG_BRIEF = 'log_brief' + LOG_CTX_VAR = '_log_ctx_' def dbg(*messages, _origin=None, _category=None, _src=None, **named_items): diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 7e03b6c..47e1f42 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -46,7 +46,7 @@ self.duration = 0 self.fail_type = None self.fail_message = None - self.log_target = None + self.log_targets = [] self._report_stdout = None def module_name(self): @@ -62,7 +62,8 @@ def run(self): testenv_obj = None try: - self.log_target = log.FileLogTarget(self.get_run_dir().new_child('log')).set_all_levels(log.L_DBG).style_change(trace=True) + self.log_targets = [log.FileLogTarget(self.get_run_dir().new_child(log.FILE_LOG)).set_all_levels(log.L_DBG).style_change(trace=True), + log.FileLogTarget(self.get_run_dir().new_child(log.FILE_LOG_BRIEF)).style_change(src=False, all_origins_on_levels=(log.L_ERR, log.L_TRACEBACK))] log.large_separator(self.suite_run.trial().name(), self.suite_run.name(), self.name(), sublevel=3) self.status = Test.UNKNOWN self.start_timestamp = time.time() @@ -95,8 +96,8 @@ finally: if testenv_obj: testenv_obj.stop() - if self.log_target: - self.log_target.remove() + for log_tgt in self.log_targets: + log_tgt.remove() def name(self): l = log.get_line_for_src(self.path) @@ -137,9 +138,9 @@ # If test overwrote the text, provide it: if self._report_stdout is not None: return self._report_stdout - # Otherwise vy default provide the entire test log: - if self.log_target is not None and self.log_target.log_file_path() is not None: - with open(self.log_target.log_file_path(), 'r') as myfile: + # Otherwise vy default provide the entire test brief log: + if len(self.log_targets) == 2 and self.log_targets[1].log_file_path() is not None: + with open(self.log_targets[1].log_file_path(), 'r') as myfile: return myfile.read() else: return 'test log file not available' diff --git a/src/osmo_gsm_tester/core/trial.py b/src/osmo_gsm_tester/core/trial.py index 001421f..3787726 100644 --- a/src/osmo_gsm_tester/core/trial.py +++ b/src/osmo_gsm_tester/core/trial.py @@ -32,8 +32,6 @@ FILE_CHECKSUMS = 'checksums.md5' TIMESTAMP_FMT = '%Y-%m-%d_%H-%M-%S' FILE_LAST_RUN = 'last_run' -FILE_LOG = 'log' -FILE_LOG_BRIEF = 'log_brief' class Trial(log.Origin): UNKNOWN = 'UNKNOWN' @@ -71,12 +69,12 @@ '''add a log target to log to the run dir, write taken marker, log a starting separator.''' run_dir = self.get_run_dir() - detailed_log = run_dir.new_child(FILE_LOG) + detailed_log = run_dir.new_child(log.FILE_LOG) self.log_targets = [ log.FileLogTarget(detailed_log) .set_all_levels(log.L_DBG) .style_change(trace=True), - log.FileLogTarget(run_dir.new_child(FILE_LOG_BRIEF)) + log.FileLogTarget(run_dir.new_child(log.FILE_LOG_BRIEF)) .style_change(src=False, all_origins_on_levels=(log.L_ERR, log.L_TRACEBACK)) ] log.large_separator(self.name(), sublevel=1) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18787 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: I0972ba56a42c24f3d3b1bc94bcbdaca86026046a Gerrit-Change-Number: 18787 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 Jun 11 16:23:48 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 11 Jun 2020 16:23:48 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: add default SIB3 References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 ) Change subject: srsenb_sib.conf.tmpl: add default SIB3 ...................................................................... srsenb_sib.conf.tmpl: add default SIB3 if SIB3 isn't transmitted, the UE won't do HO and cell reselection Change-Id: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f --- M src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl 1 file changed, 21 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/88/18788/1 diff --git a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl index ecd49e9..6d178c6 100644 --- a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl @@ -9,7 +9,7 @@ ( { si_periodicity = 16; - si_mapping_info = []; // comma-separated array of SIB-indexes (from 3 to 13). + si_mapping_info = [ 3 ]; // comma-separated array of SIB-indexes (from 3 to 13). // Leave empty or commented to just scheduler sib2 } ); @@ -119,3 +119,23 @@ time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. }; + +sib3 = +{ + cell_reselection_common = { + q_hyst = 2; // in dB + }, + cell_reselection_serving = { + s_non_intra_search = 3, + thresh_serving_low = 2, + cell_resel_prio = 6 + }, + intra_freq_reselection = { + q_rx_lev_min = -61, + p_max = 23, + s_intra_search = 5, + presence_ant_port_1 = true, + neigh_cell_cnfg = 1, + t_resel_eutra = 1 + } +}; -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 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: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f Gerrit-Change-Number: 18788 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 16:30:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 16:30:48 +0000 Subject: Change in osmo-gsm-tester[master]: test: Store brief log per test and use as default report_stdout In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18787 ) Change subject: test: Store brief log per test and use as default report_stdout ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18787 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: I0972ba56a42c24f3d3b1bc94bcbdaca86026046a Gerrit-Change-Number: 18787 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 16:30:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 16:30:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 16:30:51 +0000 Subject: Change in osmo-gsm-tester[master]: test: Store brief log per test and use as default report_stdout In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18787 ) Change subject: test: Store brief log per test and use as default report_stdout ...................................................................... test: Store brief log per test and use as default report_stdout Change-Id: I0972ba56a42c24f3d3b1bc94bcbdaca86026046a --- M src/osmo_gsm_tester/core/log.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/core/trial.py 3 files changed, 13 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/log.py b/src/osmo_gsm_tester/core/log.py index f1954d1..b8182f5 100644 --- a/src/osmo_gsm_tester/core/log.py +++ b/src/osmo_gsm_tester/core/log.py @@ -46,6 +46,9 @@ C_BUS = 'bus' C_DEFAULT = '---' +FILE_LOG = 'log' +FILE_LOG_BRIEF = 'log_brief' + LOG_CTX_VAR = '_log_ctx_' def dbg(*messages, _origin=None, _category=None, _src=None, **named_items): diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 7e03b6c..47e1f42 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -46,7 +46,7 @@ self.duration = 0 self.fail_type = None self.fail_message = None - self.log_target = None + self.log_targets = [] self._report_stdout = None def module_name(self): @@ -62,7 +62,8 @@ def run(self): testenv_obj = None try: - self.log_target = log.FileLogTarget(self.get_run_dir().new_child('log')).set_all_levels(log.L_DBG).style_change(trace=True) + self.log_targets = [log.FileLogTarget(self.get_run_dir().new_child(log.FILE_LOG)).set_all_levels(log.L_DBG).style_change(trace=True), + log.FileLogTarget(self.get_run_dir().new_child(log.FILE_LOG_BRIEF)).style_change(src=False, all_origins_on_levels=(log.L_ERR, log.L_TRACEBACK))] log.large_separator(self.suite_run.trial().name(), self.suite_run.name(), self.name(), sublevel=3) self.status = Test.UNKNOWN self.start_timestamp = time.time() @@ -95,8 +96,8 @@ finally: if testenv_obj: testenv_obj.stop() - if self.log_target: - self.log_target.remove() + for log_tgt in self.log_targets: + log_tgt.remove() def name(self): l = log.get_line_for_src(self.path) @@ -137,9 +138,9 @@ # If test overwrote the text, provide it: if self._report_stdout is not None: return self._report_stdout - # Otherwise vy default provide the entire test log: - if self.log_target is not None and self.log_target.log_file_path() is not None: - with open(self.log_target.log_file_path(), 'r') as myfile: + # Otherwise vy default provide the entire test brief log: + if len(self.log_targets) == 2 and self.log_targets[1].log_file_path() is not None: + with open(self.log_targets[1].log_file_path(), 'r') as myfile: return myfile.read() else: return 'test log file not available' diff --git a/src/osmo_gsm_tester/core/trial.py b/src/osmo_gsm_tester/core/trial.py index 001421f..3787726 100644 --- a/src/osmo_gsm_tester/core/trial.py +++ b/src/osmo_gsm_tester/core/trial.py @@ -32,8 +32,6 @@ FILE_CHECKSUMS = 'checksums.md5' TIMESTAMP_FMT = '%Y-%m-%d_%H-%M-%S' FILE_LAST_RUN = 'last_run' -FILE_LOG = 'log' -FILE_LOG_BRIEF = 'log_brief' class Trial(log.Origin): UNKNOWN = 'UNKNOWN' @@ -71,12 +69,12 @@ '''add a log target to log to the run dir, write taken marker, log a starting separator.''' run_dir = self.get_run_dir() - detailed_log = run_dir.new_child(FILE_LOG) + detailed_log = run_dir.new_child(log.FILE_LOG) self.log_targets = [ log.FileLogTarget(detailed_log) .set_all_levels(log.L_DBG) .style_change(trace=True), - log.FileLogTarget(run_dir.new_child(FILE_LOG_BRIEF)) + log.FileLogTarget(run_dir.new_child(log.FILE_LOG_BRIEF)) .style_change(src=False, all_origins_on_levels=(log.L_ERR, log.L_TRACEBACK)) ] log.large_separator(self.name(), sublevel=1) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18787 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: I0972ba56a42c24f3d3b1bc94bcbdaca86026046a Gerrit-Change-Number: 18787 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 16:33:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 16:33:00 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: add default SIB3 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 ) Change subject: srsenb_sib.conf.tmpl: add default SIB3 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 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: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f Gerrit-Change-Number: 18788 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 11 Jun 2020 16:33:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 16:34:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 16:34:25 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18739 ) Change subject: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie42fc1e686d29740e14aaacd69659fe09e66801a Gerrit-Change-Number: 18739 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 16:34:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 16:34:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 11 Jun 2020 16:34:27 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/18739 ) Change subject: jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly ...................................................................... jobs: osmo-gsm-tester: Run mass LU and ttcn3 BTS tests nightly Before they were executed almost in a loop, so let's simply run them once per day. Change-Id: Ie42fc1e686d29740e14aaacd69659fe09e66801a --- M jobs/osmo-gsm-tester-runner.yml 1 file changed, 2 insertions(+), 6 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index 041ef93..4cdd383 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -187,9 +187,7 @@ scm: - 'osmo-gsm-tester-repo' triggers: - - timed: "H H/2 * * *" - - pollscm: - cron: "H/5 * * * *" + - timed: "H 23 * * *" builders: - shell: | # make sure no bin artifacts from a previous run remain @@ -214,9 +212,7 @@ scm: - 'osmo-gsm-tester-repo' triggers: - - timed: "H H/2 * * *" - - pollscm: - cron: "H/5 * * * *" + - timed: "H 22 * * *" builders: - shell: | # make sure no bin artifacts from a previous run remain -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/18739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie42fc1e686d29740e14aaacd69659fe09e66801a Gerrit-Change-Number: 18739 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 18:38:03 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 11 Jun 2020 18:38:03 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: add default SIB3 In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 ) Change subject: srsenb_sib.conf.tmpl: add default SIB3 ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 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: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f Gerrit-Change-Number: 18788 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Thu, 11 Jun 2020 18:38:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 18:38:08 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 11 Jun 2020 18:38:08 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_sib.conf.tmpl: add default SIB3 In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 ) Change subject: srsenb_sib.conf.tmpl: add default SIB3 ...................................................................... srsenb_sib.conf.tmpl: add default SIB3 if SIB3 isn't transmitted, the UE won't do HO and cell reselection Change-Id: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f --- M src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl 1 file changed, 21 insertions(+), 1 deletion(-) Approvals: srs_andre: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl index ecd49e9..6d178c6 100644 --- a/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_sib.conf.tmpl @@ -9,7 +9,7 @@ ( { si_periodicity = 16; - si_mapping_info = []; // comma-separated array of SIB-indexes (from 3 to 13). + si_mapping_info = [ 3 ]; // comma-separated array of SIB-indexes (from 3 to 13). // Leave empty or commented to just scheduler sib2 } ); @@ -119,3 +119,23 @@ time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc. }; + +sib3 = +{ + cell_reselection_common = { + q_hyst = 2; // in dB + }, + cell_reselection_serving = { + s_non_intra_search = 3, + thresh_serving_low = 2, + cell_resel_prio = 6 + }, + intra_freq_reselection = { + q_rx_lev_min = -61, + p_max = 23, + s_intra_search = 5, + presence_ant_port_1 = true, + neigh_cell_cnfg = 1, + t_resel_eutra = 1 + } +}; -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18788 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: I329a59d9d0fa3b25bc00b760a455eadbe0b7220f Gerrit-Change-Number: 18788 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:24:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:24:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move type RAN_Configurations to RAN_Adapter.ttcnpp In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 ) Change subject: move type RAN_Configurations to RAN_Adapter.ttcnpp ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 Gerrit-Change-Number: 18759 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:24: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 Jun 11 20:26:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:26:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 ) Change subject: bsc: allow multiple MSCs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:26: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 Jun 11 20:28:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:28:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 ) Change subject: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 Gerrit-Change-Number: 18761 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20: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 Jun 11 20:30:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:30:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 ) Change subject: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930 Gerrit-Change-Number: 18762 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:30: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 Jun 11 20:31:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:31:12 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography, glossary: add MSC pooling related bits In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 ) Change subject: bibliography, glossary: add MSC pooling related bits ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 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: I0640db26dc85ab7723c7160e405fc73f412fd706 Gerrit-Change-Number: 18780 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:31: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 Jun 11 20:32:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:32:30 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 11 Jun 2020 20:32: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 Jun 11 20:32:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:32:52 +0000 Subject: Change in osmo-sgsn[master]: gbproxy_test.c: fix mobile identity test data In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18585 ) Change subject: gbproxy_test.c: fix mobile identity test data ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia006a3da6779ad1984f642e8ea29790a4daeb8b9 Gerrit-Change-Number: 18585 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:32:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:33:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:33:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix f_enc_IMEI_L3() oddevenIndicator In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 ) Change subject: fix f_enc_IMEI_L3() oddevenIndicator ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0 Gerrit-Change-Number: 18758 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 11 Jun 2020 20: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 Thu Jun 11 20:35:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:35:24 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... Patch Set 10: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 10 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:35:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:40:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:40:42 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18713 ) Change subject: use osmo_mobile_identity API everywhere ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:40:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:41:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:41:26 +0000 Subject: Change in osmo-bsc[master]: tweak log category for Compl L3 error In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18764 ) Change subject: tweak log category for Compl L3 error ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9c6373e5f28c9c69a0609889188ef28ade11da3d Gerrit-Change-Number: 18764 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20: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 Jun 11 20:44:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:44:17 +0000 Subject: Change in osmo-gsm-manuals[master]: vty reference: allow reference XML generated at build time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18362 ) Change subject: vty reference: allow reference XML generated at build time ...................................................................... Patch Set 3: I honestly don't have the slightest idea what this patch does, even after reading the commitlog and the patc twice. Not sure if it's just me, sorry. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18362 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: I613d692328050a036d05b49a436ab495fc2087ba Gerrit-Change-Number: 18362 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:44:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:44:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:44:58 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18774 ) Change subject: BSC_Tests.cfg: adjust cfg for multiple MSCs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1986e4ef43beee161c82193694421b56136c1afe Gerrit-Change-Number: 18774 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:44:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:45:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:45:53 +0000 Subject: Change in docker-playground[master]: bsc: adjust osmo-bsc.cfg for MSC pooling tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18775 ) Change subject: bsc: adjust osmo-bsc.cfg for MSC pooling tests ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18775/1/ttcn3-bsc-test/osmo-bsc.cfg File ttcn3-bsc-test/osmo-bsc.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18775/1/ttcn3-bsc-test/osmo-bsc.cfg at 405 PS1, Line 405: # a Wow, I wasn't even aware that any other character than '!' can be used for comments in our config files. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b Gerrit-Change-Number: 18775 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:45:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:46:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:46:10 +0000 Subject: Change in docker-playground[master]: MSC_Tests.cfg: tweak comments In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18776 ) Change subject: MSC_Tests.cfg: tweak comments ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 Gerrit-Change-Number: 18776 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 11 Jun 2020 20:46: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 Jun 11 20:46:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:46:36 +0000 Subject: Change in osmo-trx[master]: Transceiver: Implement TRXC cmd NOMTXPOWER In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18586 ) Change subject: Transceiver: Implement TRXC cmd NOMTXPOWER ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Gerrit-Change-Number: 18586 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Thu, 11 Jun 2020 20:46:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 11 20:47:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 11 Jun 2020 20:47:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: properly handle NOPE.ind during handover In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18734 ) Change subject: osmo-bts-trx/scheduler: properly handle NOPE.ind during handover ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Gerrit-Change-Number: 18734 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 11 Jun 2020 20:47:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 12 01:39:03 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 12 Jun 2020 01:39:03 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee2dcbdd4fe9_e962b0071b305f053178d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 408s] [1921/2112] rm -f src/pcrf/libpcrf.a && gcc-ar csrD src/pcrf/libpcrf.a 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-init.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-context.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-fd-path.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-rx-path.c.o' [ 408s] [1922/2112] cc -Isrc/nrf/src at nrf@@nrf at sta -Isrc/nrf -I../src/nrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' -MF 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o.d' -o 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' -c ../src/nrf/nrf-sm.c [ 409s] [1923/2112] rm -f src/nrf/libnrf.a && gcc-ar csrD src/nrf/libnrf.a 'src/nrf/src at nrf@@nrf at sta/context.c.o' 'src/nrf/src at nrf@@nrf at sta/event.c.o' 'src/nrf/src at nrf@@nrf at sta/timer.c.o' 'src/nrf/src at nrf@@nrf at sta/nnrf-handler.c.o' 'src/nrf/src at nrf@@nrf at sta/nnrf-build.c.o' 'src/nrf/src at nrf@@nrf at sta/sbi-path.c.o' 'src/nrf/src at nrf@@nrf at sta/nf-sm.c.o' 'src/nrf/src at nrf@@nrf at sta/nrf-sm.c.o' 'src/nrf/src at nrf@@nrf at sta/init.c.o' [ 409s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 409s] [1925/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/src at pcrf@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/src at pcrf@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lrt -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 409s] [1926/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 409s] [1927/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 409s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 409s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 409s] ../src/udm/context.c: In function ?udm_ue_add?: [ 409s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 409s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 409s] ~~^ [ 409s] %d [ 409s] cc1: some warnings being treated as errors [ 409s] [1928/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 409s] [1929/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 409s] [1930/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 409s] ninja: build stopped: subcommand failed. [ 409s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 409s] make: *** [debian/rules:11: binary] Error 1 [ 409s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 409s] ### VM INTERACTION START ### [ 412s] [ 313.804489] sysrq: SysRq : Power Off [ 412s] [ 313.821347] reboot: Power down [ 413s] ### VM INTERACTION END ### [ 413s] [ 413s] cloud104 failed "build open5gs_1.2.5.20200612.dsc" at Fri Jun 12 01:38:56 UTC 2020. [ 413s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 12 01:39:20 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 12 Jun 2020 01:39:20 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee2dcd9d2a15_e962b0071b305f0532128@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 194s] [1931/2112] cc -Isrc/udr/open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/open5gs-udrd at exe/app.c.o' -MF 'src/udr/open5gs-udrd at exe/app.c.o.d' -o 'src/udr/open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 194s] [1932/2112] cc -Isrc/udr/udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/udr at sta/init.c.o' -MF 'src/udr/udr at sta/init.c.o.d' -o 'src/udr/udr at sta/init.c.o' -c ../src/udr/init.c [ 194s] [1933/2112] cc -Isrc/udr/udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/udr at sta/udr-sm.c.o' -MF 'src/udr/udr at sta/udr-sm.c.o.d' -o 'src/udr/udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 194s] [1934/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/udr at sta/context.c.o' 'src/udr/udr at sta/event.c.o' 'src/udr/udr at sta/timer.c.o' 'src/udr/udr at sta/nnrf-handler.c.o' 'src/udr/udr at sta/nf-sm.c.o' 'src/udr/udr at sta/nudr-handler.c.o' 'src/udr/udr at sta/sbi-path.c.o' 'src/udr/udr at sta/udr-sm.c.o' 'src/udr/udr at sta/init.c.o' [ 194s] [1935/2112] cc -Isrc/udr/open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 194s] [1936/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/event.c.o' -MF 'src/udm/udm at sta/event.c.o.d' -o 'src/udm/udm at sta/event.c.o' -c ../src/udm/event.c [ 194s] [1937/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 194s] FAILED: src/udm/udm at sta/context.c.o [ 195s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 195s] ../src/udm/context.c: In function ?udm_ue_add?: [ 195s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 195s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 195s] ~~^ [ 195s] %d [ 195s] cc1: some warnings being treated as errors [ 195s] [1938/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/timer.c.o' -MF 'src/udm/udm at sta/timer.c.o.d' -o 'src/udm/udm at sta/timer.c.o' -c ../src/udm/timer.c [ 195s] [1939/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 195s] ninja: build stopped: subcommand failed. [ 195s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j3 -v returned exit code 1 [ 195s] debian/rules:11: recipe for target 'binary' failed [ 195s] make: *** [binary] Error 1 [ 195s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 195s] ### VM INTERACTION START ### [ 198s] [ 191.266787] sysrq: SysRq : Power Off [ 198s] [ 191.268532] reboot: Power down [ 198s] ### VM INTERACTION END ### [ 198s] [ 198s] build72 failed "build open5gs_1.2.5.20200612.dsc" at Fri Jun 12 01:39:03 UTC 2020. [ 198s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 12 01:39:21 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 12 Jun 2020 01:39:21 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee2dcdb12351_e962b0071b305f05323f1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 193s] [1926/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 193s] [1927/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 193s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 193s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 193s] ../src/udm/context.c: In function ?udm_ue_add?: [ 193s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 193s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 193s] ~~^ [ 193s] %d [ 193s] cc1: some warnings being treated as errors [ 193s] [1928/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 193s] [1929/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 193s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 193s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 193s] [1932/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 193s] [1933/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -W[ 182.321645] serial8250: too much work for irq4 [ 193s] error=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 193s] [1934/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 193s] ninja: build stopped: subcommand failed. [ 193s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 193s] make: *** [debian/rules:11: binary] Error 1 [ 193s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 193s] ### VM INTERACTION START ### [ 196s] [ 185.561547] sysrq: SysRq : Power Off [ 196s] [ 185.572237] reboot: Power down [ 196s] ### VM INTERACTION END ### [ 196s] [ 196s] lamb20 failed "build open5gs_1.2.5.20200612.dsc" at Fri Jun 12 01:39:13 UTC 2020. [ 196s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jun 12 06:55:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 12 Jun 2020 06:55:06 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: properly handle NOPE.ind during handover In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18734 ) Change subject: osmo-bts-trx/scheduler: properly handle NOPE.ind during handover ...................................................................... osmo-bts-trx/scheduler: properly handle NOPE.ind during handover Looking at GSMTAP during handover, I've noticed many packets on RACH looking pretty much like false positives, all with RA=0x00. I correlated GSMTAP traces with TRXD traces, and figured out that they all are triggered by NOPE indications from osmo-trx. Since a NOPE.ind carries no valid burst, all its bits are set to zero. Funny enough, this sequence is still decoded just fine as a valid RACH, so that's why we see it on GSMTAP. Later on it gets rejected by L1SAP due to bad RSSI, ToA, and/or C/I ratio. The is a side effect of [1]. In order to ensure proper Uplink measurement reporting during handover, including the time before the handover RACH is received, let's treat and handle NOPE indications as Normal Bursts. [1] Ice45d5986610d9bcef2a7e41f0a395ec779e3928 Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Related: OS#4592 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 9 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 8a2bb12..97b590d 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -917,8 +917,9 @@ uint16_t ber10k; int rc; - /* handle RACH, if handover RACH detection is turned on */ - if (chan_state->ho_rach_detect == 1) + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) return rx_rach_fn(l1t, chan, bid, bi); LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, @@ -1142,8 +1143,9 @@ uint8_t is_sub = 0; uint8_t ft; - /* handle rach, if handover rach detection is turned on */ - if (chan_state->ho_rach_detect == 1) + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) return rx_rach_fn(l1t, chan, bid, bi); LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, @@ -1384,8 +1386,9 @@ uint8_t is_sub = 0; uint8_t ft; - /* handle RACH, if handover RACH detection is turned on */ - if (chan_state->ho_rach_detect == 1) + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) return rx_rach_fn(l1t, chan, bid, bi); LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic69f3bc2b776a23374c28a6884080a54bc16ef5f Gerrit-Change-Number: 18734 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 07:02:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 12 Jun 2020 07:02:08 +0000 Subject: Change in osmo-bts[master]: pcu_sock: Change log about tx PCH confirm INFO->DEBUG In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18746 ) Change subject: pcu_sock: Change log about tx PCH confirm INFO->DEBUG ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c0dee36c7d34e6b1341b517ce3bcd1b275e69c1 Gerrit-Change-Number: 18746 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 12 Jun 2020 07:02: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 Jun 12 09:59:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 09:59:31 +0000 Subject: Change in osmo-bts[master]: pcu_sock: Change log about tx PCH confirm INFO->DEBUG In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18746 ) Change subject: pcu_sock: Change log about tx PCH confirm INFO->DEBUG ...................................................................... pcu_sock: Change log about tx PCH confirm INFO->DEBUG It's not something useful to see unless someone's really debugging that part, and it shows up quite frequently. Change-Id: I3c0dee36c7d34e6b1341b517ce3bcd1b275e69c1 --- M src/common/pcu_sock.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 7ced69c..f4a8c0a 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -474,7 +474,7 @@ /* FIXME: allow multiple BTS */ bts = llist_entry(net->bts_list.next, struct gsm_bts, list); - LOGP(DPCU, LOGL_INFO, "Sending PCH confirm\n"); + LOGP(DPCU, LOGL_DEBUG, "Sending PCH confirm\n"); msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_CNF, bts->nr); if (!msg) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c0dee36c7d34e6b1341b517ce3bcd1b275e69c1 Gerrit-Change-Number: 18746 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 09:59:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 09:59:56 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement power ramping during BTS bring up In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18488 ) Change subject: bts-trx: Implement power ramping during BTS bring up ...................................................................... bts-trx: Implement power ramping during BTS bring up The nominal transmit power is still only configurable manually from osmo-bts-trx VTY interface. Support to retrieve the nominal power from osmo-trx will come later. Change-Id: Ia7c353e4c199e0fc3bcab55c45a4abda2c66d2c1 --- M include/osmo-bts/tx_power.h M src/osmo-bts-trx/l1_if.c 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_vty.c 7 files changed, 73 insertions(+), 73 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/tx_power.h b/include/osmo-bts/tx_power.h index 21887c7..10129eb 100644 --- a/include/osmo-bts/tx_power.h +++ b/include/osmo-bts/tx_power.h @@ -65,6 +65,8 @@ int get_p_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie); int get_p_target_mdBm_lchan(struct gsm_lchan *lchan); +int get_p_actual_mdBm(struct gsm_bts_trx *trx, int p_target_mdBm); + int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie); int get_p_trxout_target_mdBm_lchan(struct gsm_lchan *lchan); diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index b67d8fa..ff8e293 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -177,6 +177,15 @@ if (rc == 0 && pinst->phy_link->state != PHY_LINK_CONNECTED) { trx_sched_clock_started(pinst->trx->bts); phy_link_state_set(pinst->phy_link, PHY_LINK_CONNECTED); + + /* Begin to ramp up the power on all TRX associated with this phy */ + llist_for_each_entry(pinst, &plink->instances, list) { + struct gsm_bts_trx *trx = pinst->trx; + if (l1h->config.forced_max_power_red == -1) + power_ramp_start(trx, get_p_nominal_mdBm(trx), 0); + else + power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1); + } } else if (rc != 0 && pinst->phy_link->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); phy_link_state_set(pinst->phy_link, PHY_LINK_SHUTDOWN); @@ -184,6 +193,16 @@ } } +static void l1if_setpower_cb(struct trx_l1h *l1h, int power_att_db, int rc) +{ + struct phy_instance *pinst = l1h->phy_inst; + struct gsm_bts_trx *trx = pinst->trx; + + LOGPPHI(pinst, DL1C, LOGL_DEBUG, "l1if_setpower_cb(power_att_db=%d, rc=%d)\n", power_att_db, rc); + + power_trx_change_compl(trx, get_p_max_out_mdBm(trx) - to_mdB(power_att_db)); +} + /* * transceiver provisioning */ @@ -249,10 +268,6 @@ trx_if_cmd_setrxgain(l1h, l1h->config.rxgain); l1h->config.rxgain_sent = 1; } - if (l1h->config.power_valid && !l1h->config.power_sent) { - trx_if_cmd_setpower(l1h, l1h->config.power); - l1h->config.power_sent = 1; - } if (l1h->config.maxdly_valid && !l1h->config.maxdly_sent) { trx_if_cmd_setmaxdly(l1h, l1h->config.maxdly); l1h->config.maxdly_sent = 1; @@ -279,7 +294,6 @@ plink->u.osmotrx.poweronoff_sent = true; } l1h->config.rxgain_sent = 0; - l1h->config.power_sent = 0; l1h->config.maxdly_sent = 0; l1h->config.maxdlynb_sent = 0; for (tn = 0; tn < TRX_NR_TS; tn++) @@ -304,7 +318,6 @@ l1h->config.tsc_sent = 0; l1h->config.bsic_sent = 0; l1h->config.rxgain_sent = 0; - l1h->config.power_sent = 0; l1h->config.maxdly_sent = 0; l1h->config.maxdlynb_sent = 0; for (tn = 0; tn < TRX_NR_TS; tn++) @@ -408,6 +421,7 @@ { struct phy_instance *pinst = trx_phy_instance(trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + struct phy_link *plink = pinst->phy_link; uint16_t arfcn = trx->arfcn; if (l1h->config.arfcn != arfcn || !l1h->config.arfcn_valid) { @@ -417,12 +431,11 @@ l1if_provision_transceiver_trx(l1h); } - if (l1h->config.power_oml) { - l1h->config.power = trx->max_power_red; - l1h->config.power_valid = 1; - l1h->config.power_sent = 0; - l1if_provision_transceiver_trx(l1h); - } + /* Begin to ramp up the power if power reduction is set by OML and TRX + is already running. Otherwise skip, power ramping will be started + after TRX is running */ + if (plink->u.osmotrx.powered && l1h->config.forced_max_power_red == -1) + power_ramp_start(pinst->trx, get_p_nominal_mdBm(pinst->trx), 0); return 0; } @@ -802,9 +815,10 @@ int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) { -#warning "implement bts_model_change_power\n" - LOGP(DL1C, LOGL_NOTICE, "Setting TRX output power not supported!\n"); - return 0; + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + int power_att = (get_p_max_out_mdBm(trx) - p_trxout_mdBm) / 1000; + return trx_if_cmd_setpower(l1h, power_att, l1if_setpower_cb); } int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 42452d2..46f2c18 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -73,10 +73,7 @@ uint8_t rxgain; int rxgain_sent; - int power_valid; - uint8_t power; - int power_oml; - int power_sent; + int forced_max_power_red; /* -1 if not forced by VTY config (default) */ bool nominal_power_set_by_vty; /* whether nominal trx power was enforced/retreived from VTY config "nominal-tx-power" */ diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index bd3d0cb..8fb67d2 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -129,6 +129,7 @@ int bts_model_trx_init(struct gsm_bts_trx *trx) { + trx->power_params.trx_p_max_out_mdBm = to_mdB(trx->bts->c0->nominal_power); return 0; } @@ -150,7 +151,7 @@ l1h = trx_l1h_alloc(tall_bts_ctx, pinst); pinst->u.osmotrx.hdl = l1h; - l1h->config.power_oml = 1; + l1h->config.forced_max_power_red = -1; } int main(int argc, char **argv) diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 24d6b9b..5e3bf91 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -303,9 +303,9 @@ } /*! Send "SETPOWER" command to TRX */ -int trx_if_cmd_setpower(struct trx_l1h *l1h, int db) +int trx_if_cmd_setpower(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_cb *cb) { - return trx_ctrl_cmd(l1h, 0, "SETPOWER", "%d", db); + return trx_ctrl_cmd_cb(l1h, 0, cb, "SETPOWER", "%d", power_att_db); } /*! Send "SETMAXDLY" command to TRX, i.e. maximum delay for RACH bursts */ @@ -544,6 +544,22 @@ return 0; } +static int trx_ctrl_rx_rsp_setpower(struct trx_l1h *l1h, struct trx_ctrl_rsp *rsp) +{ + trx_if_cmd_setpower_cb *cb = (trx_if_cmd_setpower_cb*) rsp->cb; + struct phy_instance *pinst = l1h->phy_inst; + int power_att; + + if (rsp->status) + LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver SETPOWER failed with status %d\n", + rsp->status); + if (cb) { + sscanf(rsp->params, "%d", &power_att); + cb(l1h, power_att, rsp->status); + } + return 0; +} + /* -EINVAL: unrecoverable error, exit BTS * N > 0: try sending originating command again after N seconds * 0: Done with response, get originating command out from send queue @@ -562,6 +578,8 @@ * so that's why we should use tcm instead of rsp. */ } else if (strcmp(tcm->cmd, "SETFORMAT") == 0) { return trx_ctrl_rx_rsp_setformat(l1h, rsp); + } else if (strcmp(tcm->cmd, "SETPOWER") == 0) { + return trx_ctrl_rx_rsp_setpower(l1h, rsp); } if (rsp->status) { diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index fd0077d..0630eb6 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -15,6 +15,7 @@ typedef void trx_if_cmd_poweronoff_cb(struct trx_l1h *l1h, bool poweronoff, int rc); typedef void trx_if_cmd_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc); +typedef void trx_if_cmd_setpower_cb(struct trx_l1h *l1h, int power_att_db, int rc); void trx_if_init(struct trx_l1h *l1h); int trx_if_cmd_poweroff(struct trx_l1h *l1h, trx_if_cmd_poweronoff_cb *cb); @@ -22,7 +23,7 @@ int trx_if_cmd_settsc(struct trx_l1h *l1h, uint8_t tsc); int trx_if_cmd_setbsic(struct trx_l1h *l1h, uint8_t bsic); int trx_if_cmd_setrxgain(struct trx_l1h *l1h, int db); -int trx_if_cmd_setpower(struct trx_l1h *l1h, int db); +int trx_if_cmd_setpower(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_cb *cb); int trx_if_cmd_setmaxdly(struct trx_l1h *l1h, int dly); int trx_if_cmd_setmaxdlynb(struct trx_l1h *l1h, int dly); int trx_if_cmd_setslot(struct trx_l1h *l1h, uint8_t tn, uint8_t type, trx_if_cmd_setslot_cb *cb); diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 6dddfe2..b920c57 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -97,6 +97,7 @@ { uint8_t tn; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + struct gsm_bts_trx *trx = pinst->trx; vty_out(vty, "PHY Instance %s%s", phy_instance_name(pinst), VTY_NEWLINE); @@ -106,11 +107,9 @@ l1h->config.rxgain, VTY_NEWLINE); else vty_out(vty, " rx-gain : undefined%s", VTY_NEWLINE); - if (l1h->config.power_valid) - vty_out(vty, " tx-attenuation : %d dB%s", - l1h->config.power, VTY_NEWLINE); - else - vty_out(vty, " tx-attenuation : undefined%s", VTY_NEWLINE); + vty_out(vty, " tx-attenuation : %d dB%s", + (get_p_max_out_mdBm(trx) - get_p_actual_mdBm(trx, trx->power_params.p_total_tgt_mdBm))/1000, + VTY_NEWLINE); if (l1h->config.maxdly_valid) vty_out(vty, " maxdly : %d%s", l1h->config.maxdly, VTY_NEWLINE); @@ -171,6 +170,7 @@ int val = atoi(argv[0]); trx->nominal_power = val; + trx->power_params.trx_p_max_out_mdBm = to_mdB(trx->nominal_power); l1h->config.nominal_power_set_by_vty = true; return CMD_SUCCESS; @@ -361,36 +361,19 @@ } DEFUN(cfg_phyinst_tx_atten, cfg_phyinst_tx_atten_cmd, - "osmotrx tx-attenuation <0-50>", + "osmotrx tx-attenuation (oml|<0-50>)", OSMOTRX_STR "Set the transmitter attenuation\n" - "Fixed attenuation in dB, overriding OML\n") + "Use NM_ATT_RF_MAXPOWR_R (max power reduction) from BSC via OML (default)\n" + "Fixed attenuation in dB, overriding OML (default)\n") { struct phy_instance *pinst = vty->index; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; - l1h->config.power = atoi(argv[0]); - l1h->config.power_oml = 0; - l1h->config.power_valid = 1; - l1h->config.power_sent = 0; - l1if_provision_transceiver_trx(l1h); - - return CMD_SUCCESS; -} - -DEFUN(cfg_phyinst_tx_atten_oml, cfg_phyinst_tx_atten_oml_cmd, - "osmotrx tx-attenuation oml", - OSMOTRX_STR - "Set the transmitter attenuation\n" - "Use NM_ATT_RF_MAXPOWR_R (max power reduction) from BSC via OML\n") -{ - struct phy_instance *pinst = vty->index; - struct trx_l1h *l1h = pinst->u.osmotrx.hdl; - - l1h->config.power_oml = 1; - l1h->config.power_valid = 1; - l1h->config.power_sent = 0; - l1if_provision_transceiver_trx(l1h); + if (strcmp(argv[0], "oml") == 0) + l1h->config.forced_max_power_red = -1; + else + l1h->config.forced_max_power_red = atoi(argv[0]); return CMD_SUCCESS; } @@ -407,18 +390,6 @@ return CMD_SUCCESS; } -DEFUN(cfg_phyinst_no_tx_atten, cfg_phyinst_no_tx_atten_cmd, - "no osmotrx tx-attenuation", - NO_STR OSMOTRX_STR "Unset the transmitter attenuation\n") -{ - struct phy_instance *pinst = vty->index; - struct trx_l1h *l1h = pinst->u.osmotrx.hdl; - - l1h->config.power_valid = 0; - - return CMD_SUCCESS; -} - DEFUN(cfg_phyinst_no_maxdly, cfg_phyinst_no_maxdly_cmd, "no osmotrx maxdly", NO_STR OSMOTRX_STR @@ -574,13 +545,11 @@ if (l1h->config.rxgain_valid) vty_out(vty, " osmotrx rx-gain %d%s", l1h->config.rxgain, VTY_NEWLINE); - if (l1h->config.power_valid) { - if (l1h->config.power_oml) - vty_out(vty, " osmotrx tx-attenuation oml%s", VTY_NEWLINE); - else - vty_out(vty, " osmotrx tx-attenuation %d%s", - l1h->config.power, VTY_NEWLINE); - } + if (l1h->config.forced_max_power_red == -1) + vty_out(vty, " osmotrx tx-attenuation oml%s", VTY_NEWLINE); + else + vty_out(vty, " osmotrx tx-attenuation %d%s", + l1h->config.forced_max_power_red, VTY_NEWLINE); if (l1h->config.maxdly_valid) vty_out(vty, " osmotrx maxdly %d%s", l1h->config.maxdly, VTY_NEWLINE); if (l1h->config.maxdlynb_valid) @@ -637,9 +606,7 @@ install_element(PHY_INST_NODE, &cfg_phyinst_rxgain_cmd); install_element(PHY_INST_NODE, &cfg_phyinst_tx_atten_cmd); - install_element(PHY_INST_NODE, &cfg_phyinst_tx_atten_oml_cmd); install_element(PHY_INST_NODE, &cfg_phyinst_no_rxgain_cmd); - install_element(PHY_INST_NODE, &cfg_phyinst_no_tx_atten_cmd); install_element(PHY_INST_NODE, &cfg_phyinst_slotmask_cmd); install_element(PHY_INST_NODE, &cfg_phyinst_power_on_cmd); install_element(PHY_INST_NODE, &cfg_phyinst_maxdly_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7c353e4c199e0fc3bcab55c45a4abda2c66d2c1 Gerrit-Change-Number: 18488 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Jun 12 09:59:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 09:59:57 +0000 Subject: Change in osmo-bts[master]: bts-trx: Rename setpower TRXC functions to describe they use power at... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18587 ) Change subject: bts-trx: Rename setpower TRXC functions to describe they use power attenuation ...................................................................... bts-trx: Rename setpower TRXC functions to describe they use power attenuation Change-Id: Iedbe8e76bce990c2330477157cd886a8fc22063c --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 3 files changed, 7 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index ff8e293..d0eba2b 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -193,12 +193,12 @@ } } -static void l1if_setpower_cb(struct trx_l1h *l1h, int power_att_db, int rc) +static void l1if_setpower_att_cb(struct trx_l1h *l1h, int power_att_db, int rc) { struct phy_instance *pinst = l1h->phy_inst; struct gsm_bts_trx *trx = pinst->trx; - LOGPPHI(pinst, DL1C, LOGL_DEBUG, "l1if_setpower_cb(power_att_db=%d, rc=%d)\n", power_att_db, rc); + LOGPPHI(pinst, DL1C, LOGL_DEBUG, "l1if_setpower_att_cb(power_att_db=%d, rc=%d)\n", power_att_db, rc); power_trx_change_compl(trx, get_p_max_out_mdBm(trx) - to_mdB(power_att_db)); } @@ -818,7 +818,7 @@ struct phy_instance *pinst = trx_phy_instance(trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; int power_att = (get_p_max_out_mdBm(trx) - p_trxout_mdBm) / 1000; - return trx_if_cmd_setpower(l1h, power_att, l1if_setpower_cb); + return trx_if_cmd_setpower_att(l1h, power_att, l1if_setpower_att_cb); } int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 5e3bf91..f2e2915 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -303,7 +303,7 @@ } /*! Send "SETPOWER" command to TRX */ -int trx_if_cmd_setpower(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_cb *cb) +int trx_if_cmd_setpower_att(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_att_cb *cb) { return trx_ctrl_cmd_cb(l1h, 0, cb, "SETPOWER", "%d", power_att_db); } @@ -546,7 +546,7 @@ static int trx_ctrl_rx_rsp_setpower(struct trx_l1h *l1h, struct trx_ctrl_rsp *rsp) { - trx_if_cmd_setpower_cb *cb = (trx_if_cmd_setpower_cb*) rsp->cb; + trx_if_cmd_setpower_att_cb *cb = (trx_if_cmd_setpower_att_cb*) rsp->cb; struct phy_instance *pinst = l1h->phy_inst; int power_att; diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 0630eb6..300be92 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -15,7 +15,7 @@ typedef void trx_if_cmd_poweronoff_cb(struct trx_l1h *l1h, bool poweronoff, int rc); typedef void trx_if_cmd_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc); -typedef void trx_if_cmd_setpower_cb(struct trx_l1h *l1h, int power_att_db, int rc); +typedef void trx_if_cmd_setpower_att_cb(struct trx_l1h *l1h, int power_att_db, int rc); void trx_if_init(struct trx_l1h *l1h); int trx_if_cmd_poweroff(struct trx_l1h *l1h, trx_if_cmd_poweronoff_cb *cb); @@ -23,7 +23,7 @@ int trx_if_cmd_settsc(struct trx_l1h *l1h, uint8_t tsc); int trx_if_cmd_setbsic(struct trx_l1h *l1h, uint8_t bsic); int trx_if_cmd_setrxgain(struct trx_l1h *l1h, int db); -int trx_if_cmd_setpower(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_cb *cb); +int trx_if_cmd_setpower_att(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_att_cb *cb); int trx_if_cmd_setmaxdly(struct trx_l1h *l1h, int dly); int trx_if_cmd_setmaxdlynb(struct trx_l1h *l1h, int dly); int trx_if_cmd_setslot(struct trx_l1h *l1h, uint8_t tn, uint8_t type, trx_if_cmd_setslot_cb *cb); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iedbe8e76bce990c2330477157cd886a8fc22063c Gerrit-Change-Number: 18587 Gerrit-PatchSet: 6 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 Jun 12 09:59:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 09:59:57 +0000 Subject: Change in osmo-bts[master]: bts-trx: Introduce helper func l1if_trx_set_nominal_power In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18588 ) Change subject: bts-trx: Introduce helper func l1if_trx_set_nominal_power ...................................................................... bts-trx: Introduce helper func l1if_trx_set_nominal_power This way we wrap same logic in one place, which will be used more in next commit. Change-Id: I929fc50d544a88900d2e22317ec5ced10f15e51c --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_vty.c 4 files changed, 10 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index d0eba2b..97f87a1 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -138,6 +138,13 @@ return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), LID_SACCH, false); } +/* Sets the nominal power, in dB */ +void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power) +{ + trx->nominal_power = nominal_power; + trx->power_params.trx_p_max_out_mdBm = to_mdB(nominal_power); +} + static void l1if_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc) { struct phy_instance *pinst = l1h->phy_inst; diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 46f2c18..5f51acb 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -114,6 +114,7 @@ int l1if_provision_transceiver_trx(struct trx_l1h *l1h); int l1if_provision_transceiver(struct gsm_bts *bts); int l1if_mph_time_ind(struct gsm_bts *bts, uint32_t fn); +void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power); static inline struct l1sched_trx *trx_l1sched_hdl(struct gsm_bts_trx *trx) { diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 8fb67d2..fbe4c2f 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -129,7 +129,7 @@ int bts_model_trx_init(struct gsm_bts_trx *trx) { - trx->power_params.trx_p_max_out_mdBm = to_mdB(trx->bts->c0->nominal_power); + l1if_trx_set_nominal_power(trx, trx->bts->c0->nominal_power); return 0; } diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index b920c57..b3214ee 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -169,8 +169,7 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl; int val = atoi(argv[0]); - trx->nominal_power = val; - trx->power_params.trx_p_max_out_mdBm = to_mdB(trx->nominal_power); + l1if_trx_set_nominal_power(trx, val); l1h->config.nominal_power_set_by_vty = true; return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18588 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I929fc50d544a88900d2e22317ec5ced10f15e51c Gerrit-Change-Number: 18588 Gerrit-PatchSet: 6 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 Jun 12 09:59:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 09:59:58 +0000 Subject: Change in osmo-bts[master]: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from os... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18589 ) Change subject: bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from osmo-trx ...................................................................... bts-trx: Use TRXC cmd NOMTXPOWER to retrieve nominal tx power from osmo-trx Change-Id: I682211f3d664c21f923ca4a530e0464ca383b6d9 --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/main.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 4 files changed, 49 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 97f87a1..0858de2 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -145,6 +145,16 @@ trx->power_params.trx_p_max_out_mdBm = to_mdB(nominal_power); } +static void l1if_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc) +{ + struct phy_instance *pinst = l1h->phy_inst; + struct gsm_bts_trx *trx = pinst->trx; + + LOGPPHI(pinst, DL1C, LOGL_DEBUG, "l1if_getnompower_cb(nominal_power=%u, rc=%d)\n", nominal_power, rc); + + l1if_trx_set_nominal_power(trx, nominal_power); +} + static void l1if_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc) { struct phy_instance *pinst = l1h->phy_inst; @@ -240,6 +250,13 @@ if (!l1h->config.arfcn_sent) { trx_if_cmd_rxtune(l1h, l1h->config.arfcn); trx_if_cmd_txtune(l1h, l1h->config.arfcn); + /* After TXTUNE is sent to TRX, get the tx nominal power + * (which may vary precisly on band/arfcn. Avoid sending + * it if we are forced by VTY to use a specific nominal + * power (because TRX may not support the command or + * provide broken values) */ + if (!l1h->config.nominal_power_set_by_vty) + trx_if_cmd_getnompower(l1h, l1if_getnompower_cb); l1h->config.arfcn_sent = 1; } if (!l1h->config.tsc_sent) { diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index fbe4c2f..0d2a1f7 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -104,10 +104,9 @@ bts->variant = BTS_OSMO_TRX; bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3); - /* The nominal value is later overwritten through VTY cmd - * 'nominal-tx-power' if present. - * FIXME: In the future, we want osmo-trx to provide us with this info - * through TRXC. */ + /* The nominal value for each TRX is later overwritten through VTY cmd + * 'nominal-tx-power' if present, otherwise through TRXC cmd NOMTXPOWER. + */ bts->c0->nominal_power = 23; osmo_bts_set_feature(bts->features, BTS_FEAT_GPRS); @@ -129,6 +128,9 @@ int bts_model_trx_init(struct gsm_bts_trx *trx) { + /* The nominal value for each TRX is later overwritten through VTY cmd + * 'nominal-tx-power' if present, otherwise through TRXC cmd NOMTXPOWER. + */ l1if_trx_set_nominal_power(trx, trx->bts->c0->nominal_power); return 0; } diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index f2e2915..61f57b9 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -302,6 +302,12 @@ return trx_ctrl_cmd(l1h, 0, "SETRXGAIN", "%d", db); } +/*! Send "NOMTXPOWER" command to TRX */ +int trx_if_cmd_getnompower(struct trx_l1h *l1h, trx_if_cmd_getnompower_cb *cb) +{ + return trx_ctrl_cmd_cb(l1h, 1, cb, "NOMTXPOWER", ""); +} + /*! Send "SETPOWER" command to TRX */ int trx_if_cmd_setpower_att(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_att_cb *cb) { @@ -544,6 +550,22 @@ return 0; } +static int trx_ctrl_rx_rsp_nomtxpower(struct trx_l1h *l1h, struct trx_ctrl_rsp *rsp) +{ + trx_if_cmd_getnompower_cb *cb = (trx_if_cmd_getnompower_cb*) rsp->cb; + struct phy_instance *pinst = l1h->phy_inst; + unsigned int nominal_power; + + if (rsp->status) + LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver NOMTXPOWER failed with status %d\n", + rsp->status); + if (cb) { + sscanf(rsp->params, "%u", &nominal_power); + cb(l1h, nominal_power, rsp->status); + } + return 0; +} + static int trx_ctrl_rx_rsp_setpower(struct trx_l1h *l1h, struct trx_ctrl_rsp *rsp) { trx_if_cmd_setpower_att_cb *cb = (trx_if_cmd_setpower_att_cb*) rsp->cb; @@ -578,6 +600,8 @@ * so that's why we should use tcm instead of rsp. */ } else if (strcmp(tcm->cmd, "SETFORMAT") == 0) { return trx_ctrl_rx_rsp_setformat(l1h, rsp); + } else if (strcmp(tcm->cmd, "NOMTXPOWER") == 0) { + return trx_ctrl_rx_rsp_nomtxpower(l1h, rsp); } else if (strcmp(tcm->cmd, "SETPOWER") == 0) { return trx_ctrl_rx_rsp_setpower(l1h, rsp); } diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 300be92..34335f8 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -15,6 +15,7 @@ typedef void trx_if_cmd_poweronoff_cb(struct trx_l1h *l1h, bool poweronoff, int rc); typedef void trx_if_cmd_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc); +typedef void trx_if_cmd_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc); typedef void trx_if_cmd_setpower_att_cb(struct trx_l1h *l1h, int power_att_db, int rc); void trx_if_init(struct trx_l1h *l1h); @@ -23,6 +24,7 @@ int trx_if_cmd_settsc(struct trx_l1h *l1h, uint8_t tsc); int trx_if_cmd_setbsic(struct trx_l1h *l1h, uint8_t bsic); int trx_if_cmd_setrxgain(struct trx_l1h *l1h, int db); +int trx_if_cmd_getnompower(struct trx_l1h *l1h, trx_if_cmd_getnompower_cb *cb); int trx_if_cmd_setpower_att(struct trx_l1h *l1h, int power_att_db, trx_if_cmd_setpower_att_cb *cb); int trx_if_cmd_setmaxdly(struct trx_l1h *l1h, int dly); int trx_if_cmd_setmaxdlynb(struct trx_l1h *l1h, int dly); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18589 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I682211f3d664c21f923ca4a530e0464ca383b6d9 Gerrit-Change-Number: 18589 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Hoernchen Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 09:59:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 09:59:58 +0000 Subject: Change in osmo-bts[master]: bts-trx: Re-apply tx power if nominal power is received after POWERON In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18652 ) Change subject: bts-trx: Re-apply tx power if nominal power is received after POWERON ...................................................................... bts-trx: Re-apply tx power if nominal power is received after POWERON it was perceived that sometimes based on order of events (OML attr setup and timing of RSL connections, etc.), the NOMTXPOWER for TRX!=0 can come after the RSP POWERON, and hence the target power level for TRX!=0 is not done correcty. This can be seen by running any test using the ttcn3-bts setup of docker-playgrounds.git. Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad --- M src/osmo-bts-trx/l1_if.c 1 file changed, 24 insertions(+), 5 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/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 0858de2..07f6e7a 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -138,11 +138,34 @@ return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), LID_SACCH, false); } +static void l1if_trx_start_power_ramp(struct gsm_bts_trx *trx) +{ + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + + if (l1h->config.forced_max_power_red == -1) + power_ramp_start(trx, get_p_nominal_mdBm(trx), 0); + else + power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1); +} + /* Sets the nominal power, in dB */ void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power) { + struct phy_instance *pinst = trx_phy_instance(trx); + bool nom_pwr_changed = trx->nominal_power != nominal_power; + trx->nominal_power = nominal_power; trx->power_params.trx_p_max_out_mdBm = to_mdB(nominal_power); + + /* If TRX is not yet powered, delay ramping until it's ON */ + if (!nom_pwr_changed || !pinst->phy_link->u.osmotrx.powered) + return; + + /* We are already ON and we got new information about nominal power, so + * let's make sure we adapt the tx power to it + */ + l1if_trx_start_power_ramp(trx); } static void l1if_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc) @@ -197,11 +220,7 @@ /* Begin to ramp up the power on all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { - struct gsm_bts_trx *trx = pinst->trx; - if (l1h->config.forced_max_power_red == -1) - power_ramp_start(trx, get_p_nominal_mdBm(trx), 0); - else - power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1); + l1if_trx_start_power_ramp(pinst->trx); } } else if (rc != 0 && pinst->phy_link->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2ec8dba61393be6edfab9e7e478e096e2d0933ad Gerrit-Change-Number: 18652 Gerrit-PatchSet: 4 Gerrit-Owner: pespin 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 Jun 12 10:01:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 10:01:20 +0000 Subject: Change in osmo-trx[master]: Transceiver: Implement TRXC cmd NOMTXPOWER In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18586 ) Change subject: Transceiver: Implement TRXC cmd NOMTXPOWER ...................................................................... Patch Set 2: Code-Review+2 +1+1=+2. I'm merging because I confused nosmo-bts-trx patchset with osmo-trx one and merge the prior, hence and osmo-bts-trx in master already requires NOMTXPOWER. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Gerrit-Change-Number: 18586 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Fri, 12 Jun 2020 10:01: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 Jun 12 10:01:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 10:01:23 +0000 Subject: Change in osmo-trx[master]: Transceiver: Implement TRXC cmd NOMTXPOWER In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18586 ) Change subject: Transceiver: Implement TRXC cmd NOMTXPOWER ...................................................................... Transceiver: Implement TRXC cmd NOMTXPOWER It allows the BTS to retrieve the nominal transmit output power value of each TRX in order to compute attenuation later on and apply it through SETPOWER or ADJPOWER TRXC commands. Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c --- M Transceiver52M/Transceiver.cpp M Transceiver52M/device/common/radioDevice.h M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h M Transceiver52M/radioInterface.cpp M Transceiver52M/radioInterface.h 10 files changed, 50 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 8308def..0b7ac31 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -902,6 +902,12 @@ power = mRadioInterface->setPowerAttenuation(power, chan); mStates[chan].mPower = power; sprintf(response, "RSP ADJPOWER 0 %d", power); +} else if (match_cmd(command, "NOMTXPOWER", NULL)) { + int power = mRadioInterface->getNominalTxPower(chan); + if (power > 0) + sprintf(response, "RSP NOMTXPOWER 0 %d", power); + else + sprintf(response, "RSP NOMTXPOWER 1 %d", -power); } else if (match_cmd(command, "RXTUNE", ¶ms)) { // tune receiver int freqKhz; diff --git a/Transceiver52M/device/common/radioDevice.h b/Transceiver52M/device/common/radioDevice.h index 0dc38d5..8dd8f49 100644 --- a/Transceiver52M/device/common/radioDevice.h +++ b/Transceiver52M/device/common/radioDevice.h @@ -128,6 +128,9 @@ /** sets the transmit chan gain, returns the gain setting **/ virtual double setTxGain(double dB, size_t chan = 0) = 0; + /** returns the Nominal transmit output power of the transceiver in dBm, negative on error **/ + virtual int getNominalTxPower(size_t chan = 0) = 0; + /** get transmit gain */ virtual double getTxGain(size_t chan = 0) = 0; diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 932817d..355c8e4 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -530,6 +530,14 @@ return rx_gains[chan]; } +int LMSDevice::getNominalTxPower(size_t chan) +{ + /* TODO: return value based on some experimentally generated table depending on + * band/arfcn, which is known here thanks to TXTUNE + */ + return 23; +} + void LMSDevice::log_ant_list(bool dir_tx, size_t chan, std::ostringstream& os) { lms_name_t name_list[MAX_ANTENNA_LIST_SIZE]; /* large enough list for antenna names. */ diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 5b6330a..78fd62a 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -179,6 +179,8 @@ /** return minimum Rx Gain **/ double minTxGain(void); + int getNominalTxPower(size_t chan = 0); + /** sets the RX path to use, returns true if successful and false otherwise */ bool setRxAntenna(const std::string & ant, size_t chan = 0); diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index ad56250..2970173 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -341,6 +341,14 @@ return tx_gains[chan]; } +int uhd_device::getNominalTxPower(size_t chan) +{ + /* TODO: return value based on some experimentally generated table depending on + * band/arfcn, which is known here thanks to TXTUNE + */ + return 23; +} + /* Parse the UHD device tree and mboard name to find out what device we're dealing with. We need the window type so that the transceiver knows how to diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 1e66246..01d71a0 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -100,6 +100,8 @@ double maxTxGain(void) { return tx_gain_max; } double minTxGain(void) { return tx_gain_min; } + int getNominalTxPower(size_t chan = 0); + double getTxFreq(size_t chan); double getRxFreq(size_t chan); double getRxFreq(); diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 1a9a7e1..73117d2 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -314,6 +314,14 @@ return rxGain; } +int USRPDevice::getNominalTxPower(size_t chan) +{ + /* TODO: return value based on some experimentally generated table depending on + * band/arfcn, which is known here thanks to TXTUNE + */ + return 23; +} + bool USRPDevice::setRxAntenna(const std::string &ant, size_t chan) { if (chan >= rx_paths.size()) { diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index a4a0886..0549192 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -180,6 +180,8 @@ /** return minimum Rx Gain **/ double minTxGain(void); + int getNominalTxPower(size_t chan = 0); + /** sets the RX path to use, returns true if successful and false otherwise */ bool setRxAntenna(const std::string &ant, size_t chan = 0); diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp index fbcacf1..fb724d2 100644 --- a/Transceiver52M/radioInterface.cpp +++ b/Transceiver52M/radioInterface.cpp @@ -124,6 +124,16 @@ return atten; } +int RadioInterface::getNominalTxPower(size_t chan) +{ + if (chan >= mChans) { + LOG(ALERT) << "Invalid channel requested"; + return -1; + } + + return mDevice->getNominalTxPower(chan); +} + int RadioInterface::radioifyVector(signalVector &wVector, size_t chan, bool zero) { diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h index c75a983..eb7ed3b 100644 --- a/Transceiver52M/radioInterface.h +++ b/Transceiver52M/radioInterface.h @@ -117,6 +117,7 @@ int driveReceiveRadio(); int setPowerAttenuation(int atten, size_t chan = 0); + int getNominalTxPower(size_t chan = 0); /** returns the full-scale transmit amplitude **/ double fullScaleInputValue(); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I1d7efe56e008d8d60e23f9a85aa40809f7f84d9c Gerrit-Change-Number: 18586 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 10:01:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 10:01:46 +0000 Subject: Change in osmo-bts[master]: scheduler: Fix reading out of buffer during tx of dummy burst on PDCH... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18751 ) Change subject: scheduler: Fix reading out of buffer during tx of dummy burst on PDCH TS with EGPRS enabled ...................................................................... scheduler: Fix reading out of buffer during tx of dummy burst on PDCH TS with EGPRS enabled If for whatever reason (eg fn-advance too small) there's no burst available for a PDCH TS where EGPRS is enabled, a dummy burst of size GSM_BURST_LEN would be selected in _sched_dl_burst(), but the nbits length would still be set to EGPRS_BURST_LEN above by func() pointer (tx_pdtch_fn()). As a result, trx_if_send_burst() would later read EGPRS_BURST_LEN from the dummy burst of size GSM_BURST_LEN. The issue was found by ASan. See OS#4606 for more info. Fixes: OS#4606 Change-Id: Iba6ccceed5c0f1db810259768678f174d39cbf8b --- M src/common/scheduler.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 55cb36a..021a4cd 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1211,6 +1211,8 @@ trx_chan_desc[chan].name, fn, tn, bid); #endif bits = (ubit_t *) dummy_burst; + if (nbits) + *nbits = ARRAY_SIZE(dummy_burst); } return bits; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba6ccceed5c0f1db810259768678f174d39cbf8b Gerrit-Change-Number: 18751 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:10:51 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:10:51 +0000 Subject: Change in osmo-bts[master]: abis.c: Grab reference to e1inp_line_get if already created In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18732 ) Change subject: abis.c: Grab reference to e1inp_line_get if already created ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18732/1/src/common/abis.c File src/common/abis.c: https://gerrit.osmocom.org/c/osmo-bts/+/18732/1/src/common/abis.c at 284 PS1, Line 284: e1inp_line_get(line); /* We want a new reference for returned line*/ (whitespace) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 Gerrit-Change-Number: 18732 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:10:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:11:04 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 12 Jun 2020 13:11:04 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add method to call process on EPC in a non-blocking fashion References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: add method to call process on EPC in a non-blocking fashion ...................................................................... epc: add method to call process on EPC in a non-blocking fashion this allows to send mt pings from the EPC while doing other stuff in the background, controlling the rfemu for example Change-Id: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 --- M src/osmo_gsm_tester/obj/epc.py 1 file changed, 11 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/89/18789/1 diff --git a/src/osmo_gsm_tester/obj/epc.py b/src/osmo_gsm_tester/obj/epc.py index dfeba74..4681d5f 100644 --- a/src/osmo_gsm_tester/obj/epc.py +++ b/src/osmo_gsm_tester/obj/epc.py @@ -76,15 +76,23 @@ return epc_class(testenv, run_node) - def run_wait(self, name, popen_args): - ''' Execute process on EPC node, useful for MT traffic ''' + def run_wait(self, name, popen_args, sync=True): + ''' Execute process on EPC node, useful for MT traffic, blocking version ''' if self._run_node.is_local(): proc = process.Process(name, self.run_dir, popen_args) else: proc = self.rem_host.RemoteProcess(name, popen_args) - proc.launch_sync() + + if sync: + proc.launch_sync() + else: + proc.launch() return proc + def run_async(self, name, popen_args): + ''' Execute process in a non-blocking fashion ''' + return self.run_wait(name, popen_args, sync=False) + ################### # PUBLIC (test API included) ################### -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:11:05 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 12 Jun 2020 13:11:05 +0000 Subject: Change in osmo-gsm-tester[master]: enb_amarisoft: fix typo References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18790 ) Change subject: enb_amarisoft: fix typo ...................................................................... enb_amarisoft: fix typo Change-Id: Ie898da5eae10af96c2bca6c2413bdff4a5160e9f --- M src/osmo_gsm_tester/obj/enb_amarisoft.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/90/18790/1 diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index f6f2cb0..8b4ecae 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -223,7 +223,7 @@ if cell_list is None or len(cell_list) < cell + 1: raise log.Error('cell_list attribute or subitem not found!') rfemu_cfg = cell_list[cell].get('dl_rfemu', None) - if rfemu_cfg is None: # craft amarisfot by default: + if rfemu_cfg is None: # craft amarisoft by default: rfemu_cfg = {'type': 'amarisoftctl', 'addr': self.addr(), 'ports': [9001] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18790 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: Ie898da5eae10af96c2bca6c2413bdff4a5160e9f Gerrit-Change-Number: 18790 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:11:06 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 12 Jun 2020 13:11:06 +0000 Subject: Change in osmo-gsm-tester[master]: rfemu: add max attenuation getter References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18791 ) Change subject: rfemu: add max attenuation getter ...................................................................... rfemu: add max attenuation getter this allows to query the maximum channel attenuation from within a test case Change-Id: I35f7cb188790c59bbf2450f78c663fbc9440e406 --- M src/osmo_gsm_tester/obj/rfemu.py M src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py M src/osmo_gsm_tester/obj/rfemu_minicircuits.py 3 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/91/18791/1 diff --git a/src/osmo_gsm_tester/obj/rfemu.py b/src/osmo_gsm_tester/obj/rfemu.py index b2add6b..ac34ee1 100644 --- a/src/osmo_gsm_tester/obj/rfemu.py +++ b/src/osmo_gsm_tester/obj/rfemu.py @@ -39,6 +39,11 @@ """Set attenuation in dB on the configured channel""" pass + @abstractmethod + def get_max_attenuation(self): + """Get maximum channel attenuation""" + pass + def get_instance_by_type(rfemu_type, rfemu_opt): """Allocate a RFemulation child class based on type. Opts are passed to the newly created object.""" if rfemu_type == 'amarisoftctl': diff --git a/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py b/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py index 6ef25bb..17aa43a 100644 --- a/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py +++ b/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py @@ -59,5 +59,7 @@ result = self.ws.recv() self.dbg('Received CTRL msg: "%s"' % result) + def get_max_attenuation(self): + return 200 # maximum cell_gain value in Amarisoft # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/rfemu_minicircuits.py b/src/osmo_gsm_tester/obj/rfemu_minicircuits.py index eea3a0e..6214040 100644 --- a/src/osmo_gsm_tester/obj/rfemu_minicircuits.py +++ b/src/osmo_gsm_tester/obj/rfemu_minicircuits.py @@ -64,4 +64,8 @@ self.dbg('Received response: "%s"' % data_str) if data_str != '1': raise log.Error('Mini-circuits attenuation device returned failure! %s' & data_str) + + def get_max_attenuation(self): + return 95 # Maximum value of the Mini-Circuits RC4DAT-6G-95 + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18791 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: I35f7cb188790c59bbf2450f78c663fbc9440e406 Gerrit-Change-Number: 18791 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:11:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 13:11:39 +0000 Subject: Change in osmo-gsm-tester[master]: enb_amarisoft: fix typo In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18790 ) Change subject: enb_amarisoft: fix typo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18790 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: Ie898da5eae10af96c2bca6c2413bdff4a5160e9f Gerrit-Change-Number: 18790 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:11:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:12:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:12:32 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins/Dockerfile: Install source-highlight In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18771 ) Change subject: debian-stretch-jenkins/Dockerfile: Install source-highlight ...................................................................... Patch Set 1: so what's the effect, colored source snippets? (IMHO we don't need formatting in the source snippets) -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8427179f7cfc0c9150e5327803ca89adffedb8f1 Gerrit-Change-Number: 18771 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:12:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:13:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 13:13:36 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add method to call process on EPC in a non-blocking fashion In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: add method to call process on EPC in a non-blocking fashion ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789/1/src/osmo_gsm_tester/obj/epc.py File src/osmo_gsm_tester/obj/epc.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789/1/src/osmo_gsm_tester/obj/epc.py at 79 PS1, Line 79: def run_wait(self, name, popen_args, sync=True): Better simply return the proc object to the test and use whatever you want there. Feel free to rename it to "prepare_process" or alike. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 12 Jun 2020 13:13:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:15:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 13:15:01 +0000 Subject: Change in osmo-gsm-tester[master]: rfemu: add max attenuation getter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18791 ) Change subject: rfemu: add max attenuation getter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18791 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: I35f7cb188790c59bbf2450f78c663fbc9440e406 Gerrit-Change-Number: 18791 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:15:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:16:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:16:02 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c at 138 PS2, Line 138: prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; > I guess that's perfectly fine, since a string constant is simply a array of chars with length known [?] yes (the atoi() below is my -1 reason) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:16:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:16:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 13:16:45 +0000 Subject: Change in osmo-bts[master]: abis.c: Grab reference to e1inp_line_get if already created In-Reply-To: References: Message-ID: Hello daniel, neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18732 to look at the new patch set (#2). Change subject: abis.c: Grab reference to e1inp_line_get if already created ...................................................................... abis.c: Grab reference to e1inp_line_get if already created Since we are returning the pointer, it should always be grabbing a reference (find doesn't do it). In practice it's not much important since it is always created and not found. Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 --- M src/common/abis.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/18732/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 Gerrit-Change-Number: 18732 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:27:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:27:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 ) Change subject: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761/1/library/RSL_Emulation.ttcn File library/RSL_Emulation.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761/1/library/RSL_Emulation.ttcn at 551 PS1, Line 551: if (ispresent(ConnectionTable[i].comp_ref) and ConnectionTable[i].comp_ref != null) { > Is this ispresent() really needed? I think they may have been an error here and the same thing you a [?] I was also thinking about this aspect and decided that simply checking both is safest and least effort to fix the problem ATM. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 Gerrit-Change-Number: 18761 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:27: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 Fri Jun 12 13:32:16 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:32:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn at 4461 PS1, Line 4461: return int2oct( oct2int('42000023'O) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ), > You are missing using base_tmsi instead of hardcoded value here. oof! https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn at 4490 PS1, Line 4490: private function f_perform_clear_on_RSL1() runs on MSC_ConnHdlr { > Merge RSL1 and RSL2 functions, simply pass the port as a parameter. I sure tried that. If you can show me how to pass a port as parameter I'll be happy to comply. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:32:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:33:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:33:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move type RAN_Configurations to RAN_Adapter.ttcnpp In-Reply-To: References: Message-ID: Hello fixeria, pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 to look at the new patch set (#3). Change subject: move type RAN_Configurations to RAN_Adapter.ttcnpp ...................................................................... move type RAN_Configurations to RAN_Adapter.ttcnpp So far used only in MSC_Tests.ttcn, but soon to be used also in BSC_Tests.ttcn. Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 --- M library/RAN_Adapter.ttcnpp M msc/MSC_Tests.ttcn 2 files changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/59/18759/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 Gerrit-Change-Number: 18759 Gerrit-PatchSet: 3 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 Fri Jun 12 13:33:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:33:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs In-Reply-To: References: Message-ID: Hello fixeria, pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 to look at the new patch set (#3). Change subject: bsc: allow multiple MSCs ...................................................................... bsc: allow multiple MSCs Similar to the MSC tests, have several g_bssap and mp_bssap_cfg. Prepare for MSC pool tests. Replace g_bssap with a g_bssap[NUM_MSC] array. Replace mp_bssap_cfg with an mp_bssap_cfg[NUM_MSC] array. Requires patch I1986e4ef43beee161c82193694421b56136c1afe in docker-playground to match the new required BSC_Tests.cfg format. Related: OS#3682 Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn M bsc/MSC_ConnectionHandler.ttcn 3 files changed, 119 insertions(+), 75 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/18760/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 Gerrit-PatchSet: 3 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 Fri Jun 12 13:33:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 13:33:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 to look at the new patch set (#3). Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 804 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/18763/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:38:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 13:38:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/1/bsc/BSC_Tests.ttcn at 4490 PS1, Line 4490: private function f_perform_clear_on_RSL1() runs on MSC_ConnHdlr { > I sure tried that. If you can show me how to pass a port as parameter I'll be happy to comply. There's plenty of examples in library. Check for instance: """ function f_rtpem_connect(RTPEM_CTRL_PT pt, in HostName remote_host, in PortNumber remote_port) { pt.call(RTPEM_connect:{remote_host, remote_port}) { [] pt.getreply(RTPEM_connect:{remote_host, remote_port}) {}; } } """ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:38:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 13:39:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 13:39:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move type RAN_Configurations to RAN_Adapter.ttcnpp In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 ) Change subject: move type RAN_Configurations to RAN_Adapter.ttcnpp ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 Gerrit-Change-Number: 18759 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 13:39: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 Jun 12 13:52:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 13:52:44 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Fix iperf3cli.launch_sync() when configured to run more than ... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792 ) Change subject: iperf3: Fix iperf3cli.launch_sync() when configured to run more than 300 sec ...................................................................... iperf3: Fix iperf3cli.launch_sync() when configured to run more than 300 sec process object always used timeout=300 while runnig wth launch_sync(). Let's allow replacing that value beforehand so that iperf3 can pre-configure the process object and caller doesn't need to care about calculating expected time. Change-Id: I7f6c5078f648013515919aa35ebcdb3ef157b5e4 --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/iperf3.py 2 files changed, 14 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/92/18792/1 diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 8954674..1823a20 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -125,11 +125,14 @@ class Process(log.Origin): + DEFAULT_WAIT_TIMEOUT = 300 # seconds + def __init__(self, name, run_dir, popen_args, **popen_kwargs): super().__init__(log.C_RUN, name) self.process_obj = None self.result = None self.killed = None + self.default_wait_timeout = Process.DEFAULT_WAIT_TIMEOUT self.name_str = name self.run_dir = run_dir self.popen_args = popen_args @@ -143,6 +146,10 @@ env[key] = value self.popen_kwargs['env'] = env + def set_default_wait_timeout(self, timeout): + assert timeout + self.default_wait_timeout = timeout + def make_output_log(self, name): ''' create a non-existing log output file in run_dir to pipe stdout and @@ -346,7 +353,9 @@ self.poll() return self.result is not None - def wait(self, timeout=300): + def wait(self, timeout=None): + if timeout is None: + timeout = self.default_wait_timeout MainLoop.wait(self.terminated, timeout=timeout) def stdin_write(self, cmd): diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index 70fceff..ee62159 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -247,9 +247,11 @@ self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE) if self.runs_locally(): - return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) else: - return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc.set_default_wait_timeout(time_sec + 10) # leave 10 extra sec for remote run, ctrl conn establishment, etc. + return proc def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate): self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr()) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792 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: I7f6c5078f648013515919aa35ebcdb3ef157b5e4 Gerrit-Change-Number: 18792 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 Jun 12 14:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 14:02:02 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Fix iperf3cli.launch_sync() when configured to run more than ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792 ) Change subject: iperf3: Fix iperf3cli.launch_sync() when configured to run more than 300 sec ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792 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: I7f6c5078f648013515919aa35ebcdb3ef157b5e4 Gerrit-Change-Number: 18792 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:02: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 Jun 12 14:02:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 14:02:05 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Fix iperf3cli.launch_sync() when configured to run more than ... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792 ) Change subject: iperf3: Fix iperf3cli.launch_sync() when configured to run more than 300 sec ...................................................................... iperf3: Fix iperf3cli.launch_sync() when configured to run more than 300 sec process object always used timeout=300 while runnig wth launch_sync(). Let's allow replacing that value beforehand so that iperf3 can pre-configure the process object and caller doesn't need to care about calculating expected time. Change-Id: I7f6c5078f648013515919aa35ebcdb3ef157b5e4 --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/iperf3.py 2 files changed, 14 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 8954674..1823a20 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -125,11 +125,14 @@ class Process(log.Origin): + DEFAULT_WAIT_TIMEOUT = 300 # seconds + def __init__(self, name, run_dir, popen_args, **popen_kwargs): super().__init__(log.C_RUN, name) self.process_obj = None self.result = None self.killed = None + self.default_wait_timeout = Process.DEFAULT_WAIT_TIMEOUT self.name_str = name self.run_dir = run_dir self.popen_args = popen_args @@ -143,6 +146,10 @@ env[key] = value self.popen_kwargs['env'] = env + def set_default_wait_timeout(self, timeout): + assert timeout + self.default_wait_timeout = timeout + def make_output_log(self, name): ''' create a non-existing log output file in run_dir to pipe stdout and @@ -346,7 +353,9 @@ self.poll() return self.result is not None - def wait(self, timeout=300): + def wait(self, timeout=None): + if timeout is None: + timeout = self.default_wait_timeout MainLoop.wait(self.terminated, timeout=timeout) def stdin_write(self, cmd): diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index 70fceff..ee62159 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -247,9 +247,11 @@ self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE) if self.runs_locally(): - return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) else: - return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc.set_default_wait_timeout(time_sec + 10) # leave 10 extra sec for remote run, ctrl conn establishment, etc. + return proc def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate): self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr()) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18792 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: I7f6c5078f648013515919aa35ebcdb3ef157b5e4 Gerrit-Change-Number: 18792 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 Fri Jun 12 14:19:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 14:19:31 +0000 Subject: Change in osmo-gsm-tester[master]: Remove all references to defaults: timeout: from suite.conf References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 ) Change subject: Remove all references to defaults: timeout: from suite.conf ...................................................................... Remove all references to defaults: timeout: from suite.conf This feature is not really implemented and maybe never was. In any case, it makes sense to have that working per-test so we can specify different values per test in case it's needed. Change-Id: I3c1b95c10e974da87ec9abd25578d8bcc0bc55a3 --- M doc/examples/4g_srsLTE/suites/4g/suite.conf M doc/manuals/chapters/config.adoc M selftest/suite_test/suite_test.ok M selftest/suite_test/suitedirA/test_suite/suite.conf M selftest/suite_test/suitedirB/suiteB/suite.conf M selftest/suite_test/suitedirB/suiteC/suite.conf M src/osmo_gsm_tester/core/schema.py M sysmocom/suites/4g/suite.conf M sysmocom/suites/encryption/suite.conf M sysmocom/suites/nitb_debug/suite.conf M sysmocom/suites/nitb_netreg/suite.conf M sysmocom/suites/nitb_netreg_mass/suite.conf M sysmocom/suites/nitb_smpp/suite.conf M sysmocom/suites/nitb_sms/suite.conf M sysmocom/suites/nitb_ussd/suite.conf M sysmocom/suites/smpp/suite.conf 16 files changed, 1 insertion(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/93/18793/1 diff --git a/doc/examples/4g_srsLTE/suites/4g/suite.conf b/doc/examples/4g_srsLTE/suites/4g/suite.conf index e439e99..0b0177a 100644 --- a/doc/examples/4g_srsLTE/suites/4g/suite.conf +++ b/doc/examples/4g_srsLTE/suites/4g/suite.conf @@ -8,5 +8,3 @@ features: - 4g -defaults: - timeout: 180s diff --git a/doc/manuals/chapters/config.adoc b/doc/manuals/chapters/config.adoc index b4e4a95..118f056 100644 --- a/doc/manuals/chapters/config.adoc +++ b/doc/manuals/chapters/config.adoc @@ -190,9 +190,6 @@ a_suite_test_foo: one_test_parameter_for_test_foo: 'str' another_test_parameter_for_test_foo: ['bool_str'] - -defaults: - timeout: 50s ---- [[scenarios_dir]] @@ -647,9 +644,6 @@ <> file. Content in this section follows the <> schema. -//TODO: defaults.timeout should be change in code to be config.test_timeout or similar -//TODO: 'config' should be split into its own schema and validate defaults.conf - === Example Setup {app-name} comes with an example official setup which is the one used to run diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 9c9f5cc..3264fe2 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -15,8 +15,6 @@ cnf [PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf: ERR: FileNotFoundError: [Errno 2] No such file or directory: '[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf' [empty_dir?[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf] - valid suite dir cnf test_suite: DBG: reading suite.conf -defaults: - timeout: 60s resources: bts: - label: sysmoCell 5000 diff --git a/selftest/suite_test/suitedirA/test_suite/suite.conf b/selftest/suite_test/suitedirA/test_suite/suite.conf index 4b70be8..ff4899a 100644 --- a/selftest/suite_test/suitedirA/test_suite/suite.conf +++ b/selftest/suite_test/suitedirA/test_suite/suite.conf @@ -15,5 +15,3 @@ one_bool_parameter: 'bool_str' second_list_parameter: ['uint'] -defaults: - timeout: 60s diff --git a/selftest/suite_test/suitedirB/suiteB/suite.conf b/selftest/suite_test/suitedirB/suiteB/suite.conf index 3645cd9..a4d0951 100644 --- a/selftest/suite_test/suitedirB/suiteB/suite.conf +++ b/selftest/suite_test/suitedirB/suiteB/suite.conf @@ -1,4 +1,2 @@ resources: -defaults: - timeout: 60s diff --git a/selftest/suite_test/suitedirB/suiteC/suite.conf b/selftest/suite_test/suitedirB/suiteC/suite.conf index 44be3fc..33639a1 100644 --- a/selftest/suite_test/suitedirB/suiteC/suite.conf +++ b/selftest/suite_test/suitedirB/suiteC/suite.conf @@ -2,5 +2,3 @@ ip_address: - addr: 10.42.42.2 # stp -defaults: - timeout: 60s diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py index 70b4c8c..9a346cd 100644 --- a/src/osmo_gsm_tester/core/schema.py +++ b/src/osmo_gsm_tester/core/schema.py @@ -430,7 +430,7 @@ global _ALL_SCHEMA if _ALL_SCHEMA is None: want_schema = get_want_schema() - _ALL_SCHEMA = util.dict_add({ 'defaults.timeout': STR }, + _ALL_SCHEMA = util.dict_add( dict([('config.%s' % key, val) for key, val in _CONFIG_SCHEMA.items()]), dict([('resources.%s' % key, val) for key, val in want_schema.items()]), dict([('modifiers.%s' % key, val) for key, val in want_schema.items()])) diff --git a/sysmocom/suites/4g/suite.conf b/sysmocom/suites/4g/suite.conf index fbd81b6..49031a2 100644 --- a/sysmocom/suites/4g/suite.conf +++ b/sysmocom/suites/4g/suite.conf @@ -13,5 +13,3 @@ duration: 'duration' threshold: 'uint' -defaults: - timeout: 180s diff --git a/sysmocom/suites/encryption/suite.conf b/sysmocom/suites/encryption/suite.conf index 18e94a3..8820b26 100644 --- a/sysmocom/suites/encryption/suite.conf +++ b/sysmocom/suites/encryption/suite.conf @@ -12,5 +12,3 @@ - a5_0 - a5_1 -defaults: - timeout: 120s diff --git a/sysmocom/suites/nitb_debug/suite.conf b/sysmocom/suites/nitb_debug/suite.conf index adfc161..e2b7d13 100644 --- a/sysmocom/suites/nitb_debug/suite.conf +++ b/sysmocom/suites/nitb_debug/suite.conf @@ -6,5 +6,3 @@ modem: - times: 4 -defaults: - timeout: 60s diff --git a/sysmocom/suites/nitb_netreg/suite.conf b/sysmocom/suites/nitb_netreg/suite.conf index 1bb1dbb..5f651de 100644 --- a/sysmocom/suites/nitb_netreg/suite.conf +++ b/sysmocom/suites/nitb_netreg/suite.conf @@ -6,5 +6,3 @@ modem: - times: 1 -defaults: - timeout: 40s diff --git a/sysmocom/suites/nitb_netreg_mass/suite.conf b/sysmocom/suites/nitb_netreg_mass/suite.conf index bb1585b..90e9946 100644 --- a/sysmocom/suites/nitb_netreg_mass/suite.conf +++ b/sysmocom/suites/nitb_netreg_mass/suite.conf @@ -7,5 +7,3 @@ - times: 100 type: osmo-mobile -defaults: - timeout: 50s diff --git a/sysmocom/suites/nitb_smpp/suite.conf b/sysmocom/suites/nitb_smpp/suite.conf index eb5dc01..77861ed 100644 --- a/sysmocom/suites/nitb_smpp/suite.conf +++ b/sysmocom/suites/nitb_smpp/suite.conf @@ -8,5 +8,3 @@ features: - sms -defaults: - timeout: 60s diff --git a/sysmocom/suites/nitb_sms/suite.conf b/sysmocom/suites/nitb_sms/suite.conf index 485402b..52caa3c 100644 --- a/sysmocom/suites/nitb_sms/suite.conf +++ b/sysmocom/suites/nitb_sms/suite.conf @@ -8,5 +8,3 @@ features: - sms -defaults: - timeout: 60s diff --git a/sysmocom/suites/nitb_ussd/suite.conf b/sysmocom/suites/nitb_ussd/suite.conf index 232a5d8..8314920 100644 --- a/sysmocom/suites/nitb_ussd/suite.conf +++ b/sysmocom/suites/nitb_ussd/suite.conf @@ -8,5 +8,3 @@ features: - ussd -defaults: - timeout: 60s diff --git a/sysmocom/suites/smpp/suite.conf b/sysmocom/suites/smpp/suite.conf index 61e7015..304b310 100644 --- a/sysmocom/suites/smpp/suite.conf +++ b/sysmocom/suites/smpp/suite.conf @@ -8,5 +8,3 @@ features: - sms -defaults: - timeout: 60s -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 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: I3c1b95c10e974da87ec9abd25578d8bcc0bc55a3 Gerrit-Change-Number: 18793 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 Jun 12 14:21:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 14:21:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs In-Reply-To: References: Message-ID: Hello fixeria, pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 to look at the new patch set (#4). Change subject: bsc: allow multiple MSCs ...................................................................... bsc: allow multiple MSCs Similar to the MSC tests, have several g_bssap and mp_bssap_cfg. Prepare for MSC pool tests. Replace g_bssap with a g_bssap[NUM_MSC] array. Replace mp_bssap_cfg with an mp_bssap_cfg[NUM_MSC] array. Requires patch I1986e4ef43beee161c82193694421b56136c1afe in docker-playground to match the new required BSC_Tests.cfg format. Related: OS#3682 Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn M bsc/MSC_ConnectionHandler.ttcn 3 files changed, 119 insertions(+), 75 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/18760/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 Gerrit-PatchSet: 4 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 Fri Jun 12 14:21:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 14:21:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 to look at the new patch set (#4). Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 609 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/18763/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 14:21:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 14:21:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: undup pars.sccp_addr_msc and _bsc References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 ) Change subject: bsc: undup pars.sccp_addr_msc and _bsc ...................................................................... bsc: undup pars.sccp_addr_msc and _bsc Handover testing required passing MSC and BSC addresses to f_tc_* functions and added pars.handover.sccp_addr_msc and .handover.sccp_addr_bsc. MSC pool tests added a separate sub-record pars.mscpool which also contains these two fields. Move them both up one level, to form a single pair of pars.sccp_addr_msc and pars.sccp_addr_bsc. This eliminates the pars.handover sub-record. Change-Id: Iae81ca58001455099218ce769a97dc6402832490 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn 2 files changed, 25 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/94/18794/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 9d48d62..1d2d312 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3313,7 +3313,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3368,8 +3368,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_into_this_bsc), pars); vc_conn.done; @@ -3385,7 +3385,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3441,8 +3441,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_msc_clears), pars); vc_conn.done; @@ -3463,7 +3463,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3521,8 +3521,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_msc_clears_after_ho_detect), pars); vc_conn.done; @@ -3539,7 +3539,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3602,8 +3602,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_no_detect), pars); vc_conn.done; @@ -3620,7 +3620,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3673,8 +3673,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_no_detect2), pars); vc_conn.done; @@ -4875,7 +4875,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); - paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Paging(imsi, cid_list, omit, bssmap_chneed)))); BSSAP.send(paging); @@ -4904,8 +4904,8 @@ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; - pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; - pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + pars1.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_imsi), pars1); vc_conn1.done; } @@ -4923,7 +4923,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); - paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Paging('001010000000011'H, cid_list, tmsi, bssmap_chneed)))); BSSAP.send(paging); @@ -4953,8 +4953,8 @@ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; - pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; - pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + pars1.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_tmsi), pars1); vc_conn1.done; } diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index fece825..8ac7051 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -509,15 +509,8 @@ boolean adjust_cx_exp } -type record TestHdlrParamsHandover { - SCCP_PAR_Address sccp_addr_msc, - SCCP_PAR_Address sccp_addr_bsc -} - type record TestHdlrParamsMSCPool { integer bssap_idx, - SCCP_PAR_Address sccp_addr_msc optional, - SCCP_PAR_Address sccp_addr_bsc optional, integer rsl_idx, PDU_ML3_MS_NW l3_info optional } @@ -533,7 +526,8 @@ bitstring expect_mr_s0_s7 optional, /* typically present for AMR codecs */ TestHdlrEncrParams encr optional, TestHdlrParamsLcls lcls, - TestHdlrParamsHandover handover optional, + SCCP_PAR_Address sccp_addr_msc optional, + SCCP_PAR_Address sccp_addr_bsc optional, uint5_t exp_ms_power_level, boolean exp_ms_power_params, boolean aoip, @@ -561,15 +555,14 @@ exp_sts := omit, adjust_cx_exp := true }, - handover := omit, + sccp_addr_msc := omit, + sccp_addr_bsc := omit, exp_ms_power_level := 7, /* calculated from osmo-bsc.cfg "ms max power" */ exp_ms_power_params := false, aoip := true, use_osmux := false, mscpool := { bssap_idx := 0, - sccp_addr_msc := omit, - sccp_addr_bsc := omit, rsl_idx := 0, l3_info := omit } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iae81ca58001455099218ce769a97dc6402832490 Gerrit-Change-Number: 18794 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 Jun 12 14:22:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 14:22:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 ) Change subject: bsc: allow multiple MSCs ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14: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 Jun 12 14:25:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 14:25:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:25:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 14:32:30 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 14:32:30 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: Hello dexter, fixeria, pespin, laforge, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18507 to look at the new patch set (#8). Change subject: add osmo_mobile_identity API ...................................................................... add osmo_mobile_identity API Implement better API around 3GPP TS 24.008 Mobile Identity coding. struct osmo_mobile_identity is a decoded representation of the raw Mobile Identity, with a string representation as well as dedicated raw uint32_t TMSI. The aim is to remove all uncertainty about decoded buffer sizes / data types. I have patches ready for all osmo programs, completely replacing the Mobile Identity coding with this new API. Hence deprecate the old MI API. New API functions provide properly size-checking implementations of: - decoding a raw MI from a bunch of MI octets; - locating and decoding MI from a full 3GPP TS 24.008 Complete Layer 3 msgb; - encoding to a buffer; - encoding to the end of a msgb. Other than the old gsm48_generate_mid(), omit a TLV tag and length from encoding. Many callers manually stripped the tag and value after calling gsm48_generate_mid(). The aim is to leave writing a TL to the caller entirely, especially since some callers need to use a TvL, i.e. support a variable-size length of 8 or 16 bit. New validity checks so far not implemented anywhere else: - stricter validation of number of digits of IMSI, IMEI, IMEI-SV MI. - stricter on filler nibbles to be 0xf. Rationale: While implementing osmo-bsc's MSC pooling feature in osmo-bsc, this API will be used to reduce the number of times a Mobile Identity is extracted from a raw RSL message. Extracting the Mobile Identity from messages has numerous duplicate implementations across our code with various levels of specialization. https://xkcd.com/927/ To name a few: - libosmocore: gsm48_mi_to_string(), osmo_mi_name_buf() - osmo-bsc: extract_sub() - osmo-msc: mm_rx_loc_upd_req(), cm_serv_reuse_conn(), gsm48_rx_mm_serv_req(), vlr_proc_acc_req() We have existing functions to produce a human readable string from a Mobile Identity, more or less awkward: - gsm48_mi_to_string() decodes a TMSI as a decimal number. These days we use hexadecimal TMSI everywhere. - osmo_mi_name_buf() decodes the BCD digits from a raw MI every time, so we'd need to pass around the raw message bytes. Also, osmo_mi_name_buf() has the wrong signature, it should return a length like snprintf(). - osmo-bsc's extract_sub() first uses gsm48_mi_to_string() which encodes the raw uint32_t TMSI to a string, and then calls strtoul() via tmsi_from_string() to code those back to a raw uint32_t. Each of the above implementations employ their own size overflow checks, each invoke osmo_bcd2str() and implement their own TMSI osmo_load32be() handling. Too much code dup, let's hope that each and every one is correct. In osmo-bsc, I am now implementing MSC pooling, and need to extract NRI bits from a TMSI Mobile Identity. Since none of the above functions are general enough to be re-used, I found myself again copy-pasting Mobile Identity code: locating the MI in a 24.008 message with proper size checks, decoding MI octets. This time I would like it to become a generally re-usable API. Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gsm/gsm0808.c M src/gsm/gsm29118.c M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 13 files changed, 1,166 insertions(+), 151 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/07/18507/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels 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 Fri Jun 12 14:35:37 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 14:35:37 +0000 Subject: Change in libosmocore[master]: osmo_bcd2str: also validate start_nibble parameter References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18795 ) Change subject: osmo_bcd2str: also validate start_nibble parameter ...................................................................... osmo_bcd2str: also validate start_nibble parameter If start_nibble were passed negative, we'd end up accessing invalid memory. Safeguard against that. Change-Id: Ied3c1e02c3a01d868e08195cbd8dfa52d2c19ac3 --- M src/utils.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/18795/1 diff --git a/src/utils.c b/src/utils.c index 038288c..18e105f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -154,7 +154,7 @@ int nibble_i; int rc = 0; - if (!dst || dst_size < 1) + if (!dst || dst_size < 1 || start_nibble < 0) return -ENOMEM; for (nibble_i = start_nibble; nibble_i < end_nibble && dst < dst_end; nibble_i++, dst++) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ied3c1e02c3a01d868e08195cbd8dfa52d2c19ac3 Gerrit-Change-Number: 18795 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 Jun 12 14:38:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 14:38:41 +0000 Subject: Change in osmo-gsm-tester[master]: test: Move duration time calculation to helper function References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18796 ) Change subject: test: Move duration time calculation to helper function ...................................................................... test: Move duration time calculation to helper function Change-Id: Ica2e7d92f37d18a4f8832f38d9f9f3baba8be09f --- M src/osmo_gsm_tester/core/test.py 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/96/18796/1 diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 47e1f42..7347229 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -105,9 +105,13 @@ return '%s:%s' % (self._name, l) return super().name() + def elapsed_time(self): + 'time elapsed since test was started' + return time.time() - self.start_timestamp + def set_fail(self, fail_type, fail_message, tb_str=None, src=4): self.status = Test.FAIL - self.duration = time.time() - self.start_timestamp + self.duration = self.elapsed_time() self.fail_type = fail_type self.fail_message = fail_message @@ -123,7 +127,7 @@ def set_pass(self): self.status = Test.PASS - self.duration = time.time() - self.start_timestamp + self.duration = self.elapsed_time() self.log('Test passed (%.1f sec)' % self.duration) def set_skip(self): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18796 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: Ica2e7d92f37d18a4f8832f38d9f9f3baba8be09f Gerrit-Change-Number: 18796 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 Jun 12 14:47:31 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 14:47:31 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 9: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/utils.c File src/utils.c: https://gerrit.osmocom.org/c/libosmocore/+/18507/7/src/utils.c at 194 PS7, Line 194: osmo_str2bcd > JFYI, we already have gsm48_decode_bcd_number2() doing something similar. [?] actually gsm48_decode_bcd_number2() would be using osmo_bcd2str, not this function. But a difference there is the use of bcd_num_digits[] returning '0'-'9','*', '#', 'a', 'b', 'c', '\0', while osmo_bcd2str() returns digits '0'-'9', 'a'-'f' -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:47:31 +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 Jun 12 14:51:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:51:09 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:51:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 14:51:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:51:35 +0000 Subject: Change in osmo-gsm-tester[master]: test: Move duration time calculation to helper function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18796 ) Change subject: test: Move duration time calculation to helper function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18796 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: Ica2e7d92f37d18a4f8832f38d9f9f3baba8be09f Gerrit-Change-Number: 18796 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 12 Jun 2020 14:51: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 Jun 12 14:51:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:51:49 +0000 Subject: Change in libosmocore[master]: osmo_bcd2str: also validate start_nibble parameter In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18795 ) Change subject: osmo_bcd2str: also validate start_nibble parameter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ied3c1e02c3a01d868e08195cbd8dfa52d2c19ac3 Gerrit-Change-Number: 18795 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 12 Jun 2020 14: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 Fri Jun 12 14:52:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:52:07 +0000 Subject: Change in libosmocore[master]: add gsm23236: MSC pooling: TMSI and NRI utility functions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18506 ) Change subject: add gsm23236: MSC pooling: TMSI and NRI utility functions ...................................................................... add gsm23236: MSC pooling: TMSI and NRI utility functions These utilities will be used by osmo-bsc to determine the Network Resource Indicator seen in the TMSI, and (potentially) by osmo-msc to compose a TMSI with a specific NRI, for osmo-bsc's load balancing between several MSCs. Add utility functions to: - extract an NRI value from a TMSI. - overwrite the NRI value in a TMSI. - limit an NRI in a (random) TMSI to a given list of ranges. - add NRI value ranges to a list. - remove them from a list. - match NRI value (range) to a list. - parse NRI values from string, for VTY. - common VTY functionality of adding/removing NRI values from argv. Add C tests for the above. Why we need public API for NRI ranges: In osmo-bsc alone, we need the same NRI API twice, 1: to manage/list NRI value ranges per-MSC, and 2: to manage/list NULL-NRI values. If we also consider (potentially) adding NRI support to osmo-msc, we need the same API twice again there. Hence it is useful to define re-used API up here in libosmocore. Related: OS#3682 Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 --- M include/Makefile.am A include/osmocom/gsm/gsm23236.h M src/gsm/Makefile.am A src/gsm/gsm23236.c M src/gsm/libosmogsm.map M tests/Makefile.am A tests/gsm23236/gsm23236_test.c A tests/gsm23236/gsm23236_test.ok M tests/testsuite.at 9 files changed, 1,784 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified 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 diff --git a/include/Makefile.am b/include/Makefile.am index 456b8ef..7af7e01 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -95,6 +95,7 @@ osmocom/gsm/gsm29205.h \ osmocom/gsm/gsm0808_utils.h \ osmocom/gsm/gsm23003.h \ + osmocom/gsm/gsm23236.h \ osmocom/gsm/gsm29118.h \ osmocom/gsm/gsm48.h \ osmocom/gsm/gsm48_arfcn_range_encode.h \ diff --git a/include/osmocom/gsm/gsm23236.h b/include/osmocom/gsm/gsm23236.h new file mode 100644 index 0000000..23b003a --- /dev/null +++ b/include/osmocom/gsm/gsm23236.h @@ -0,0 +1,60 @@ +/*! \file gsm23236.h + * API to handle Network Resource Indicator (NRI) values and ranges for MSC pooling, as in 3GPP TS 23.236. + */ + +#pragma once + +#include +#include + +#include + +#define OSMO_NRI_BITLEN_MIN 1 +#define OSMO_NRI_BITLEN_MAX 15 +#define OSMO_NRI_BITLEN_DEFAULT 10 + +/*! One range of NRI values. An NRI is a Network Resource Indicator, a number of a configured bit length (typically 10 + * bit). In an MSC pool for load balancing, it is used to indicate which MSC has issued a TMSI: the NRI is located with + * its most significant bit located on the TMSI's second octet's most significant bit. See 3GPP TS 23.236. */ +struct osmo_nri_range { + struct llist_head entry; + + /*! First value of the NRI range, i.e. inclusive. */ + int16_t first; + /*! Last value of the NRI range, i.e. inclusive. */ + int16_t last; +}; + +/*! A list of struct osmo_nri_range. Use osmo_nri_ranges_alloc() to create, and osmo_nri_ranges_free() (or talloc_free() + * on the parent context) to destroy. Always use osmo_nri_ranges_add() to insert entries, to ensure that the list + * remains sorted by 'first' values, which some of the osmo_nri_ranges API assumes to always be true. + * + * This struct serves as talloc context for the osmo_nri_range entries in the list, simplifying function signatures. It + * also makes the API future proof, to easily accomodate possible future additions. + */ +struct osmo_nri_ranges { + /* List of struct osmo_nri_range entries, talloc allocated from the parent struct osmo_nri_ranges. */ + struct llist_head entries; +}; + +int osmo_nri_v_validate(int16_t nri_v, uint8_t nri_bitlen); +bool osmo_nri_v_matches_ranges(int16_t nri_v, const struct osmo_nri_ranges *nri_ranges); +int osmo_nri_v_limit_by_ranges(int16_t *nri_v, const struct osmo_nri_ranges *nri_ranges, uint32_t nri_bitlen); + +int osmo_tmsi_nri_v_get(int16_t *nri_v, uint32_t tmsi, uint8_t nri_bitlen); +int osmo_tmsi_nri_v_set(uint32_t *tmsi, int16_t nri_v, uint8_t nri_bitlen); +int osmo_tmsi_nri_v_limit_by_ranges(uint32_t *tmsi, const struct osmo_nri_ranges *nri_ranges, uint8_t nri_bitlen); + +int osmo_nri_range_validate(const struct osmo_nri_range *range, uint8_t nri_bitlen); +bool osmo_nri_range_overlaps_ranges(const struct osmo_nri_range *range, const struct osmo_nri_ranges *nri_ranges); + +struct osmo_nri_ranges *osmo_nri_ranges_alloc(void *ctx); +void osmo_nri_ranges_free(struct osmo_nri_ranges *nri_ranges); +int osmo_nri_ranges_add(struct osmo_nri_ranges *nri_ranges, const struct osmo_nri_range *add); +int osmo_nri_ranges_del(struct osmo_nri_ranges *nri_ranges, const struct osmo_nri_range *del); +int osmo_nri_ranges_vty_add(const char **message, struct osmo_nri_range *added_range, + struct osmo_nri_ranges *nri_ranges, int argc, const char **argv, uint8_t nri_bitlen); +int osmo_nri_ranges_vty_del(const char **message, struct osmo_nri_range *removed_range, + struct osmo_nri_ranges *nri_ranges, int argc, const char **argv); +int osmo_nri_ranges_to_str_buf(char *buf, size_t buflen, const struct osmo_nri_ranges *nri_ranges); +char *osmo_nri_ranges_to_str_c(void *ctx, const struct osmo_nri_ranges *nri_ranges); diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am index eeb1164..0e879e9 100644 --- a/src/gsm/Makefile.am +++ b/src/gsm/Makefile.am @@ -31,7 +31,7 @@ milenage/aes-internal.c milenage/aes-internal-enc.c \ milenage/milenage.c gan.c ipa.c gsm0341.c apn.c \ gsup.c gsup_sms.c gprs_gea.c gsm0503_conv.c oap.c gsm0808_utils.c \ - gsm23003.c mncc.c bts_features.c oap_client.c \ + gsm23003.c gsm23236.c mncc.c bts_features.c oap_client.c \ gsm29118.c gsm48_rest_octets.c cbsp.c gsm48049.c i460_mux.c libgsmint_la_LDFLAGS = -no-undefined libgsmint_la_LIBADD = $(top_builddir)/src/libosmocore.la diff --git a/src/gsm/gsm23236.c b/src/gsm/gsm23236.c new file mode 100644 index 0000000..01d0eb3 --- /dev/null +++ b/src/gsm/gsm23236.c @@ -0,0 +1,560 @@ +/*! \file gsm23236.c + * Utility function implementations related to 3GPP TS 23.236 */ +/* + * (C) 2020 sysmocom - s.f.m.c. GmbH + * Author: Neels Hofmeyr + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include + +#include +#include + +/*! Validate that the given NRI is valid for a given nri_bitlen range. + * \param[in] nri_v NRI value to validate. + * \param[in] nri_bitlen Valid NRI range in nr of bits used; if nri_bitlen > OSMO_NRI_BITLEN_MAX, nri_v is only + * checked to not be marked invalid. + * \returns 0 if valid, <0 if the NRI is <0, >0 if the NRI surpasses the range. + */ +int osmo_nri_v_validate(int16_t nri_v, uint8_t nri_bitlen) +{ + if (nri_v < 0) + return -1; + if (nri_bitlen < OSMO_NRI_BITLEN_MIN) + return 1; + if (nri_bitlen < OSMO_NRI_BITLEN_MAX && (nri_v >> nri_bitlen)) + return 1; + return 0; +} + +/*! Match NRI value against a list NRI ranges. */ +static bool nri_v_matches_range(const struct osmo_nri_range *range, int16_t nri_v) +{ + return range && nri_v >= range->first && nri_v <= range->last; +} + +/*! Return true if the ranges overlap, i.e. one or more NRI values appear in both ranges. */ +static bool nri_range_overlaps_range(const struct osmo_nri_range *a, const struct osmo_nri_range *b) +{ + return nri_v_matches_range(b, a->first) || nri_v_matches_range(b, a->last) + || nri_v_matches_range(a, b->first) || nri_v_matches_range(a, b->last); +} + +/*! Return true if the ranges overlap or are directly adjacent to each other. */ +static bool nri_range_touches(const struct osmo_nri_range *a, const struct osmo_nri_range *b) +{ + /* The first > last check may seem redundant, but ensures integer overflow safety. */ + return nri_range_overlaps_range(a, b) + || (a->first > b->last && a->first == b->last + 1) + || (b->first > a->last && b->first == a->last + 1); +} + +/*! Grow target range to also span range 'add'. Only useful for touching ranges, since all values between the two ranges + * are also included. */ +static void nri_range_extend(struct osmo_nri_range *target, const struct osmo_nri_range *add) +{ + target->first = OSMO_MIN(target->first, add->first); + target->last = OSMO_MAX(target->last, add->last); +} + +/*! Return true when the given NRI value appears in the list of NRI ranges. + * \param[in] nri_v NRI value to look for. + * \param[in] nri_ranges List NRI ranges. + * \returns true iff nri_v appears anywhere in nri_ranges. + */ +bool osmo_nri_v_matches_ranges(int16_t nri_v, const struct osmo_nri_ranges *nri_ranges) +{ + struct osmo_nri_range *range; + if (!nri_ranges) + return false; + llist_for_each_entry(range, &nri_ranges->entries, entry) { + if (nri_v_matches_range(range, nri_v)) + return true; + } + return false; +} + +/*! Modulo and shift the given NRI value so that it becomes a value present in a list of NRI ranges. + * Only range values within nri_bitlen are used. + * \param[inout] nri_v The NRI value to limit, e.g. random bits or an increment counter value. + * \param[in] nri_ranges List of NRI ranges indicating valid NRI values, where no entries may overlap in range values, + * and all entries must be valid (first <= last). + * \returns 0 on success, negative on error. + */ +int osmo_nri_v_limit_by_ranges(int16_t *nri_v, const struct osmo_nri_ranges *nri_ranges, uint32_t nri_bitlen) +{ + struct osmo_nri_range *range; + uint32_t total_values = 0; + int16_t v = *nri_v; + int16_t range_max = (((int16_t)1) << nri_bitlen) - 1; + + if (v < 0 || !nri_ranges) + return -1; + + /* Sum up total amount of range values */ + llist_for_each_entry(range, &nri_ranges->entries, entry) { + if (osmo_nri_range_validate(range, 255)) + return -1; + if (range->first > range_max) + continue; + total_values += OSMO_MIN(range_max, range->last) - range->first + 1; + } + + /* Modulo the given NRI value by that, and pick that nth value from the given ranges. + * (nri_ranges is pretty much guaranteed to be sorted and range_max checks thus would no longer be needed, but + * just check them anyway.) */ + v %= total_values; + llist_for_each_entry(range, &nri_ranges->entries, entry) { + uint32_t len; + if (range->first > range_max) + continue; + len = OSMO_MIN(range_max, range->last) - range->first + 1; + if (v < len) { + *nri_v = range->first + v; + return 0; + } + v -= len; + } + + /* Nothing found -- there are no entires or my math is off. */ + return -1; +} + +/*! Retrieve the Network Resource Indicator bits from a TMSI or p-TMSI. + * Useful for MSC pooling as described by 3GPP TS 23.236. + * \param[out] nri_v Write the extracted NRI value to this location (if non-NULL). If 0 is returned, it is guaranteed + * that nri_v >= 0. On non-zero return code, nri_v == -1. + * \param[in] tmsi TMSI value containing NRI bits. + * \param[in] nri_bitlen Length of the NRI value in number of bits, + * OSMO_NRI_BITLEN_MIN <= nri_bitlen <= * OSMO_NRI_BITLEN_MAX. + * \return 0 on success, negative on error (i.e. if nri_bitlen is not in the valid range). + */ +int osmo_tmsi_nri_v_get(int16_t *nri_v, uint32_t tmsi, uint8_t nri_bitlen) +{ + uint8_t lowest_bit; + if (nri_v) + *nri_v = -1; + if (nri_bitlen < OSMO_NRI_BITLEN_MIN || nri_bitlen > OSMO_NRI_BITLEN_MAX) + return -1; + /* If not interested in the NRI value, exit here. */ + if (!nri_v) + return 0; + /* According to 3GPP TS 23.236, the most significant bit of the NRI is always bit 23. + * (So this is not a temporary placeholder 23 we sometimes like to use, it is an actually specified 23!) */ + lowest_bit = 23 - (nri_bitlen - 1); + /* ????xxxxxx??????? -> 0000000????xxxxxx tmsi >> lowest_bit + * -> xxxxxx & (bitmask that is nri_bitlen bits wide) + */ + *nri_v = (tmsi >> lowest_bit) & ((((uint32_t)1) << nri_bitlen) - 1); + return 0; +} + +/*! Write Network Resource Indicator bits into a TMSI or p-TMSI. + * Overwrite the NRI bits with a given NRI value in a TMSI or p-TMSI. + * Useful for MSC pooling as described by 3GPP TS 23.236. + * \param[inout] tmsi A base TMSI or p-TMSI to replace the NRI value in, result is written back to this location. + * \param[in] nri_v The NRI value to place in the tmsi. + * \param[in] nri_bitlen Length of the NRI value in number of bits, + * OSMO_NRI_BITLEN_MIN <= nri_bitlen <= * OSMO_NRI_BITLEN_MAX. + * \return 0 on success, negative on error (i.e. if nri_bitlen is not in the valid range or if tmsi is NULL). + */ +int osmo_tmsi_nri_v_set(uint32_t *tmsi, int16_t nri_v, uint8_t nri_bitlen) +{ + uint8_t lowest_bit; + uint32_t v_mask; + if (nri_bitlen < OSMO_NRI_BITLEN_MIN || nri_bitlen > OSMO_NRI_BITLEN_MAX) + return -1; + if (nri_v < 0) + return -1; + if (!tmsi) + return -1; + lowest_bit = 23 - (nri_bitlen - 1); + v_mask = ((((uint32_t)1) << nri_bitlen) - 1) << lowest_bit; + *tmsi = ((*tmsi) & ~v_mask) | ((((uint32_t)nri_v) << lowest_bit) & v_mask); + return 0; +} + +/*! Apply osmo_nri_v_limit_by_ranges() in-place on the NRI value included in a TMSI. + * Extract the NRI value from the TMSI, limit that to be part of the ranges given in 'nri_ranges', and place the + * resulting NRI value back in the TMSI. + * \param[inout] tmsi TMSI value of which to modify the NRI bits, e.g. fresh randomized bits. + * \param[in] nri_ranges List of NRI ranges indicating valid NRI values, where no entries may overlap in range values, + * and all entries must be valid (first <= last). + * \param[in] nri_bitlen Valid NRI range in nr of bits used. + * \returns 0 on success, negative on error. + */ +int osmo_tmsi_nri_v_limit_by_ranges(uint32_t *tmsi, const struct osmo_nri_ranges *nri_ranges, uint8_t nri_bitlen) +{ + int rc; + int16_t nri_v; + rc = osmo_tmsi_nri_v_get(&nri_v, *tmsi, nri_bitlen); + if (rc) + return rc; + rc = osmo_nri_v_limit_by_ranges(&nri_v, nri_ranges, nri_bitlen); + if (rc) + return rc; + return osmo_tmsi_nri_v_set(tmsi, nri_v, nri_bitlen); +} + +/*! Validate that the given NRI range is valid for a given nri_bitlen range. + * \param[in] nri_range NRI value range to validate. + * \param[in] nri_bitlen Valid NRI range in nr of bits used. If nri_bitlen > OSMO_NRI_BITLEN_MAX, the NRI range is only + * validated to be first <= last and non-negative, not checked to fit a bit length range, + * \returns 0 if valid, -1 or 1 if range->first is invalid, -2 or 2 if range->last is invalid, -3 if first > last. + */ +int osmo_nri_range_validate(const struct osmo_nri_range *range, uint8_t nri_bitlen) +{ + int rc; + rc = osmo_nri_v_validate(range->first, nri_bitlen); + if (rc) + return rc; + rc = osmo_nri_v_validate(range->last, nri_bitlen); + if (rc) + return 2 * rc; + if (range->first > range->last) + return -3; + return 0; +} + +/*! Return true when the given NRI range has at least one NRI value that appears in a list of other NRI ranges. + * \param[in] range NRI range to look for. + * \param[in] nri_ranges List NRI ranges. + * \returns true iff any NRI value from 'range' appears anywhere in nri_ranges. + */ +bool osmo_nri_range_overlaps_ranges(const struct osmo_nri_range *range, const struct osmo_nri_ranges *nri_ranges) +{ + struct osmo_nri_range *i; + if (!nri_ranges) + return false; + llist_for_each_entry(i, &nri_ranges->entries, entry) { + if (nri_range_overlaps_range(i, range)) + return true; + } + return false; +} + +/*! Allocate an empty struct osmo_nri_ranges (list of struct osmo_nri_range). + * \param ctx Talloc context to allocate from. + * \return allocated empty list. + */ +struct osmo_nri_ranges *osmo_nri_ranges_alloc(void *ctx) +{ + struct osmo_nri_ranges *nri_ranges; + nri_ranges = talloc_zero(ctx, struct osmo_nri_ranges); + OSMO_ASSERT(nri_ranges); + INIT_LLIST_HEAD(&nri_ranges->entries); + return nri_ranges; +} + +/*! Free a struct osmo_nri_ranges. + * \param nri_ranges The list to discard. + */ +void osmo_nri_ranges_free(struct osmo_nri_ranges *nri_ranges) +{ + if (nri_ranges) + talloc_free(nri_ranges); +} + +/*! Insert a new struct osmo_nri_range in an osmo_nri_ranges list, so that it remains sorted by 'first' values. */ +static void nri_ranges_add_entry_sorted(struct osmo_nri_ranges *nri_ranges, struct osmo_nri_range *add) +{ + struct osmo_nri_range *r; + struct llist_head *at_pos; + OSMO_ASSERT(nri_ranges); + at_pos = nri_ranges->entries.prev; + llist_for_each_entry(r, &nri_ranges->entries, entry) { + if (r->first <= add->first) + continue; + at_pos = r->entry.prev; + break; + } + llist_add(&add->entry, at_pos); +} + +/*! Add a range of NRI values to a list of nri_range structs. + * Intelligently add and/or combine the entries in a list of NRI ranges to also include the NRI range given in 'add'. + * The list remains sorted by 'first' values. + * \param[inout] nri_ranges List of talloc allocated struct osmo_nri_range entries to add the new range to. + * \param[in] add NRI range to add to 'nri_ranges'. + * \returns 0 on success, negative on error (if the range in 'add' is invalid). + */ +int osmo_nri_ranges_add(struct osmo_nri_ranges *nri_ranges, const struct osmo_nri_range *add) +{ + struct osmo_nri_range *range; + struct osmo_nri_range *range_next; + struct osmo_nri_range *target = NULL; + + if (osmo_nri_range_validate(add, 255)) + return -1; + if (!nri_ranges) + return -1; + + /* Is there an entry overlapping this range? */ + llist_for_each_entry(range, &nri_ranges->entries, entry) { + if (!nri_range_touches(range, add)) + continue; + target = range; + } + + if (!target) { + /* No overlaps with existing ranges, create a new one. */ + target = talloc_zero(nri_ranges, struct osmo_nri_range); + OSMO_ASSERT(target); + *target = *add; + nri_ranges_add_entry_sorted(nri_ranges, target); + return 0; + } + + /* Overlap found, join into existing entry */ + nri_range_extend(target, add); + + /* Remove redundant entries */ + llist_for_each_entry_safe(range, range_next, &nri_ranges->entries, entry) { + if (range == target) + continue; + if (!nri_range_touches(target, range)) + continue; + nri_range_extend(target, range); + llist_del(&range->entry); + talloc_free(range); + } + return 0; +} + +/*! Remove a range of NRI values from a list of nri_range structs. + * Intelligently drop and/or cut or split the entries in a list of NRI ranges to no longer include the NRI range given + * in 'del'. Note that after this, the list may have more entries than before, if a range was split into two smaller + * ranges. + * \param[inout] nri_ranges List of talloc allocated struct osmo_nri_range entries to remove values from. + * \param[in] del NRI range to remove from 'nri_ranges'. + * \returns 0 on success, negative on error (if the range in 'del' is invalid). + */ +int osmo_nri_ranges_del(struct osmo_nri_ranges *nri_ranges, const struct osmo_nri_range *del) +{ + struct osmo_nri_range *range; + struct osmo_nri_range *range_next; + + if (osmo_nri_range_validate(del, 255)) + return -1; + if (!nri_ranges) + return -1; + + llist_for_each_entry_safe(range, range_next, &nri_ranges->entries, entry) { + bool head; + bool tail; + if (!nri_range_overlaps_range(range, del)) + continue; + + head = nri_v_matches_range(range, del->first) && (del->first > range->first); + tail = nri_v_matches_range(range, del->last) && (del->last < range->last); + + if (head && tail) { + /* Range cut in two */ + struct osmo_nri_range *new_tail; + + /* Add a new entry for the tail section */ + new_tail = talloc_zero(nri_ranges, struct osmo_nri_range); + OSMO_ASSERT(new_tail); + *new_tail = (struct osmo_nri_range){ + .first = del->last + 1, + .last = range->last, + }; + llist_add(&new_tail->entry, &range->entry); + + /* Existing entry becomes the head section */ + range->last = del->first - 1; + } else if (head) { + /* Range reduced, a head remains */ + range->last = del->first - 1; + } else if (tail) { + /* Range reduced, a tail remains */ + range->first = del->last + 1; + } else { + /* nothing remains */ + llist_del(&range->entry); + talloc_free(range); + } + } + return 0; +} + +/*! Compose a human readable representation of a list of NRI ranges in a buffer, like "23..42,123..142". + * \param[out] buf Target buffer. + * \param[in] buflen sizeof(buf). + * \param[in] nri_ranges List NRI ranges. + * \returns strlen() of string that would be written if the buffer is large enough, like snprintf(). + */ +int osmo_nri_ranges_to_str_buf(char *buf, size_t buflen, const struct osmo_nri_ranges *nri_ranges) +{ + struct osmo_nri_range *range; + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + bool first = true; + if (!nri_ranges || llist_empty(&nri_ranges->entries)) { + OSMO_STRBUF_PRINTF(sb, "empty"); + return sb.chars_needed; + } + llist_for_each_entry(range, &nri_ranges->entries, entry) { + OSMO_STRBUF_PRINTF(sb, "%s%d..%d", first ? "" : ",", range->first, range->last); + } + return sb.chars_needed; +} + +/*! Compose a human readable representation of a list of NRI ranges in a talloc buffer, like "23..42,123..142". + * \param[in] ctx Talloc context. + * \param[in] nri_ranges List of NRI ranges. + * \returns a talloc allocated string. + */ +char *osmo_nri_ranges_to_str_c(void *ctx, const struct osmo_nri_ranges *nri_ranges) +{ + OSMO_NAME_C_IMPL(ctx, 16, "ERROR", osmo_nri_ranges_to_str_buf, nri_ranges); +} + +/*! Parse a string to an NRI value, allowing both decimal and hexadecimal formats; useful for VTY config + * implementations. + * \param[out] dst Write the resulting NRI value to this location. + * \param[in] str Decimal "511" or hex "0x1ff" string to parse. + * \returns 0 on success, negative on error. + */ +static int osmo_nri_parse(int16_t *dst, const char *str) +{ + char *endp; + int64_t val; + int base = 10; + + if (osmo_str_startswith(str, "0x")) { + str += 2; + base = 16; + } + + if (!str || !str[0]) + return -1; + + errno = 0; + val = strtoull(str, &endp, base); + if (errno || *endp != '\0') + return -1; + + if (val < 0 || val > INT16_MAX) + return -1; + + *dst = val; + return 0; +} + +/*! Parse string arguments to a struct osmo_nri_range; useful for VTY config implementations. + * Validate and parse 'first' and optional 'last' string arguments into struct osmo_nri_range values. + * The strings may be in decimal format ("511") or hexadecimal with leading "0x" ("0x1ff"). + * If only one of 'first'/'last' is provided, the resulting range will have only that value (first == last). + * \param[out] nri_range Target for parsed values. + * \param[in] first_str Decimal or hex string, representing the first value in the range, or NULL if omitted. + * \param[in] last_str Decimal or hex string, representing the last value in the range, or NULL if omitted. + * \returns 0 on success, negative on error. + */ +static int osmo_nri_parse_range(struct osmo_nri_range *nri_range, const char *first_str, const char *last_str) +{ + if (!nri_range) + return -1; + if (!first_str) { + first_str = last_str; + last_str = NULL; + if (!first_str) + return -1; + } + if (osmo_nri_parse(&nri_range->first, first_str)) + return -1; + nri_range->last = nri_range->first; + if (last_str) { + if (osmo_nri_parse(&nri_range->last, last_str)) + return -1; + } + return 0; +} + +/*! VTY implementation for adding an NRI range to a list of ranges. + * Parse one or, if present, two argv arguments, which must be numbers representing the first and last value to add to + * the list of NRI ranges, in decimal format ("511") or hexadecimal with leading "0x" ("0x1ff"). If the range values + * surpass the nri_bitlen, return a warning in 'message', but still add the values to the list. + * \param[out] message Returned string constant to alert the user with, or NULL if all is well. + * \param[out] added_range If not NULL, write the range parsing result to this location. + * \param[in] nri_ranges List NRI ranges to add to. + * \param[in] argc Argument count. + * \param[in] argv Argument list. + * \param[in] nri_bitlen Valid NRI range in nr of bits used. + * \returns 0 on success, -1 on error, 1 for a warning (if adding was successful but the added range surpasses + * nri_bitlen). + */ +int osmo_nri_ranges_vty_add(const char **message, struct osmo_nri_range *added_range, + struct osmo_nri_ranges *nri_ranges, int argc, const char **argv, uint8_t nri_bitlen) +{ + struct osmo_nri_range add_range; + if (osmo_nri_parse_range(&add_range, argv[0], argc > 1 ? argv[1] : NULL)) { + *message = "Error: cannot parse NRI range"; + return -1; + } + + if (added_range) + *added_range = add_range; + + if (osmo_nri_ranges_add(nri_ranges, &add_range)) { + *message = "Error: failed to add NRI range"; + return -1; + } + + if (nri_bitlen <= OSMO_NRI_BITLEN_MAX && osmo_nri_range_validate(&add_range, nri_bitlen)) { + *message = "Warning: NRI range surpasses current NRI bitlen"; + return 1; + } + + *message = NULL; + return 0; +} + +/*! VTY implementation for removing an NRI range from a list of ranges. + * Parse one or, if present, two argv arguments, which must be numbers representing the first and last value to remove + * from the list of NRI ranges, in decimal format ("511") or hexadecimal with leading "0x" ("0x1ff"). + * \param[out] message Returned string constant to alert the user with, or NULL if all is well. + * \param[out] removed_range If not NULL, write the range parsing result to this location. + * \param[in] nri_ranges List of NRI ranges to remove from. + * \param[in] argc Argument count. + * \param[in] argv Argument list. + * \returns 0 on success, -1 on error, 1 for a warning. + */ +int osmo_nri_ranges_vty_del(const char **message, struct osmo_nri_range *removed_range, + struct osmo_nri_ranges *nri_ranges, int argc, const char **argv) +{ + struct osmo_nri_range del_range; + if (osmo_nri_parse_range(&del_range, argv[0], argc > 1 ? argv[1] : NULL)) { + *message = "Error: cannot parse NRI range"; + return -1; + } + + if (removed_range) + *removed_range = del_range; + + if (osmo_nri_ranges_del(nri_ranges, &del_range)) { + *message = "Error: failed to remove NRI range"; + return -1; + } + + *message = NULL; + return 0; +} diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 2837aa5..ac9aeb2 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -678,5 +678,22 @@ osmo_i460_subchan_del; osmo_i460_ts_init; +osmo_nri_v_validate; +osmo_nri_v_matches_ranges; +osmo_nri_v_limit_by_ranges; +osmo_tmsi_nri_v_get; +osmo_tmsi_nri_v_set; +osmo_tmsi_nri_v_limit_by_ranges; +osmo_nri_range_validate; +osmo_nri_range_overlaps_ranges; +osmo_nri_ranges_alloc; +osmo_nri_ranges_free; +osmo_nri_ranges_add; +osmo_nri_ranges_del; +osmo_nri_ranges_vty_add; +osmo_nri_ranges_vty_del; +osmo_nri_ranges_to_str_buf; +osmo_nri_ranges_to_str_c; + local: *; }; diff --git a/tests/Makefile.am b/tests/Makefile.am index 5e810e6..2a364d5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -23,6 +23,7 @@ coding/coding_test conv/conv_gsm0503_test \ abis/abis_test endian/endian_test sercomm/sercomm_test \ prbs/prbs_test gsm23003/gsm23003_test \ + gsm23236/gsm23236_test \ codec/codec_ecu_fr_test timer/clk_override_test \ oap/oap_client_test gsm29205/gsm29205_test \ logging/logging_vty_test \ @@ -246,6 +247,9 @@ gsm23003_gsm23003_test_SOURCES = gsm23003/gsm23003_test.c gsm23003_gsm23003_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la +gsm23236_gsm23236_test_SOURCES = gsm23236/gsm23236_test.c +gsm23236_gsm23236_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la + tdef_tdef_test_SOURCES = tdef/tdef_test.c tdef_tdef_test_LDADD = $(LDADD) @@ -336,6 +340,7 @@ conv/conv_gsm0503_test.ok endian/endian_test.ok \ sercomm/sercomm_test.ok prbs/prbs_test.ok \ gsm29205/gsm29205_test.ok gsm23003/gsm23003_test.ok \ + gsm23236/gsm23236_test.ok \ timer/clk_override_test.ok \ oap/oap_client_test.ok oap/oap_client_test.err \ vty/vty_transcript_test.vty \ diff --git a/tests/gsm23236/gsm23236_test.c b/tests/gsm23236/gsm23236_test.c new file mode 100644 index 0000000..14c5ce3 --- /dev/null +++ b/tests/gsm23236/gsm23236_test.c @@ -0,0 +1,620 @@ +/* + * (C) 2020 by sysmocom s.f.m.c. GmbH + * Author: Neels Hofmeyr + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include +#include + +#include +#include + +void *ctx; +bool ok = true; + +void bitdump(uint8_t count, uint32_t val) +{ + uint32_t bit; + if (count < 1) + return; + for (bit = ((uint32_t)1) << (count - 1); bit; bit >>= 1) + printf("%c", (val & bit)? '1' : '0'); +} + +struct nri_v_get_set_test { + uint32_t tmsi; + uint8_t nri_bitlen; + int16_t expect_get_nri; + int expect_get_rc; + int16_t set_nri_v; + uint32_t expect_tmsi; + int expect_set_rc; +}; + +struct nri_v_get_set_test nri_v_get_set_tests[] = { + { + .tmsi = 0, + .nri_bitlen = 10, + .expect_get_nri = 0, + .set_nri_v = 0, + .expect_tmsi = 0, + }, + { + .tmsi = 0, + .nri_bitlen = 10, + .expect_get_nri = 0, + .set_nri_v = 0x7fff, + .expect_tmsi = 0x00ffc000 + }, + { + .tmsi = 0xffffffff, + .nri_bitlen = 10, + .expect_get_nri = 0x3ff, + .set_nri_v = 0, + .expect_tmsi = 0xff003fff + }, + { + .tmsi = 0xffffffff, + .nri_bitlen = 10, + .expect_get_nri = 0x3ff, + .set_nri_v = 0x7fff, + .expect_tmsi = 0xffffffff + }, + { + .tmsi = 0, + .nri_bitlen = 5, + .expect_get_nri = 0, + .set_nri_v = 0, + .expect_tmsi = 0, + }, + { + .tmsi = 0, + .nri_bitlen = 5, + .expect_get_nri = 0, + .set_nri_v = 0x7fff, + .expect_tmsi = 0x00f80000 + }, + { + .tmsi = 0xffffffff, + .nri_bitlen = 5, + .expect_get_nri = 0x1f, + .set_nri_v = 0, + .expect_tmsi = 0xff07ffff + }, + { + .tmsi = 0xffffffff, + .nri_bitlen = 5, + .expect_get_nri = 0x1f, + .set_nri_v = 0x7fff, + .expect_tmsi = 0xffffffff + }, + { + .tmsi = 0x01234567, + .nri_bitlen = 8, + .expect_get_nri = 0x23, + .set_nri_v = 0x42, + .expect_tmsi = 0x01424567 + }, + { + .tmsi = 0x01234567, + .nri_bitlen = 15, + .expect_get_nri = 0x2345 >> 1, + .set_nri_v = 0x7fff, + .expect_tmsi = 0x01ffff67 + }, + { + .tmsi = 0x01234567, + .nri_bitlen = 16, + .expect_get_rc = -1, + .expect_get_nri = -1, + .set_nri_v = 0x7fff, + .expect_set_rc = -1, + .expect_tmsi = 0x01234567, + }, + { + .tmsi = 0x01234567, + .nri_bitlen = 0, + .expect_get_rc = -1, + .expect_get_nri = -1, + .set_nri_v = 0x7fff, + .expect_set_rc = -1, + .expect_tmsi = 0x01234567, + }, +}; + +void test_nri_v_get_set() +{ + struct nri_v_get_set_test *t; + + for (t = nri_v_get_set_tests; t < &nri_v_get_set_tests[ARRAY_SIZE(nri_v_get_set_tests)]; t++) { + int16_t nri_v = 0; + uint32_t tmsi2; + int rc; + + rc = osmo_tmsi_nri_v_get(&nri_v, t->tmsi, t->nri_bitlen); + printf("\nosmo_tmsi_nri_v_get(0x%08x, %u) -> nri_v=0x%x rc=%d\n", t->tmsi, t->nri_bitlen, nri_v, rc); + if (!rc) { + printf("........|NRI->..................\n"); + bitdump(32, t->tmsi); + printf(" tmsi nri_bitlen=%u\n", t->nri_bitlen); + printf(" "); + bitdump(t->nri_bitlen, nri_v); + printf(" = 0x%x", nri_v); + } + if (nri_v == t->expect_get_nri && rc == t->expect_get_rc) { + printf(" ok\n"); + } else { + printf(" ERROR: expected nri_v=0x%x rc=%d\n", t->expect_get_nri, t->expect_get_rc); + ok = false; + } + + tmsi2 = t->tmsi; + rc = osmo_tmsi_nri_v_set(&tmsi2, t->set_nri_v, t->nri_bitlen); + printf("osmo_tmsi_nri_v_set(0x%08x, 0x%x, %u) -> tmsi=0x%08x rc=%d\n", t->tmsi, t->set_nri_v, t->nri_bitlen, + tmsi2, rc); + if (!rc) { + printf(" "); + bitdump(t->nri_bitlen, t->set_nri_v); + printf("\n"); + bitdump(32, tmsi2); + } + if (tmsi2 == t->expect_tmsi && rc == t->expect_set_rc) { + printf(" ok\n"); + } else { + printf(" ERROR: expected tmsi=0x%08x rc=%d\n", t->expect_tmsi, t->expect_set_rc); + ok = false; + } + } +} + +struct nri_validate_tc { + int16_t nri; + uint8_t nri_bitlen; + int expect_rc; +}; + +struct nri_validate_tc nri_validate_tests[] = { + { .nri = INT16_MIN, .nri_bitlen = 10, .expect_rc = -1 }, + { .nri = -23, .nri_bitlen = 10, .expect_rc = -1 }, + { .nri = -1, .nri_bitlen = 10, .expect_rc = -1 }, + { .nri = 0, .nri_bitlen = 10, .expect_rc = 0 }, + { .nri = (1 << 10) - 1, .nri_bitlen = 10, .expect_rc = 0 }, + { .nri = (1 << 10), .nri_bitlen = 10, .expect_rc = 1 }, + { .nri = INT16_MAX, .nri_bitlen = 10, .expect_rc = 1 }, + + { .nri = INT16_MIN, .nri_bitlen = 5, .expect_rc = -1 }, + { .nri = -23, .nri_bitlen = 5, .expect_rc = -1 }, + { .nri = -1, .nri_bitlen = 5, .expect_rc = -1 }, + { .nri = 0, .nri_bitlen = 5, .expect_rc = 0 }, + { .nri = (1 << 5) - 1, .nri_bitlen = 5, .expect_rc = 0 }, + { .nri = (1 << 5), .nri_bitlen = 5, .expect_rc = 1 }, + { .nri = INT16_MAX, .nri_bitlen = 5, .expect_rc = 1 }, + + { .nri = INT16_MIN, .nri_bitlen = 1, .expect_rc = -1 }, + { .nri = -23, .nri_bitlen = 1, .expect_rc = -1 }, + { .nri = -1, .nri_bitlen = 1, .expect_rc = -1 }, + { .nri = 0, .nri_bitlen = 1, .expect_rc = 0 }, + { .nri = 1, .nri_bitlen = 1, .expect_rc = 0 }, + { .nri = 2, .nri_bitlen = 1, .expect_rc = 1 }, + { .nri = INT16_MAX, .nri_bitlen = 1, .expect_rc = 1 }, + + { .nri = INT16_MIN, .nri_bitlen = 0, .expect_rc = -1 }, + { .nri = -23, .nri_bitlen = 0, .expect_rc = -1 }, + { .nri = -1, .nri_bitlen = 0, .expect_rc = -1 }, + { .nri = 0, .nri_bitlen = 0, .expect_rc = 1 }, + { .nri = 1, .nri_bitlen = 0, .expect_rc = 1 }, + { .nri = INT16_MAX, .nri_bitlen = 0, .expect_rc = 1 }, +}; + +void test_nri_validate() +{ + struct nri_validate_tc *t; + printf("\n%s()\n", __func__); + for (t = nri_validate_tests; (t - nri_validate_tests) < ARRAY_SIZE(nri_validate_tests); t++) { + int rc = osmo_nri_v_validate(t->nri, t->nri_bitlen); + printf("osmo_nri_v_validate(%d, %u) = %d ", t->nri, t->nri_bitlen, rc); + if (rc == t->expect_rc) { + printf("ok\n"); + } else { + printf("ERROR, expected rc = %d\n", t->expect_rc); + ok = false; + } + } +} + +struct nri_range_validate_tc { + struct osmo_nri_range range; + uint8_t nri_bitlen; + int expect_rc; +}; + +struct nri_range_validate_tc nri_range_validate_tests[] = { + { .range = { .first = INT16_MIN, .last = INT16_MIN }, .nri_bitlen = 10, .expect_rc = -1 }, + { .range = { .first = -23, .last = -23 }, .nri_bitlen = 10, .expect_rc = -1 }, + { .range = { .first = -1, .last = -1 }, .nri_bitlen = 10, .expect_rc = -1 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 10, .expect_rc = 0 }, + { .range = { .first = (1 << 10) - 1, .last = (1 << 10) - 1 }, .nri_bitlen = 10, .expect_rc = 0 }, + { .range = { .first = (1 << 10), .last = (1 << 10) }, .nri_bitlen = 10, .expect_rc = 1 }, + { .range = { .first = INT16_MAX, .last = INT16_MAX }, .nri_bitlen = 10, .expect_rc = 1 }, + + { .range = { .first = INT16_MIN, .last = INT16_MIN }, .nri_bitlen = 5, .expect_rc = -1 }, + { .range = { .first = -23, .last = -23 }, .nri_bitlen = 5, .expect_rc = -1 }, + { .range = { .first = -1, .last = -1 }, .nri_bitlen = 5, .expect_rc = -1 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 5, .expect_rc = 0 }, + { .range = { .first = (1 << 5) - 1, .last = (1 << 5) - 1 }, .nri_bitlen = 5, .expect_rc = 0 }, + { .range = { .first = (1 << 5), .last = (1 << 5) }, .nri_bitlen = 5, .expect_rc = 1 }, + { .range = { .first = INT16_MAX, .last = INT16_MAX }, .nri_bitlen = 5, .expect_rc = 1 }, + + { .range = { .first = INT16_MIN, .last = INT16_MIN }, .nri_bitlen = 1, .expect_rc = -1 }, + { .range = { .first = -23, .last = -23 }, .nri_bitlen = 1, .expect_rc = -1 }, + { .range = { .first = -1, .last = -1 }, .nri_bitlen = 1, .expect_rc = -1 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 1, .expect_rc = 0 }, + { .range = { .first = 1, .last = 1 }, .nri_bitlen = 1, .expect_rc = 0 }, + { .range = { .first = 2, .last = 2 }, .nri_bitlen = 1, .expect_rc = 1 }, + { .range = { .first = INT16_MAX, .last = INT16_MAX }, .nri_bitlen = 1, .expect_rc = 1 }, + + { .range = { .first = INT16_MIN, .last = INT16_MIN }, .nri_bitlen = 0, .expect_rc = -1 }, + { .range = { .first = -23, .last = -23 }, .nri_bitlen = 0, .expect_rc = -1 }, + { .range = { .first = -1, .last = -1 }, .nri_bitlen = 0, .expect_rc = -1 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 0, .expect_rc = 1 }, + { .range = { .first = 1, .last = 1 }, .nri_bitlen = 0, .expect_rc = 1 }, + { .range = { .first = INT16_MAX, .last = INT16_MAX }, .nri_bitlen = 0, .expect_rc = 1 }, + + + { .range = { .first = 0, .last = INT16_MIN }, .nri_bitlen = 10, .expect_rc = -2 }, + { .range = { .first = 0, .last = -23 }, .nri_bitlen = 10, .expect_rc = -2 }, + { .range = { .first = 0, .last = -1 }, .nri_bitlen = 10, .expect_rc = -2 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 10, .expect_rc = 0 }, + { .range = { .first = 0, .last = (1 << 10) - 1 }, .nri_bitlen = 10, .expect_rc = 0 }, + { .range = { .first = 0, .last = (1 << 10) }, .nri_bitlen = 10, .expect_rc = 2 }, + { .range = { .first = 0, .last = INT16_MAX }, .nri_bitlen = 10, .expect_rc = 2 }, + + { .range = { .first = 0, .last = INT16_MIN }, .nri_bitlen = 5, .expect_rc = -2 }, + { .range = { .first = 0, .last = -23 }, .nri_bitlen = 5, .expect_rc = -2 }, + { .range = { .first = 0, .last = -1 }, .nri_bitlen = 5, .expect_rc = -2 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 5, .expect_rc = 0 }, + { .range = { .first = 0, .last = (1 << 5) - 1 }, .nri_bitlen = 5, .expect_rc = 0 }, + { .range = { .first = 0, .last = (1 << 5) }, .nri_bitlen = 5, .expect_rc = 2 }, + { .range = { .first = 0, .last = INT16_MAX }, .nri_bitlen = 5, .expect_rc = 2 }, + + { .range = { .first = 0, .last = INT16_MIN }, .nri_bitlen = 1, .expect_rc = -2 }, + { .range = { .first = 0, .last = -23 }, .nri_bitlen = 1, .expect_rc = -2 }, + { .range = { .first = 0, .last = -1 }, .nri_bitlen = 1, .expect_rc = -2 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 1, .expect_rc = 0 }, + { .range = { .first = 0, .last = 1 }, .nri_bitlen = 1, .expect_rc = 0 }, + { .range = { .first = 0, .last = 2 }, .nri_bitlen = 1, .expect_rc = 2 }, + { .range = { .first = 0, .last = INT16_MAX }, .nri_bitlen = 1, .expect_rc = 2 }, + + { .range = { .first = 0, .last = INT16_MIN }, .nri_bitlen = 0, .expect_rc = 1 }, + { .range = { .first = 0, .last = -23 }, .nri_bitlen = 0, .expect_rc = 1 }, + { .range = { .first = 0, .last = -1 }, .nri_bitlen = 0, .expect_rc = 1 }, + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 0, .expect_rc = 1 }, + { .range = { .first = 0, .last = 1 }, .nri_bitlen = 0, .expect_rc = 1 }, + { .range = { .first = 0, .last = INT16_MAX }, .nri_bitlen = 0, .expect_rc = 1 }, + + + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 10, .expect_rc = 0 }, + { .range = { .first = 1, .last = 0 }, .nri_bitlen = 10, .expect_rc = -3 }, + { .range = { .first = (1 << 10) - 1, .last = (1 << 10) - 1 }, .nri_bitlen = 10, .expect_rc = 0 }, + { .range = { .first = (1 << 10) - 1, .last = (1 << 10) - 2 }, .nri_bitlen = 10, .expect_rc = -3 }, + { .range = { .first = (1 << 10) - 1, .last = 0 }, .nri_bitlen = 10, .expect_rc = -3 }, + + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 5, .expect_rc = 0 }, + { .range = { .first = 1, .last = 0 }, .nri_bitlen = 5, .expect_rc = -3 }, + { .range = { .first = (1 << 5) - 1, .last = (1 << 5) - 1 }, .nri_bitlen = 5, .expect_rc = 0 }, + { .range = { .first = (1 << 5) - 1, .last = (1 << 5) - 2 }, .nri_bitlen = 5, .expect_rc = -3 }, + { .range = { .first = (1 << 5) - 1, .last = 0 }, .nri_bitlen = 5, .expect_rc = -3 }, + + { .range = { .first = 0, .last = 0 }, .nri_bitlen = 1, .expect_rc = 0 }, + { .range = { .first = 1, .last = 1 }, .nri_bitlen = 1, .expect_rc = 0 }, + { .range = { .first = 1, .last = 0 }, .nri_bitlen = 1, .expect_rc = -3 }, + +}; + +void test_nri_range_validate() +{ + struct nri_range_validate_tc *t; + printf("\n%s()\n", __func__); + for (t = nri_range_validate_tests; (t - nri_range_validate_tests) < ARRAY_SIZE(nri_range_validate_tests); t++) { + int rc = osmo_nri_range_validate(&t->range, t->nri_bitlen); + printf("osmo_nri_range_validate({%d,%d}, %u) = %d ", t->range.first, t->range.last, t->nri_bitlen, rc); + if (rc == t->expect_rc) { + printf("ok\n"); + } else { + printf("ERROR, expected rc = %d\n", t->expect_rc); + ok = false; + } + } +} + +void dump_list(const struct osmo_nri_ranges *nri_ranges) +{ + struct osmo_nri_range *r; + printf("nri_ranges = {\n"); + llist_for_each_entry(r, &nri_ranges->entries, entry) { + printf(" { %d, %d },\n", r->first, r->last); + if (osmo_nri_range_validate(r, 255)) { + ok = false; + printf(" ^^^^^ ERROR: invalid range\n"); + } + } + printf("};\n"); +} + +void test_nri_list() +{ + struct osmo_nri_ranges *nri_ranges = osmo_nri_ranges_alloc(ctx); + printf("\n%s()\n", __func__); + +#define ADD(FIRST, LAST) do { \ + struct osmo_nri_range r = { .first = FIRST, .last = LAST }; \ + int rc; \ + rc = osmo_nri_ranges_add(nri_ranges, &r); \ + printf("osmo_nri_ranges_add(%d, %d) -> %d\n", r.first, r.last, rc); \ + dump_list(nri_ranges); \ + } while(0) + +#define DEL(FIRST, LAST) do { \ + struct osmo_nri_range r = { .first = FIRST, .last = LAST }; \ + int rc; \ + rc = osmo_nri_ranges_del(nri_ranges, &r); \ + printf("osmo_nri_ranges_del(%d, %d) -> %d\n", r.first, r.last, rc); \ + dump_list(nri_ranges); \ + } while(0) + +#define MATCHES(NRI, EXPECT_MATCH) do { \ + bool matches = osmo_nri_v_matches_ranges(NRI, nri_ranges); \ + printf("osmo_nri_v_matches_ranges(%d) -> %s\n", NRI, matches ? "true" : "false"); \ + if (matches != EXPECT_MATCH) { \ + ok = false; \ + printf(" ^ ERROR: expected " #EXPECT_MATCH "\n"); \ + } \ + } while(0) + +#define OVERLAPS(FIRST, LAST, EXPECT_OVERLAP) do { \ + struct osmo_nri_range r = { .first = FIRST, .last = LAST }; \ + bool overlaps = osmo_nri_range_overlaps_ranges(&r, nri_ranges); \ + printf("osmo_nri_range_overlaps_ranges(%d, %d) -> %s\n", r.first, r.last, overlaps ? "true" : "false"); \ + if (overlaps != EXPECT_OVERLAP) { \ + ok = false; \ + printf(" ^ ERROR: expected " #EXPECT_OVERLAP "\n"); \ + } \ + } while(0) + + dump_list(nri_ranges); + MATCHES(INT16_MIN, false); + MATCHES(-1, false); + MATCHES(0, false); + MATCHES(INT16_MAX, false); + MATCHES(100, false); + OVERLAPS(INT16_MIN, -1, false); + OVERLAPS(-100, 100, false); + OVERLAPS(10, 20, false); + + ADD(100, 200); + MATCHES(INT16_MIN, false); + MATCHES(-1, false); + MATCHES(0, false); + MATCHES(INT16_MAX, false); + MATCHES(99, false); + MATCHES(100, true); + MATCHES(101, true); + MATCHES(199, true); + MATCHES(200, true); + MATCHES(201, false); + OVERLAPS(INT16_MIN, -1, false); + OVERLAPS(-100, 100, true); + OVERLAPS(10, 20, false); + OVERLAPS(10, 99, false); + OVERLAPS(10, 100, true); + OVERLAPS(10, 150, true); + OVERLAPS(99, 99, false); + OVERLAPS(100, 100, true); + OVERLAPS(150, 300, true); + OVERLAPS(200, 300, true); + OVERLAPS(201, 300, false); + + printf("\ndel from start:\n"); + DEL(0, 110); + DEL(111, 111); + DEL(112, 199); + MATCHES(INT16_MIN, false); + MATCHES(-1, false); + MATCHES(0, false); + MATCHES(INT16_MAX, false); + MATCHES(199, false); + MATCHES(200, true); + MATCHES(201, false); + OVERLAPS(INT16_MIN, -1, false); + OVERLAPS(-1000, 1000, true); + OVERLAPS(0, 199, false); + OVERLAPS(0, 200, true); + OVERLAPS(0, 201, true); + OVERLAPS(0, 1000, true); + OVERLAPS(199, 199, false); + OVERLAPS(200, 200, true); + OVERLAPS(201, 201, false); + + printf("\ndel from end:\n"); + ADD(100, 200); + DEL(190, INT16_MAX); + DEL(189, 189); + DEL(101, 188); + MATCHES(INT16_MIN, false); + MATCHES(-1, false); + MATCHES(0, false); + MATCHES(INT16_MAX, false); + MATCHES(99, false); + MATCHES(100, true); + MATCHES(101, false); + + printf("\ndel from middle:\n"); + ADD(100, 200); + DEL(150, 160); + DEL(110, 120); + DEL(130, 130); + DEL(180, 190); + MATCHES(INT16_MIN, false); + MATCHES(-1, false); + MATCHES(0, false); + MATCHES(INT16_MAX, false); + MATCHES(99, false); + MATCHES(100, true); + MATCHES(109, true); + MATCHES(110, false); + MATCHES(120, false); + MATCHES(121, true); + MATCHES(129, true); + MATCHES(130, false); + MATCHES(131, true); + MATCHES(148, true); + MATCHES(149, true); + MATCHES(150, false); + MATCHES(160, false); + MATCHES(161, true); + MATCHES(170, true); + MATCHES(179, true); + MATCHES(180, false); + MATCHES(185, false); + MATCHES(190, false); + MATCHES(191, true); + MATCHES(195, true); + MATCHES(200, true); + MATCHES(201, false); + MATCHES(1000, false); + OVERLAPS(110, 120, false); + OVERLAPS(110, 130, true); + OVERLAPS(100, 200, true); + + printf("\ndel across whole chunks:\n"); + DEL(115, 185); + DEL(105, 195); + DEL(0, 1000); + + printf("\nadd to join chunks:\n"); + ADD(0, 100); + DEL(11, 19); + DEL(23, 23); + DEL(30, 41); + ADD(23, 23); + ADD(11, 41); + MATCHES(0, true); + MATCHES(10, true); + MATCHES(11, true); + MATCHES(24, true); + MATCHES(41, true); + MATCHES(42, true); + MATCHES(100, true); + MATCHES(101, false); + + printf("\nborder cases:\n"); + ADD(0, 0); + ADD(INT16_MAX, INT16_MAX); + ADD(1, INT16_MAX - 1); + MATCHES(INT16_MIN, false); + MATCHES(-1, false); + MATCHES(0, true); + MATCHES(INT16_MAX, true); + DEL(0, 0); + DEL(INT16_MAX, INT16_MAX); + DEL(1, INT16_MAX - 1); + + printf("\nrange errors:\n"); + ADD(-1, -1); + ADD(-20, -10); + ADD(100, 1); + ADD(0, INT16_MAX); + DEL(-1, -1); + DEL(-20, -10); + DEL(100, 1); +} + +void test_nri_limit_by_ranges() +{ + const uint8_t nri_bitlen = 8; + const int16_t expect_nri_vals[] = { 10, 20, 21, 30, 31, 32 }; + int i; + struct osmo_nri_ranges *nri_ranges = osmo_nri_ranges_alloc(ctx); + printf("\n%s()\n", __func__); + + ADD(10, 10); + ADD(20, 21); + ADD(30, 32); + + for (i = 0; i < 19; i++) { + int rc; + int16_t nri_v; + int16_t expect_nri_v = expect_nri_vals[i % ARRAY_SIZE(expect_nri_vals)]; + + nri_v = i; + rc = osmo_nri_v_limit_by_ranges(&nri_v, nri_ranges, nri_bitlen); + printf("osmo_nri_v_limit_by_ranges(%d) -> nri_v=%d rc=%d", i, nri_v, rc); + if (!rc && nri_v == expect_nri_v) { + printf(" ok\n"); + } else { + printf(" ERROR: expected nri_v=%d rc=0\n", expect_nri_v); + ok = false; + } + } + for (i = 0; i < 19; i++) { + int rc; + int16_t nri_v; + uint32_t tmsi, tmsi2; + int16_t expect_nri_v = expect_nri_vals[i % ARRAY_SIZE(expect_nri_vals)]; + + tmsi = 0; + osmo_tmsi_nri_v_set(&tmsi, i, nri_bitlen); + tmsi2 = tmsi; + rc = osmo_tmsi_nri_v_limit_by_ranges(&tmsi2, nri_ranges, nri_bitlen); + osmo_tmsi_nri_v_get(&nri_v, tmsi2, nri_bitlen); + printf("osmo_tmsi_nri_v_limit_by_ranges(0x%08x, %u) -> tmsi=0x%08x nri_v=%d rc=%d", + tmsi, nri_bitlen, tmsi2, nri_v, rc); + if (!rc && nri_v == expect_nri_v) { + printf(" ok\n"); + } else { + printf(" ERROR: expected nri_v=%d rc=0\n", expect_nri_v); + ok = false; + } + } +} + +int main() +{ + ctx = talloc_named_const(NULL, 0, "nri_test"); + + test_nri_v_get_set(); + test_nri_validate(); + test_nri_range_validate(); + test_nri_list(); + test_nri_limit_by_ranges(); + + talloc_free(ctx); + if (!ok) { + printf("\nFAIL\n"); + return -1; + } + + printf("\npass\n"); + return 0; +} + diff --git a/tests/gsm23236/gsm23236_test.ok b/tests/gsm23236/gsm23236_test.ok new file mode 100644 index 0000000..22630bf --- /dev/null +++ b/tests/gsm23236/gsm23236_test.ok @@ -0,0 +1,514 @@ + +osmo_tmsi_nri_v_get(0x00000000, 10) -> nri_v=0x0 rc=0 +........|NRI->.................. +00000000000000000000000000000000 tmsi nri_bitlen=10 + 0000000000 = 0x0 ok +osmo_tmsi_nri_v_set(0x00000000, 0x0, 10) -> tmsi=0x00000000 rc=0 + 0000000000 +00000000000000000000000000000000 ok + +osmo_tmsi_nri_v_get(0x00000000, 10) -> nri_v=0x0 rc=0 +........|NRI->.................. +00000000000000000000000000000000 tmsi nri_bitlen=10 + 0000000000 = 0x0 ok +osmo_tmsi_nri_v_set(0x00000000, 0x7fff, 10) -> tmsi=0x00ffc000 rc=0 + 1111111111 +00000000111111111100000000000000 ok + +osmo_tmsi_nri_v_get(0xffffffff, 10) -> nri_v=0x3ff rc=0 +........|NRI->.................. +11111111111111111111111111111111 tmsi nri_bitlen=10 + 1111111111 = 0x3ff ok +osmo_tmsi_nri_v_set(0xffffffff, 0x0, 10) -> tmsi=0xff003fff rc=0 + 0000000000 +11111111000000000011111111111111 ok + +osmo_tmsi_nri_v_get(0xffffffff, 10) -> nri_v=0x3ff rc=0 +........|NRI->.................. +11111111111111111111111111111111 tmsi nri_bitlen=10 + 1111111111 = 0x3ff ok +osmo_tmsi_nri_v_set(0xffffffff, 0x7fff, 10) -> tmsi=0xffffffff rc=0 + 1111111111 +11111111111111111111111111111111 ok + +osmo_tmsi_nri_v_get(0x00000000, 5) -> nri_v=0x0 rc=0 +........|NRI->.................. +00000000000000000000000000000000 tmsi nri_bitlen=5 + 00000 = 0x0 ok +osmo_tmsi_nri_v_set(0x00000000, 0x0, 5) -> tmsi=0x00000000 rc=0 + 00000 +00000000000000000000000000000000 ok + +osmo_tmsi_nri_v_get(0x00000000, 5) -> nri_v=0x0 rc=0 +........|NRI->.................. +00000000000000000000000000000000 tmsi nri_bitlen=5 + 00000 = 0x0 ok +osmo_tmsi_nri_v_set(0x00000000, 0x7fff, 5) -> tmsi=0x00f80000 rc=0 + 11111 +00000000111110000000000000000000 ok + +osmo_tmsi_nri_v_get(0xffffffff, 5) -> nri_v=0x1f rc=0 +........|NRI->.................. +11111111111111111111111111111111 tmsi nri_bitlen=5 + 11111 = 0x1f ok +osmo_tmsi_nri_v_set(0xffffffff, 0x0, 5) -> tmsi=0xff07ffff rc=0 + 00000 +11111111000001111111111111111111 ok + +osmo_tmsi_nri_v_get(0xffffffff, 5) -> nri_v=0x1f rc=0 +........|NRI->.................. +11111111111111111111111111111111 tmsi nri_bitlen=5 + 11111 = 0x1f ok +osmo_tmsi_nri_v_set(0xffffffff, 0x7fff, 5) -> tmsi=0xffffffff rc=0 + 11111 +11111111111111111111111111111111 ok + +osmo_tmsi_nri_v_get(0x01234567, 8) -> nri_v=0x23 rc=0 +........|NRI->.................. +00000001001000110100010101100111 tmsi nri_bitlen=8 + 00100011 = 0x23 ok +osmo_tmsi_nri_v_set(0x01234567, 0x42, 8) -> tmsi=0x01424567 rc=0 + 01000010 +00000001010000100100010101100111 ok + +osmo_tmsi_nri_v_get(0x01234567, 15) -> nri_v=0x11a2 rc=0 +........|NRI->.................. +00000001001000110100010101100111 tmsi nri_bitlen=15 + 001000110100010 = 0x11a2 ok +osmo_tmsi_nri_v_set(0x01234567, 0x7fff, 15) -> tmsi=0x01ffff67 rc=0 + 111111111111111 +00000001111111111111111101100111 ok + +osmo_tmsi_nri_v_get(0x01234567, 16) -> nri_v=0xffffffff rc=-1 + ok +osmo_tmsi_nri_v_set(0x01234567, 0x7fff, 16) -> tmsi=0x01234567 rc=-1 + ok + +osmo_tmsi_nri_v_get(0x01234567, 0) -> nri_v=0xffffffff rc=-1 + ok +osmo_tmsi_nri_v_set(0x01234567, 0x7fff, 0) -> tmsi=0x01234567 rc=-1 + ok + +test_nri_validate() +osmo_nri_v_validate(-32768, 10) = -1 ok +osmo_nri_v_validate(-23, 10) = -1 ok +osmo_nri_v_validate(-1, 10) = -1 ok +osmo_nri_v_validate(0, 10) = 0 ok +osmo_nri_v_validate(1023, 10) = 0 ok +osmo_nri_v_validate(1024, 10) = 1 ok +osmo_nri_v_validate(32767, 10) = 1 ok +osmo_nri_v_validate(-32768, 5) = -1 ok +osmo_nri_v_validate(-23, 5) = -1 ok +osmo_nri_v_validate(-1, 5) = -1 ok +osmo_nri_v_validate(0, 5) = 0 ok +osmo_nri_v_validate(31, 5) = 0 ok +osmo_nri_v_validate(32, 5) = 1 ok +osmo_nri_v_validate(32767, 5) = 1 ok +osmo_nri_v_validate(-32768, 1) = -1 ok +osmo_nri_v_validate(-23, 1) = -1 ok +osmo_nri_v_validate(-1, 1) = -1 ok +osmo_nri_v_validate(0, 1) = 0 ok +osmo_nri_v_validate(1, 1) = 0 ok +osmo_nri_v_validate(2, 1) = 1 ok +osmo_nri_v_validate(32767, 1) = 1 ok +osmo_nri_v_validate(-32768, 0) = -1 ok +osmo_nri_v_validate(-23, 0) = -1 ok +osmo_nri_v_validate(-1, 0) = -1 ok +osmo_nri_v_validate(0, 0) = 1 ok +osmo_nri_v_validate(1, 0) = 1 ok +osmo_nri_v_validate(32767, 0) = 1 ok + +test_nri_range_validate() +osmo_nri_range_validate({-32768,-32768}, 10) = -1 ok +osmo_nri_range_validate({-23,-23}, 10) = -1 ok +osmo_nri_range_validate({-1,-1}, 10) = -1 ok +osmo_nri_range_validate({0,0}, 10) = 0 ok +osmo_nri_range_validate({1023,1023}, 10) = 0 ok +osmo_nri_range_validate({1024,1024}, 10) = 1 ok +osmo_nri_range_validate({32767,32767}, 10) = 1 ok +osmo_nri_range_validate({-32768,-32768}, 5) = -1 ok +osmo_nri_range_validate({-23,-23}, 5) = -1 ok +osmo_nri_range_validate({-1,-1}, 5) = -1 ok +osmo_nri_range_validate({0,0}, 5) = 0 ok +osmo_nri_range_validate({31,31}, 5) = 0 ok +osmo_nri_range_validate({32,32}, 5) = 1 ok +osmo_nri_range_validate({32767,32767}, 5) = 1 ok +osmo_nri_range_validate({-32768,-32768}, 1) = -1 ok +osmo_nri_range_validate({-23,-23}, 1) = -1 ok +osmo_nri_range_validate({-1,-1}, 1) = -1 ok +osmo_nri_range_validate({0,0}, 1) = 0 ok +osmo_nri_range_validate({1,1}, 1) = 0 ok +osmo_nri_range_validate({2,2}, 1) = 1 ok +osmo_nri_range_validate({32767,32767}, 1) = 1 ok +osmo_nri_range_validate({-32768,-32768}, 0) = -1 ok +osmo_nri_range_validate({-23,-23}, 0) = -1 ok +osmo_nri_range_validate({-1,-1}, 0) = -1 ok +osmo_nri_range_validate({0,0}, 0) = 1 ok +osmo_nri_range_validate({1,1}, 0) = 1 ok +osmo_nri_range_validate({32767,32767}, 0) = 1 ok +osmo_nri_range_validate({0,-32768}, 10) = -2 ok +osmo_nri_range_validate({0,-23}, 10) = -2 ok +osmo_nri_range_validate({0,-1}, 10) = -2 ok +osmo_nri_range_validate({0,0}, 10) = 0 ok +osmo_nri_range_validate({0,1023}, 10) = 0 ok +osmo_nri_range_validate({0,1024}, 10) = 2 ok +osmo_nri_range_validate({0,32767}, 10) = 2 ok +osmo_nri_range_validate({0,-32768}, 5) = -2 ok +osmo_nri_range_validate({0,-23}, 5) = -2 ok +osmo_nri_range_validate({0,-1}, 5) = -2 ok +osmo_nri_range_validate({0,0}, 5) = 0 ok +osmo_nri_range_validate({0,31}, 5) = 0 ok +osmo_nri_range_validate({0,32}, 5) = 2 ok +osmo_nri_range_validate({0,32767}, 5) = 2 ok +osmo_nri_range_validate({0,-32768}, 1) = -2 ok +osmo_nri_range_validate({0,-23}, 1) = -2 ok +osmo_nri_range_validate({0,-1}, 1) = -2 ok +osmo_nri_range_validate({0,0}, 1) = 0 ok +osmo_nri_range_validate({0,1}, 1) = 0 ok +osmo_nri_range_validate({0,2}, 1) = 2 ok +osmo_nri_range_validate({0,32767}, 1) = 2 ok +osmo_nri_range_validate({0,-32768}, 0) = 1 ok +osmo_nri_range_validate({0,-23}, 0) = 1 ok +osmo_nri_range_validate({0,-1}, 0) = 1 ok +osmo_nri_range_validate({0,0}, 0) = 1 ok +osmo_nri_range_validate({0,1}, 0) = 1 ok +osmo_nri_range_validate({0,32767}, 0) = 1 ok +osmo_nri_range_validate({0,0}, 10) = 0 ok +osmo_nri_range_validate({1,0}, 10) = -3 ok +osmo_nri_range_validate({1023,1023}, 10) = 0 ok +osmo_nri_range_validate({1023,1022}, 10) = -3 ok +osmo_nri_range_validate({1023,0}, 10) = -3 ok +osmo_nri_range_validate({0,0}, 5) = 0 ok +osmo_nri_range_validate({1,0}, 5) = -3 ok +osmo_nri_range_validate({31,31}, 5) = 0 ok +osmo_nri_range_validate({31,30}, 5) = -3 ok +osmo_nri_range_validate({31,0}, 5) = -3 ok +osmo_nri_range_validate({0,0}, 1) = 0 ok +osmo_nri_range_validate({1,1}, 1) = 0 ok +osmo_nri_range_validate({1,0}, 1) = -3 ok + +test_nri_list() +nri_ranges = { +}; +osmo_nri_v_matches_ranges(-32768) -> false +osmo_nri_v_matches_ranges(-1) -> false +osmo_nri_v_matches_ranges(0) -> false +osmo_nri_v_matches_ranges(32767) -> false +osmo_nri_v_matches_ranges(100) -> false +osmo_nri_range_overlaps_ranges(-32768, -1) -> false +osmo_nri_range_overlaps_ranges(-100, 100) -> false +osmo_nri_range_overlaps_ranges(10, 20) -> false +osmo_nri_ranges_add(100, 200) -> 0 +nri_ranges = { + { 100, 200 }, +}; +osmo_nri_v_matches_ranges(-32768) -> false +osmo_nri_v_matches_ranges(-1) -> false +osmo_nri_v_matches_ranges(0) -> false +osmo_nri_v_matches_ranges(32767) -> false +osmo_nri_v_matches_ranges(99) -> false +osmo_nri_v_matches_ranges(100) -> true +osmo_nri_v_matches_ranges(101) -> true +osmo_nri_v_matches_ranges(199) -> true +osmo_nri_v_matches_ranges(200) -> true +osmo_nri_v_matches_ranges(201) -> false +osmo_nri_range_overlaps_ranges(-32768, -1) -> false +osmo_nri_range_overlaps_ranges(-100, 100) -> true +osmo_nri_range_overlaps_ranges(10, 20) -> false +osmo_nri_range_overlaps_ranges(10, 99) -> false +osmo_nri_range_overlaps_ranges(10, 100) -> true +osmo_nri_range_overlaps_ranges(10, 150) -> true +osmo_nri_range_overlaps_ranges(99, 99) -> false +osmo_nri_range_overlaps_ranges(100, 100) -> true +osmo_nri_range_overlaps_ranges(150, 300) -> true +osmo_nri_range_overlaps_ranges(200, 300) -> true +osmo_nri_range_overlaps_ranges(201, 300) -> false + +del from start: +osmo_nri_ranges_del(0, 110) -> 0 +nri_ranges = { + { 111, 200 }, +}; +osmo_nri_ranges_del(111, 111) -> 0 +nri_ranges = { + { 112, 200 }, +}; +osmo_nri_ranges_del(112, 199) -> 0 +nri_ranges = { + { 200, 200 }, +}; +osmo_nri_v_matches_ranges(-32768) -> false +osmo_nri_v_matches_ranges(-1) -> false +osmo_nri_v_matches_ranges(0) -> false +osmo_nri_v_matches_ranges(32767) -> false +osmo_nri_v_matches_ranges(199) -> false +osmo_nri_v_matches_ranges(200) -> true +osmo_nri_v_matches_ranges(201) -> false +osmo_nri_range_overlaps_ranges(-32768, -1) -> false +osmo_nri_range_overlaps_ranges(-1000, 1000) -> true +osmo_nri_range_overlaps_ranges(0, 199) -> false +osmo_nri_range_overlaps_ranges(0, 200) -> true +osmo_nri_range_overlaps_ranges(0, 201) -> true +osmo_nri_range_overlaps_ranges(0, 1000) -> true +osmo_nri_range_overlaps_ranges(199, 199) -> false +osmo_nri_range_overlaps_ranges(200, 200) -> true +osmo_nri_range_overlaps_ranges(201, 201) -> false + +del from end: +osmo_nri_ranges_add(100, 200) -> 0 +nri_ranges = { + { 100, 200 }, +}; +osmo_nri_ranges_del(190, 32767) -> 0 +nri_ranges = { + { 100, 189 }, +}; +osmo_nri_ranges_del(189, 189) -> 0 +nri_ranges = { + { 100, 188 }, +}; +osmo_nri_ranges_del(101, 188) -> 0 +nri_ranges = { + { 100, 100 }, +}; +osmo_nri_v_matches_ranges(-32768) -> false +osmo_nri_v_matches_ranges(-1) -> false +osmo_nri_v_matches_ranges(0) -> false +osmo_nri_v_matches_ranges(32767) -> false +osmo_nri_v_matches_ranges(99) -> false +osmo_nri_v_matches_ranges(100) -> true +osmo_nri_v_matches_ranges(101) -> false + +del from middle: +osmo_nri_ranges_add(100, 200) -> 0 +nri_ranges = { + { 100, 200 }, +}; +osmo_nri_ranges_del(150, 160) -> 0 +nri_ranges = { + { 100, 149 }, + { 161, 200 }, +}; +osmo_nri_ranges_del(110, 120) -> 0 +nri_ranges = { + { 100, 109 }, + { 121, 149 }, + { 161, 200 }, +}; +osmo_nri_ranges_del(130, 130) -> 0 +nri_ranges = { + { 100, 109 }, + { 121, 129 }, + { 131, 149 }, + { 161, 200 }, +}; +osmo_nri_ranges_del(180, 190) -> 0 +nri_ranges = { + { 100, 109 }, + { 121, 129 }, + { 131, 149 }, + { 161, 179 }, + { 191, 200 }, +}; +osmo_nri_v_matches_ranges(-32768) -> false +osmo_nri_v_matches_ranges(-1) -> false +osmo_nri_v_matches_ranges(0) -> false +osmo_nri_v_matches_ranges(32767) -> false +osmo_nri_v_matches_ranges(99) -> false +osmo_nri_v_matches_ranges(100) -> true +osmo_nri_v_matches_ranges(109) -> true +osmo_nri_v_matches_ranges(110) -> false +osmo_nri_v_matches_ranges(120) -> false +osmo_nri_v_matches_ranges(121) -> true +osmo_nri_v_matches_ranges(129) -> true +osmo_nri_v_matches_ranges(130) -> false +osmo_nri_v_matches_ranges(131) -> true +osmo_nri_v_matches_ranges(148) -> true +osmo_nri_v_matches_ranges(149) -> true +osmo_nri_v_matches_ranges(150) -> false +osmo_nri_v_matches_ranges(160) -> false +osmo_nri_v_matches_ranges(161) -> true +osmo_nri_v_matches_ranges(170) -> true +osmo_nri_v_matches_ranges(179) -> true +osmo_nri_v_matches_ranges(180) -> false +osmo_nri_v_matches_ranges(185) -> false +osmo_nri_v_matches_ranges(190) -> false +osmo_nri_v_matches_ranges(191) -> true +osmo_nri_v_matches_ranges(195) -> true +osmo_nri_v_matches_ranges(200) -> true +osmo_nri_v_matches_ranges(201) -> false +osmo_nri_v_matches_ranges(1000) -> false +osmo_nri_range_overlaps_ranges(110, 120) -> false +osmo_nri_range_overlaps_ranges(110, 130) -> true +osmo_nri_range_overlaps_ranges(100, 200) -> true + +del across whole chunks: +osmo_nri_ranges_del(115, 185) -> 0 +nri_ranges = { + { 100, 109 }, + { 191, 200 }, +}; +osmo_nri_ranges_del(105, 195) -> 0 +nri_ranges = { + { 100, 104 }, + { 196, 200 }, +}; +osmo_nri_ranges_del(0, 1000) -> 0 +nri_ranges = { +}; + +add to join chunks: +osmo_nri_ranges_add(0, 100) -> 0 +nri_ranges = { + { 0, 100 }, +}; +osmo_nri_ranges_del(11, 19) -> 0 +nri_ranges = { + { 0, 10 }, + { 20, 100 }, +}; +osmo_nri_ranges_del(23, 23) -> 0 +nri_ranges = { + { 0, 10 }, + { 20, 22 }, + { 24, 100 }, +}; +osmo_nri_ranges_del(30, 41) -> 0 +nri_ranges = { + { 0, 10 }, + { 20, 22 }, + { 24, 29 }, + { 42, 100 }, +}; +osmo_nri_ranges_add(23, 23) -> 0 +nri_ranges = { + { 0, 10 }, + { 20, 29 }, + { 42, 100 }, +}; +osmo_nri_ranges_add(11, 41) -> 0 +nri_ranges = { + { 0, 100 }, +}; +osmo_nri_v_matches_ranges(0) -> true +osmo_nri_v_matches_ranges(10) -> true +osmo_nri_v_matches_ranges(11) -> true +osmo_nri_v_matches_ranges(24) -> true +osmo_nri_v_matches_ranges(41) -> true +osmo_nri_v_matches_ranges(42) -> true +osmo_nri_v_matches_ranges(100) -> true +osmo_nri_v_matches_ranges(101) -> false + +border cases: +osmo_nri_ranges_add(0, 0) -> 0 +nri_ranges = { + { 0, 100 }, +}; +osmo_nri_ranges_add(32767, 32767) -> 0 +nri_ranges = { + { 0, 100 }, + { 32767, 32767 }, +}; +osmo_nri_ranges_add(1, 32766) -> 0 +nri_ranges = { + { 0, 32767 }, +}; +osmo_nri_v_matches_ranges(-32768) -> false +osmo_nri_v_matches_ranges(-1) -> false +osmo_nri_v_matches_ranges(0) -> true +osmo_nri_v_matches_ranges(32767) -> true +osmo_nri_ranges_del(0, 0) -> 0 +nri_ranges = { + { 1, 32767 }, +}; +osmo_nri_ranges_del(32767, 32767) -> 0 +nri_ranges = { + { 1, 32766 }, +}; +osmo_nri_ranges_del(1, 32766) -> 0 +nri_ranges = { +}; + +range errors: +osmo_nri_ranges_add(-1, -1) -> -1 +nri_ranges = { +}; +osmo_nri_ranges_add(-20, -10) -> -1 +nri_ranges = { +}; +osmo_nri_ranges_add(100, 1) -> -1 +nri_ranges = { +}; +osmo_nri_ranges_add(0, 32767) -> 0 +nri_ranges = { + { 0, 32767 }, +}; +osmo_nri_ranges_del(-1, -1) -> -1 +nri_ranges = { + { 0, 32767 }, +}; +osmo_nri_ranges_del(-20, -10) -> -1 +nri_ranges = { + { 0, 32767 }, +}; +osmo_nri_ranges_del(100, 1) -> -1 +nri_ranges = { + { 0, 32767 }, +}; + +test_nri_limit_by_ranges() +osmo_nri_ranges_add(10, 10) -> 0 +nri_ranges = { + { 10, 10 }, +}; +osmo_nri_ranges_add(20, 21) -> 0 +nri_ranges = { + { 10, 10 }, + { 20, 21 }, +}; +osmo_nri_ranges_add(30, 32) -> 0 +nri_ranges = { + { 10, 10 }, + { 20, 21 }, + { 30, 32 }, +}; +osmo_nri_v_limit_by_ranges(0) -> nri_v=10 rc=0 ok +osmo_nri_v_limit_by_ranges(1) -> nri_v=20 rc=0 ok +osmo_nri_v_limit_by_ranges(2) -> nri_v=21 rc=0 ok +osmo_nri_v_limit_by_ranges(3) -> nri_v=30 rc=0 ok +osmo_nri_v_limit_by_ranges(4) -> nri_v=31 rc=0 ok +osmo_nri_v_limit_by_ranges(5) -> nri_v=32 rc=0 ok +osmo_nri_v_limit_by_ranges(6) -> nri_v=10 rc=0 ok +osmo_nri_v_limit_by_ranges(7) -> nri_v=20 rc=0 ok +osmo_nri_v_limit_by_ranges(8) -> nri_v=21 rc=0 ok +osmo_nri_v_limit_by_ranges(9) -> nri_v=30 rc=0 ok +osmo_nri_v_limit_by_ranges(10) -> nri_v=31 rc=0 ok +osmo_nri_v_limit_by_ranges(11) -> nri_v=32 rc=0 ok +osmo_nri_v_limit_by_ranges(12) -> nri_v=10 rc=0 ok +osmo_nri_v_limit_by_ranges(13) -> nri_v=20 rc=0 ok +osmo_nri_v_limit_by_ranges(14) -> nri_v=21 rc=0 ok +osmo_nri_v_limit_by_ranges(15) -> nri_v=30 rc=0 ok +osmo_nri_v_limit_by_ranges(16) -> nri_v=31 rc=0 ok +osmo_nri_v_limit_by_ranges(17) -> nri_v=32 rc=0 ok +osmo_nri_v_limit_by_ranges(18) -> nri_v=10 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00000000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00010000, 8) -> tmsi=0x00140000 nri_v=20 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00020000, 8) -> tmsi=0x00150000 nri_v=21 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00030000, 8) -> tmsi=0x001e0000 nri_v=30 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00040000, 8) -> tmsi=0x001f0000 nri_v=31 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00050000, 8) -> tmsi=0x00200000 nri_v=32 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00060000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00070000, 8) -> tmsi=0x00140000 nri_v=20 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00080000, 8) -> tmsi=0x00150000 nri_v=21 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00090000, 8) -> tmsi=0x001e0000 nri_v=30 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x000a0000, 8) -> tmsi=0x001f0000 nri_v=31 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x000b0000, 8) -> tmsi=0x00200000 nri_v=32 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x000c0000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x000d0000, 8) -> tmsi=0x00140000 nri_v=20 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x000e0000, 8) -> tmsi=0x00150000 nri_v=21 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x000f0000, 8) -> tmsi=0x001e0000 nri_v=30 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00100000, 8) -> tmsi=0x001f0000 nri_v=31 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00110000, 8) -> tmsi=0x00200000 nri_v=32 rc=0 ok +osmo_tmsi_nri_v_limit_by_ranges(0x00120000, 8) -> tmsi=0x000a0000 nri_v=10 rc=0 ok + +pass diff --git a/tests/testsuite.at b/tests/testsuite.at index 4ff6671..a4c28f9 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -344,6 +344,12 @@ AT_CHECK([$abs_top_builddir/tests/gsm23003/gsm23003_test], [0], [expout], [ignore]) AT_CLEANUP +AT_SETUP([gsm23236]) +AT_KEYWORDS([gsm23236]) +cat $abs_srcdir/gsm23236/gsm23236_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/gsm23236/gsm23236_test], [0], [expout], [ignore]) +AT_CLEANUP + AT_SETUP([tdef]) AT_KEYWORDS([tdef]) cat $abs_srcdir/tdef/tdef_test.ok > expout -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icb57a2dd9323c7ea11b34003eccc7e68a0247bf5 Gerrit-Change-Number: 18506 Gerrit-PatchSet: 10 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder 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 Fri Jun 12 14:52:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:52:08 +0000 Subject: Change in libosmocore[master]: tlv.h: add msgb_tvl_put() to add a TvLV without the value part In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18634 ) Change subject: tlv.h: add msgb_tvl_put() to add a TvLV without the value part ...................................................................... tlv.h: add msgb_tvl_put() to add a TvLV without the value part So far, we have msgb_tl_put(), which allows putting the TL header of a TLV, without the value part. Add the same for a variable-size length TvLV: put a TvL header of a TvLV without the value part. In a subsequent patch, osmo_mobile_identity will be introduced, which will allow writing the encoded MI directly to the end of a msgb. For BSSGP_IE_IMSI, which is a TvLV, it would hence be simplest to write only the TvL first. Change-Id: I02cca5182fe42e40b63680a2fd470f03bcc11076 --- M include/osmocom/gsm/tlv.h 1 file changed, 45 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index bb0e8fc..254c21b 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -111,6 +111,14 @@ return buf + len; } +/*! put (append) a TL field (a TLV field but omitting the value part). */ +static inline uint8_t *tl_put(uint8_t *buf, uint8_t tag, uint8_t len) +{ + *buf++ = tag; + *buf++ = len; + return buf; +} + /*! put (append) a TLV16 field */ static inline uint8_t *tlv16_put(uint8_t *buf, uint8_t tag, uint8_t len, const uint16_t *val) @@ -132,6 +140,15 @@ return buf + len*2; } +/*! put (append) a TL16 field. */ +static inline uint8_t *tl16_put(uint8_t *buf, uint8_t tag, uint16_t len) +{ + *buf++ = tag; + *buf++ = len >> 8; + *buf++ = len & 0xff; + return buf; +} + /*! put (append) a TL16V field */ static inline uint8_t *t16lv_put(uint8_t *buf, uint16_t tag, uint8_t len, const uint8_t *val) @@ -158,6 +175,23 @@ return ret; } +/*! put (append) a TvL field (a TvLV with variable-size length, where the value part's length is already known, but will + * be put() later). + * \returns pointer to the value's start position. + */ +static inline uint8_t *tvl_put(uint8_t *buf, uint8_t tag, uint16_t len) +{ + uint8_t *ret; + + if (len <= TVLV_MAX_ONEBYTE) { + ret = tl_put(buf, tag, len); + buf[1] |= 0x80; + } else + ret = tl16_put(buf, tag, len); + + return ret; +} + /*! put (append) a variable-length tag or variable-length length * */ static inline uint8_t *vt_gan_put(uint8_t *buf, uint16_t tag) { @@ -215,6 +249,17 @@ return t16lv_put(buf, tag, len, val); } +/*! put (append) a TvL field to \ref msgb, i.e. a TvLV with variable-size length, where the value's length is already + * known, but will be put() later. The value section is not yet reserved, only tag and variable-length are put in the + * msgb. + * \returns pointer to the value's start position and end of the msgb. + */ +static inline uint8_t *msgb_tvl_put(struct msgb *msg, uint8_t tag, uint16_t len) +{ + uint8_t *buf = msgb_put(msg, TVLV_GROSS_LEN(len)); + return tvl_put(buf, tag, len); +} + /*! put (append) a TvLV field to \ref msgb */ static inline uint8_t *msgb_tvlv_put(struct msgb *msg, uint8_t tag, uint16_t len, const uint8_t *val) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I02cca5182fe42e40b63680a2fd470f03bcc11076 Gerrit-Change-Number: 18634 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 14:52:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:52:08 +0000 Subject: Change in libosmocore[master]: osmo_bcd2str: also validate start_nibble parameter In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18795 ) Change subject: osmo_bcd2str: also validate start_nibble parameter ...................................................................... osmo_bcd2str: also validate start_nibble parameter If start_nibble were passed negative, we'd end up accessing invalid memory. Safeguard against that. Change-Id: Ied3c1e02c3a01d868e08195cbd8dfa52d2c19ac3 --- M src/utils.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/utils.c b/src/utils.c index 038288c..18e105f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -154,7 +154,7 @@ int nibble_i; int rc = 0; - if (!dst || dst_size < 1) + if (!dst || dst_size < 1 || start_nibble < 0) return -ENOMEM; for (nibble_i = start_nibble; nibble_i < end_nibble && dst < dst_end; nibble_i++, dst++) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ied3c1e02c3a01d868e08195cbd8dfa52d2c19ac3 Gerrit-Change-Number: 18795 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 Fri Jun 12 14:52:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:52:48 +0000 Subject: Change in osmo-gsm-tester[master]: Remove all references to defaults: timeout: from suite.conf In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 ) Change subject: Remove all references to defaults: timeout: from suite.conf ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 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: I3c1b95c10e974da87ec9abd25578d8bcc0bc55a3 Gerrit-Change-Number: 18793 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 12 Jun 2020 14:52: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 Jun 12 14:53:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:53:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:53:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 14:54:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:54:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: undup pars.sccp_addr_msc and _bsc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 ) Change subject: bsc: undup pars.sccp_addr_msc and _bsc ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iae81ca58001455099218ce769a97dc6402832490 Gerrit-Change-Number: 18794 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 12 Jun 2020 14:54: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 Jun 12 14:54:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:54:21 +0000 Subject: Change in osmo-bts[master]: abis.c: Grab reference to e1inp_line_get if already created In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18732 ) Change subject: abis.c: Grab reference to e1inp_line_get if already created ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 Gerrit-Change-Number: 18732 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14: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 Fri Jun 12 14:54:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:54:31 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins/Dockerfile: Install source-highlight In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18771 ) Change subject: debian-stretch-jenkins/Dockerfile: Install source-highlight ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8427179f7cfc0c9150e5327803ca89adffedb8f1 Gerrit-Change-Number: 18771 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14: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 Fri Jun 12 14:54:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:54:35 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins/Dockerfile: Install source-highlight In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18771 ) Change subject: debian-stretch-jenkins/Dockerfile: Install source-highlight ...................................................................... debian-stretch-jenkins/Dockerfile: Install source-highlight It is needed by some user manuals using code snippet syntax higlhlighting, such as osmo-gsm-tester one: """ [source,python] ---- sleep(3) # sleep for 3 seconds ---- """ asciidoc: WARNING: test_api.adoc: line 19: filter non-zero exit code: source-highlight -f xhtml -s python: returned 127 asciidoc: WARNING: test_api.adoc: line 19: no output from filter: source-highlight -f xhtml -s python Change-Id: I8427179f7cfc0c9150e5327803ca89adffedb8f1 --- M debian-stretch-jenkins/Dockerfile 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Verified diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index e519f26..158f7d7 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -103,6 +103,7 @@ rsync \ sdcc \ sqlite3 \ + source-highlight \ stow \ sudo \ systemd \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8427179f7cfc0c9150e5327803ca89adffedb8f1 Gerrit-Change-Number: 18771 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: daniel 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 Jun 12 14:54:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:54:49 +0000 Subject: Change in docker-playground[master]: MSC_Tests.cfg: tweak comments In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18776 ) Change subject: MSC_Tests.cfg: tweak comments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 Gerrit-Change-Number: 18776 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:54: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 Jun 12 14:55:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:55:03 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18774 ) Change subject: BSC_Tests.cfg: adjust cfg for multiple MSCs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1986e4ef43beee161c82193694421b56136c1afe Gerrit-Change-Number: 18774 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:55:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 14:55:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:55:07 +0000 Subject: Change in docker-playground[master]: bsc: adjust osmo-bsc.cfg for MSC pooling tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18775 ) Change subject: bsc: adjust osmo-bsc.cfg for MSC pooling tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b Gerrit-Change-Number: 18775 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:55:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 14:55:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 14:55:22 +0000 Subject: Change in osmo-bsc[master]: refactor bsc_find_msc()'s round-robin In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18505 ) Change subject: refactor bsc_find_msc()'s round-robin ...................................................................... refactor bsc_find_msc()'s round-robin Prepare for MSC pooling by NRI. Before introducing actual NRI decoding and MSC matching, fix the bsc_find_msc() implementation. (Indicate the places relevant for NRI by "TODO" comments). bsc_find_msc() puts an MSC to the end of the internal list of MSCs when it was used. This has problems: - Modifying the list affects VTY output, e.g. 'show running-config' and 'show mscs' change their order in which MSCs are shown, depending on how often a round-robin selection has taken place. - Emergency calls and normal calls potentially pick quite different sets of eligible MSCs. When the round-robin choices between these sets affect each other, the choice is not balanced. For example, if only the first MSC is allow_emerg == true, every emergency call would reset the round-robin state to the first MSC in the list, also for normal calls. If there are regular emergency calls, normal calls will then tend to load more onto the first few MSCs after those picked for emergency calls. Fix: Never affect the ordering of MSCs in the internal list of MSCs. Instead, keep a "next_nr" MSC index and determine the next round-robin target like that. Keep a separate "next_emerg_nr" MSC index so that emergency call round-robin does no longer cause normal round-robin to skip MSCs. Further problems in current bsc_find_msc(): - The "blind:" label should also do round-robin. - The "paging:" part should not attempt to use disconnected MSCs. - Both should also heed NRI matches (when they are added). Fix: instead of code dup, determine Paging Response matching with an earlier Paging Request right at the start. If that yields no usable MSC, continue into the normal NRI and round-robin selection. The loop in this patch is inspired by the upcoming implementation of MSC pooling by NRI, as indicated by the two TODO comments. The point is that, in the presence of an NRI from a TMSI identity, we always need to iterate all of the MSCs to find possible NRI matches. The two round-robin sets (Emergency and non-Emergency) are determined in the same loop iteration for cases that have no or match no NRI, or where a matching MSC is currently disconnected. Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/gsm_08_08.c 2 files changed, 71 insertions(+), 60 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 1e7e88f..52ff5e4 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1651,6 +1651,10 @@ /* msc configuration */ struct llist_head mscs; + uint8_t mscs_round_robin_next_nr; + /* Emergency calls potentially select a different set of MSCs, so to not mess up the normal round-robin + * behavior, emergency calls need a separate round-robin counter. */ + uint8_t mscs_round_robin_next_emerg_nr; /* rf ctl related bits */ int mid_call_timeout; diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index d8e33d6..a252203 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -36,6 +36,9 @@ #include +#define LOG_COMPL_L3(pdisc, mtype, loglevel, format, args...) \ + LOGP(DRSL, loglevel, "%s %s: " format, gsm48_pdisc_name(pdisc), gsm48_pdisc_msgtype_name(pdisc, mtype), ##args) + /* Check if we have a proper connection to the MSC */ static bool msc_connected(struct gsm_subscriber_connection *conn) { @@ -159,6 +162,21 @@ return subscr; } +static bool is_msc_usable(struct bsc_msc_data *msc, bool is_emerg) +{ + if (is_emerg && !msc->allow_emerg) + return false; + if (!a_reset_conn_ready(msc)) + return false; + return true; +} + +/* Decide which MSC to forward this Complete Layer 3 request to. + * a) If the subscriber was previously paged from a particular MSC, that MSC shall receive the Paging Response. + * b) If the message contains an NRI indicating a particular MSC and the MSC is connected, that MSC shall handle this + * conn. + * c) All other cases distribute the messages across connected MSCs in a round-robin fashion. + */ static struct bsc_msc_data *bsc_find_msc(struct gsm_subscriber_connection *conn, struct msgb *msg) { @@ -166,9 +184,13 @@ struct gsm48_hdr *gh; int8_t pdisc; uint8_t mtype; - struct bsc_msc_data *msc, *pag_msc; + struct bsc_msc_data *msc; + struct bsc_msc_data *msc_target = NULL; + struct bsc_msc_data *msc_round_robin_next = NULL; + struct bsc_msc_data *msc_round_robin_first = NULL; + uint8_t round_robin_next_nr; struct bsc_subscr *subscr; - int is_emerg = 0; + bool is_emerg = false; if (msgb_l3len(msg) < sizeof(*gh)) { LOGP(DMSC, LOGL_ERROR, "There is no GSM48 header here.\n"); @@ -179,72 +201,57 @@ pdisc = gsm48_hdr_pdisc(gh); mtype = gsm48_hdr_msg_type(gh); - /* - * We are asked to select a MSC here but they are not equal. We - * want to respond to a paging request on the MSC where we got the - * request from. This is where we need to decide where this connection - * will go. - */ - if (pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) - goto paging; - else if (pdisc == GSM48_PDISC_MM && mtype == GSM48_MT_MM_CM_SERV_REQ) { - is_emerg = is_cm_service_for_emerg(msg); - goto round_robin; - } else - goto round_robin; + is_emerg = (pdisc == GSM48_PDISC_MM && mtype == GSM48_MT_MM_CM_SERV_REQ) && is_cm_service_for_emerg(msg); -round_robin: + /* Has the subscriber been paged from a connected MSC? */ + if (pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) { + subscr = extract_sub(conn, msg); + if (subscr) { + msc_target = paging_get_msc(conn_get_bts(conn), subscr); + bsc_subscr_put(subscr); + if (is_msc_usable(msc_target, is_emerg)) + return msc_target; + msc_target = NULL; + } + } + + /* TODO: extract NRI from MI */ + + /* Iterate MSCs to find one that matches the extracted NRI, and the next round-robin target for the case no NRI + * match is found. */ + round_robin_next_nr = (is_emerg ? net->mscs_round_robin_next_emerg_nr : net->mscs_round_robin_next_nr); llist_for_each_entry(msc, &net->mscs, entry) { - if (is_emerg && !msc->allow_emerg) + if (!is_msc_usable(msc, is_emerg)) continue; - /* force round robin by moving it to the end */ - llist_move_tail(&msc->entry, &net->mscs); - return msc; + /* TODO: return msc when extracted NRI matches this MSC */ + + /* Figure out the next round-robin MSC. The MSCs may appear unsorted in net->mscs. Make sure to linearly + * round robin the MSCs by number: pick the lowest msc->nr >= round_robin_next_nr, and also remember the + * lowest available msc->nr to wrap back to that in case no next MSC is left. */ + if (!msc_round_robin_first || msc->nr < msc_round_robin_first->nr) + msc_round_robin_first = msc; + if (msc->nr >= round_robin_next_nr + && (!msc_round_robin_next || msc->nr < msc_round_robin_next->nr)) + msc_round_robin_next = msc; } - return NULL; - -paging: - subscr = extract_sub(conn, msg); - - if (!subscr) { - LOGP(DMSC, LOGL_INFO, "Got paging response but no subscriber found, will now (blindly) deliver the paging response to the first configured MSC!\n"); - goto blind; + /* No dedicated MSC found. Choose by round-robin. + * If msc_round_robin_next is NULL, there are either no more MSCs at/after mscs_round_robin_next_nr, or none of + * them are usable -- wrap to the start. */ + msc_target = msc_round_robin_next ? : msc_round_robin_first; + if (!msc_target) { + LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "%sNo suitable MSC for this Complete Layer 3 request found\n", + is_emerg ? "FOR EMERGENCY CALL: " : ""); + return NULL; } - pag_msc = paging_get_msc(conn_get_bts(conn), subscr); - bsc_subscr_put(subscr); - - llist_for_each_entry(msc, &net->mscs, entry) { - if (msc != pag_msc) - continue; - - /* - * We don't check if the MSC is connected. In case it - * is not the connection will be dropped. - */ - - /* force round robin by moving it to the end */ - llist_move_tail(&msc->entry, &net->mscs); - return msc; - } - - LOGP(DMSC, LOGL_INFO, "Got paging response but no request found, will now (blindly) deliver the paging response to the first configured MSC!\n"); - -blind: - /* In the case of an MT CSFB call we will get a paging response from - * the BTS without a preceding paging request via A-Interface. In those - * cases the MSC will page the subscriber via SGs interface, so the BSC - * can not know about the paging in advance. In those cases we can not - * know the MSC which is in charge. The only meaningful option we have - * is to deliver the paging response to the first configured MSC - * blindly. */ - msc = llist_first_entry_or_null(&net->mscs, struct bsc_msc_data, entry); - if (msc) - return msc; - LOGP(DMSC, LOGL_ERROR, "Unable to find any suitable MSC to deliver paging response!\n"); - return NULL; + /* An MSC was picked by round-robin, so update the next round-robin nr to pick */ + if (is_emerg) + net->mscs_round_robin_next_emerg_nr = msc_target->nr + 1; + else + net->mscs_round_robin_next_nr = msc_target->nr + 1; + return msc_target; } static int handle_page_resp(struct gsm_subscriber_connection *conn, struct msgb *msg) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf71f07ba5a17d5b870dc1a5a2875b6fedb61291 Gerrit-Change-Number: 18505 Gerrit-PatchSet: 6 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 Jun 12 14:56:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 12 Jun 2020 14:56:33 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: implement NAS node selection by NRI from TMSI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18766 ) Change subject: MSC pooling: implement NAS node selection by NRI from TMSI ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifbdea197b26e88751a391c8a80c41f04e7d5e047 Gerrit-Change-Number: 18766 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 14:56: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 Jun 12 15:18:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 15:18:27 +0000 Subject: Change in osmo-gsm-tester[master]: Remove all references to defaults: timeout: from suite.conf In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 ) Change subject: Remove all references to defaults: timeout: from suite.conf ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 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: I3c1b95c10e974da87ec9abd25578d8bcc0bc55a3 Gerrit-Change-Number: 18793 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 15:18: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 Jun 12 15:18:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 15:18:32 +0000 Subject: Change in osmo-gsm-tester[master]: Remove all references to defaults: timeout: from suite.conf In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 ) Change subject: Remove all references to defaults: timeout: from suite.conf ...................................................................... Remove all references to defaults: timeout: from suite.conf This feature is not really implemented and maybe never was. In any case, it makes sense to have that working per-test so we can specify different values per test in case it's needed. Change-Id: I3c1b95c10e974da87ec9abd25578d8bcc0bc55a3 --- M doc/examples/4g_srsLTE/suites/4g/suite.conf M doc/manuals/chapters/config.adoc M selftest/suite_test/suite_test.ok M selftest/suite_test/suitedirA/test_suite/suite.conf M selftest/suite_test/suitedirB/suiteB/suite.conf M selftest/suite_test/suitedirB/suiteC/suite.conf M src/osmo_gsm_tester/core/schema.py M sysmocom/suites/4g/suite.conf M sysmocom/suites/encryption/suite.conf M sysmocom/suites/nitb_debug/suite.conf M sysmocom/suites/nitb_netreg/suite.conf M sysmocom/suites/nitb_netreg_mass/suite.conf M sysmocom/suites/nitb_smpp/suite.conf M sysmocom/suites/nitb_sms/suite.conf M sysmocom/suites/nitb_ussd/suite.conf M sysmocom/suites/smpp/suite.conf 16 files changed, 1 insertion(+), 35 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/doc/examples/4g_srsLTE/suites/4g/suite.conf b/doc/examples/4g_srsLTE/suites/4g/suite.conf index e439e99..0b0177a 100644 --- a/doc/examples/4g_srsLTE/suites/4g/suite.conf +++ b/doc/examples/4g_srsLTE/suites/4g/suite.conf @@ -8,5 +8,3 @@ features: - 4g -defaults: - timeout: 180s diff --git a/doc/manuals/chapters/config.adoc b/doc/manuals/chapters/config.adoc index b4e4a95..118f056 100644 --- a/doc/manuals/chapters/config.adoc +++ b/doc/manuals/chapters/config.adoc @@ -190,9 +190,6 @@ a_suite_test_foo: one_test_parameter_for_test_foo: 'str' another_test_parameter_for_test_foo: ['bool_str'] - -defaults: - timeout: 50s ---- [[scenarios_dir]] @@ -647,9 +644,6 @@ <> file. Content in this section follows the <> schema. -//TODO: defaults.timeout should be change in code to be config.test_timeout or similar -//TODO: 'config' should be split into its own schema and validate defaults.conf - === Example Setup {app-name} comes with an example official setup which is the one used to run diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 9c9f5cc..3264fe2 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -15,8 +15,6 @@ cnf [PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf: ERR: FileNotFoundError: [Errno 2] No such file or directory: '[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf' [empty_dir?[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf] - valid suite dir cnf test_suite: DBG: reading suite.conf -defaults: - timeout: 60s resources: bts: - label: sysmoCell 5000 diff --git a/selftest/suite_test/suitedirA/test_suite/suite.conf b/selftest/suite_test/suitedirA/test_suite/suite.conf index 4b70be8..ff4899a 100644 --- a/selftest/suite_test/suitedirA/test_suite/suite.conf +++ b/selftest/suite_test/suitedirA/test_suite/suite.conf @@ -15,5 +15,3 @@ one_bool_parameter: 'bool_str' second_list_parameter: ['uint'] -defaults: - timeout: 60s diff --git a/selftest/suite_test/suitedirB/suiteB/suite.conf b/selftest/suite_test/suitedirB/suiteB/suite.conf index 3645cd9..a4d0951 100644 --- a/selftest/suite_test/suitedirB/suiteB/suite.conf +++ b/selftest/suite_test/suitedirB/suiteB/suite.conf @@ -1,4 +1,2 @@ resources: -defaults: - timeout: 60s diff --git a/selftest/suite_test/suitedirB/suiteC/suite.conf b/selftest/suite_test/suitedirB/suiteC/suite.conf index 44be3fc..33639a1 100644 --- a/selftest/suite_test/suitedirB/suiteC/suite.conf +++ b/selftest/suite_test/suitedirB/suiteC/suite.conf @@ -2,5 +2,3 @@ ip_address: - addr: 10.42.42.2 # stp -defaults: - timeout: 60s diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py index 70b4c8c..9a346cd 100644 --- a/src/osmo_gsm_tester/core/schema.py +++ b/src/osmo_gsm_tester/core/schema.py @@ -430,7 +430,7 @@ global _ALL_SCHEMA if _ALL_SCHEMA is None: want_schema = get_want_schema() - _ALL_SCHEMA = util.dict_add({ 'defaults.timeout': STR }, + _ALL_SCHEMA = util.dict_add( dict([('config.%s' % key, val) for key, val in _CONFIG_SCHEMA.items()]), dict([('resources.%s' % key, val) for key, val in want_schema.items()]), dict([('modifiers.%s' % key, val) for key, val in want_schema.items()])) diff --git a/sysmocom/suites/4g/suite.conf b/sysmocom/suites/4g/suite.conf index fbd81b6..49031a2 100644 --- a/sysmocom/suites/4g/suite.conf +++ b/sysmocom/suites/4g/suite.conf @@ -13,5 +13,3 @@ duration: 'duration' threshold: 'uint' -defaults: - timeout: 180s diff --git a/sysmocom/suites/encryption/suite.conf b/sysmocom/suites/encryption/suite.conf index 18e94a3..8820b26 100644 --- a/sysmocom/suites/encryption/suite.conf +++ b/sysmocom/suites/encryption/suite.conf @@ -12,5 +12,3 @@ - a5_0 - a5_1 -defaults: - timeout: 120s diff --git a/sysmocom/suites/nitb_debug/suite.conf b/sysmocom/suites/nitb_debug/suite.conf index adfc161..e2b7d13 100644 --- a/sysmocom/suites/nitb_debug/suite.conf +++ b/sysmocom/suites/nitb_debug/suite.conf @@ -6,5 +6,3 @@ modem: - times: 4 -defaults: - timeout: 60s diff --git a/sysmocom/suites/nitb_netreg/suite.conf b/sysmocom/suites/nitb_netreg/suite.conf index 1bb1dbb..5f651de 100644 --- a/sysmocom/suites/nitb_netreg/suite.conf +++ b/sysmocom/suites/nitb_netreg/suite.conf @@ -6,5 +6,3 @@ modem: - times: 1 -defaults: - timeout: 40s diff --git a/sysmocom/suites/nitb_netreg_mass/suite.conf b/sysmocom/suites/nitb_netreg_mass/suite.conf index bb1585b..90e9946 100644 --- a/sysmocom/suites/nitb_netreg_mass/suite.conf +++ b/sysmocom/suites/nitb_netreg_mass/suite.conf @@ -7,5 +7,3 @@ - times: 100 type: osmo-mobile -defaults: - timeout: 50s diff --git a/sysmocom/suites/nitb_smpp/suite.conf b/sysmocom/suites/nitb_smpp/suite.conf index eb5dc01..77861ed 100644 --- a/sysmocom/suites/nitb_smpp/suite.conf +++ b/sysmocom/suites/nitb_smpp/suite.conf @@ -8,5 +8,3 @@ features: - sms -defaults: - timeout: 60s diff --git a/sysmocom/suites/nitb_sms/suite.conf b/sysmocom/suites/nitb_sms/suite.conf index 485402b..52caa3c 100644 --- a/sysmocom/suites/nitb_sms/suite.conf +++ b/sysmocom/suites/nitb_sms/suite.conf @@ -8,5 +8,3 @@ features: - sms -defaults: - timeout: 60s diff --git a/sysmocom/suites/nitb_ussd/suite.conf b/sysmocom/suites/nitb_ussd/suite.conf index 232a5d8..8314920 100644 --- a/sysmocom/suites/nitb_ussd/suite.conf +++ b/sysmocom/suites/nitb_ussd/suite.conf @@ -8,5 +8,3 @@ features: - ussd -defaults: - timeout: 60s diff --git a/sysmocom/suites/smpp/suite.conf b/sysmocom/suites/smpp/suite.conf index 61e7015..304b310 100644 --- a/sysmocom/suites/smpp/suite.conf +++ b/sysmocom/suites/smpp/suite.conf @@ -8,5 +8,3 @@ features: - sms -defaults: - timeout: 60s -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18793 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: I3c1b95c10e974da87ec9abd25578d8bcc0bc55a3 Gerrit-Change-Number: 18793 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 15:18:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 15:18:32 +0000 Subject: Change in osmo-gsm-tester[master]: test: Move duration time calculation to helper function In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18796 ) Change subject: test: Move duration time calculation to helper function ...................................................................... test: Move duration time calculation to helper function Change-Id: Ica2e7d92f37d18a4f8832f38d9f9f3baba8be09f --- M src/osmo_gsm_tester/core/test.py 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 47e1f42..7347229 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -105,9 +105,13 @@ return '%s:%s' % (self._name, l) return super().name() + def elapsed_time(self): + 'time elapsed since test was started' + return time.time() - self.start_timestamp + def set_fail(self, fail_type, fail_message, tb_str=None, src=4): self.status = Test.FAIL - self.duration = time.time() - self.start_timestamp + self.duration = self.elapsed_time() self.fail_type = fail_type self.fail_message = fail_message @@ -123,7 +127,7 @@ def set_pass(self): self.status = Test.PASS - self.duration = time.time() - self.start_timestamp + self.duration = self.elapsed_time() self.log('Test passed (%.1f sec)' % self.duration) def set_skip(self): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18796 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: Ica2e7d92f37d18a4f8832f38d9f9f3baba8be09f Gerrit-Change-Number: 18796 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 15:34:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 15:34:58 +0000 Subject: Change in osmo-bsc[master]: add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout In-Reply-To: References: Message-ID: Hello fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18347 to look at the new patch set (#5). Change subject: add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: I316efedb2c1652791434ecf14a1e261367cd2fb7 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/47/18347/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I316efedb2c1652791434ecf14a1e261367cd2fb7 Gerrit-Change-Number: 18347 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 15:34:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 15:34:58 +0000 Subject: Change in osmo-bsc[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: Hello fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18374 to look at the new patch set (#3). Change subject: manuals: generate vty reference xml at build time ...................................................................... manuals: generate vty reference xml at build time Move 'doc' subdir further down to "make sure" the osmo-bsc binary is built before the docs. Remove bsc_vty_reference.xml from the source tree. In manuals/Makefile.am use the new BUILT_REFERENCE_XML feature recently added to osmo-gsm-manuals, and add a build target to generate the XML using the new osmo-bsc --vty-ref-xml cmdline switch. Depends: I613d692328050a036d05b49a436ab495fc2087ba (osmo-gsm-manuals) Change-Id: I5dc872149154e1a949bb6a2b9bbc1461e0fc51f6 --- M Makefile.am M doc/manuals/Makefile.am D doc/manuals/vty/bsc_vty_reference.xml 3 files changed, 7 insertions(+), 5,096 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/18374/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5dc872149154e1a949bb6a2b9bbc1461e0fc51f6 Gerrit-Change-Number: 18374 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 15:35:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 12 Jun 2020 15:35:00 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc main: exit on cmdline option error References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18797 ) Change subject: osmo-bsc main: exit on cmdline option error ...................................................................... osmo-bsc main: exit on cmdline option error Change-Id: I7c3432790a77ae9081d2c458ee9f598e435e089d --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/97/18797/1 diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 0e5b4e6..9eaaf2a 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -173,8 +173,9 @@ rf_ctrl = optarg; break; default: - /* ignore */ - break; + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c3432790a77ae9081d2c458ee9f598e435e089d Gerrit-Change-Number: 18797 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 Jun 12 16:09:19 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 12 Jun 2020 16:09:19 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: Hello pespin, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 to look at the new patch set (#7). Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 938 insertions(+), 628 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/18644/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 16:09:19 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 12 Jun 2020 16:09:19 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: Hello pespin, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 to look at the new patch set (#11). Change subject: trunk: get rid of virt_trunk pointer ...................................................................... trunk: get rid of virt_trunk pointer The virtual trunk is a pre-configured trunk that always exists. It is kept separate from the trunk list using a separate pointer. This makes thinks unecessarly complicated. Lets organize the trunk in the trunk list like any other trunk, except that we automatically create it on startup and assign it always the trunk id number 0. Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 7 files changed, 143 insertions(+), 105 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/90/18590/11 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 16:10:44 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 12 Jun 2020 16:10:44 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18372 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Abandoned This is a duplicate -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ice8aaf03faa2fd99074f8665eea3a696d30c5eb3 Gerrit-Change-Number: 18372 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 16:29:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 16:29:09 +0000 Subject: Change in osmo-gsm-tester[master]: Refactor test specific config parsing & generation References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 ) Change subject: Refactor test specific config parsing & generation ...................................................................... Refactor test specific config parsing & generation The dictionary is generated once during test creation at suite startup. Change-Id: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 4 files changed, 24 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/98/18798/1 diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 3264fe2..c7c76d7 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -27,6 +27,8 @@ - times: '2' - run hello world test +tst test_suite: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] --------------------------------------------------------------------- trial test_suite @@ -179,6 +181,9 @@ FAIL: test_fail_raise.py (N.N sec) ExpectedFail: This failure is expected skip: test_suite_params.py - test with half empty scenario +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] --------------------------------------------------------------------- trial test_suite @@ -265,6 +270,9 @@ skip: test_fail_raise.py skip: test_suite_params.py - test with scenario +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] --------------------------------------------------------------------- trial test_suite @@ -351,6 +359,9 @@ skip: test_fail_raise.py skip: test_suite_params.py - test with scenario and modifiers +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ... [suite.py:[LINENR]] tst test_suite: DBG: {combining='resources'} [suite.py:[LINENR]] tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}} [test_suite?{combining_scenarios='resources'}] [suite.py:[LINENR]] @@ -483,6 +494,9 @@ skip: test_fail_raise.py skip: test_suite_params.py - test with suite-specific config +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={suite={test_suite={some_suite_global_param='heyho', test_suite_params={one_bool_parameter='true', second_list_parameter=['23', '45']}}}}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ... [suite.py:[LINENR]] tst test_suite: DBG: {combining='resources'} [suite.py:[LINENR]] tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}} [test_suite?{combining_scenarios='resources'}] [suite.py:[LINENR]] @@ -598,9 +612,6 @@ trial test_suite test_suite_params.py ---------------------------------------------- tst test_suite_params.py:[LINENR]: starting test [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] -tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] -tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={suite={test_suite={some_suite_global_param='heyho', test_suite_params={one_bool_parameter='true', second_list_parameter=['23', '45']}}}}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite_params.py:[LINENR]: SPECIFIC SUITE CONFIG: {'some_suite_global_param': 'heyho', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: 'test_suite_params': {'one_bool_parameter': 'true', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: 'second_list_parameter': ['23', '45']}} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] @@ -619,6 +630,8 @@ pass: test_suite_params.py (N.N sec) - test with template overlay cnf suiteC: DBG: reading suite.conf [suite.py:[LINENR]] +tst suiteC: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] [suite.py:[LINENR]] --------------------------------------------------------------------- trial suiteC @@ -651,8 +664,6 @@ --- ReservedResources: DBG: {using={_hash='fd103b22c7cf2480d609150e06f4bbd92ac78d8c', _reserved_by='suiteC-[ID_NUM]-[ID_NUM]', addr='10.42.42.2'}} [resource.py:[LINENR]] tst test_template_overlay.py:[LINENR]: - Testing: original template [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42.2/osmo-stp.cfg'} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] -tst suiteC: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] [suite.py:[LINENR]] run osmo-stp_10.42.42.2: DBG: STP CONFIG: {'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]', diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index c55c5e9..9b9062d 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -98,7 +98,8 @@ def load_tests(self): self.tests = [] for test_basename in self.definition.test_basenames: - self.tests.append(test.Test(self, test_basename)) + test_specific_config = self.config_suite_specific().get(test_basename.rstrip('.py'), {}) + self.tests.append(test.Test(self, test_basename, test_specific_config)) def mark_start(self): self.start_timestamp = time.time() diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 7347229..45dfd41 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -35,11 +35,12 @@ PASS = 'pass' FAIL = 'FAIL' - def __init__(self, suite_run, test_basename): + def __init__(self, suite_run, test_basename, test_specific_config): self.basename = test_basename super().__init__(log.C_TST, self.basename) self._run_dir = None self.suite_run = suite_run + self._config_test_specific = test_specific_config self.path = os.path.join(self.suite_run.definition.suite_dir, self.basename) self.status = Test.UNKNOWN self.start_timestamp = 0 @@ -134,6 +135,9 @@ self.status = Test.SKIP self.duration = 0 + def config_test_specific(self): + return self._config_test_specific + def set_report_stdout(self, text): 'Overwrite stdout text stored in report from inside a test' self._report_stdout = text diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index d6c18ee..11199c2 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -146,7 +146,7 @@ return self.suite_run.config_suite_specific() def config_test_specific(self): - return self.suite_run.config_suite_specific().get(self._test.module_name(), {}) + return self._test.config_test_specific() def set_overlay_template_dir(self, template_dir=None): '''Overlay a directory on top of default one when looking for -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 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: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26 Gerrit-Change-Number: 18798 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 Jun 12 16:29:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 16:29:10 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 ) Change subject: Implement per-test timeout guard ...................................................................... Implement per-test timeout guard Timeout value can be specified by test in suite.conf: config: suite: : : timeout: 2 # 2 seconds timeout Change-Id: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 --- M selftest/suite_test/suite_test.py M selftest/suite_test/suitedirA/test_suite/suite.conf A selftest/suite_test/suitedirA/test_suite/test_timeout.py M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 6 files changed, 30 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/99/18799/1 diff --git a/selftest/suite_test/suite_test.py b/selftest/suite_test/suite_test.py index 260b9c4..9708037 100755 --- a/selftest/suite_test/suite_test.py +++ b/selftest/suite_test/suite_test.py @@ -102,7 +102,7 @@ s = suite.SuiteRun(trial, 'test_suite', s_def, [sc]) s.reserve_resources() print(repr(s.reserved_resources)) -results = s.run_tests('test_suite_params.py') +results = s.run_tests(['test_suite_params.py', 'test_timeout.py']) print(report.suite_to_text(s)) print('- test with template overlay') diff --git a/selftest/suite_test/suitedirA/test_suite/suite.conf b/selftest/suite_test/suitedirA/test_suite/suite.conf index ff4899a..0426ea7 100644 --- a/selftest/suite_test/suitedirA/test_suite/suite.conf +++ b/selftest/suite_test/suitedirA/test_suite/suite.conf @@ -15,3 +15,9 @@ one_bool_parameter: 'bool_str' second_list_parameter: ['uint'] + +config: + suite: + test_suite: + test_timeout: + timeout: 1 # timeout in 1 second diff --git a/selftest/suite_test/suitedirA/test_suite/test_timeout.py b/selftest/suite_test/suitedirA/test_suite/test_timeout.py new file mode 100644 index 0000000..eeddb70 --- /dev/null +++ b/selftest/suite_test/suitedirA/test_suite/test_timeout.py @@ -0,0 +1,6 @@ +from osmo_gsm_tester.testenv import * + +timeout = int(tenv.config_test_specific()['timeout']) +print('starting test and waiting to receive Timeout after %d seconds' % timeout) +sleep(10) +print('test failed, we expected timeout after %d seconds' % timeout) diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index 9b9062d..aa09cd6 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -44,6 +44,8 @@ self.suite_dir = suite_dir self.conf = None self._schema = None + self.test_basenames = [] + self.load_test_basenames() self.read_conf() def read_conf(self): @@ -54,13 +56,17 @@ SuiteDefinition.CONF_FILENAME)) # Drop schema part since it's dynamically defining content, makes no sense to validate it. self._schema = self.conf.pop('schema', {}) + # Add per-test 'timeout' attribute: + d = {t.rstrip('.py'):{'timeout': schema.DURATION} for t in self.test_basenames} + #self.log('dictionary is: %r' % repr(d)) + schema.combine(self._schema, d) + # Convert config file format to proper schema format and register it: sdef = schema.config_to_schema_def(self._schema, "%s." % self._suite_name) schema.register_config_schema('suite', sdef) + # Finally validate the file: schema.validate(self.conf, schema.get_all_schema()) - self.load_test_basenames() def load_test_basenames(self): - self.test_basenames = [] for basename in sorted(os.listdir(self.suite_dir)): if not basename.endswith('.py'): continue diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 45dfd41..2fa4fe9 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -35,12 +35,12 @@ PASS = 'pass' FAIL = 'FAIL' - def __init__(self, suite_run, test_basename, test_specific_config): + def __init__(self, suite_run, test_basename, config_test_specific): self.basename = test_basename super().__init__(log.C_TST, self.basename) self._run_dir = None self.suite_run = suite_run - self._config_test_specific = test_specific_config + self._config_test_specific = config_test_specific self.path = os.path.join(self.suite_run.definition.suite_dir, self.basename) self.status = Test.UNKNOWN self.start_timestamp = 0 @@ -49,6 +49,7 @@ self.fail_message = None self.log_targets = [] self._report_stdout = None + self.timeout = int(config_test_specific['timeout']) if 'timeout' in config_test_specific else None def module_name(self): 'Return test name without trailing .py' @@ -110,6 +111,10 @@ 'time elapsed since test was started' return time.time() - self.start_timestamp + def verify_timeout(self): + if self.timeout is not None and self.elapsed_time() > self.timeout: + raise log.Error('Test Timeout triggered: %d seconds elapsed' % self.timeout) + def set_fail(self, fail_type, fail_message, tb_str=None, src=4): self.status = Test.FAIL self.duration = self.elapsed_time() diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 11199c2..e2e8ce9 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -130,6 +130,8 @@ proc.log_stderr_tail() log_module.ctx(proc) raise log_module.Error('Process ended prematurely: %s' % proc.name()) + # TODO: do it better, use a GLib timer and make sure to remove in testenv.stop() + self._test.verify_timeout() def stop(self): # if sys.exit() called from signal handler (e.g. SIGINT), SystemExit -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 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 Jun 12 16:31:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 16:31:53 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 ) Change subject: Implement per-test timeout guard ...................................................................... Implement per-test timeout guard Timeout value can be specified by test in suite.conf: config: suite: : : timeout: 2 # 2 seconds timeout Change-Id: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 --- M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.py M selftest/suite_test/suitedirA/test_suite/suite.conf A selftest/suite_test/suitedirA/test_suite/test_timeout.py M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 7 files changed, 66 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/99/18799/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 12 16:34:38 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 12 Jun 2020 16:34:38 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee3aebc9343e_e962b0071b305f0735659@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1307s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1308s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1309s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1309s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1309s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1310s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1310s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1311s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1311s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1312s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1312s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1312s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1312s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1312s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1312s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1312s] ~~^ [ 1312s] %d [ 1312s] cc1: some warnings being treated as errors [ 1312s] ninja: build stopped: subcommand failed. [ 1312s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1312s] make: *** [debian/rules:11: binary] Error 1 [ 1312s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1312s] ### VM INTERACTION START ### [ 1315s] [ 1258.615490] sysrq: SysRq : Power Off [ 1315s] [ 1258.617762] reboot: Power down [ 1315s] ### VM INTERACTION END ### [ 1315s] [ 1315s] armbuild16 failed "build open5gs_1.2.5.20200612.dsc" at Fri Jun 12 16:34:36 UTC 2020. [ 1315s] -- 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 Jun 12 16:58:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 16:58:48 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 to look at the new patch set (#3). Change subject: Implement per-test timeout guard ...................................................................... Implement per-test timeout guard Timeout value can be specified by test in suite.conf: config: suite: : : timeout: 2 # 2 seconds timeout Change-Id: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 --- M doc/manuals/chapters/config.adoc M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.py M selftest/suite_test/suitedirA/test_suite/suite.conf A selftest/suite_test/suitedirA/test_suite/test_timeout.py M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 8 files changed, 80 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/99/18799/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 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 Fri Jun 12 16:59:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 16:59:20 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 to look at the new patch set (#4). Change subject: Implement per-test timeout guard ...................................................................... Implement per-test timeout guard Timeout value can be specified by test in suite.conf: config: suite: : : timeout: 2 # 2 seconds timeout Change-Id: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 --- M doc/manuals/chapters/config.adoc M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.py M selftest/suite_test/suitedirA/test_suite/suite.conf A selftest/suite_test/suitedirA/test_suite/test_timeout.py M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 8 files changed, 80 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/99/18799/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 17:02:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 17:02:44 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 11: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 17: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 Fri Jun 12 17:10:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 17:10:28 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_endp.c at 115 PS7, Line 115: default: As a general note, it's nowadays also good practice to not define default in switch(enum), because compilers catch not-handled cases and provides a warning/error, so it's useful when adding new types, the compiler will tell you everywhere where you need to update the code. https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_vty.c at 300 PS7, Line 300: This extra whitespace should be removed. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 12 Jun 2020 17:10:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 12 17:50:39 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 12 Jun 2020 17:50:39 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee3c091bb144_e962b0071b305f07497c3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1227s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1228s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1229s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1229s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1229s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1230s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1230s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1231s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1231s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1232s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1232s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1232s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1232s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1232s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1232s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1232s] ~~^ [ 1232s] %d [ 1232s] cc1: some warnings being treated as errors [ 1232s] ninja: build stopped: subcommand failed. [ 1232s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1232s] make: *** [debian/rules:11: binary] Error 1 [ 1232s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1232s] ### VM INTERACTION START ### [ 1235s] [ 1187.811791] sysrq: SysRq : Power Off [ 1235s] [ 1187.813923] reboot: Power down [ 1235s] ### VM INTERACTION END ### [ 1235s] [ 1235s] armbuild19 failed "build open5gs_1.2.5.20200612.dsc" at Fri Jun 12 17:50:29 UTC 2020. [ 1235s] -- 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 Jun 12 19:50:30 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 12 Jun 2020 19:50:30 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: increase extra timeout to 30s References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 ) Change subject: iperf3: increase extra timeout to 30s ...................................................................... iperf3: increase extra timeout to 30s 10s was too short and has still caused tests to fail because they were stopped just before the iperf finished. 30s seems to be enought and has passed multiple times so far Change-Id: I80b732a060356aa98882ff0e8b5debaf623ba0fb --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/00/18800/1 diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index ee62159..13fd455 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -250,7 +250,7 @@ proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) else: proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) - proc.set_default_wait_timeout(time_sec + 10) # leave 10 extra sec for remote run, ctrl conn establishment, etc. + proc.set_default_wait_timeout(time_sec + 30) # leave 30 extra sec for remote run, ctrl conn establishment, etc. return proc def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 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: I80b732a060356aa98882ff0e8b5debaf623ba0fb Gerrit-Change-Number: 18800 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 12 20:14:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 12 Jun 2020 20:14:44 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: increase extra timeout to 30s In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 ) Change subject: iperf3: increase extra timeout to 30s ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 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: I80b732a060356aa98882ff0e8b5debaf623ba0fb Gerrit-Change-Number: 18800 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 12 Jun 2020 20:14:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 12 20:23:23 2020 From: admin at opensuse.org (OBS Notification) Date: Fri, 12 Jun 2020 20:23:23 +0000 Subject: Build failure of network:osmocom:latest/libusrp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5ee3e4447902_e962b0071b305f0781456@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libusrp/Debian_Testing/x86_64 Package network:osmocom:latest/libusrp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libusrp Last lines of build log: [ 378s] touch libfx2.lib [ 378s] for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done [ 378s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/lib' [ 378s] Making all in src [ 378s] make[4]: Entering directory '/usr/src/packages/BUILD/firmware/src' [ 378s] Making all in common [ 378s] make[5]: Entering directory '/usr/src/packages/BUILD/firmware/src/common' [ 378s] srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h [ 378s] /usr/bin/env: 'python': No such file or directory [ 378s] make[5]: *** [Makefile:523: usrp_gpif.c] Error 127 [ 378s] make[5]: Leaving directory '/usr/src/packages/BUILD/firmware/src/common' [ 378s] make[4]: *** [Makefile:405: all-recursive] Error 1 [ 378s] make[4]: Leaving directory '/usr/src/packages/BUILD/firmware/src' [ 378s] make[3]: *** [Makefile:405: all-recursive] Error 1 [ 378s] make[3]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 378s] make[2]: *** [Makefile:626: all-recursive] Error 1 [ 378s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 378s] make[1]: *** [Makefile:547: all] Error 2 [ 378s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 378s] dh_auto_build: error: make -j1 returned exit code 2 [ 378s] make: *** [debian/rules:13: build] Error 25 [ 378s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 378s] ### VM INTERACTION START ### [ 381s] [ 369.669101] sysrq: SysRq : Power Off [ 381s] [ 369.685101] reboot: Power down [ 381s] ### VM INTERACTION END ### [ 381s] [ 381s] build82 failed "build libusrp_3.4.4.dsc" at Fri Jun 12 20:23:06 UTC 2020. [ 381s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 13 01:39:54 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 13 Jun 2020 01:39:54 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee42e6fab63f_e962b0071b305f087967e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 204s] [1920/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 204s] [1921/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 204s] [1922/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 204s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 205s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 205s] ../src/udm/context.c: In function ?udm_ue_add?: [ 205s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 205s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 205s] ~~^ [ 205s] %d [ 205s] cc1: some warnings being treated as errors [ 205s] [1923/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 205s] [1924/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 205s] [1925/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 205s] [1926/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 205s] [1927/2112] cc -Isrc/pgw/src at pgw@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o' -MF 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o.d' -o 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o' -c ../src/pgw/pgw-context.c [ 205s] [1928/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 205s] [1929/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 205s] ninja: build stopped: subcommand failed. [ 205s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 205s] make: *** [debian/rules:11: binary] Error 1 [ 205s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 205s] ### VM INTERACTION START ### [ 209s] [ 198.756578] sysrq: SysRq : Power Off [ 209s] [ 198.762788] reboot: Power down [ 209s] ### VM INTERACTION END ### [ 209s] [ 209s] lamb20 failed "build open5gs_1.2.5.20200613.dsc" at Sat Jun 13 01:39:37 UTC 2020. [ 209s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 13 01:44:11 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 13 Jun 2020 01:44:11 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee42f7c80548_e962b0071b305f0882510@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 196s] [1936/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/event.c.o' -MF 'src/udm/udm at sta/event.c.o.d' -o 'src/udm/udm at sta/event.c.o' -c ../src/udm/event.c [ 197s] [1937/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 197s] FAILED: src/udm/udm at sta/context.c.o [ 197s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 197s] ../src/udm/context.c: In function ?udm_ue_add?: [ 197s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 197s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 197s] ~~^ [ 197s] %d [ 197s] cc1: some warnings being treated as errors [ 197s] [1938/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 197s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-build.c.o' -MF 'src/udm/udm at sta/nudr-build.c.o.d' -o 'src/udm/udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 197s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 197s] [1941/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 197s] [1942/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 197s] [1943/2112] cc -Isrc/pcrf/pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 197s] [1944/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 197s] ninja: build stopped: subcommand failed. [ 197s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 197s] debian/rules:11: recipe for target 'binary' failed [ 197s] make: *** [binary] Error 1 [ 197s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 197s] ### VM INTERACTION START ### [ 200s] [ 189.800296] sysrq: SysRq : Power Off [ 200s] [ 189.804515] reboot: Power down [ 200s] ### VM INTERACTION END ### [ 200s] [ 200s] lamb09 failed "build open5gs_1.2.5.20200613.dsc" at Sat Jun 13 01:44:06 UTC 2020. [ 200s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 13 01:53:54 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 13 Jun 2020 01:53:54 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee431b944f28_e962b0071b305f088618c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 652s] [1924/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -c ../src/udr/nnrf-handler.c [ 652s] [1925/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 652s] [1926/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 652s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 652s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 652s] ../src/udm/context.c: In function ?udm_ue_add?: [ 652s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 652s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 652s] ~~^ [ 652s] %d [ 652s] cc1: some warnings being treated as errors [ 652s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 652s] [1928/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 652s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 652s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 653s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 653s] [1932/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 653s] [1933/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 653s] ninja: build stopped: subcommand failed. [ 653s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 653s] make: *** [debian/rules:11: binary] Error 1 [ 653s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 653s] ### VM INTERACTION START ### [ 656s] [ 601.108449] sysrq: SysRq : Power Off [ 656s] [ 601.124642] reboot: Power down [ 656s] ### VM INTERACTION END ### [ 656s] [ 656s] lamb03 failed "build open5gs_1.2.5.20200613.dsc" at Sat Jun 13 01:53:36 UTC 2020. [ 656s] -- 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 Jun 13 11:01:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 13 Jun 2020 11:01:32 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_endp.c at 115 PS7, Line 115: default: > As a general note, it's nowadays also good practice to not define default in switch(enum), because c [?] I gave review to the contrary... Coverity also warns about missing switch cases, introducing 'default:' that abort or handle errors is needed to silence those complaints. The compiler argument is a good one. After considering, I think it's still most important to not let a program continue to run after passing a switch with a missing case. Maybe the compiler is configured to ignore those warnings? Or I fail to read them? In any case I think we should take the discussion out of this patch so that we don't make dexter work in circles. So I'd say with or without default is both good enough for now. ok? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 13 Jun 2020 11:01:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 11:27:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:27:08 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 13 Jun 2020 11: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 Sat Jun 13 11:29:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:29:52 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 13 Jun 2020 11:29:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 11:32:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:32:22 +0000 Subject: Change in osmo-bsc[master]: add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18347 ) Change subject: add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I316efedb2c1652791434ecf14a1e261367cd2fb7 Gerrit-Change-Number: 18347 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Sat, 13 Jun 2020 11:32:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 11:33:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:33:30 +0000 Subject: Change in osmo-bsc[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18374 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5dc872149154e1a949bb6a2b9bbc1461e0fc51f6 Gerrit-Change-Number: 18374 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 13 Jun 2020 11: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 Sat Jun 13 11:33:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:33:43 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc main: exit on cmdline option error In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18797 ) Change subject: osmo-bsc main: exit on cmdline option error ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c3432790a77ae9081d2c458ee9f598e435e089d Gerrit-Change-Number: 18797 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 11:33:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 11:47:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:47:47 +0000 Subject: Change in osmo-gsm-manuals[master]: vty reference: allow reference XML generated at build time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18362 ) Change subject: vty reference: allow reference XML generated at build time ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18362 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: I613d692328050a036d05b49a436ab495fc2087ba Gerrit-Change-Number: 18362 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 13 Jun 2020 11:47: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 Jun 13 11:47:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:47:53 +0000 Subject: Change in osmo-gsm-manuals[master]: vty reference: allow reference XML generated at build time In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18362 ) Change subject: vty reference: allow reference XML generated at build time ...................................................................... vty reference: allow reference XML generated at build time Add variable BUILT_REFERENCE_XML for callers to indicate dependencies for the VTY reference. Add script find_existing_path.sh to pick a given path from either builddir or srcdir, whichever exists. In Makefile.vty-reference.inc, use find_existing_path.sh to make the VTY reference build rules work no matter whether the reference.xml is built in builddir or committed in srcdir. Change-Id: I613d692328050a036d05b49a436ab495fc2087ba --- M build/Makefile.vty-reference.inc A build/find_existing_path.sh 2 files changed, 43 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/build/Makefile.vty-reference.inc b/build/Makefile.vty-reference.inc index b2daf8a..c1db67b 100644 --- a/build/Makefile.vty-reference.inc +++ b/build/Makefile.vty-reference.inc @@ -6,6 +6,12 @@ # Manual additions to specific VTY nodes, any number of files. # - vty/*_reference.xml # Export from VTY 'show online-help', exactly one file. +# The vty/*_reference.xml file may also live in the $(builddir)/vty/, +# in which case you need to add it to BUILT_REFERENCE_XML, and provide a build rule, like: +# BUILT_REFERENCE_XML = $(builddir)/vty/osmoyada_reference.xml +# $(builddir)/vty/osmoyada_reference.xml: +# mkdir -p $(builddir)/vty +# $(top_builddir)/src/osmoyada --vty-ref-xml > $@ # # In your Makefile.am, # - define 'OSMO_GSM_MANUALS_DIR' to point at the osmo-gsm-manuals shared files @@ -34,6 +40,12 @@ # your new VTY_REFERENCE entry ("vty-osmobar" in this example). # - Add osmobar-vty-reference.xml and vty-osmobar to EXTRA_DIST in Makefile.am. # - Full example: osmo-sgsn.git I24c3ca2fc2446673edceefb797c7d800c3a1a5d2 +# - The vty-osmobar/*_reference.xml may also live in the builddir: add it to +# BUILT_REFERENCE_XML and provide a build rule, like: +# BUILT_REFERENCE_XML += $(builddir)/vty-osmobar/osmobar_reference.xml +# $(builddir)/vty-osmobar/osmobar_reference.xml: $(top_builddir)/src/osmobar +# mkdir -p $(builddir)/vty-osmobar +# $(top_builddir)/src/osmobar --vty-ref-xml > $@ DOCBOOKS = $(VTY_REFERENCE) @@ -51,15 +63,17 @@ MERGE_DOC = $(shell realpath $(OSMO_GSM_MANUALS_DIR)/merge_doc.xsl) CLEAN_FILES += generated +CLEAN_FILES += $(BUILT_REFERENCE_XML) # First VTY reference generated/docbook_vty.xml: \ $(srcdir)/vty/*xml \ + $(BUILT_REFERENCE_XML) \ $(OSMO_GSM_MANUALS_DIR)/common/vty_additions.xml \ $(OSMO_GSM_MANUALS_DIR)/common/chapters/vty.xml \ $(OSMO_GSM_MANUALS_DIR)/vty_reference.xsl $(OSMO_GSM_MANUALS_DIR)/build/vty_reference_combine.sh "$(MERGE_DOC)" \ - $(srcdir)/vty/*reference.xml \ + $$($(OSMO_GSM_MANUALS_DIR)/build/find_existing_path.sh "vty/*reference.xml" $(builddir) $(srcdir)) \ $(OSMO_GSM_MANUALS_DIR)/common/vty_additions.xml \ $(srcdir)/vty/*additions*.xml xsltproc $(OSMO_GSM_MANUALS_DIR)/vty_reference.xsl generated/combined.xml \ @@ -68,13 +82,16 @@ # Additional VTY references generated/docbook_%-vty-reference.xml: \ $(srcdir)/vty-%/*xml \ + $(BUILT_REFERENCE_XML) \ $(OSMO_GSM_MANUALS_DIR)/common/vty_additions.xml \ $(OSMO_GSM_MANUALS_DIR)/common/chapters/vty.xml \ $(OSMO_GSM_MANUALS_DIR)/vty_reference.xsl - export VTYDIR="$(srcdir)/vty-$(patsubst generated/docbook_%-vty-reference.xml,%,$@)" && \ + export VTYDIR_NAME="vty-$(patsubst generated/docbook_%-vty-reference.xml,%,$@)" && \ + export VTYDIR_SRC="$(srcdir)/$$VTYDIR_NAME" && \ + export VTYDIR_BUILD="$(builddir)/$$VTYDIR_NAME" && \ export VTYGEN="$@_combine" && \ $(OSMO_GSM_MANUALS_DIR)/build/vty_reference_combine.sh "$(MERGE_DOC)" \ - $$VTYDIR/*reference.xml \ + $$($(OSMO_GSM_MANUALS_DIR)/build/find_existing_path.sh "*reference.xml" $$VTYDIR_BUILD $$VTYDIR_SRC) \ $(OSMO_GSM_MANUALS_DIR)/common/vty_additions.xml \ - $$VTYDIR/*additions*.xml && \ + $$VTYDIR_SRC/*additions*.xml && \ xsltproc $(OSMO_GSM_MANUALS_DIR)/vty_reference.xsl $$VTYGEN/combined.xml > "$@" diff --git a/build/find_existing_path.sh b/build/find_existing_path.sh new file mode 100755 index 0000000..08fcc71 --- /dev/null +++ b/build/find_existing_path.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# Pick a path, depending on where such path exists: +# find_existing_path.sh "want/*.file" ./dir1 ../../dir2 /tmp/dir3 +# prints the first existing match: +# ../../dir2/want/foo.file +# or just the first argument if none is found: +# want/*.file +path="$1" + +shift 1 +for dir in $@ ; do + for f in "$dir"/$path ; do + if [ ! -r "$f" ]; then + continue + fi + echo "$f" + exit 0 + done +done + +echo "$path" +exit 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18362 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: I613d692328050a036d05b49a436ab495fc2087ba Gerrit-Change-Number: 18362 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sat Jun 13 11:49:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 11:49:33 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 ) Change subject: Implement per-test timeout guard ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 11:49: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 Jun 13 12:41:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 13 Jun 2020 12:41:56 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18644/7/src/libosmo-mgcp/mgcp_endp.c at 115 PS7, Line 115: default: > I gave review to the contrary... [?] Sure I'm not saying adding the default case is wrong, I'm just pointing out there's also considerations for doing the opposite, and was simply sharing the information with you to let you know. I'm accepting either way. and one or the other may be better depending on each specific case. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 13 Jun 2020 12:41:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jun 13 14:02:22 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 13 Jun 2020 14:02:22 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee4dc82eaef7_e962b0071b305f01100629@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1332s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1333s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1334s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1334s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1334s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1335s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1335s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1336s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1336s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1337s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1337s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1337s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1337s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1337s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1337s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1337s] ~~^ [ 1337s] %d [ 1337s] cc1: some warnings being treated as errors [ 1337s] ninja: build stopped: subcommand failed. [ 1337s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1337s] make: *** [debian/rules:11: binary] Error 1 [ 1337s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1337s] ### VM INTERACTION START ### [ 1340s] [ 1297.658661] sysrq: SysRq : Power Off [ 1340s] [ 1297.661171] reboot: Power down [ 1340s] ### VM INTERACTION END ### [ 1340s] [ 1340s] armbuild19 failed "build open5gs_1.2.5.20200613.dsc" at Sat Jun 13 14:02:11 UTC 2020. [ 1340s] -- 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 Jun 13 14:10:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 14:10:15 +0000 Subject: Change in libosmo-sccp[master]: Add "no traffic-mode" configuration to AS 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-sccp/+/16394 to look at the new patch set (#3). Change subject: Add "no traffic-mode" configuration to AS ...................................................................... Add "no traffic-mode" configuration to AS As per RFC4666 it is optional whether or not a traffic-mode IE is part of ASPAC requests from ASP to SG. We implemented that so far by having none as default, unless the user specified an explicit traffic-mode in the VTY. However, we had no command to remove that explicit configuration and return to the implicit one. Change-Id: Ibe2b298dd76dc4b02521dc411ae9d570eaf5a9a2 --- M src/osmo_ss7_vty.c M tests/vty/ss7_asp_test.vty 2 files changed, 26 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/94/16394/3 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ibe2b298dd76dc4b02521dc411ae9d570eaf5a9a2 Gerrit-Change-Number: 16394 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 Sat Jun 13 14:15:40 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Sat, 13 Jun 2020 14:15:40 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/src/libosmo-mgcp/mgcp_endp.c at 51 PS4, Line 51: { 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; > (interesting magic, maybe a comment pointing at where this comes from would be nice) Also, any reason there is no 64k bits endpoint ? (just asking, I don't know if it makes sense) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Sat, 13 Jun 2020 14:15:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 14:15:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 14:15:56 +0000 Subject: Change in libosmo-sccp[master]: Add "no traffic-mode" configuration to AS 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-sccp/+/16394 to look at the new patch set (#4). Change subject: Add "no traffic-mode" configuration to AS ...................................................................... Add "no traffic-mode" configuration to AS As per RFC4666 it is optional whether or not a traffic-mode IE is part of ASPAC requests from ASP to SG. We implemented that so far by having none as default, unless the user specified an explicit traffic-mode in the VTY. However, we had no command to remove that explicit configuration and return to the implicit one. Change-Id: Ibe2b298dd76dc4b02521dc411ae9d570eaf5a9a2 --- M src/osmo_ss7_vty.c M tests/vty/ss7_asp_test.vty 2 files changed, 15 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/94/16394/4 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ibe2b298dd76dc4b02521dc411ae9d570eaf5a9a2 Gerrit-Change-Number: 16394 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 14:29:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 14:29:13 +0000 Subject: Change in libosmo-sccp[master]: Add "no traffic-mode" configuration to AS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16394 ) Change subject: Add "no traffic-mode" configuration to AS ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ibe2b298dd76dc4b02521dc411ae9d570eaf5a9a2 Gerrit-Change-Number: 16394 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 13 Jun 2020 14:29:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 14:29:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 14:29:17 +0000 Subject: Change in libosmo-sccp[master]: Add "no traffic-mode" configuration to AS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/16394 ) Change subject: Add "no traffic-mode" configuration to AS ...................................................................... Add "no traffic-mode" configuration to AS As per RFC4666 it is optional whether or not a traffic-mode IE is part of ASPAC requests from ASP to SG. We implemented that so far by having none as default, unless the user specified an explicit traffic-mode in the VTY. However, we had no command to remove that explicit configuration and return to the implicit one. Change-Id: Ibe2b298dd76dc4b02521dc411ae9d570eaf5a9a2 --- M src/osmo_ss7_vty.c M tests/vty/ss7_asp_test.vty 2 files changed, 15 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo_ss7_vty.c b/src/osmo_ss7_vty.c index 9a2f8bb..9c31c00 100644 --- a/src/osmo_ss7_vty.c +++ b/src/osmo_ss7_vty.c @@ -878,6 +878,17 @@ return CMD_SUCCESS; } +DEFUN(as_no_traf_mode, as_no_traf_mode_cmd, + "no traffic-mode", + NO_STR "Remove explicit traffic mode of operation of this AS\n") +{ + struct osmo_ss7_as *as = vty->index; + + as->cfg.mode = 0; + as->cfg.mode_set_by_vty = false; + return CMD_SUCCESS; +} + DEFUN(as_recov_tout, as_recov_tout_cmd, "recovery-timeout <1-2000>", "Specifies the recovery timeout value in milliseconds\n" @@ -1931,6 +1942,7 @@ install_element(L_CS7_AS_NODE, &as_asp_cmd); install_element(L_CS7_AS_NODE, &as_no_asp_cmd); install_element(L_CS7_AS_NODE, &as_traf_mode_cmd); + install_element(L_CS7_AS_NODE, &as_no_traf_mode_cmd); install_element(L_CS7_AS_NODE, &as_recov_tout_cmd); install_element(L_CS7_AS_NODE, &as_qos_class_cmd); install_element(L_CS7_AS_NODE, &as_rout_key_cmd); diff --git a/tests/vty/ss7_asp_test.vty b/tests/vty/ss7_asp_test.vty index 9bafb02..7411b1f 100644 --- a/tests/vty/ss7_asp_test.vty +++ b/tests/vty/ss7_asp_test.vty @@ -250,6 +250,7 @@ asp NAME no asp NAME traffic-mode (broadcast | loadshare | roundrobin | override) + no traffic-mode recovery-timeout <1-2000> qos-class <0-255> routing-key RCONTEXT DPC @@ -271,7 +272,8 @@ point-code Point Code Specific Features ss7_asp_vty_test(config-cs7-as)# no ? - asp Specify ASP to be removed from this AS + asp Specify ASP to be removed from this AS + traffic-mode Remove explicit traffic mode of operation of this AS ss7_asp_vty_test(config-cs7-as)# do show cs7 instance 0 as all Routing Routing Key Cic Cic Traffic -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/16394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ibe2b298dd76dc4b02521dc411ae9d570eaf5a9a2 Gerrit-Change-Number: 16394 Gerrit-PatchSet: 4 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 admin at opensuse.org Sat Jun 13 14:33:31 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 13 Jun 2020 14:33:31 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee4e3c57e813_e962b0071b305f01111187@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1227s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1227s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1228s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1229s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1229s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1229s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1229s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1230s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1231s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1232s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1232s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1232s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1232s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1232s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1232s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1232s] ~~^ [ 1232s] %d [ 1232s] cc1: some warnings being treated as errors [ 1232s] ninja: build stopped: subcommand failed. [ 1232s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1232s] make: *** [debian/rules:11: binary] Error 1 [ 1232s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1232s] ### VM INTERACTION START ### [ 1235s] [ 1202.122958] sysrq: SysRq : Power Off [ 1235s] [ 1202.125502] reboot: Power down [ 1235s] ### VM INTERACTION END ### [ 1235s] [ 1235s] armbuild17 failed "build open5gs_1.2.5.20200613.dsc" at Sat Jun 13 14:33:14 UTC 2020. [ 1235s] -- 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 Jun 13 14:36:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 14:36:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add test whether we accept DATA without Routing Context IE References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18817 ) Change subject: Add test whether we accept DATA without Routing Context IE ...................................................................... Add test whether we accept DATA without Routing Context IE There are some M3UA implementations out there who use a routing context during the ASPAC procedure, but who then don't use it in subsequent DATA transmission. Let's add a test case for that. Change-Id: Iaf95f8eafa53cff94910d89584eef95f1b474c7f Related: OS#4594 --- M stp/STP_Tests_M3UA.ttcn 1 file changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/17/18817/1 diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn index a44e6ad..f6fa625 100644 --- a/stp/STP_Tests_M3UA.ttcn +++ b/stp/STP_Tests_M3UA.ttcn @@ -261,6 +261,25 @@ f_clear_m3ua(); } +/* test whether the STP accepts M3UA DATA without Routing Context IE */ +testcase TC_act_rctx_data_no_rctx() runs on RAW_M3UA_CT { + var OCT4 rctx_sender := int2oct(1023, 4); + var OCT4 pc_sender := int2oct(23, 4); + var OCT4 rctx_receiver := int2oct(1042, 4); + var OCT4 pc_receiver := int2oct(42, 4); + + f_init_m3ua(); + /* bring up the sender specifying a routing context */ + + f_M3UA_asp_up_act(0, rctx := rctx_sender); + f_M3UA_asp_up_act(1); + + /* check if DATA is accepted without Routing Context IE */ + f_test_traffic(0, omit, pc_sender, 1, rctx_receiver, pc_receiver); + + f_clear_m3ua(); +} + /* Test if traffic is routed from idx_tx/pc_tx to idx_rx/pc_rx */ private function f_test_traffic(integer idx_tx, template (omit) OCT4 rctx_sender, OCT4 pc_tx, integer idx_rx, template (omit) OCT4 rctx_receiver, OCT4 pc_rx, @@ -623,6 +642,7 @@ execute( TC_tmt_override() ); execute( TC_tmt_loadshare() ); execute( TC_tmt_broadcast() ); + execute( TC_act_rctx_data_no_rctx() ); /* M3UA RKM tests */ execute( TC_rkm_reg_static_notpermitted() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf95f8eafa53cff94910d89584eef95f1b474c7f Gerrit-Change-Number: 18817 Gerrit-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 Jun 13 14:36:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 14:36:45 +0000 Subject: Change in libosmo-sccp[master]: M3UA: Accept DATA without routing context IE if only a single AS in ASP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 ) Change subject: M3UA: Accept DATA without routing context IE if only a single AS in ASP ...................................................................... M3UA: Accept DATA without routing context IE if only a single AS in ASP There are some M3UA implementations out there who use a routing context during the ASPAC procedure, but who then don't use it in subsequent DATA transmission. This behavior seems to be at the edge of what's possible within the spec; if you don't configure a routing context, The RCTX IE it is not required to be sent. And if you have multiple routing contexts/AS within one ASP, it *must* be sent. But the situation where a routing context has been configured (but not multiple) is not explicitly covered. Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Closes: OS#4594 --- M src/m3ua.c 1 file changed, 49 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/18/18818/1 diff --git a/src/m3ua.c b/src/m3ua.c index 5ab3e79..08a89b5 100644 --- a/src/m3ua.c +++ b/src/m3ua.c @@ -532,9 +532,26 @@ return data_hdr; } +/* if given ASP only has one AS, return that AS */ +static struct osmo_ss7_as *find_single_as_for_asp(struct osmo_ss7_asp *asp) +{ + struct osmo_ss7_as *as, *as_found = NULL; + + llist_for_each_entry(as, &asp->inst->as_list, list) { + if (!osmo_ss7_as_has_asp(as, asp)) + continue; + /* check if we already had found another AS within this ASP -> not unique */ + if (as_found) + return NULL; + as_found = as; + } + + return as_found; +} + static int m3ua_rx_xfer(struct osmo_ss7_asp *asp, struct xua_msg *xua) { - uint32_t rctx = xua_msg_get_u32(xua, M3UA_IEI_ROUTE_CTX); + struct xua_msg_part *rctx_ie = xua_msg_find_tag(xua, M3UA_IEI_ROUTE_CTX); struct m3ua_data_hdr *dh; struct osmo_ss7_as *as; @@ -548,23 +565,33 @@ return M3UA_ERR_UNSUPP_MSG_TYPE; } - /* Use routing context IE to look up the AS for which the - * message was received. */ - as = osmo_ss7_as_find_by_rctx(asp->inst, rctx); - if (!as) { - LOGPASP(asp, DLM3UA, LOGL_ERROR, - "%s(): invalid routing context: %u\n", - __func__, rctx); - return M3UA_ERR_INVAL_ROUT_CTX; - } + if (rctx_ie) { + uint32_t rctx = xua_msg_part_get_u32(rctx_ie); + /* Use routing context IE to look up the AS for which the + * message was received. */ + as = osmo_ss7_as_find_by_rctx(asp->inst, rctx); + if (!as) { + LOGPASP(asp, DLM3UA, LOGL_ERROR, "%s(): invalid routing context: %u\n", + __func__, rctx); + return M3UA_ERR_INVAL_ROUT_CTX; + } - /* Verify that this ASP is part of the AS. */ - if (!osmo_ss7_as_has_asp(as, asp)) { - LOGPASP(asp, DLM3UA, LOGL_ERROR, - "%s(): This Application Server Process is not part of the AS %s resolved by" - " routing context %u\n", - __func__, (as)->cfg.name, rctx); - return M3UA_ERR_NO_CONFGD_AS_FOR_ASP; + /* Verify that this ASP is part of the AS. */ + if (!osmo_ss7_as_has_asp(as, asp)) { + LOGPASP(asp, DLM3UA, LOGL_ERROR, + "%s(): This Application Server Process is not part of the AS %s " + "resolved by routing context %u\n", __func__, (as)->cfg.name, rctx); + return M3UA_ERR_NO_CONFGD_AS_FOR_ASP; + } + } else { + /* no explicit routing context; this only works if there is only one AS in the ASP */ + as = find_single_as_for_asp(asp); + if (!as) { + LOGPASP(asp, DLM3UA, LOGL_ERROR, + "%s(): ASP sent M3UA without Routing Context IE but unable to uniquely " + "identify the AS for this message\n", __func__); + return M3UA_ERR_INVAL_ROUT_CTX; + } } /* FIXME: check for AS state == ACTIVE */ @@ -579,9 +606,11 @@ __func__, xua->mtp.opc, osmo_ss7_pointcode_print(asp->inst, xua->mtp.opc), xua->mtp.dpc, osmo_ss7_pointcode_print2(asp->inst, xua->mtp.dpc)); - /* remove ROUTE_CTX as in the routing case we want to add a new - * routing context on the outbound side */ - xua_msg_free_tag(xua, M3UA_IEI_ROUTE_CTX); + if (rctx_ie) { + /* remove ROUTE_CTX as in the routing case we want to add a new + * routing context on the outbound side */ + xua_msg_free_tag(xua, M3UA_IEI_ROUTE_CTX); + } return m3ua_hmdc_rx_from_l2(asp->inst, xua); /* xua will be freed by caller m3ua_rx_msg() */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Gerrit-Change-Number: 18818 Gerrit-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 Jun 13 14:40:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 14:40:32 +0000 Subject: Change in osmo-msc[master]: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18640 ) Change subject: contrib/osmo-msc.spec.in: Enable SMPP in RPM builds ...................................................................... contrib/osmo-msc.spec.in: Enable SMPP in RPM builds The SPEC file already included a build dependency to libsmpp34, but then the compilation of osmo-msc didn't actually pass --enable-smpp along, resulting in binaries without SMPP support - unlike the Debian binaries, which do contain that part. Change-Id: I223be7a735e97b32f7c0ff246cf826f109b0f686 --- M contrib/osmo-msc.spec.in 1 file changed, 1 insertion(+), 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/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index 1ebe9fa..da6c0ba 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -77,6 +77,7 @@ %if %{with_iu} --enable-iu \ %endif + --enable-smpp \ --docdir=%{_docdir}/%{name} \ --with-systemdsystemunitdir=%{_unitdir} -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I223be7a735e97b32f7c0ff246cf826f109b0f686 Gerrit-Change-Number: 18640 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 Sat Jun 13 15:41:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 15:41:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add test whether we accept DATA without Routing Context IE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18817 ) Change subject: Add test whether we accept DATA without Routing Context IE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf95f8eafa53cff94910d89584eef95f1b474c7f Gerrit-Change-Number: 18817 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 15: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 Sat Jun 13 15:41:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 15:41:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add test whether we accept DATA without Routing Context IE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18817 ) Change subject: Add test whether we accept DATA without Routing Context IE ...................................................................... Add test whether we accept DATA without Routing Context IE There are some M3UA implementations out there who use a routing context during the ASPAC procedure, but who then don't use it in subsequent DATA transmission. Let's add a test case for that. Change-Id: Iaf95f8eafa53cff94910d89584eef95f1b474c7f Related: OS#4594 --- M stp/STP_Tests_M3UA.ttcn 1 file changed, 20 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn index a44e6ad..f6fa625 100644 --- a/stp/STP_Tests_M3UA.ttcn +++ b/stp/STP_Tests_M3UA.ttcn @@ -261,6 +261,25 @@ f_clear_m3ua(); } +/* test whether the STP accepts M3UA DATA without Routing Context IE */ +testcase TC_act_rctx_data_no_rctx() runs on RAW_M3UA_CT { + var OCT4 rctx_sender := int2oct(1023, 4); + var OCT4 pc_sender := int2oct(23, 4); + var OCT4 rctx_receiver := int2oct(1042, 4); + var OCT4 pc_receiver := int2oct(42, 4); + + f_init_m3ua(); + /* bring up the sender specifying a routing context */ + + f_M3UA_asp_up_act(0, rctx := rctx_sender); + f_M3UA_asp_up_act(1); + + /* check if DATA is accepted without Routing Context IE */ + f_test_traffic(0, omit, pc_sender, 1, rctx_receiver, pc_receiver); + + f_clear_m3ua(); +} + /* Test if traffic is routed from idx_tx/pc_tx to idx_rx/pc_rx */ private function f_test_traffic(integer idx_tx, template (omit) OCT4 rctx_sender, OCT4 pc_tx, integer idx_rx, template (omit) OCT4 rctx_receiver, OCT4 pc_rx, @@ -623,6 +642,7 @@ execute( TC_tmt_override() ); execute( TC_tmt_loadshare() ); execute( TC_tmt_broadcast() ); + execute( TC_act_rctx_data_no_rctx() ); /* M3UA RKM tests */ execute( TC_rkm_reg_static_notpermitted() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf95f8eafa53cff94910d89584eef95f1b474c7f Gerrit-Change-Number: 18817 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 Jun 13 16:15:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 16:15:17 +0000 Subject: Change in pysim[master]: Add support for ADF_USIM/EF_EHPLMN 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/+/18649 to look at the new patch set (#2). Change subject: Add support for ADF_USIM/EF_EHPLMN ...................................................................... Add support for ADF_USIM/EF_EHPLMN If the EF.EHPLMN exists, it contains the "Equivalent Home PLMN List". The odd part of that list is that it is not just a list of additional PLMN identities, but if the first digits of the IMSI are *not* listed in EF.EHPLMN, then the MCC/MNC of the IMSI prefix is suddently no longer considered the home network, but the subscriber is roaming. See TS 23.122: "If the HPLMN code derived from the IMSI is not present in the EHPLMN list, then it shall be treated as a Visited PLMN for PLMN selection purposes." Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 --- M pySim-read.py M pySim/cards.py M pySim/commands.py M pySim/utils.py 4 files changed, 77 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/49/18649/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 Gerrit-Change-Number: 18649 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 16:18:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 16:18:12 +0000 Subject: Change in pysim[master]: Add support for ADF_USIM/EF_EHPLMN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18649 ) Change subject: Add support for ADF_USIM/EF_EHPLMN ...................................................................... Patch Set 2: the remaining SJA2 related failure "RuntimeError: SW match failed! Expected 9000 and got 6982." is a result of EF.EHPLMN not being writable in the card profile version deployed there. We need to update the physical card in the tester to fix this. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 Gerrit-Change-Number: 18649 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-Comment-Date: Sat, 13 Jun 2020 16:18: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 Sat Jun 13 16:25:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 16:25:25 +0000 Subject: Change in pysim[master]: utils.py add LOCI EFs decode functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18737 ) Change subject: utils.py add LOCI EFs decode functions ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc Gerrit-Change-Number: 18737 Gerrit-PatchSet: 2 Gerrit-Owner: guilly at gmail.com Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 16:25: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 Jun 13 16:25:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 16:25:27 +0000 Subject: Change in pysim[master]: utils.py add LOCI EFs decode functions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/18737 ) Change subject: utils.py add LOCI EFs decode functions ...................................................................... utils.py add LOCI EFs decode functions The LOCI, PSLOCI and EPSLOCI contain some info, including the PLMN, added helper functions to decode it Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc --- M pySim/ts_31_102.py M pySim/utils.py 2 files changed, 36 insertions(+), 0 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 473e595..215ed4c 100644 --- a/pySim/ts_31_102.py +++ b/pySim/ts_31_102.py @@ -137,6 +137,12 @@ 111: 'ePDG configuration Information for Emergency Service configured', } +LOCI_STATUS_map = { + 0: 'updated', + 1: 'not updated', + 2: 'plmn not allowed', + 3: 'locatation area not allowed' +} EF_USIM_ADF_map = { 'LI': '6F05', 'ARR': '6F06', diff --git a/pySim/utils.py b/pySim/utils.py index 496b918..2ca6165 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -183,6 +183,36 @@ s += "\t%s # %s\n" % (rec_data, rec_str) return s +def dec_loci(hexstr): + res = {'tmsi': '', 'mcc': 0, 'mnc': 0, 'lac': '', 'status': 0} + res['tmsi'] = hexstr[:8] + res['mcc'] = dec_mcc_from_plmn(hexstr[8:14]) + res['mnc'] = dec_mnc_from_plmn(hexstr[8:14]) + res['lac'] = hexstr[14:18] + res['status'] = h2i(hexstr[20:22]) + return res + +def dec_psloci(hexstr): + res = {'p-tmsi': '', 'p-tmsi-sig': '', 'mcc': 0, 'mnc': 0, 'lac': '', 'rac': '', 'status': 0} + res['p-tmsi'] = hexstr[:8] + res['p-tmsi-sig'] = hexstr[8:14] + res['mcc'] = dec_mcc_from_plmn(hexstr[14:20]) + res['mnc'] = dec_mnc_from_plmn(hexstr[14:20]) + res['lac'] = hexstr[20:24] + res['rac'] = hexstr[24:26] + res['status'] = h2i(hexstr[26:28]) + return res + +def dec_epsloci(hexstr): + res = {'guti': '', 'mcc': 0, 'mnc': 0, 'tac': '', 'status': 0} + res['guti'] = hexstr[:24] + res['tai'] = hexstr[24:34] + res['mcc'] = dec_mcc_from_plmn(hexstr[24:30]) + res['mnc'] = dec_mnc_from_plmn(hexstr[24:30]) + res['tac'] = hexstr[30:34] + res['status'] = h2i(hexstr[34:36]) + return res + def derive_milenage_opc(ki_hex, op_hex): """ Run the milenage algorithm to calculate OPC from Ki and OP -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ibb513ff7d1dc6d33b354ae26cbd9c390ea3c8efc Gerrit-Change-Number: 18737 Gerrit-PatchSet: 2 Gerrit-Owner: guilly at gmail.com Gerrit-Reviewer: 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 Jun 13 16:27:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 16:27:48 +0000 Subject: Change in pysim[master]: Add support for ADF_USIM/EF_EHPLMN 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/+/18649 to look at the new patch set (#3). Change subject: Add support for ADF_USIM/EF_EHPLMN ...................................................................... Add support for ADF_USIM/EF_EHPLMN If the EF.EHPLMN exists, it contains the "Equivalent Home PLMN List". The odd part of that list is that it is not just a list of additional PLMN identities, but if the first digits of the IMSI are *not* listed in EF.EHPLMN, then the MCC/MNC of the IMSI prefix is suddently no longer considered the home network, but the subscriber is roaming. See TS 23.122: "If the HPLMN code derived from the IMSI is not present in the EHPLMN list, then it shall be treated as a Visited PLMN for PLMN selection purposes." Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 --- M pySim-read.py M pySim/cards.py M pySim/commands.py M pySim/utils.py M pysim-testdata/sysmoISIM-SJA2.ok 5 files changed, 83 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/49/18649/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22d96ab4a424ec5bc1fb02f5e80165c646a748d3 Gerrit-Change-Number: 18649 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: guilly at gmail.com Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 17:24:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 13 Jun 2020 17:24:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: use osmo_store32be() in trx_if_send_burst() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18819 ) Change subject: osmo-bts-trx: use osmo_store32be() in trx_if_send_burst() ...................................................................... osmo-bts-trx: use osmo_store32be() in trx_if_send_burst() Change-Id: I5000fe61b29d796b9229f921bffcb392b1c6d189 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/19/18819/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 61f57b9..ccbcd2f 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1136,10 +1136,7 @@ } buf[0] = ((hdr_ver & 0x0f) << 4) | tn; - buf[1] = (fn >> 24) & 0xff; - buf[2] = (fn >> 16) & 0xff; - buf[3] = (fn >> 8) & 0xff; - buf[4] = (fn >> 0) & 0xff; + osmo_store32be(fn, buf + 1); buf[5] = pwr; /* copy ubits {0,1} */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5000fe61b29d796b9229f921bffcb392b1c6d189 Gerrit-Change-Number: 18819 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 Jun 13 17:24:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 13 Jun 2020 17:24:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move logical channel handlers to separate files References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18820 ) Change subject: osmo-bts-trx: move logical channel handlers to separate files ...................................................................... osmo-bts-trx: move logical channel handlers to separate files It's easier to maintain the logical channel handlers in separate files, rather than in a huge one (scheduler_trx.c, ~2k lines). Change-Id: Ie5663fd90596b4800a4546675a323250bbb24c80 --- M src/osmo-bts-trx/Makefile.am A src/osmo-bts-trx/sched_lchan_fcch_sch.c A src/osmo-bts-trx/sched_lchan_pdtch.c A src/osmo-bts-trx/sched_lchan_rach.c A src/osmo-bts-trx/sched_lchan_tchf.c A src/osmo-bts-trx/sched_lchan_tchh.c A src/osmo-bts-trx/sched_lchan_xcch.c A src/osmo-bts-trx/sched_utils.h M src/osmo-bts-trx/scheduler_trx.c 9 files changed, 1,816 insertions(+), 1,562 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/20/18820/1 diff --git a/src/osmo-bts-trx/Makefile.am b/src/osmo-bts-trx/Makefile.am index b2d9b19..ae69000 100644 --- a/src/osmo-bts-trx/Makefile.am +++ b/src/osmo-bts-trx/Makefile.am @@ -28,6 +28,7 @@ $(NULL) noinst_HEADERS = \ + sched_utils.h \ trx_if.h \ l1_if.h \ loops.h \ @@ -40,6 +41,12 @@ trx_if.c \ l1_if.c \ scheduler_trx.c \ + sched_lchan_fcch_sch.c \ + sched_lchan_rach.c \ + sched_lchan_xcch.c \ + sched_lchan_pdtch.c \ + sched_lchan_tchf.c \ + sched_lchan_tchh.c \ trx_vty.c \ loops.c \ $(NULL) diff --git a/src/osmo-bts-trx/sched_lchan_fcch_sch.c b/src/osmo-bts-trx/sched_lchan_fcch_sch.c new file mode 100644 index 0000000..63dd468 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_fcch_sch.c @@ -0,0 +1,94 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 + +/* obtain a to-be-transmitted FCCH (frequency correction channel) burst */ +ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting FCCH\n"); + + if (nbits) + *nbits = GSM_BURST_LEN; + + /* BURST BYPASS */ + + return (ubit_t *) _sched_fcch_burst; +} + +/* obtain a to-be-transmitted SCH (synchronization channel) burst */ +ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + static ubit_t bits[GSM_BURST_LEN], burst[78]; + uint8_t sb_info[4]; + struct gsm_time t; + uint8_t t3p, bsic; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting SCH\n"); + + /* BURST BYPASS */ + + /* create SB info from GSM time and BSIC */ + gsm_fn2gsmtime(&t, fn); + t3p = t.t3 / 10; + bsic = l1t->trx->bts->bsic; + sb_info[0] = + ((bsic & 0x3f) << 2) | + ((t.t1 & 0x600) >> 9); + sb_info[1] = + ((t.t1 & 0x1fe) >> 1); + sb_info[2] = + ((t.t1 & 0x001) << 7) | + ((t.t2 & 0x1f) << 2) | + ((t3p & 0x6) >> 1); + sb_info[3] = + (t3p & 0x1); + + /* encode bursts */ + gsm0503_sch_encode(burst, sb_info); + + /* compose burst */ + memset(bits, 0, 3); + memcpy(bits + 3, burst, 39); + memcpy(bits + 42, _sched_sch_train, 64); + memcpy(bits + 106, burst + 39, 39); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c new file mode 100644 index 0000000..8b39797 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -0,0 +1,249 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 + +/* Maximum size of a EGPRS message in bytes */ +#define EGPRS_0503_MAX_BYTES 155 + +/*! \brief a single PDTCH burst was received by the PHY, process it */ +int rx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint32_t *first_fn = &chan_state->ul_first_fn; + uint8_t *mask = &chan_state->ul_mask; + float *rssi_sum = &chan_state->rssi_sum; + uint8_t *rssi_num = &chan_state->rssi_num; + int32_t *toa256_sum = &chan_state->toa256_sum; + uint8_t *toa_num = &chan_state->toa_num; + int32_t *ci_cb_sum = &chan_state->ci_cb_sum; + uint8_t *ci_cb_num = &chan_state->ci_cb_num; + uint8_t l2[EGPRS_0503_MAX_BYTES]; + int n_errors = 0; + int n_bursts_bits = 0; + int n_bits_total = 0; + int16_t lqual_cb; + uint16_t ber10k; + int rc; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received PDTCH bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, + GSM0503_EGPRS_BURSTS_NBITS); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst */ + if (bid == 0) { + memset(*bursts_p, 0, GSM0503_EGPRS_BURSTS_NBITS); + *mask = 0x0; + *first_fn = bi->fn; + *rssi_sum = 0; + *rssi_num = 0; + *toa256_sum = 0; + *toa_num = 0; + *ci_cb_sum = 0; + *ci_cb_num = 0; + } + + /* update mask + rssi */ + *mask |= (1 << bid); + *rssi_sum += bi->rssi; + (*rssi_num)++; + *toa256_sum += bi->toa256; + (*toa_num)++; + + /* C/I: Carrier-to-Interference ratio (in centiBels) */ + if (bi->flags & TRX_BI_F_CI_CB) { + *ci_cb_sum += bi->ci_cb; + (*ci_cb_num)++; + } + + /* copy burst to buffer of 4 bursts */ + if (bi->burst_len == EGPRS_BURST_LEN) { + burst = *bursts_p + bid * 348; + memcpy(burst, bi->burst + 9, 174); + memcpy(burst + 174, bi->burst + 261, 174); + n_bursts_bits = GSM0503_EGPRS_BURSTS_NBITS; + } else { + burst = *bursts_p + bid * 116; + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + n_bursts_bits = GSM0503_GPRS_BURSTS_NBITS; + } + + /* wait until complete set of bursts */ + if (bid != 3) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0xf) != 0xf) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received incomplete frame (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + } + *mask = 0x0; + + /* + * Attempt to decode EGPRS bursts first. For 8-PSK EGPRS this is all we + * do. Attempt GPRS decoding on EGPRS failure. If the burst is GPRS, + * then we incur decoding overhead of 31 bits on the Type 3 EGPRS + * header, which is tolerable. + */ + rc = gsm0503_pdtch_egprs_decode(l2, *bursts_p, n_bursts_bits, + NULL, &n_errors, &n_bits_total); + + if ((bi->burst_len == GSM_BURST_LEN) && (rc < 0)) { + rc = gsm0503_pdtch_decode(l2, *bursts_p, NULL, + &n_errors, &n_bits_total); + } + + if (rc <= 0) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received bad PDTCH (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + return 0; + } + + lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; + ber10k = compute_ber10k(n_bits_total, n_errors); + return _sched_compose_ph_data_ind(l1t, bi->tn, + *first_fn, chan, l2, rc, + *rssi_sum / *rssi_num, + *toa256_sum / *toa_num, + lqual_cb, ber10k, + PRES_INFO_BOTH); +} + +/* obtain a to-be-transmitted PDTCH (packet data) burst */ +ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[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; + static ubit_t bits[EGPRS_BURST_LEN]; + int rc = 0; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + /* get mac block from queue */ + msg = _sched_dequeue_prim(l1t, tn, fn, chan); + if (msg) + goto got_msg; + + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + +no_msg: + /* free burst memory */ + if (*bursts_p) { + talloc_free(*bursts_p); + *bursts_p = NULL; + } + return NULL; + +got_msg: + /* BURST BYPASS */ + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, + GSM0503_EGPRS_BURSTS_NBITS); + if (!*bursts_p) + return NULL; + } + + /* encode bursts */ + rc = gsm0503_pdtch_egprs_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); + if (rc < 0) + rc = gsm0503_pdtch_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); + + /* check validity of message */ + if (rc < 0) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim invalid length, please FIX! " + "(len=%ld)\n", (long)(msg->tail - msg->l2h)); + /* free message */ + msgb_free(msg); + goto no_msg; + } else if (rc == GSM0503_EGPRS_BURSTS_NBITS) { + *burst_type = TRX_BURST_8PSK; + } else { + *burst_type = TRX_BURST_GMSK; + } + + /* free message */ + msgb_free(msg); + +send_burst: + /* compose burst */ + if (*burst_type == TRX_BURST_8PSK) { + burst = *bursts_p + bid * 348; + memset(bits, 1, 9); + memcpy(bits + 9, burst, 174); + memcpy(bits + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); + memcpy(bits + 261, burst + 174, 174); + memset(bits + 435, 1, 9); + + if (nbits) + *nbits = EGPRS_BURST_LEN; + } else { + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + } + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_rach.c b/src/osmo-bts-trx/sched_lchan_rach.c new file mode 100644 index 0000000..fa50f14 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_rach.c @@ -0,0 +1,212 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 by Harald Welte + * (C) 2019 by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +/* 3GPP TS 05.02, section 5.2.7 */ +#define RACH_EXT_TAIL_LEN 8 +#define RACH_SYNCH_SEQ_LEN 41 + +enum rach_synch_seq_t { + RACH_SYNCH_SEQ_UNKNOWN = -1, + RACH_SYNCH_SEQ_TS0, /* GSM, GMSK (default) */ + RACH_SYNCH_SEQ_TS1, /* EGPRS, 8-PSK */ + RACH_SYNCH_SEQ_TS2, /* EGPRS, GMSK */ + RACH_SYNCH_SEQ_NUM +}; + +static struct value_string rach_synch_seq_names[] = { + { RACH_SYNCH_SEQ_UNKNOWN, "UNKNOWN" }, + { RACH_SYNCH_SEQ_TS0, "TS0: GSM, GMSK" }, + { RACH_SYNCH_SEQ_TS1, "TS1: EGPRS, 8-PSK" }, + { RACH_SYNCH_SEQ_TS2, "TS2: EGPRS, GMSK" }, + { 0, NULL }, +}; + +static enum rach_synch_seq_t rach_get_synch_seq(sbit_t *bits, int *best_score) +{ + sbit_t *synch_seq_burst = bits + RACH_EXT_TAIL_LEN; + enum rach_synch_seq_t seq = RACH_SYNCH_SEQ_TS0; + int score[RACH_SYNCH_SEQ_NUM] = { 0 }; + int max_score = INT_MIN; + int i, j; + + /* 3GPP TS 05.02, section 5.2.7 "Access burst (AB)", synch. sequence bits */ + static const char synch_seq_ref[RACH_SYNCH_SEQ_NUM][RACH_SYNCH_SEQ_LEN] = { + [RACH_SYNCH_SEQ_TS0] = "01001011011111111001100110101010001111000", + [RACH_SYNCH_SEQ_TS1] = "01010100111110001000011000101111001001101", + [RACH_SYNCH_SEQ_TS2] = "11101111001001110101011000001101101110111", + }; + + /* Get a multiplier for j-th bit of i-th synch. sequence */ +#define RACH_SYNCH_SEQ_MULT \ + (synch_seq_ref[i][j] == '1' ? -1 : 1) + + /* For each synch. sequence, count the bit match score. Since we deal with + * soft-bits (-127...127), we sum the absolute values of matching ones, + * and subtract the absolute values of different ones, so the resulting + * score is more accurate than it could be with hard-bits. */ + for (i = 0; i < RACH_SYNCH_SEQ_NUM; i++) { + for (j = 0; j < RACH_SYNCH_SEQ_LEN; j++) + score[i] += RACH_SYNCH_SEQ_MULT * synch_seq_burst[j]; + + /* Keep the maximum value updated */ + if (score[i] > max_score) { + max_score = score[i]; + seq = i; + } + } + + /* Calculate an approximate level of our confidence */ + if (best_score != NULL) + *best_score = max_score; + + /* At least 1/3 of a synch. sequence shall match */ + if (max_score < (127 * RACH_SYNCH_SEQ_LEN / 3)) + return RACH_SYNCH_SEQ_UNKNOWN; + + return seq; +} + +int rx_rach_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct osmo_phsap_prim l1sap; + int n_errors = 0; + int n_bits_total = 0; + uint16_t ra11; + uint8_t ra; + int rc; + + /* TSC (Training Sequence Code) is an optional parameter of the UL burst + * indication. We need this information in order to decide whether an + * Access Burst is 11-bit encoded or not (see OS#1854). If this information + * is absent, we try to correlate the received synch. sequence with the + * known ones (3GPP TS 05.02, section 5.2.7), and fall-back to the default + * TS0 if it fails. */ + enum rach_synch_seq_t synch_seq = RACH_SYNCH_SEQ_TS0; + int best_score = 127 * RACH_SYNCH_SEQ_LEN; + + /* If logical channel is not either of RACH, PDTCH or PTCCH, this is a + * handover Access Burst, which is always encoded as 8-bit and shall + * contain the generic training sequence (TS0). */ + if (chan == TRXC_RACH || chan == TRXC_PDTCH || chan == TRXC_PTCCH) { + if (bi->flags & TRX_BI_F_TS_INFO) + synch_seq = (enum rach_synch_seq_t) bi->tsc; + else + synch_seq = rach_get_synch_seq((sbit_t *) bi->burst, &best_score); + } + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received%s RACH (%s): rssi=%d toa256=%d", + (chan != TRXC_RACH) ? " handover" : "", + get_value_string(rach_synch_seq_names, synch_seq), + bi->rssi, bi->toa256); + if (bi->flags & TRX_BI_F_CI_CB) + LOGPC(DL1P, LOGL_DEBUG, " C/I=%d cB", bi->ci_cb); + else + LOGPC(DL1P, LOGL_DEBUG, " match=%.1f%%", + best_score * 100.0 / (127 * RACH_SYNCH_SEQ_LEN)); + LOGPC(DL1P, LOGL_DEBUG, "\n"); + + /* Compose a new L1SAP primitive */ + memset(&l1sap, 0x00, sizeof(l1sap)); + osmo_prim_init(&l1sap.oph, SAP_GSM_PH, PRIM_PH_RACH, PRIM_OP_INDICATION, NULL); + l1sap.u.rach_ind.chan_nr = trx_chan_desc[chan].chan_nr | bi->tn; + l1sap.u.rach_ind.acc_delay = (bi->toa256 >= 0) ? bi->toa256 / 256 : 0; + l1sap.u.rach_ind.acc_delay_256bits = bi->toa256; + l1sap.u.rach_ind.rssi = bi->rssi; + l1sap.u.rach_ind.fn = bi->fn; + + /* Link quality is defined by C/I (Carrier-to-Interference ratio), + * which has optional presence. If it's absent, report the + * minimum acceptable value to pass L1SAP checks. */ + if (bi->flags & TRX_BI_F_CI_CB) + l1sap.u.rach_ind.lqual_cb = bi->ci_cb; + else + l1sap.u.rach_ind.lqual_cb = l1t->trx->bts->min_qual_rach; + + /* Decode RACH depending on its synch. sequence */ + switch (synch_seq) { + case RACH_SYNCH_SEQ_TS1: + case RACH_SYNCH_SEQ_TS2: + rc = gsm0503_rach_ext_decode_ber(&ra11, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, + l1t->trx->bts->bsic, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received bad Access Burst\n"); + return 0; + } + + if (synch_seq == RACH_SYNCH_SEQ_TS1) + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_1; + else + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_2; + + l1sap.u.rach_ind.is_11bit = 1; + l1sap.u.rach_ind.ra = ra11; + break; + + case RACH_SYNCH_SEQ_TS0: + default: + /* Fall-back to the default TS0 if needed */ + if (synch_seq != RACH_SYNCH_SEQ_TS0) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Falling-back to the default TS0\n"); + synch_seq = RACH_SYNCH_SEQ_TS0; + } + + rc = gsm0503_rach_decode_ber(&ra, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, + l1t->trx->bts->bsic, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received bad Access Burst\n"); + return 0; + } + + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0; + l1sap.u.rach_ind.is_11bit = 0; + l1sap.u.rach_ind.ra = ra; + break; + } + + l1sap.u.rach_ind.ber10k = compute_ber10k(n_bits_total, n_errors); + + /* forward primitive */ + l1sap_up(l1t->trx, &l1sap); + + return 0; +} diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c new file mode 100644 index 0000000..fb11f45 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -0,0 +1,570 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 +#include + +/*! \brief a single TCH/F burst was received by the PHY, process it */ +int rx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint8_t *mask = &chan_state->ul_mask; + uint8_t rsl_cmode = chan_state->rsl_cmode; + uint8_t tch_mode = chan_state->tch_mode; + uint8_t tch_data[128]; /* just to be safe */ + int rc, amr = 0; + int n_errors = 0; + int n_bits_total = 0; + bool bfi_flag = false; + struct gsm_lchan *lchan = + get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); + unsigned int fn_begin; + uint16_t ber10k; + uint8_t is_sub = 0; + uint8_t ft; + + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) + return rx_rach_fn(l1t, chan, bid, bi); + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received TCH/F, bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 928); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst */ + if (bid == 0) { + memset(*bursts_p + 464, 0, 464); + *mask = 0x0; + } + + /* update mask */ + *mask |= (1 << bid); + + /* copy burst to end of buffer of 8 bursts */ + burst = *bursts_p + bid * 116 + 464; + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 116); + + /* wait until complete set of bursts */ + if (bid != 3) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0xf) != 0xf) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received incomplete frame (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + } + *mask = 0x0; + + /* decode + * also shift buffer by 4 bursts for interleaving */ + switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 + : tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR */ + rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 0, &n_errors, &n_bits_total); + if (rc >= 0) + lchan_set_marker(osmo_fr_check_sid(tch_data, rc), lchan); /* DTXu */ + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 1, &n_errors, &n_bits_total); + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + /* the first FN 0,8,17 defines that CMI is included in frame, + * the first FN 4,13,21 defines that CMR is included in frame. + * NOTE: A frame ends 7 FN after start. + */ + + /* The AFS_ONSET frame itself does not result into an RTP frame + * since it only contains a recognition pattern that marks the + * end of the DTX interval. To mark the end of the DTX interval + * in the RTP stream as well, the voice frame after the + * AFS_ONSET frame is used. */ + if (chan_state->amr_last_dtx == AFS_ONSET) + lchan_set_marker(false, lchan); + + /* we store tch_data + 2 header bytes, the amr variable set to + * 2 will allow us to skip the first 2 bytes in case we did + * receive an FACCH frame instead of a voice frame (we do not + * know this before we actually decode the frame) */ + amr = 2; + rc = gsm0503_tch_afs_decode_dtx(tch_data + amr, *bursts_p, + (((bi->fn + 26 - 7) % 26) >> 2) & 1, chan_state->codec, + chan_state->codecs, &chan_state->ul_ft, + &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); + + /* Tag all frames that are not regular AMR voice frames as + * SUB-Frames */ + if (chan_state->amr_last_dtx != AMR_OTHER) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received AMR SID frame: %s\n", + gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); + is_sub = 1; + } + + /* The occurrence of the following frames indicates that we + * are either at the beginning or in the middle of a talk + * spurt. We update the SID status accordingly, but we do + * not want the marker to be set, since this must only + * happen when the talk spurt is over (see above) */ + switch (chan_state->amr_last_dtx) { + case AFS_SID_FIRST: + case AFS_SID_UPDATE: + case AFS_SID_UPDATE_CN: + lchan_set_marker(true, lchan); + lchan->rtp_tx_marker = false; + break; + } + + if (rc) + trx_loop_amr_input(l1t, + trx_chan_desc[chan].chan_nr | bi->tn, chan_state, + n_errors, n_bits_total); + /* only good speech frames get rtp header */ + if (rc != GSM_MACBLOCK_LEN && rc >= 4) { + if (chan_state->amr_last_dtx == AMR_OTHER) { + ft = chan_state->codec[chan_state->ul_cmr]; + } else { + /* SID frames will always get Frame Type Index 8 (AMR_SID) */ + ft = AMR_SID; + } + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->ul_cmr], + ft, AMR_GOOD); + } + + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", + tch_mode); + return -EINVAL; + } + memcpy(*bursts_p, *bursts_p + 464, 464); + + /* Check if the frame is bad */ + if (rc < 0) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + bfi_flag = true; + } else if (rc < 4) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u) with invalid codec mode %d\n", + bi->fn % l1ts->mf_period, l1ts->mf_period, rc); + bfi_flag = true; + } + + if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) + osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); + + ber10k = compute_ber10k(n_bits_total, n_errors); + if (bfi_flag) + goto bfi; + + /* FACCH */ + if (rc == GSM_MACBLOCK_LEN) { + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_F); + _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, + tch_data + amr, GSM_MACBLOCK_LEN, + /* FIXME: AVG RSSI and ToA256 */ + bi->rssi, bi->toa256, + 0 /* FIXME: AVG C/I */, + ber10k, PRES_INFO_UNKNOWN); +bfi: + if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { + /* indicate bad frame */ + if (lchan->tch.dtx.ul_sid) { + /* DTXu: pause in progress. Push empty payload to upper layers */ + rc = 0; + goto compose_l1sap; + } + + /* If there is an ECU active on this channel, use its output */ + if (lchan->ecu_state) { + rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); + if (rc >= 0) /* Otherwise we send a BFI */ + goto compose_l1sap; + } + + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR */ + memset(tch_data, 0, GSM_FR_BYTES); + tch_data[0] = 0xd0; + rc = GSM_FR_BYTES; + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + memset(tch_data, 0, GSM_EFR_BYTES); + tch_data[0] = 0xc0; + rc = GSM_EFR_BYTES; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->dl_cmr], + chan_state->codec[chan_state->dl_ft], + AMR_BAD); + if (rc < 2) { + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "Failed to encode AMR_BAD frame (rc=%d), " + "not sending BFI\n", rc); + return -EINVAL; + } + memset(tch_data + 2, 0, rc - 2); + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", tch_mode); + return -EINVAL; + } + } + } + + if (rsl_cmode != RSL_CMOD_SPD_SPEECH) + return 0; + + /* TCH or BFI */ +compose_l1sap: + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_F); + return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, + tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); +} + +/* common section for generation of TCH bursts (TCH/H and TCH/F). + * FIXME: this function is over-complicated, refactor / get rid of it. */ +void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, + struct msgb **_msg_tch, struct msgb **_msg_facch) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct msgb *msg1, *msg2, *msg_tch = NULL, *msg_facch = NULL; + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + uint8_t rsl_cmode = chan_state->rsl_cmode; + uint8_t tch_mode = chan_state->tch_mode; + struct osmo_phsap_prim *l1sap; + int32_t *toa256_sum = &chan_state->toa256_sum; + uint8_t *toa_num = &chan_state->toa_num; + int16_t toa256; + + /* handle loss detection of received TCH frames */ + if (rsl_cmode == RSL_CMOD_SPD_SPEECH + && ++(chan_state->lost_frames) > 5) { + uint8_t tch_data[GSM_FR_BYTES]; + int len; + + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, + "Missing TCH bursts detected, sending BFI\n"); + + /* indicate bad frame */ + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR / HR */ + if (chan != TRXC_TCHF) { /* HR */ + tch_data[0] = 0x70; /* F = 0, FT = 111 */ + memset(tch_data + 1, 0, 14); + len = 15; + break; + } + memset(tch_data, 0, GSM_FR_BYTES); + len = GSM_FR_BYTES; + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + if (chan != TRXC_TCHF) + goto inval_mode1; + memset(tch_data, 0, GSM_EFR_BYTES); + len = GSM_EFR_BYTES; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + len = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->dl_cmr], + chan_state->codec[chan_state->dl_ft], AMR_BAD); + if (len < 2) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, + "Failed to encode AMR_BAD frame (rc=%d), " + "not sending BFI\n", len); + return; + } + memset(tch_data + 2, 0, len - 2); + break; + default: +inval_mode1: + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); + len = 0; + } + + if (len) { + if (*toa_num == 0) + toa256 = 0; + else + toa256 = *toa256_sum / *toa_num; + + /* Note: RSSI is set to 0 to indicate to the higher + * layers that this is a faked tch_ind */ + _sched_compose_tch_ind(l1t, tn, fn, chan, tch_data, len, toa256, 10000, 0, 0); + } + } + + /* get frame and unlink from queue */ + msg1 = _sched_dequeue_prim(l1t, tn, fn, chan); + msg2 = _sched_dequeue_prim(l1t, tn, fn, chan); + if (msg1) { + l1sap = msgb_l1sap_prim(msg1); + if (l1sap->oph.primitive == PRIM_TCH) { + msg_tch = msg1; + if (msg2) { + l1sap = msgb_l1sap_prim(msg2); + if (l1sap->oph.primitive == PRIM_TCH) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, + "TCH twice, please FIX!\n"); + msgb_free(msg2); + } else + msg_facch = msg2; + } + } else { + msg_facch = msg1; + if (msg2) { + l1sap = msgb_l1sap_prim(msg2); + if (l1sap->oph.primitive != PRIM_TCH) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, + "FACCH twice, please FIX!\n"); + msgb_free(msg2); + } else + msg_tch = msg2; + } + } + } else if (msg2) { + l1sap = msgb_l1sap_prim(msg2); + if (l1sap->oph.primitive == PRIM_TCH) + msg_tch = msg2; + else + msg_facch = msg2; + } + + /* check validity of message */ + if (msg_facch && msgb_l2len(msg_facch) != GSM_MACBLOCK_LEN) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " + "(len=%d)\n", msgb_l2len(msg_facch)); + /* free message */ + msgb_free(msg_facch); + msg_facch = NULL; + } + + /* check validity of message, get AMR ft and cmr */ + if (!msg_facch && msg_tch) { + int len; + uint8_t cmr_codec; + int cmr, ft, i; + enum osmo_amr_type ft_codec; + enum osmo_amr_quality bfi; + int8_t sti, cmi; + + if (rsl_cmode != RSL_CMOD_SPD_SPEECH) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Dropping speech frame, " + "because we are not in speech mode\n"); + goto free_bad_msg; + } + + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR / HR */ + if (chan != TRXC_TCHF) /* HR */ + len = 15; + else + len = GSM_FR_BYTES; + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + if (chan != TRXC_TCHF) + goto inval_mode2; + len = GSM_EFR_BYTES; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + len = osmo_amr_rtp_dec(msg_tch->l2h, msgb_l2len(msg_tch), + &cmr_codec, &cmi, &ft_codec, + &bfi, &sti); + cmr = -1; + ft = -1; + for (i = 0; i < chan_state->codecs; i++) { + if (chan_state->codec[i] == cmr_codec) + cmr = i; + if (chan_state->codec[i] == ft_codec) + ft = i; + } + if (cmr >= 0) { /* new request */ + chan_state->dl_cmr = cmr; + /* disable AMR loop */ + trx_loop_amr_set(chan_state, 0); + } else { + /* enable AMR loop */ + trx_loop_amr_set(chan_state, 1); + } + if (ft < 0) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, + "Codec (FT = %d) of RTP frame not in list\n", ft_codec); + goto free_bad_msg; + } + if (fn_is_codec_mode_request(fn) && chan_state->dl_ft != ft) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Codec (FT = %d) " + " of RTP cannot be changed now, but in next frame\n", ft_codec); + goto free_bad_msg; + } + chan_state->dl_ft = ft; + if (bfi == AMR_BAD) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, + "Transmitting 'bad AMR frame'\n"); + goto free_bad_msg; + } + break; + default: +inval_mode2: + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); + goto free_bad_msg; + } + if (len < 0) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send invalid AMR payload\n"); + goto free_bad_msg; + } + if (msgb_l2len(msg_tch) != len) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send payload with " + "invalid length! (expecting %d, received %d)\n", + len, msgb_l2len(msg_tch)); +free_bad_msg: + /* free message */ + msgb_free(msg_tch); + msg_tch = NULL; + goto send_frame; + } + } + +send_frame: + *_msg_tch = msg_tch; + *_msg_facch = msg_facch; +} + +/* obtain a to-be-transmitted TCH/F (Full Traffic Channel) burst */ +ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct msgb *msg_tch = NULL, *msg_facch = NULL; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + uint8_t tch_mode = chan_state->tch_mode; + ubit_t *burst, **bursts_p = &chan_state->dl_bursts; + static ubit_t bits[GSM_BURST_LEN]; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + + /* BURST BYPASS */ + + /* allocate burst memory, if not already, + * otherwise shift buffer by 4 bursts for interleaving */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 928); + if (!*bursts_p) + return NULL; + } else { + memcpy(*bursts_p, *bursts_p + 464, 464); + memset(*bursts_p + 464, 0, 464); + } + + /* no message at all */ + if (!msg_tch && !msg_facch) { + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + goto send_burst; + } + + /* encode bursts (prioritize FACCH) */ + if (msg_facch) + gsm0503_tch_fr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch), + 1); + else if (tch_mode == GSM48_CMODE_SPEECH_AMR) + /* the first FN 4,13,21 defines that CMI is included in frame, + * the first FN 0,8,17 defines that CMR is included in frame. + */ + gsm0503_tch_afs_encode(*bursts_p, msg_tch->l2h + 2, + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + chan_state->codec, chan_state->codecs, + chan_state->dl_ft, + chan_state->dl_cmr); + else + gsm0503_tch_fr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch), 1); + + /* free message */ + if (msg_tch) + msgb_free(msg_tch); + if (msg_facch) + msgb_free(msg_facch); + +send_burst: + /* compose burst */ + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c new file mode 100644 index 0000000..1895038 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -0,0 +1,408 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 +#include + +/*! \brief a single TCH/H burst was received by the PHY, process it */ +int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint8_t *mask = &chan_state->ul_mask; + uint8_t rsl_cmode = chan_state->rsl_cmode; + uint8_t tch_mode = chan_state->tch_mode; + uint8_t tch_data[128]; /* just to be safe */ + int rc, amr = 0; + int n_errors = 0; + int n_bits_total = 0; + bool bfi_flag = false; + struct gsm_lchan *lchan = + get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); + /* Note on FN-10: If we are at FN 10, we decoded an even aligned + * TCH/FACCH frame, because our burst buffer carries 6 bursts. + * Even FN ending at: 10,11,19,20,2,3 + */ + int fn_is_odd = (((bi->fn + 26 - 10) % 26) >> 2) & 1; + unsigned int fn_begin; + uint16_t ber10k; + uint8_t is_sub = 0; + uint8_t ft; + + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) + return rx_rach_fn(l1t, chan, bid, bi); + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received TCH/H, bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 696); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst */ + if (bid == 0) { + memset(*bursts_p + 464, 0, 232); + *mask = 0x0; + } + + /* update mask */ + *mask |= (1 << bid); + + /* copy burst to end of buffer of 6 bursts */ + burst = *bursts_p + bid * 116 + 464; + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 116); + + /* wait until complete set of bursts */ + if (bid != 1) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0x3) != 0x3) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received incomplete frame (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + } + *mask = 0x0; + + /* skip second of two TCH frames of FACCH was received */ + if (chan_state->ul_ongoing_facch) { + chan_state->ul_ongoing_facch = 0; + memcpy(*bursts_p, *bursts_p + 232, 232); + memcpy(*bursts_p + 232, *bursts_p + 464, 232); + ber10k = 0; + goto bfi; + } + + /* decode + * also shift buffer by 4 bursts for interleaving */ + switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 + : tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* HR or signalling */ + /* Note on FN-10: If we are at FN 10, we decoded an even aligned + * TCH/FACCH frame, because our burst buffer carries 6 bursts. + * Even FN ending at: 10,11,19,20,2,3 + */ + rc = gsm0503_tch_hr_decode(tch_data, *bursts_p, + fn_is_odd, &n_errors, &n_bits_total); + if (rc >= 0) /* DTXu */ + lchan_set_marker(osmo_hr_check_sid(tch_data, rc), lchan); + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + /* the first FN 0,8,17 or 1,9,18 defines that CMI is included + * in frame, the first FN 4,13,21 or 5,14,22 defines that CMR + * is included in frame. + */ + + /* See comment in function rx_tchf_fn() */ + switch (chan_state->amr_last_dtx) { + case AHS_ONSET: + case AHS_SID_FIRST_INH: + case AHS_SID_UPDATE_INH: + lchan_set_marker(false, lchan); + break; + } + + /* See comment in function rx_tchf_fn() */ + amr = 2; + rc = gsm0503_tch_ahs_decode_dtx(tch_data + amr, *bursts_p, + fn_is_odd, fn_is_odd, chan_state->codec, + chan_state->codecs, &chan_state->ul_ft, + &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); + + /* Tag all frames that are not regular AMR voice frames + as SUB-Frames */ + if (chan_state->amr_last_dtx != AMR_OTHER) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received AMR SID frame: %s\n", + gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); + is_sub = 1; + } + + /* See comment in function rx_tchf_fn() */ + switch (chan_state->amr_last_dtx) { + case AHS_SID_FIRST_P1: + case AHS_SID_FIRST_P2: + case AHS_SID_UPDATE: + case AHS_SID_UPDATE_CN: + lchan_set_marker(true, lchan); + lchan->rtp_tx_marker = false; + break; + } + + if (rc) + trx_loop_amr_input(l1t, + trx_chan_desc[chan].chan_nr | bi->tn, chan_state, + n_errors, n_bits_total); + + /* only good speech frames get rtp header */ + if (rc != GSM_MACBLOCK_LEN && rc >= 4) { + if (chan_state->amr_last_dtx == AMR_OTHER) { + ft = chan_state->codec[chan_state->ul_cmr]; + } else { + /* SID frames will always get Frame Type Index 8 (AMR_SID) */ + ft = AMR_SID; + } + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->ul_cmr], + ft, AMR_GOOD); + } + + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", + tch_mode); + return -EINVAL; + } + memcpy(*bursts_p, *bursts_p + 232, 232); + memcpy(*bursts_p + 232, *bursts_p + 464, 232); + ber10k = compute_ber10k(n_bits_total, n_errors); + + + /* Check if the frame is bad */ + if (rc < 0) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + bfi_flag = true; + } else if (rc < 4) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u) with invalid codec mode %d\n", + bi->fn % l1ts->mf_period, l1ts->mf_period, rc); + bfi_flag = true; + } + + if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) + osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); + + if (bfi_flag) + goto bfi; + + /* FACCH */ + if (rc == GSM_MACBLOCK_LEN) { + chan_state->ul_ongoing_facch = 1; + uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); + if (lchan->nr == 0) + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H0); + else + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H1); + _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, + tch_data + amr, GSM_MACBLOCK_LEN, + /* FIXME: AVG both RSSI and ToA */ + bi->rssi, bi->toa256, + 0 /* FIXME: AVG C/I */, + ber10k, PRES_INFO_UNKNOWN); +bfi: + /* FIXME: a FACCH/H frame replaces two speech frames, + * so we actually need to send two bad frame indications! */ + if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { + /* indicate bad frame */ + if (lchan->tch.dtx.ul_sid) { + /* DTXu: pause in progress. Push empty payload to upper layers */ + rc = 0; + goto compose_l1sap; + } + + /* If there is an ECU active on this channel, use its output */ + if (lchan->ecu_state) { + rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); + if (rc >= 0) /* Otherwise we send a BFI */ + goto compose_l1sap; + } + + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* HR */ + tch_data[0] = 0x70; /* F = 0, FT = 111 */ + memset(tch_data + 1, 0, 14); + rc = 15; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->dl_cmr], + chan_state->codec[chan_state->dl_ft], + AMR_BAD); + if (rc < 2) { + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "Failed to encode AMR_BAD frame (rc=%d), " + "not sending BFI\n", rc); + return -EINVAL; + } + memset(tch_data + 2, 0, rc - 2); + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", tch_mode); + return -EINVAL; + } + } + } + + if (rsl_cmode != RSL_CMOD_SPD_SPEECH) + return 0; + +compose_l1sap: + /* TCH or BFI */ + /* Note on FN 19 or 20: If we received the last burst of a frame, + * it actually starts at FN 8 or 9. A burst starting there, overlaps + * with the slot 12, so an extra FN must be subtracted to get correct + * start of frame. + */ + if (lchan->nr == 0) + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H0); + else + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H1); + return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, + tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); +} + +/* common section for generation of TCH bursts (TCH/H and TCH/F). + * FIXME: this function is over-complicated, refactor / get rid of it. */ +extern void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, + struct msgb **_msg_tch, struct msgb **_msg_facch); + +/* obtain a to-be-transmitted TCH/H (Half Traffic Channel) burst */ +ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct msgb *msg_tch = NULL, *msg_facch = NULL; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + uint8_t tch_mode = chan_state->tch_mode; + ubit_t *burst, **bursts_p = &chan_state->dl_bursts; + static ubit_t bits[GSM_BURST_LEN]; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + /* get TCH and/or FACCH */ + tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + + /* check for FACCH alignment */ + if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " + "even frames, please fix RTS!\n"); + msgb_free(msg_facch); + msg_facch = NULL; + } + + /* BURST BYPASS */ + + /* allocate burst memory, if not already, + * otherwise shift buffer by 2 bursts for interleaving */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 696); + if (!*bursts_p) + return NULL; + } else { + memcpy(*bursts_p, *bursts_p + 232, 232); + if (chan_state->dl_ongoing_facch) { + memcpy(*bursts_p + 232, *bursts_p + 464, 232); + memset(*bursts_p + 464, 0, 232); + } else { + memset(*bursts_p + 232, 0, 232); + } + } + + /* no message at all */ + if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + goto send_burst; + } + + /* encode bursts (prioritize FACCH) */ + if (msg_facch) { + gsm0503_tch_hr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch)); + chan_state->dl_ongoing_facch = 1; /* first of two TCH frames */ + } else if (chan_state->dl_ongoing_facch) /* second of two TCH frames */ + chan_state->dl_ongoing_facch = 0; /* we are done with FACCH */ + else if (tch_mode == GSM48_CMODE_SPEECH_AMR) + /* the first FN 4,13,21 or 5,14,22 defines that CMI is included + * in frame, the first FN 0,8,17 or 1,9,18 defines that CMR is + * included in frame. */ + gsm0503_tch_ahs_encode(*bursts_p, msg_tch->l2h + 2, + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + chan_state->codec, chan_state->codecs, + chan_state->dl_ft, + chan_state->dl_cmr); + else + gsm0503_tch_hr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch)); + + /* free message */ + if (msg_tch) + msgb_free(msg_tch); + if (msg_facch) + msgb_free(msg_facch); + +send_burst: + /* compose burst */ + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c new file mode 100644 index 0000000..a16553f --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -0,0 +1,234 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 + +/*! \brief a single (SDCCH/SACCH) burst was received by the PHY, process it */ +int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint32_t *first_fn = &chan_state->ul_first_fn; + uint8_t *mask = &chan_state->ul_mask; + float *rssi_sum = &chan_state->rssi_sum; + uint8_t *rssi_num = &chan_state->rssi_num; + int32_t *toa256_sum = &chan_state->toa256_sum; + uint8_t *toa_num = &chan_state->toa_num; + int32_t *ci_cb_sum = &chan_state->ci_cb_sum; + uint8_t *ci_cb_num = &chan_state->ci_cb_num; + uint8_t l2[GSM_MACBLOCK_LEN], l2_len; + int n_errors = 0; + int n_bits_total = 0; + int16_t lqual_cb; + uint16_t ber10k; + int rc; + + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) + return rx_rach_fn(l1t, chan, bid, bi); + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received Data, bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 464); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst & store frame number of first burst */ + if (bid == 0) { + memset(*bursts_p, 0, 464); + *mask = 0x0; + *first_fn = bi->fn; + *rssi_sum = 0; + *rssi_num = 0; + *toa256_sum = 0; + *toa_num = 0; + *ci_cb_sum = 0; + *ci_cb_num = 0; + } + + /* update mask + RSSI */ + *mask |= (1 << bid); + *rssi_sum += bi->rssi; + (*rssi_num)++; + *toa256_sum += bi->toa256; + (*toa_num)++; + + /* C/I: Carrier-to-Interference ratio (in centiBels) */ + if (bi->flags & TRX_BI_F_CI_CB) { + *ci_cb_sum += bi->ci_cb; + (*ci_cb_num)++; + } + + /* Copy burst to buffer of 4 bursts. If the burst indication contains + * no data, ensure that the buffer does not stay uninitialized */ + burst = *bursts_p + bid * 116; + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 58 * 2); + + /* wait until complete set of bursts */ + if (bid != 3) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0xf) != 0xf) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received incomplete data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + + /* we require first burst to have correct FN */ + if (!(*mask & 0x1)) { + *mask = 0x0; + return 0; + } + } + *mask = 0x0; + + /* decode */ + rc = gsm0503_xcch_decode(l2, *bursts_p, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + l2_len = 0; + } else + l2_len = GSM_MACBLOCK_LEN; + + lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; + ber10k = compute_ber10k(n_bits_total, n_errors); + return _sched_compose_ph_data_ind(l1t, bi->tn, *first_fn, + chan, l2, l2_len, + *rssi_sum / *rssi_num, + *toa256_sum / *toa_num, + lqual_cb, ber10k, + PRES_INFO_UNKNOWN); +} + +/* obtain a to-be-transmitted xCCH (e.g SACCH or SDCCH) burst */ +ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct msgb *msg = NULL; /* make GCC happy */ + ubit_t *burst, **bursts_p = &l1ts->chan_state[chan].dl_bursts; + static ubit_t bits[GSM_BURST_LEN]; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + /* get mac block from queue */ + msg = _sched_dequeue_prim(l1t, tn, fn, chan); + if (msg) + goto got_msg; + + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + +no_msg: + /* free burst memory */ + if (*bursts_p) { + talloc_free(*bursts_p); + *bursts_p = NULL; + } + return NULL; + +got_msg: + /* check validity of message */ + if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " + "(len=%d)\n", msgb_l2len(msg)); + /* free message */ + msgb_free(msg); + goto no_msg; + } + + /* BURST BYPASS */ + + /* handle loss detection of SACCH */ + if (L1SAP_IS_LINK_SACCH(trx_chan_desc[chan].link_id)) { + /* count and send BFI */ + if (++(l1ts->chan_state[chan].lost_frames) > 1) { + /* TODO: Should we pass old TOA here? Otherwise we risk + * unnecessary decreasing TA */ + + /* Note: RSSI is set to 0 to indicate to the higher + * layers that this is a faked ph_data_ind */ + _sched_compose_ph_data_ind(l1t, tn, 0, chan, NULL, 0, + 0, 0, 0, 10000, + PRES_INFO_INVALID); + } + } + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 464); + if (!*bursts_p) + return NULL; + } + + /* encode bursts */ + gsm0503_xcch_encode(*bursts_p, msg->l2h); + + /* free message */ + msgb_free(msg); + +send_burst: + /* compose burst */ + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_utils.h b/src/osmo-bts-trx/sched_utils.h new file mode 100644 index 0000000..4a1aaf5 --- /dev/null +++ b/src/osmo-bts-trx/sched_utils.h @@ -0,0 +1,42 @@ +/* Auxiliary scheduler utilities. + * + * (C) 2017 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 General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include + +extern void *tall_bts_ctx; + +/* Compute the bit error rate in 1/10000 units */ +static inline uint16_t compute_ber10k(int n_bits_total, int n_errors) +{ + if (n_bits_total == 0) + return 10000; + else + return 10000 * n_errors / n_bits_total; +} + +/* determine if the FN is transmitting a CMR (1) or not (0) */ +static inline int fn_is_codec_mode_request(uint32_t fn) +{ + return (((fn + 4) % 26) >> 2) & 1; +} diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 97b590d..4fb0e23 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -32,12 +32,8 @@ #include #include #include -#include -#include #include #include -#include -#include #include @@ -45,33 +41,11 @@ #include #include #include -#include #include #include -#include #include "l1_if.h" #include "trx_if.h" -#include "loops.h" - -extern void *tall_bts_ctx; - -/* Maximum size of a EGPRS message in bytes */ -#define EGPRS_0503_MAX_BYTES 155 - - -/* Compute the bit error rate in 1/10000 units */ -static inline uint16_t compute_ber10k(int n_bits_total, int n_errors) -{ - if (n_bits_total == 0) - return 10000; - else - return 10000 * n_errors / n_bits_total; -} - -/* - * TX on downlink - */ /* an IDLE burst returns nothing. on C0 it is replaced by dummy burst */ ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, @@ -85,1542 +59,6 @@ return NULL; } -/* obtain a to-be-transmitted FCCH (frequency correction channel) burst */ -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting FCCH\n"); - - if (nbits) - *nbits = GSM_BURST_LEN; - - /* BURST BYPASS */ - - return (ubit_t *) _sched_fcch_burst; -} - -/* obtain a to-be-transmitted SCH (synchronization channel) burst */ -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - static ubit_t bits[GSM_BURST_LEN], burst[78]; - uint8_t sb_info[4]; - struct gsm_time t; - uint8_t t3p, bsic; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting SCH\n"); - - /* BURST BYPASS */ - - /* create SB info from GSM time and BSIC */ - gsm_fn2gsmtime(&t, fn); - t3p = t.t3 / 10; - bsic = l1t->trx->bts->bsic; - sb_info[0] = - ((bsic & 0x3f) << 2) | - ((t.t1 & 0x600) >> 9); - sb_info[1] = - ((t.t1 & 0x1fe) >> 1); - sb_info[2] = - ((t.t1 & 0x001) << 7) | - ((t.t2 & 0x1f) << 2) | - ((t3p & 0x6) >> 1); - sb_info[3] = - (t3p & 0x1); - - /* encode bursts */ - gsm0503_sch_encode(burst, sb_info); - - /* compose burst */ - memset(bits, 0, 3); - memcpy(bits + 3, burst, 39); - memcpy(bits + 42, _sched_sch_train, 64); - memcpy(bits + 106, burst + 39, 39); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - return bits; -} - -/* obtain a to-be-transmitted data (SACCH/SDCCH) burst */ -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; - struct msgb *msg = NULL; /* make GCC happy */ - ubit_t *burst, **bursts_p = &l1ts->chan_state[chan].dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); - if (msg) - goto got_msg; - - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); - -no_msg: - /* free burst memory */ - if (*bursts_p) { - talloc_free(*bursts_p); - *bursts_p = NULL; - } - return NULL; - -got_msg: - /* check validity of message */ - if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " - "(len=%d)\n", msgb_l2len(msg)); - /* free message */ - msgb_free(msg); - goto no_msg; - } - - /* BURST BYPASS */ - - /* handle loss detection of SACCH */ - if (L1SAP_IS_LINK_SACCH(trx_chan_desc[chan].link_id)) { - /* count and send BFI */ - if (++(l1ts->chan_state[chan].lost_frames) > 1) { - /* TODO: Should we pass old TOA here? Otherwise we risk - * unnecessary decreasing TA */ - - /* Note: RSSI is set to 0 to indicate to the higher - * layers that this is a faked ph_data_ind */ - _sched_compose_ph_data_ind(l1t, tn, 0, chan, NULL, 0, - 0, 0, 0, 10000, - PRES_INFO_INVALID); - } - } - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 464); - if (!*bursts_p) - return NULL; - } - - /* encode bursts */ - gsm0503_xcch_encode(*bursts_p, msg->l2h); - - /* free message */ - msgb_free(msg); - -send_burst: - /* compose burst */ - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - -/* obtain a to-be-transmitted PDTCH (packet data) burst */ -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[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; - static ubit_t bits[EGPRS_BURST_LEN]; - int rc = 0; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); - if (msg) - goto got_msg; - - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); - -no_msg: - /* free burst memory */ - if (*bursts_p) { - talloc_free(*bursts_p); - *bursts_p = NULL; - } - return NULL; - -got_msg: - /* BURST BYPASS */ - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, - GSM0503_EGPRS_BURSTS_NBITS); - if (!*bursts_p) - return NULL; - } - - /* encode bursts */ - rc = gsm0503_pdtch_egprs_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); - if (rc < 0) - rc = gsm0503_pdtch_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); - - /* check validity of message */ - if (rc < 0) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim invalid length, please FIX! " - "(len=%ld)\n", (long)(msg->tail - msg->l2h)); - /* free message */ - msgb_free(msg); - goto no_msg; - } else if (rc == GSM0503_EGPRS_BURSTS_NBITS) { - *burst_type = TRX_BURST_8PSK; - } else { - *burst_type = TRX_BURST_GMSK; - } - - /* free message */ - msgb_free(msg); - -send_burst: - /* compose burst */ - if (*burst_type == TRX_BURST_8PSK) { - burst = *bursts_p + bid * 348; - memset(bits, 1, 9); - memcpy(bits + 9, burst, 174); - memcpy(bits + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); - memcpy(bits + 261, burst + 174, 174); - memset(bits + 435, 1, 9); - - if (nbits) - *nbits = EGPRS_BURST_LEN; - } else { - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - } - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - -/* determine if the FN is transmitting a CMR (1) or not (0) */ -static inline int fn_is_codec_mode_request(uint32_t fn) -{ - return (((fn + 4) % 26) >> 2) & 1; -} - -/* common section for generation of TCH bursts (TCH/H and TCH/F) */ -static void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, struct msgb **_msg_tch, - struct msgb **_msg_facch) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct msgb *msg1, *msg2, *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - uint8_t rsl_cmode = chan_state->rsl_cmode; - uint8_t tch_mode = chan_state->tch_mode; - struct osmo_phsap_prim *l1sap; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int16_t toa256; - - /* handle loss detection of received TCH frames */ - if (rsl_cmode == RSL_CMOD_SPD_SPEECH - && ++(chan_state->lost_frames) > 5) { - uint8_t tch_data[GSM_FR_BYTES]; - int len; - - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, - "Missing TCH bursts detected, sending BFI\n"); - - /* indicate bad frame */ - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR / HR */ - if (chan != TRXC_TCHF) { /* HR */ - tch_data[0] = 0x70; /* F = 0, FT = 111 */ - memset(tch_data + 1, 0, 14); - len = 15; - break; - } - memset(tch_data, 0, GSM_FR_BYTES); - len = GSM_FR_BYTES; - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - if (chan != TRXC_TCHF) - goto inval_mode1; - memset(tch_data, 0, GSM_EFR_BYTES); - len = GSM_EFR_BYTES; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - len = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->dl_cmr], - chan_state->codec[chan_state->dl_ft], AMR_BAD); - if (len < 2) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, - "Failed to encode AMR_BAD frame (rc=%d), " - "not sending BFI\n", len); - return; - } - memset(tch_data + 2, 0, len - 2); - break; - default: -inval_mode1: - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); - len = 0; - } - - if (len) { - if (*toa_num == 0) - toa256 = 0; - else - toa256 = *toa256_sum / *toa_num; - - /* Note: RSSI is set to 0 to indicate to the higher - * layers that this is a faked tch_ind */ - _sched_compose_tch_ind(l1t, tn, fn, chan, tch_data, len, toa256, 10000, 0, 0); - } - } - - /* get frame and unlink from queue */ - msg1 = _sched_dequeue_prim(l1t, tn, fn, chan); - msg2 = _sched_dequeue_prim(l1t, tn, fn, chan); - if (msg1) { - l1sap = msgb_l1sap_prim(msg1); - if (l1sap->oph.primitive == PRIM_TCH) { - msg_tch = msg1; - if (msg2) { - l1sap = msgb_l1sap_prim(msg2); - if (l1sap->oph.primitive == PRIM_TCH) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, - "TCH twice, please FIX!\n"); - msgb_free(msg2); - } else - msg_facch = msg2; - } - } else { - msg_facch = msg1; - if (msg2) { - l1sap = msgb_l1sap_prim(msg2); - if (l1sap->oph.primitive != PRIM_TCH) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, - "FACCH twice, please FIX!\n"); - msgb_free(msg2); - } else - msg_tch = msg2; - } - } - } else if (msg2) { - l1sap = msgb_l1sap_prim(msg2); - if (l1sap->oph.primitive == PRIM_TCH) - msg_tch = msg2; - else - msg_facch = msg2; - } - - /* check validity of message */ - if (msg_facch && msgb_l2len(msg_facch) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " - "(len=%d)\n", msgb_l2len(msg_facch)); - /* free message */ - msgb_free(msg_facch); - msg_facch = NULL; - } - - /* check validity of message, get AMR ft and cmr */ - if (!msg_facch && msg_tch) { - int len; - uint8_t cmr_codec; - int cmr, ft, i; - enum osmo_amr_type ft_codec; - enum osmo_amr_quality bfi; - int8_t sti, cmi; - - if (rsl_cmode != RSL_CMOD_SPD_SPEECH) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Dropping speech frame, " - "because we are not in speech mode\n"); - goto free_bad_msg; - } - - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR / HR */ - if (chan != TRXC_TCHF) /* HR */ - len = 15; - else - len = GSM_FR_BYTES; - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - if (chan != TRXC_TCHF) - goto inval_mode2; - len = GSM_EFR_BYTES; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - len = osmo_amr_rtp_dec(msg_tch->l2h, msgb_l2len(msg_tch), - &cmr_codec, &cmi, &ft_codec, - &bfi, &sti); - cmr = -1; - ft = -1; - for (i = 0; i < chan_state->codecs; i++) { - if (chan_state->codec[i] == cmr_codec) - cmr = i; - if (chan_state->codec[i] == ft_codec) - ft = i; - } - if (cmr >= 0) { /* new request */ - chan_state->dl_cmr = cmr; - /* disable AMR loop */ - trx_loop_amr_set(chan_state, 0); - } else { - /* enable AMR loop */ - trx_loop_amr_set(chan_state, 1); - } - if (ft < 0) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, - "Codec (FT = %d) of RTP frame not in list\n", ft_codec); - goto free_bad_msg; - } - if (fn_is_codec_mode_request(fn) && chan_state->dl_ft != ft) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Codec (FT = %d) " - " of RTP cannot be changed now, but in next frame\n", ft_codec); - goto free_bad_msg; - } - chan_state->dl_ft = ft; - if (bfi == AMR_BAD) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, - "Transmitting 'bad AMR frame'\n"); - goto free_bad_msg; - } - break; - default: -inval_mode2: - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); - goto free_bad_msg; - } - if (len < 0) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send invalid AMR payload\n"); - goto free_bad_msg; - } - if (msgb_l2len(msg_tch) != len) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send payload with " - "invalid length! (expecting %d, received %d)\n", - len, msgb_l2len(msg_tch)); -free_bad_msg: - /* free message */ - msgb_free(msg_tch); - msg_tch = NULL; - goto send_frame; - } - } - -send_frame: - *_msg_tch = msg_tch; - *_msg_facch = msg_facch; -} - -/* obtain a to-be-transmitted TCH/F (Full Traffic Channel) burst */ -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - uint8_t tch_mode = chan_state->tch_mode; - ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); - - /* BURST BYPASS */ - - /* allocate burst memory, if not already, - * otherwise shift buffer by 4 bursts for interleaving */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 928); - if (!*bursts_p) - return NULL; - } else { - memcpy(*bursts_p, *bursts_p + 464, 464); - memset(*bursts_p + 464, 0, 464); - } - - /* no message at all */ - if (!msg_tch && !msg_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); - goto send_burst; - } - - /* encode bursts (prioritize FACCH) */ - if (msg_facch) - gsm0503_tch_fr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch), - 1); - else if (tch_mode == GSM48_CMODE_SPEECH_AMR) - /* the first FN 4,13,21 defines that CMI is included in frame, - * the first FN 0,8,17 defines that CMR is included in frame. - */ - gsm0503_tch_afs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), - chan_state->codec, chan_state->codecs, - chan_state->dl_ft, - chan_state->dl_cmr); - else - gsm0503_tch_fr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch), 1); - - /* free message */ - if (msg_tch) - msgb_free(msg_tch); - if (msg_facch) - msgb_free(msg_facch); - -send_burst: - /* compose burst */ - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - -/* obtain a to-be-transmitted TCH/H (Half Traffic Channel) burst */ -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - uint8_t tch_mode = chan_state->tch_mode; - ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - /* get TCH and/or FACCH */ - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); - - /* check for FACCH alignment */ - if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " - "even frames, please fix RTS!\n"); - msgb_free(msg_facch); - msg_facch = NULL; - } - - /* BURST BYPASS */ - - /* allocate burst memory, if not already, - * otherwise shift buffer by 2 bursts for interleaving */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 696); - if (!*bursts_p) - return NULL; - } else { - memcpy(*bursts_p, *bursts_p + 232, 232); - if (chan_state->dl_ongoing_facch) { - memcpy(*bursts_p + 232, *bursts_p + 464, 232); - memset(*bursts_p + 464, 0, 232); - } else { - memset(*bursts_p + 232, 0, 232); - } - } - - /* no message at all */ - if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); - goto send_burst; - } - - /* encode bursts (prioritize FACCH) */ - if (msg_facch) { - gsm0503_tch_hr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch)); - chan_state->dl_ongoing_facch = 1; /* first of two TCH frames */ - } else if (chan_state->dl_ongoing_facch) /* second of two TCH frames */ - chan_state->dl_ongoing_facch = 0; /* we are done with FACCH */ - else if (tch_mode == GSM48_CMODE_SPEECH_AMR) - /* the first FN 4,13,21 or 5,14,22 defines that CMI is included - * in frame, the first FN 0,8,17 or 1,9,18 defines that CMR is - * included in frame. */ - gsm0503_tch_ahs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), - chan_state->codec, chan_state->codecs, - chan_state->dl_ft, - chan_state->dl_cmr); - else - gsm0503_tch_hr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch)); - - /* free message */ - if (msg_tch) - msgb_free(msg_tch); - if (msg_facch) - msgb_free(msg_facch); - -send_burst: - /* compose burst */ - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - - -/* - * RX on uplink (indication to upper layer) - */ - -/* 3GPP TS 05.02, section 5.2.7 */ -#define RACH_EXT_TAIL_LEN 8 -#define RACH_SYNCH_SEQ_LEN 41 - -enum rach_synch_seq_t { - RACH_SYNCH_SEQ_UNKNOWN = -1, - RACH_SYNCH_SEQ_TS0, /* GSM, GMSK (default) */ - RACH_SYNCH_SEQ_TS1, /* EGPRS, 8-PSK */ - RACH_SYNCH_SEQ_TS2, /* EGPRS, GMSK */ - RACH_SYNCH_SEQ_NUM -}; - -static struct value_string rach_synch_seq_names[] = { - { RACH_SYNCH_SEQ_UNKNOWN, "UNKNOWN" }, - { RACH_SYNCH_SEQ_TS0, "TS0: GSM, GMSK" }, - { RACH_SYNCH_SEQ_TS1, "TS1: EGPRS, 8-PSK" }, - { RACH_SYNCH_SEQ_TS2, "TS2: EGPRS, GMSK" }, - { 0, NULL }, -}; - -static enum rach_synch_seq_t rach_get_synch_seq(sbit_t *bits, int *best_score) -{ - sbit_t *synch_seq_burst = bits + RACH_EXT_TAIL_LEN; - enum rach_synch_seq_t seq = RACH_SYNCH_SEQ_TS0; - int score[RACH_SYNCH_SEQ_NUM] = { 0 }; - int max_score = INT_MIN; - int i, j; - - /* 3GPP TS 05.02, section 5.2.7 "Access burst (AB)", synch. sequence bits */ - static const char synch_seq_ref[RACH_SYNCH_SEQ_NUM][RACH_SYNCH_SEQ_LEN] = { - [RACH_SYNCH_SEQ_TS0] = "01001011011111111001100110101010001111000", - [RACH_SYNCH_SEQ_TS1] = "01010100111110001000011000101111001001101", - [RACH_SYNCH_SEQ_TS2] = "11101111001001110101011000001101101110111", - }; - - /* Get a multiplier for j-th bit of i-th synch. sequence */ -#define RACH_SYNCH_SEQ_MULT \ - (synch_seq_ref[i][j] == '1' ? -1 : 1) - - /* For each synch. sequence, count the bit match score. Since we deal with - * soft-bits (-127...127), we sum the absolute values of matching ones, - * and subtract the absolute values of different ones, so the resulting - * score is more accurate than it could be with hard-bits. */ - for (i = 0; i < RACH_SYNCH_SEQ_NUM; i++) { - for (j = 0; j < RACH_SYNCH_SEQ_LEN; j++) - score[i] += RACH_SYNCH_SEQ_MULT * synch_seq_burst[j]; - - /* Keep the maximum value updated */ - if (score[i] > max_score) { - max_score = score[i]; - seq = i; - } - } - - /* Calculate an approximate level of our confidence */ - if (best_score != NULL) - *best_score = max_score; - - /* At least 1/3 of a synch. sequence shall match */ - if (max_score < (127 * RACH_SYNCH_SEQ_LEN / 3)) - return RACH_SYNCH_SEQ_UNKNOWN; - - return seq; -} - -int rx_rach_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct osmo_phsap_prim l1sap; - int n_errors = 0; - int n_bits_total = 0; - uint16_t ra11; - uint8_t ra; - int rc; - - /* TSC (Training Sequence Code) is an optional parameter of the UL burst - * indication. We need this information in order to decide whether an - * Access Burst is 11-bit encoded or not (see OS#1854). If this information - * is absent, we try to correlate the received synch. sequence with the - * known ones (3GPP TS 05.02, section 5.2.7), and fall-back to the default - * TS0 if it fails. */ - enum rach_synch_seq_t synch_seq = RACH_SYNCH_SEQ_TS0; - int best_score = 127 * RACH_SYNCH_SEQ_LEN; - - /* If logical channel is not either of RACH, PDTCH or PTCCH, this is a - * handover Access Burst, which is always encoded as 8-bit and shall - * contain the generic training sequence (TS0). */ - if (chan == TRXC_RACH || chan == TRXC_PDTCH || chan == TRXC_PTCCH) { - if (bi->flags & TRX_BI_F_TS_INFO) - synch_seq = (enum rach_synch_seq_t) bi->tsc; - else - synch_seq = rach_get_synch_seq((sbit_t *) bi->burst, &best_score); - } - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received%s RACH (%s): rssi=%d toa256=%d", - (chan != TRXC_RACH) ? " handover" : "", - get_value_string(rach_synch_seq_names, synch_seq), - bi->rssi, bi->toa256); - if (bi->flags & TRX_BI_F_CI_CB) - LOGPC(DL1P, LOGL_DEBUG, " C/I=%d cB", bi->ci_cb); - else - LOGPC(DL1P, LOGL_DEBUG, " match=%.1f%%", - best_score * 100.0 / (127 * RACH_SYNCH_SEQ_LEN)); - LOGPC(DL1P, LOGL_DEBUG, "\n"); - - /* Compose a new L1SAP primitive */ - memset(&l1sap, 0x00, sizeof(l1sap)); - osmo_prim_init(&l1sap.oph, SAP_GSM_PH, PRIM_PH_RACH, PRIM_OP_INDICATION, NULL); - l1sap.u.rach_ind.chan_nr = trx_chan_desc[chan].chan_nr | bi->tn; - l1sap.u.rach_ind.acc_delay = (bi->toa256 >= 0) ? bi->toa256 / 256 : 0; - l1sap.u.rach_ind.acc_delay_256bits = bi->toa256; - l1sap.u.rach_ind.rssi = bi->rssi; - l1sap.u.rach_ind.fn = bi->fn; - - /* Link quality is defined by C/I (Carrier-to-Interference ratio), - * which has optional presence. If it's absent, report the - * minimum acceptable value to pass L1SAP checks. */ - if (bi->flags & TRX_BI_F_CI_CB) - l1sap.u.rach_ind.lqual_cb = bi->ci_cb; - else - l1sap.u.rach_ind.lqual_cb = l1t->trx->bts->min_qual_rach; - - /* Decode RACH depending on its synch. sequence */ - switch (synch_seq) { - case RACH_SYNCH_SEQ_TS1: - case RACH_SYNCH_SEQ_TS2: - rc = gsm0503_rach_ext_decode_ber(&ra11, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, - l1t->trx->bts->bsic, &n_errors, &n_bits_total); - if (rc) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received bad Access Burst\n"); - return 0; - } - - if (synch_seq == RACH_SYNCH_SEQ_TS1) - l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_1; - else - l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_2; - - l1sap.u.rach_ind.is_11bit = 1; - l1sap.u.rach_ind.ra = ra11; - break; - - case RACH_SYNCH_SEQ_TS0: - default: - /* Fall-back to the default TS0 if needed */ - if (synch_seq != RACH_SYNCH_SEQ_TS0) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Falling-back to the default TS0\n"); - synch_seq = RACH_SYNCH_SEQ_TS0; - } - - rc = gsm0503_rach_decode_ber(&ra, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, - l1t->trx->bts->bsic, &n_errors, &n_bits_total); - if (rc) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received bad Access Burst\n"); - return 0; - } - - l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0; - l1sap.u.rach_ind.is_11bit = 0; - l1sap.u.rach_ind.ra = ra; - break; - } - - l1sap.u.rach_ind.ber10k = compute_ber10k(n_bits_total, n_errors); - - /* forward primitive */ - l1sap_up(l1t->trx, &l1sap); - - return 0; -} - -/*! \brief a single (SDCCH/SACCH) burst was received by the PHY, process it */ -int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint32_t *first_fn = &chan_state->ul_first_fn; - uint8_t *mask = &chan_state->ul_mask; - float *rssi_sum = &chan_state->rssi_sum; - uint8_t *rssi_num = &chan_state->rssi_num; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int32_t *ci_cb_sum = &chan_state->ci_cb_sum; - uint8_t *ci_cb_num = &chan_state->ci_cb_num; - uint8_t l2[GSM_MACBLOCK_LEN], l2_len; - int n_errors = 0; - int n_bits_total = 0; - int16_t lqual_cb; - uint16_t ber10k; - int rc; - - /* If handover RACH detection is turned on, treat this burst as an Access Burst. - * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ - if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) - return rx_rach_fn(l1t, chan, bid, bi); - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received Data, bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 464); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst & store frame number of first burst */ - if (bid == 0) { - memset(*bursts_p, 0, 464); - *mask = 0x0; - *first_fn = bi->fn; - *rssi_sum = 0; - *rssi_num = 0; - *toa256_sum = 0; - *toa_num = 0; - *ci_cb_sum = 0; - *ci_cb_num = 0; - } - - /* update mask + RSSI */ - *mask |= (1 << bid); - *rssi_sum += bi->rssi; - (*rssi_num)++; - *toa256_sum += bi->toa256; - (*toa_num)++; - - /* C/I: Carrier-to-Interference ratio (in centiBels) */ - if (bi->flags & TRX_BI_F_CI_CB) { - *ci_cb_sum += bi->ci_cb; - (*ci_cb_num)++; - } - - /* Copy burst to buffer of 4 bursts. If the burst indication contains - * no data, ensure that the buffer does not stay uninitialized */ - burst = *bursts_p + bid * 116; - if (bi->burst_len > 0) { - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - } else - memset(burst, 0, 58 * 2); - - /* wait until complete set of bursts */ - if (bid != 3) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0xf) != 0xf) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received incomplete data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - - /* we require first burst to have correct FN */ - if (!(*mask & 0x1)) { - *mask = 0x0; - return 0; - } - } - *mask = 0x0; - - /* decode */ - rc = gsm0503_xcch_decode(l2, *bursts_p, &n_errors, &n_bits_total); - if (rc) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - l2_len = 0; - } else - l2_len = GSM_MACBLOCK_LEN; - - lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; - ber10k = compute_ber10k(n_bits_total, n_errors); - return _sched_compose_ph_data_ind(l1t, bi->tn, *first_fn, - chan, l2, l2_len, - *rssi_sum / *rssi_num, - *toa256_sum / *toa_num, - lqual_cb, ber10k, - PRES_INFO_UNKNOWN); -} - -/*! \brief a single PDTCH burst was received by the PHY, process it */ -int rx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint32_t *first_fn = &chan_state->ul_first_fn; - uint8_t *mask = &chan_state->ul_mask; - float *rssi_sum = &chan_state->rssi_sum; - uint8_t *rssi_num = &chan_state->rssi_num; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int32_t *ci_cb_sum = &chan_state->ci_cb_sum; - uint8_t *ci_cb_num = &chan_state->ci_cb_num; - uint8_t l2[EGPRS_0503_MAX_BYTES]; - int n_errors = 0; - int n_bursts_bits = 0; - int n_bits_total = 0; - int16_t lqual_cb; - uint16_t ber10k; - int rc; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received PDTCH bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, - GSM0503_EGPRS_BURSTS_NBITS); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst */ - if (bid == 0) { - memset(*bursts_p, 0, GSM0503_EGPRS_BURSTS_NBITS); - *mask = 0x0; - *first_fn = bi->fn; - *rssi_sum = 0; - *rssi_num = 0; - *toa256_sum = 0; - *toa_num = 0; - *ci_cb_sum = 0; - *ci_cb_num = 0; - } - - /* update mask + rssi */ - *mask |= (1 << bid); - *rssi_sum += bi->rssi; - (*rssi_num)++; - *toa256_sum += bi->toa256; - (*toa_num)++; - - /* C/I: Carrier-to-Interference ratio (in centiBels) */ - if (bi->flags & TRX_BI_F_CI_CB) { - *ci_cb_sum += bi->ci_cb; - (*ci_cb_num)++; - } - - /* copy burst to buffer of 4 bursts */ - if (bi->burst_len == EGPRS_BURST_LEN) { - burst = *bursts_p + bid * 348; - memcpy(burst, bi->burst + 9, 174); - memcpy(burst + 174, bi->burst + 261, 174); - n_bursts_bits = GSM0503_EGPRS_BURSTS_NBITS; - } else { - burst = *bursts_p + bid * 116; - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - n_bursts_bits = GSM0503_GPRS_BURSTS_NBITS; - } - - /* wait until complete set of bursts */ - if (bid != 3) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0xf) != 0xf) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received incomplete frame (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - } - *mask = 0x0; - - /* - * Attempt to decode EGPRS bursts first. For 8-PSK EGPRS this is all we - * do. Attempt GPRS decoding on EGPRS failure. If the burst is GPRS, - * then we incur decoding overhead of 31 bits on the Type 3 EGPRS - * header, which is tolerable. - */ - rc = gsm0503_pdtch_egprs_decode(l2, *bursts_p, n_bursts_bits, - NULL, &n_errors, &n_bits_total); - - if ((bi->burst_len == GSM_BURST_LEN) && (rc < 0)) { - rc = gsm0503_pdtch_decode(l2, *bursts_p, NULL, - &n_errors, &n_bits_total); - } - - if (rc <= 0) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received bad PDTCH (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - return 0; - } - - lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; - ber10k = compute_ber10k(n_bits_total, n_errors); - return _sched_compose_ph_data_ind(l1t, bi->tn, - *first_fn, chan, l2, rc, - *rssi_sum / *rssi_num, - *toa256_sum / *toa_num, - lqual_cb, ber10k, - PRES_INFO_BOTH); -} - -/*! \brief a single TCH/F burst was received by the PHY, process it */ -int rx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint8_t *mask = &chan_state->ul_mask; - uint8_t rsl_cmode = chan_state->rsl_cmode; - uint8_t tch_mode = chan_state->tch_mode; - uint8_t tch_data[128]; /* just to be safe */ - int rc, amr = 0; - int n_errors = 0; - int n_bits_total = 0; - bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); - unsigned int fn_begin; - uint16_t ber10k; - uint8_t is_sub = 0; - uint8_t ft; - - /* If handover RACH detection is turned on, treat this burst as an Access Burst. - * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ - if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) - return rx_rach_fn(l1t, chan, bid, bi); - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received TCH/F, bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 928); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst */ - if (bid == 0) { - memset(*bursts_p + 464, 0, 464); - *mask = 0x0; - } - - /* update mask */ - *mask |= (1 << bid); - - /* copy burst to end of buffer of 8 bursts */ - burst = *bursts_p + bid * 116 + 464; - if (bi->burst_len > 0) { - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - } else - memset(burst, 0, 116); - - /* wait until complete set of bursts */ - if (bid != 3) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0xf) != 0xf) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received incomplete frame (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - } - *mask = 0x0; - - /* decode - * also shift buffer by 4 bursts for interleaving */ - switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 - : tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR */ - rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 0, &n_errors, &n_bits_total); - if (rc >= 0) - lchan_set_marker(osmo_fr_check_sid(tch_data, rc), lchan); /* DTXu */ - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 1, &n_errors, &n_bits_total); - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - /* the first FN 0,8,17 defines that CMI is included in frame, - * the first FN 4,13,21 defines that CMR is included in frame. - * NOTE: A frame ends 7 FN after start. - */ - - /* The AFS_ONSET frame itself does not result into an RTP frame - * since it only contains a recognition pattern that marks the - * end of the DTX interval. To mark the end of the DTX interval - * in the RTP stream as well, the voice frame after the - * AFS_ONSET frame is used. */ - if (chan_state->amr_last_dtx == AFS_ONSET) - lchan_set_marker(false, lchan); - - /* we store tch_data + 2 header bytes, the amr variable set to - * 2 will allow us to skip the first 2 bytes in case we did - * receive an FACCH frame instead of a voice frame (we do not - * know this before we actually decode the frame) */ - amr = 2; - rc = gsm0503_tch_afs_decode_dtx(tch_data + amr, *bursts_p, - (((bi->fn + 26 - 7) % 26) >> 2) & 1, chan_state->codec, - chan_state->codecs, &chan_state->ul_ft, - &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); - - /* Tag all frames that are not regular AMR voice frames as - * SUB-Frames */ - if (chan_state->amr_last_dtx != AMR_OTHER) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received AMR SID frame: %s\n", - gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); - is_sub = 1; - } - - /* The occurrence of the following frames indicates that we - * are either at the beginning or in the middle of a talk - * spurt. We update the SID status accordingly, but we do - * not want the marker to be set, since this must only - * happen when the talk spurt is over (see above) */ - switch (chan_state->amr_last_dtx) { - case AFS_SID_FIRST: - case AFS_SID_UPDATE: - case AFS_SID_UPDATE_CN: - lchan_set_marker(true, lchan); - lchan->rtp_tx_marker = false; - break; - } - - if (rc) - trx_loop_amr_input(l1t, - trx_chan_desc[chan].chan_nr | bi->tn, chan_state, - n_errors, n_bits_total); - /* only good speech frames get rtp header */ - if (rc != GSM_MACBLOCK_LEN && rc >= 4) { - if (chan_state->amr_last_dtx == AMR_OTHER) { - ft = chan_state->codec[chan_state->ul_cmr]; - } else { - /* SID frames will always get Frame Type Index 8 (AMR_SID) */ - ft = AMR_SID; - } - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->ul_cmr], - ft, AMR_GOOD); - } - - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", - tch_mode); - return -EINVAL; - } - memcpy(*bursts_p, *bursts_p + 464, 464); - - /* Check if the frame is bad */ - if (rc < 0) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - bfi_flag = true; - } else if (rc < 4) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u) with invalid codec mode %d\n", - bi->fn % l1ts->mf_period, l1ts->mf_period, rc); - bfi_flag = true; - } - - if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) - osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); - - ber10k = compute_ber10k(n_bits_total, n_errors); - if (bfi_flag) - goto bfi; - - /* FACCH */ - if (rc == GSM_MACBLOCK_LEN) { - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_F); - _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, - tch_data + amr, GSM_MACBLOCK_LEN, - /* FIXME: AVG RSSI and ToA256 */ - bi->rssi, bi->toa256, - 0 /* FIXME: AVG C/I */, - ber10k, PRES_INFO_UNKNOWN); -bfi: - if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { - /* indicate bad frame */ - if (lchan->tch.dtx.ul_sid) { - /* DTXu: pause in progress. Push empty payload to upper layers */ - rc = 0; - goto compose_l1sap; - } - - /* If there is an ECU active on this channel, use its output */ - if (lchan->ecu_state) { - rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); - if (rc >= 0) /* Otherwise we send a BFI */ - goto compose_l1sap; - } - - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR */ - memset(tch_data, 0, GSM_FR_BYTES); - tch_data[0] = 0xd0; - rc = GSM_FR_BYTES; - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - memset(tch_data, 0, GSM_EFR_BYTES); - tch_data[0] = 0xc0; - rc = GSM_EFR_BYTES; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->dl_cmr], - chan_state->codec[chan_state->dl_ft], - AMR_BAD); - if (rc < 2) { - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "Failed to encode AMR_BAD frame (rc=%d), " - "not sending BFI\n", rc); - return -EINVAL; - } - memset(tch_data + 2, 0, rc - 2); - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", tch_mode); - return -EINVAL; - } - } - } - - if (rsl_cmode != RSL_CMOD_SPD_SPEECH) - return 0; - - /* TCH or BFI */ -compose_l1sap: - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_F); - return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, - tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); -} - -/*! \brief a single TCH/H burst was received by the PHY, process it */ -int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint8_t *mask = &chan_state->ul_mask; - uint8_t rsl_cmode = chan_state->rsl_cmode; - uint8_t tch_mode = chan_state->tch_mode; - uint8_t tch_data[128]; /* just to be safe */ - int rc, amr = 0; - int n_errors = 0; - int n_bits_total = 0; - bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); - /* Note on FN-10: If we are at FN 10, we decoded an even aligned - * TCH/FACCH frame, because our burst buffer carries 6 bursts. - * Even FN ending at: 10,11,19,20,2,3 - */ - int fn_is_odd = (((bi->fn + 26 - 10) % 26) >> 2) & 1; - unsigned int fn_begin; - uint16_t ber10k; - uint8_t is_sub = 0; - uint8_t ft; - - /* If handover RACH detection is turned on, treat this burst as an Access Burst. - * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ - if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) - return rx_rach_fn(l1t, chan, bid, bi); - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received TCH/H, bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 696); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst */ - if (bid == 0) { - memset(*bursts_p + 464, 0, 232); - *mask = 0x0; - } - - /* update mask */ - *mask |= (1 << bid); - - /* copy burst to end of buffer of 6 bursts */ - burst = *bursts_p + bid * 116 + 464; - if (bi->burst_len > 0) { - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - } else - memset(burst, 0, 116); - - /* wait until complete set of bursts */ - if (bid != 1) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0x3) != 0x3) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received incomplete frame (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - } - *mask = 0x0; - - /* skip second of two TCH frames of FACCH was received */ - if (chan_state->ul_ongoing_facch) { - chan_state->ul_ongoing_facch = 0; - memcpy(*bursts_p, *bursts_p + 232, 232); - memcpy(*bursts_p + 232, *bursts_p + 464, 232); - ber10k = 0; - goto bfi; - } - - /* decode - * also shift buffer by 4 bursts for interleaving */ - switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 - : tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* HR or signalling */ - /* Note on FN-10: If we are at FN 10, we decoded an even aligned - * TCH/FACCH frame, because our burst buffer carries 6 bursts. - * Even FN ending at: 10,11,19,20,2,3 - */ - rc = gsm0503_tch_hr_decode(tch_data, *bursts_p, - fn_is_odd, &n_errors, &n_bits_total); - if (rc >= 0) /* DTXu */ - lchan_set_marker(osmo_hr_check_sid(tch_data, rc), lchan); - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - /* the first FN 0,8,17 or 1,9,18 defines that CMI is included - * in frame, the first FN 4,13,21 or 5,14,22 defines that CMR - * is included in frame. - */ - - /* See comment in function rx_tchf_fn() */ - switch (chan_state->amr_last_dtx) { - case AHS_ONSET: - case AHS_SID_FIRST_INH: - case AHS_SID_UPDATE_INH: - lchan_set_marker(false, lchan); - break; - } - - /* See comment in function rx_tchf_fn() */ - amr = 2; - rc = gsm0503_tch_ahs_decode_dtx(tch_data + amr, *bursts_p, - fn_is_odd, fn_is_odd, chan_state->codec, - chan_state->codecs, &chan_state->ul_ft, - &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); - - /* Tag all frames that are not regular AMR voice frames - as SUB-Frames */ - if (chan_state->amr_last_dtx != AMR_OTHER) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received AMR SID frame: %s\n", - gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); - is_sub = 1; - } - - /* See comment in function rx_tchf_fn() */ - switch (chan_state->amr_last_dtx) { - case AHS_SID_FIRST_P1: - case AHS_SID_FIRST_P2: - case AHS_SID_UPDATE: - case AHS_SID_UPDATE_CN: - lchan_set_marker(true, lchan); - lchan->rtp_tx_marker = false; - break; - } - - if (rc) - trx_loop_amr_input(l1t, - trx_chan_desc[chan].chan_nr | bi->tn, chan_state, - n_errors, n_bits_total); - - /* only good speech frames get rtp header */ - if (rc != GSM_MACBLOCK_LEN && rc >= 4) { - if (chan_state->amr_last_dtx == AMR_OTHER) { - ft = chan_state->codec[chan_state->ul_cmr]; - } else { - /* SID frames will always get Frame Type Index 8 (AMR_SID) */ - ft = AMR_SID; - } - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->ul_cmr], - ft, AMR_GOOD); - } - - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", - tch_mode); - return -EINVAL; - } - memcpy(*bursts_p, *bursts_p + 232, 232); - memcpy(*bursts_p + 232, *bursts_p + 464, 232); - ber10k = compute_ber10k(n_bits_total, n_errors); - - - /* Check if the frame is bad */ - if (rc < 0) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - bfi_flag = true; - } else if (rc < 4) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u) with invalid codec mode %d\n", - bi->fn % l1ts->mf_period, l1ts->mf_period, rc); - bfi_flag = true; - } - - if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) - osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); - - if (bfi_flag) - goto bfi; - - /* FACCH */ - if (rc == GSM_MACBLOCK_LEN) { - chan_state->ul_ongoing_facch = 1; - uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); - if (lchan->nr == 0) - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H0); - else - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H1); - _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, - tch_data + amr, GSM_MACBLOCK_LEN, - /* FIXME: AVG both RSSI and ToA */ - bi->rssi, bi->toa256, - 0 /* FIXME: AVG C/I */, - ber10k, PRES_INFO_UNKNOWN); -bfi: - /* FIXME: a FACCH/H frame replaces two speech frames, - * so we actually need to send two bad frame indications! */ - if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { - /* indicate bad frame */ - if (lchan->tch.dtx.ul_sid) { - /* DTXu: pause in progress. Push empty payload to upper layers */ - rc = 0; - goto compose_l1sap; - } - - /* If there is an ECU active on this channel, use its output */ - if (lchan->ecu_state) { - rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); - if (rc >= 0) /* Otherwise we send a BFI */ - goto compose_l1sap; - } - - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* HR */ - tch_data[0] = 0x70; /* F = 0, FT = 111 */ - memset(tch_data + 1, 0, 14); - rc = 15; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->dl_cmr], - chan_state->codec[chan_state->dl_ft], - AMR_BAD); - if (rc < 2) { - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "Failed to encode AMR_BAD frame (rc=%d), " - "not sending BFI\n", rc); - return -EINVAL; - } - memset(tch_data + 2, 0, rc - 2); - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", tch_mode); - return -EINVAL; - } - } - } - - if (rsl_cmode != RSL_CMOD_SPD_SPEECH) - return 0; - -compose_l1sap: - /* TCH or BFI */ - /* Note on FN 19 or 20: If we received the last burst of a frame, - * it actually starts at FN 8 or 9. A burst starting there, overlaps - * with the slot 12, so an extra FN must be subtracted to get correct - * start of frame. - */ - if (lchan->nr == 0) - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H0); - else - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H1); - return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, - tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); -} - /* schedule all frames of all TRX for given FN */ static int trx_sched_fn(struct gsm_bts *bts, uint32_t fn) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie5663fd90596b4800a4546675a323250bbb24c80 Gerrit-Change-Number: 18820 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 Jun 13 17:24:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 13 Jun 2020 17:24:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: introduce and use struct trx_dl_burst_req References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18821 ) Change subject: osmo-bts-trx: introduce and use struct trx_dl_burst_req ...................................................................... osmo-bts-trx: introduce and use struct trx_dl_burst_req This change is similar to what we did for Uplink bursts: - group all Downlink burst parameters into a single structure, - allocate it once and pass a pointer to lchan handlers, - pass a pointer to trx_if_send_burst(). Given that the structure is allocated and (zero-)initialized in trx_sched_fn(), we can get rid of some memset() calls in lchan handlers and thus improve the overall performance a bit. Change-Id: If3014e69746559963569b77561dbf7b163c68ffa --- M include/osmo-bts/scheduler.h M include/osmo-bts/scheduler_backend.h M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_fcch_sch.c M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_lchan_xcch.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h M src/osmo-bts-virtual/scheduler_virtbts.c 12 files changed, 214 insertions(+), 241 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/21/18821/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index 74102f3..a7bc6c7 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -250,6 +250,17 @@ size_t burst_len; }; +/*! DL burst request with the corresponding meta info */ +struct trx_dl_burst_req { + uint32_t fn; /*!< TDMA frame number */ + uint8_t tn; /*!< TDMA timeslot number */ + uint8_t att; /*!< Tx power attenuation */ + + /*! Burst hard-bits buffer */ + ubit_t burst[EGPRS_BURST_LEN]; + size_t burst_len; +}; + /*! Handle an UL burst received by PHY */ int trx_sched_ul_burst(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi); diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h index cfbe7f2..be23c47 100644 --- a/include/osmo-bts/scheduler_backend.h +++ b/include/osmo-bts/scheduler_backend.h @@ -9,9 +9,8 @@ typedef int trx_sched_rts_func(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, enum trx_chan_type chan); -typedef ubit_t *trx_sched_dl_func(struct l1sched_trx *l1t, uint8_t tn, - uint32_t fn, enum trx_chan_type chan, - uint8_t bid, uint16_t *nbits); +typedef int trx_sched_dl_func(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); typedef int trx_sched_ul_func(struct l1sched_trx *l1t, enum trx_chan_type chan, uint8_t bid, const struct trx_ul_burst_ind *bi); @@ -56,20 +55,21 @@ int16_t ta_offs_256bits, uint16_t ber10k, float rssi, uint8_t is_sub); -ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); +int tx_idle_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_fcch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_sch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); + int rx_rach_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, uint8_t bid, const struct trx_ul_burst_ind *bi); int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, @@ -81,7 +81,6 @@ int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, uint8_t bid, const struct trx_ul_burst_ind *bi); -const ubit_t *_sched_dl_burst(struct l1sched_trx *l1t, uint8_t tn, - uint32_t fn, uint16_t *nbits); +void _sched_dl_burst(struct l1sched_trx *l1t, struct trx_dl_burst_req *br); int _sched_rts(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn); void _sched_act_rach_det(struct l1sched_trx *l1t, uint8_t tn, uint8_t ss, int activate); diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 021a4cd..ed6c623 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1154,23 +1154,21 @@ } /* process downlink burst */ -const ubit_t *_sched_dl_burst(struct l1sched_trx *l1t, uint8_t tn, - uint32_t fn, uint16_t *nbits) +void _sched_dl_burst(struct l1sched_trx *l1t, struct trx_dl_burst_req *br) { - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); struct l1sched_chan_state *l1cs; const struct trx_sched_frame *frame; uint8_t offset, period, bid; trx_sched_dl_func *func; enum trx_chan_type chan; - ubit_t *bits = NULL; if (!l1ts->mf_index) goto no_data; /* get frame from multiframe */ period = l1ts->mf_period; - offset = fn % period; + offset = br->fn % period; frame = l1ts->mf_frames + offset; chan = frame->dl_chan; @@ -1180,42 +1178,37 @@ l1cs = &l1ts->chan_state[chan]; /* check if channel is active */ - if (!TRX_CHAN_IS_ACTIVE(l1cs, chan)) { - if (nbits) - *nbits = GSM_BURST_LEN; + if (!TRX_CHAN_IS_ACTIVE(l1cs, chan)) goto no_data; - } /* get burst from function */ - bits = func(l1t, tn, fn, chan, bid, nbits); + if (func(l1t, chan, bid, br) != 0) + goto no_data; /* encrypt */ - if (bits && l1cs->dl_encr_algo) { + if (br->burst_len && l1cs->dl_encr_algo) { ubit_t ks[114]; int i; - osmo_a5(l1cs->dl_encr_algo, l1cs->dl_encr_key, fn, ks, NULL); + osmo_a5(l1cs->dl_encr_algo, l1cs->dl_encr_key, br->fn, ks, NULL); for (i = 0; i < 57; i++) { - bits[i + 3] ^= ks[i]; - bits[i + 88] ^= ks[i + 57]; + br->burst[i + 3] ^= ks[i]; + br->burst[i + 88] ^= ks[i + 57]; } } no_data: /* in case of C0, we need a dummy burst to maintain RF power */ - if (bits == NULL && l1t->trx == l1t->trx->bts->c0) { + if (!br->burst_len && l1t->trx == l1t->trx->bts->c0) { #if 0 if (chan != TRXC_IDLE) // hack LOGP(DL1C, LOGL_DEBUG, "No burst data for %s fn=%u ts=%u " "burst=%d on C0, so filling with dummy burst\n", trx_chan_desc[chan].name, fn, tn, bid); #endif - bits = (ubit_t *) dummy_burst; - if (nbits) - *nbits = ARRAY_SIZE(dummy_burst); + memcpy(br->burst, dummy_burst, ARRAY_SIZE(dummy_burst)); + br->burst_len = ARRAY_SIZE(dummy_burst); } - - return bits; } #define TDMA_FN_SUM(a, b) \ diff --git a/src/osmo-bts-trx/sched_lchan_fcch_sch.c b/src/osmo-bts-trx/sched_lchan_fcch_sch.c index 63dd468..bc03f81 100644 --- a/src/osmo-bts-trx/sched_lchan_fcch_sch.c +++ b/src/osmo-bts-trx/sched_lchan_fcch_sch.c @@ -35,34 +35,32 @@ #include /* obtain a to-be-transmitted FCCH (frequency correction channel) burst */ -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_fcch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting FCCH\n"); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting FCCH\n"); - if (nbits) - *nbits = GSM_BURST_LEN; + memcpy(br->burst, _sched_fcch_burst, GSM_BURST_LEN); + br->burst_len = GSM_BURST_LEN; - /* BURST BYPASS */ - - return (ubit_t *) _sched_fcch_burst; + return 0; } /* obtain a to-be-transmitted SCH (synchronization channel) burst */ -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_sch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - static ubit_t bits[GSM_BURST_LEN], burst[78]; + ubit_t burst[78]; uint8_t sb_info[4]; struct gsm_time t; uint8_t t3p, bsic; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting SCH\n"); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting SCH\n"); /* BURST BYPASS */ /* create SB info from GSM time and BSIC */ - gsm_fn2gsmtime(&t, fn); + gsm_fn2gsmtime(&t, br->fn); t3p = t.t3 / 10; bsic = l1t->trx->bts->bsic; sb_info[0] = @@ -81,14 +79,11 @@ gsm0503_sch_encode(burst, sb_info); /* compose burst */ - memset(bits, 0, 3); - memcpy(bits + 3, burst, 39); - memcpy(bits + 42, _sched_sch_train, 64); - memcpy(bits + 106, burst + 39, 39); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 39); + memcpy(br->burst + 42, _sched_sch_train, 64); + memcpy(br->burst + 106, burst + 39, 39); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index 8b39797..259d336 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -154,30 +154,29 @@ } /* obtain a to-be-transmitted PDTCH (packet data) burst */ -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + 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; - static ubit_t bits[EGPRS_BURST_LEN]; int rc = 0; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (msg) goto got_msg; - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No prim for transmit.\n"); no_msg: /* free burst memory */ @@ -185,7 +184,7 @@ talloc_free(*bursts_p); *bursts_p = NULL; } - return NULL; + return -ENODEV; got_msg: /* BURST BYPASS */ @@ -195,7 +194,7 @@ *bursts_p = talloc_zero_size(tall_bts_ctx, GSM0503_EGPRS_BURSTS_NBITS); if (!*bursts_p) - return NULL; + return -ENOMEM; } /* encode bursts */ @@ -205,7 +204,7 @@ /* check validity of message */ if (rc < 0) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim invalid length, please FIX! " + LOGL1S(DL1P, LOGL_FATAL, l1t, br->tn, chan, br->fn, "Prim invalid length, please FIX! " "(len=%ld)\n", (long)(msg->tail - msg->l2h)); /* free message */ msgb_free(msg); @@ -223,27 +222,23 @@ /* compose burst */ if (*burst_type == TRX_BURST_8PSK) { burst = *bursts_p + bid * 348; - memset(bits, 1, 9); - memcpy(bits + 9, burst, 174); - memcpy(bits + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); - memcpy(bits + 261, burst + 174, 174); - memset(bits + 435, 1, 9); + memset(br->burst, 1, 9); + memcpy(br->burst + 9, burst, 174); + memcpy(br->burst + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); + memcpy(br->burst + 261, burst + 174, 174); + memset(br->burst + 435, 1, 9); - if (nbits) - *nbits = EGPRS_BURST_LEN; + br->burst_len = EGPRS_BURST_LEN; } else { burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; } - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index fb11f45..80115a9 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -491,25 +491,24 @@ } /* obtain a to-be-transmitted TCH/F (Full Traffic Channel) burst */ -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[br->tn]; struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; uint8_t tch_mode = chan_state->tch_mode; ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch); /* BURST BYPASS */ @@ -518,7 +517,7 @@ if (!*bursts_p) { *bursts_p = talloc_zero_size(tall_bts_ctx, 928); if (!*bursts_p) - return NULL; + return -ENOMEM; } else { memcpy(*bursts_p, *bursts_p + 464, 464); memset(*bursts_p + 464, 0, 464); @@ -526,7 +525,7 @@ /* no message at all */ if (!msg_tch && !msg_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No TCH or FACCH prim for transmit.\n"); goto send_burst; } @@ -539,7 +538,7 @@ * the first FN 0,8,17 defines that CMR is included in frame. */ gsm0503_tch_afs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); @@ -555,16 +554,13 @@ send_burst: /* compose burst */ burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 1895038..8adaec3 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -313,30 +313,29 @@ struct msgb **_msg_tch, struct msgb **_msg_facch); /* obtain a to-be-transmitted TCH/H (Half Traffic Channel) burst */ -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[br->tn]; struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; uint8_t tch_mode = chan_state->tch_mode; ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } /* get TCH and/or FACCH */ - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch); /* check for FACCH alignment */ - if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " + if (msg_facch && ((((br->fn + 4) % 26) >> 2) & 1)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, br->tn, chan, br->fn, "Cannot transmit FACCH starting on " "even frames, please fix RTS!\n"); msgb_free(msg_facch); msg_facch = NULL; @@ -349,7 +348,7 @@ if (!*bursts_p) { *bursts_p = talloc_zero_size(tall_bts_ctx, 696); if (!*bursts_p) - return NULL; + return -ENOMEM; } else { memcpy(*bursts_p, *bursts_p + 232, 232); if (chan_state->dl_ongoing_facch) { @@ -362,7 +361,7 @@ /* no message at all */ if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No TCH or FACCH prim for transmit.\n"); goto send_burst; } @@ -377,7 +376,7 @@ * in frame, the first FN 0,8,17 or 1,9,18 defines that CMR is * included in frame. */ gsm0503_tch_ahs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); @@ -393,16 +392,13 @@ send_burst: /* compose burst */ burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c index a16553f..e2670d8 100644 --- a/src/osmo-bts-trx/sched_lchan_xcch.c +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -145,28 +145,27 @@ } /* obtain a to-be-transmitted xCCH (e.g SACCH or SDCCH) burst */ -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + 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; - static ubit_t bits[GSM_BURST_LEN]; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (msg) goto got_msg; - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No prim for transmit.\n"); no_msg: /* free burst memory */ @@ -174,12 +173,12 @@ talloc_free(*bursts_p); *bursts_p = NULL; } - return NULL; + return -ENODEV; got_msg: /* check validity of message */ if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " + LOGL1S(DL1P, LOGL_FATAL, l1t, br->tn, chan, br->fn, "Prim not 23 bytes, please FIX! " "(len=%d)\n", msgb_l2len(msg)); /* free message */ msgb_free(msg); @@ -197,7 +196,7 @@ /* Note: RSSI is set to 0 to indicate to the higher * layers that this is a faked ph_data_ind */ - _sched_compose_ph_data_ind(l1t, tn, 0, chan, NULL, 0, + _sched_compose_ph_data_ind(l1t, br->tn, 0, chan, NULL, 0, 0, 0, 0, 10000, PRES_INFO_INVALID); } @@ -207,7 +206,7 @@ if (!*bursts_p) { *bursts_p = talloc_zero_size(tall_bts_ctx, 464); if (!*bursts_p) - return NULL; + return -ENOMEM; } /* encode bursts */ @@ -219,16 +218,13 @@ send_burst: /* compose burst */ burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 4fb0e23..6996593 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -48,25 +48,19 @@ #include "trx_if.h" /* an IDLE burst returns nothing. on C0 it is replaced by dummy burst */ -ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_idle_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting IDLE\n"); - - if (nbits) - *nbits = GSM_BURST_LEN; - - return NULL; + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting IDLE\n"); + return 0; } /* schedule all frames of all TRX for given FN */ static int trx_sched_fn(struct gsm_bts *bts, uint32_t fn) { + struct trx_dl_burst_req br; struct gsm_bts_trx *trx; uint8_t tn; - const ubit_t *bits; - uint8_t gain; - uint16_t nbits = 0; /* send time indication */ l1if_mph_time_ind(bts, fn); @@ -91,15 +85,21 @@ /* ready-to-send */ _sched_rts(l1t, tn, (fn + plink->u.osmotrx.rts_advance) % GSM_HYPERFRAME); + + /* TODO: Tx attenuation is always 0? */ + br = (struct trx_dl_burst_req) { + .fn = fn, .tn = tn, + .att = 0, + }; + /* get burst for FN */ - bits = _sched_dl_burst(l1t, tn, fn, &nbits); - if (!bits) { + _sched_dl_burst(l1t, &br); + if (br.burst_len == 0) { /* if no bits, send no burst */ continue; - } else - gain = 0; - if (nbits) - trx_if_send_burst(l1h, tn, fn, gain, bits, nbits); + } + + trx_if_send_burst(l1h, &br); } } diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index ccbcd2f..1953f71 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1101,27 +1101,23 @@ /*! Send burst data for given FN/timeslot to TRX * \param[inout] l1h TRX Layer1 handle referring to TX - * \param[in] tn Timeslot Number (0..7) - * \param[in] fn GSM Frame Number - * \param[in] pwr Transmit Power to use - * \param[in] bits Unpacked bits to be transmitted - * \param[in] nbits Number of \a bits + * \param[in] br Downlink burst request structure * \returns 0 on success; negative on error */ -int trx_if_send_burst(struct trx_l1h *l1h, uint8_t tn, uint32_t fn, uint8_t pwr, - const ubit_t *bits, uint16_t nbits) +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 buf[TRX_DATA_MSG_MAX_LEN]; - if ((nbits != GSM_BURST_LEN) && (nbits != EGPRS_BURST_LEN)) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %u invalid\n", nbits); + 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); return -1; } LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, - "Tx burst (hdr_ver=%u): tn=%u fn=%u pwr=%u\n", - hdr_ver, tn, fn, pwr); + "Tx burst (hdr_ver=%u): tn=%u fn=%u att=%u\n", + hdr_ver, br->tn, br->fn, br->att); switch (hdr_ver) { case 0: @@ -1135,16 +1131,16 @@ return -ENOTSUP; } - buf[0] = ((hdr_ver & 0x0f) << 4) | tn; - osmo_store32be(fn, buf + 1); - buf[5] = pwr; + buf[0] = ((hdr_ver & 0x0f) << 4) | br->tn; + osmo_store32be(br->fn, buf + 1); + buf[5] = br->att; /* copy ubits {0,1} */ - memcpy(buf + 6, bits, nbits); + 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, buf, nbits + 6, 0); + snd_len = send(l1h->trx_ofd_data.fd, buf, br->burst_len + 6, 0); if (snd_len <= 0) { strerror_r(errno, (char *)buf, sizeof(buf)); LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 34335f8..16b6c76 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -1,6 +1,7 @@ #ifndef TRX_IF_H #define TRX_IF_H +struct trx_dl_burst_req; struct trx_l1h; struct trx_ctrl_msg { @@ -33,8 +34,7 @@ int trx_if_cmd_txtune(struct trx_l1h *l1h, uint16_t arfcn); int trx_if_cmd_handover(struct trx_l1h *l1h, uint8_t tn, uint8_t ss); int trx_if_cmd_nohandover(struct trx_l1h *l1h, uint8_t tn, uint8_t ss); -int trx_if_send_burst(struct trx_l1h *l1h, uint8_t tn, uint32_t fn, uint8_t pwr, - const ubit_t *bits, uint16_t nbits); +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 */ diff --git a/src/osmo-bts-virtual/scheduler_virtbts.c b/src/osmo-bts-virtual/scheduler_virtbts.c index eabd23b..d3fdf1a 100644 --- a/src/osmo-bts-virtual/scheduler_virtbts.c +++ b/src/osmo-bts-virtual/scheduler_virtbts.c @@ -173,72 +173,72 @@ */ /* an IDLE burst returns nothing. on C0 it is replaced by dummy burst */ -ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_idle_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - return NULL; + return 0; } -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_fcch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - return NULL; + return 0; } -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_sch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - return NULL; + return 0; } -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg; if (bid > 0) - return NULL; + return 0; /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (!msg) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - return NULL; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } /* check validity of message */ if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! (len=%d)\n", + LOGL1S(DL1P, LOGL_FATAL, l1t, br->tn, chan, br->fn, "Prim not 23 bytes, please FIX! (len=%d)\n", msgb_l2len(msg)); /* free message */ msgb_free(msg); - return NULL; + return -EINVAL; } /* transmit the msg received on dl from bsc to layer1 (virt Um) */ - tx_to_virt_um(l1t, tn, fn, chan, msg); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg); - return NULL; + return 0; } -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg = NULL; /* make GCC happy */ if (bid > 0) - return NULL; + return 0; /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (!msg) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - return NULL; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } - tx_to_virt_um(l1t, tn, fn, chan, msg); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg); - return NULL; + return 0; } static void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, @@ -418,53 +418,51 @@ *_msg_facch = msg_facch; } -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; if (bid > 0) - return NULL; + return 0; - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch, - (((fn + 4) % 26) >> 2) & 1); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch, + (((br->fn + 4) % 26) >> 2) & 1); /* no message at all */ if (!msg_tch && !msg_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - goto send_burst; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } if (msg_facch) { - tx_to_virt_um(l1t, tn, fn, chan, msg_facch); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg_facch); msgb_free(msg_tch); } else if (msg_tch) - tx_to_virt_um_voice_frame(l1t, tn, fn, chan, msg_tch); + tx_to_virt_um_voice_frame(l1t, br->tn, br->fn, chan, msg_tch); -send_burst: - - return NULL; + return 0; } -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; //uint8_t tch_mode = chan_state->tch_mode; /* send burst, if we already got a frame */ if (bid > 0) - return NULL; + return 0; /* get TCH and/or FACCH */ - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch, - (((fn + 4) % 26) >> 2) & 1); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch, + (((br->fn + 4) % 26) >> 2) & 1); /* check for FACCH alignment */ - if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " + if (msg_facch && ((((br->fn + 4) % 26) >> 2) & 1)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, br->tn, chan, br->fn, "Cannot transmit FACCH starting on " "even frames, please fix RTS!\n"); msgb_free(msg_facch); msg_facch = NULL; @@ -472,18 +470,17 @@ /* no message at all */ if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - goto send_burst; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } if (msg_facch) { - tx_to_virt_um(l1t, tn, fn, chan, msg_facch); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg_facch); msgb_free(msg_tch); } else if (msg_tch) - tx_to_virt_um_voice_frame(l1t, tn, fn, chan, msg_tch); + tx_to_virt_um_voice_frame(l1t, br->tn, br->fn, chan, msg_tch); -send_burst: - return NULL; + return 0; } @@ -550,11 +547,10 @@ llist_for_each_entry(trx, &bts->trx_list, list) { struct phy_instance *pinst = trx_phy_instance(trx); struct l1sched_trx *l1t = &pinst->u.virt.sched; - int tn; - uint16_t nbits; + struct trx_dl_burst_req br = { .fn = fn }; /* do for each of the 8 timeslots */ - for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { + for (br.tn = 0; br.tn < ARRAY_SIZE(l1t->ts); br.tn++) { /* Generate RTS indication to higher layers */ /* This will basically do 2 things (check l1_if:bts_model_l1sap_down): * 1) Get pending messages from layer 2 (from the lapdm queue) @@ -562,13 +558,13 @@ * --> Handle and process non-transparent RSL-Messages (activate channel, ) * --> Forward transparent RSL-DATA-Messages to the ms by appending them to * the l1-dl-queue */ - _sched_rts(l1t, tn, (fn + RTS_ADVANCE) % GSM_HYPERFRAME); + _sched_rts(l1t, br.tn, (fn + RTS_ADVANCE) % GSM_HYPERFRAME); /* schedule transmit backend functions */ /* Process data in the l1-dlqueue and forward it * to MS */ /* the returned bits are not used here, the routines called will directly forward their * bits to the virt Um */ - _sched_dl_burst(l1t, tn, fn, &nbits); + _sched_dl_burst(l1t, &br); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If3014e69746559963569b77561dbf7b163c68ffa Gerrit-Change-Number: 18821 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 Jun 13 20:00:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 20:00:12 +0000 Subject: Change in libosmo-abis[master]: WIP: Add new TRAU frame sync code In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/18250 to look at the new patch set (#6). Change subject: WIP: Add new TRAU frame sync code ...................................................................... WIP: Add new TRAU frame sync code This code is able to detect and sync against a variety of TRAU frame sync patterns. Focus is so far on those patterns present on 16k sub-slots, but 8k sub-slots are expected to be supported soon, too. A new codebase for this is required as the old OsmoNITB code had conflated a 16k sub-slot multiplexer with TRAU frame synchronization, so there was no way to separate those two parts and hence no way to support 8k sub-slots. Change-Id: Ia6fe6228b0b8b9a27999f37ce1115ed5558881ea --- M include/Makefile.am A include/osmocom/trau/trau_sync.h M src/Makefile.am A src/trau/trau_sync.c A src/trau/ubit_buf.h M tests/Makefile.am M tests/testsuite.at A tests/trau_sync/trau_sync_test.c A tests/trau_sync/trau_sync_test.err A tests/trau_sync/trau_sync_test.ok 10 files changed, 704 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/50/18250/6 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ia6fe6228b0b8b9a27999f37ce1115ed5558881ea Gerrit-Change-Number: 18250 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 Sat Jun 13 20:06:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 20:06:04 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: use osmo_store32be() 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/+/18819 ) Change subject: osmo-bts-trx: use osmo_store32be() in trx_if_send_burst() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5000fe61b29d796b9229f921bffcb392b1c6d189 Gerrit-Change-Number: 18819 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 20:06:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 20:06:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 20:06:25 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move logical channel handlers to separate files In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18820 ) Change subject: osmo-bts-trx: move logical channel handlers to separate files ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie5663fd90596b4800a4546675a323250bbb24c80 Gerrit-Change-Number: 18820 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 20:06: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 Jun 13 20:07:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 20:07:26 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: introduce and use struct trx_dl_burst_req In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18821 ) Change subject: osmo-bts-trx: introduce and use struct trx_dl_burst_req ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If3014e69746559963569b77561dbf7b163c68ffa Gerrit-Change-Number: 18821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 20:07: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 Jun 13 20:07:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 13 Jun 2020 20:07:32 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move logical channel handlers to separate files In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18820 ) Change subject: osmo-bts-trx: move logical channel handlers to separate files ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie5663fd90596b4800a4546675a323250bbb24c80 Gerrit-Change-Number: 18820 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 13 Jun 2020 20:07:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 13 22:43:58 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 13 Jun 2020 22:43:58 +0000 Subject: Change in osmo-bts[master]: measurement: replace u_int64_t with uint64_t References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18822 ) Change subject: measurement: replace u_int64_t with uint64_t ...................................................................... measurement: replace u_int64_t with uint64_t Be consistent and use everywhere uint64_t. Change-Id: Id6b5df7f5045901109fe1007a5ad54e2f95b95f8 --- M src/common/measurement.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/22/18822/1 diff --git a/src/common/measurement.c b/src/common/measurement.c index 3170e4a..17169ca 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -470,7 +470,7 @@ /* each measurement is an int32_t, so the squared difference value must fit in 32bits */ /* the sum of the squared values (each up to 32bit) can very easily exceed 32 bits */ - u_int64_t sq_diff_sum = 0; + uint64_t sq_diff_sum = 0; /* In case we do not have any measurement values collected there is no * computation possible. We just skip the whole computation here, the -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id6b5df7f5045901109fe1007a5ad54e2f95b95f8 Gerrit-Change-Number: 18822 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 14 01:33:13 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 14 Jun 2020 01:33:13 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee57e6f7391_e962b0071b305f012381ca@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: r=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/src at udr@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/src at udr@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/src at udr@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 97s] [1923/2112] cc -Isrc/pgw/src at pgw@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/src at pgw@@pgw at sta/pgw-fd-path.c.o' -MF 'src/pgw/src at pgw@@pgw at sta/pgw-fd-path.c.o.d' -o 'src/pgw/src at pgw@@pgw at sta/pgw-fd-path.c.o' -c ../src/pgw/pgw-fd-path.c [ 97s] [1924/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 97s] [1925/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 97s] [1926/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/event.c.o' -MF 'src/udm/src at udm@@udm at sta/event.c.o.d' -o 'src/udm/src at udm@@udm at sta/event.c.o' -c ../src/udm/event.c [ 97s] [1927/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.s[ 91.928074] serial8250: too much work for irq4 [ 97s] o /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 97s] [1928/2112] cc -o src/mme/open5gs-mmed 'src/mme/src at mme@@open5gs-mmed at exe/app-init.c.o' 'src/mme/src at mme@@open5gs-mmed at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/mme/libmme.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/sctp/libogssctp.so.1.2.5 lib/s1ap/libogss1ap.so.1.2.5 lib/asn1c/s1ap/libogsasn1c-s1ap.so.1.2.5 lib/asn1c/common/libogsasn1c-common.so.1.2.5 lib/asn1c/util/libogsasn1c-util.so.1.2.5 lib/nas/eps/libogsnas-eps.so.1.2.5 lib/nas/common/libogsnas-common.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/s6a/libogsdiameter-s6a.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/gtp/libogsgtp.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/s6a:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/gtp' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/s6a:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp [ 97s] [1929/2112] cc -Isrc/hss/src at hss@@hss at sta -Isrc/hss -I../src/hss -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/dbi -I../lib/dbi -Ilib/diameter/s6a -I../lib/diameter/s6a -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/hss/src at hss@@hss at sta/hss-context.c.o' -MF 'src/hss/src at hss@@hss at sta/hss-context.c.o.d' -o 'src/hss/src at hss@@hss at sta/hss-context.c.o' -c ../src/hss/hss-context.c [ 97s] [1930/2112] cc -Isrc/pgw/src at pgw@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o' -MF 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o.d' -o 'src/pgw/src at pgw@@pgw at sta/pgw-context.c.o' -c ../src/pgw/pgw-context.c [ 98s] [1931/2112] cc -Itests/mnc3/tests at mnc3@@mnc3 at exe -Itests/mnc3 -I../tests/mnc3 -Itests/app -I../tests/app -Isrc -I../src -Itests/common -I../tests/common -Itests -I../tests -Ilib/core -I../lib/core -Ilib -I../lib -Ilib/app -I../lib/app -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sctp -I../lib/sctp -Ilib/ngap -I../lib/ngap -Ilib/asn1c/ngap -I../lib/asn1c/ngap -Ilib/asn1c/common -I../lib/asn1c/common -Ilib/asn1c/util -I../lib/asn1c/util -Ilib/nas/eps -I../lib/nas/eps -Ilib/nas/common -I../lib/nas/common -Ilib/nas/5gs -I../lib/nas/5gs -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/s1ap -I../lib/s1ap -Ilib/asn1c/s1ap -I../lib/asn1c/s1ap -Ilib/diameter/s6a -I../lib/diameter/s6a -Ilib/gtp -I../lib/gtp -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/rx -I../lib/diameter/rx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -Wno-missing-prototypes -Wno-missing-declarations -Wno-discarded-qualifiers -Wno-incompatible-pointer-types -Wno-unused-variable -Wno-deprecated-declarations -MD -MQ 'tests/mnc3/tests at mnc3@@mnc3 at exe/mnc3-test.c.o' -MF 'tests/mnc3/tests at mnc3@@mnc3 at exe/mnc3-test.c.o.d' -o 'tests/mnc3/tests at mnc3@@mnc3 at exe/mnc3-test.c.o' -c ../tests/mnc3/mnc3-test.c [ 98s] [1932/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 98s] ninja: build stopped: subcommand failed. [ 98s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j16 -v returned exit code 1 [ 98s] make: *** [debian/rules:11: binary] Error 1 [ 98s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 98s] ### VM INTERACTION START ### [ 101s] [ 95.466945] sysrq: SysRq : Power Off [ 101s] [ 95.473846] reboot: Power down [ 101s] ### VM INTERACTION END ### [ 101s] [ 101s] goat03 failed "build open5gs_1.2.5.20200614.dsc" at Sun Jun 14 01:32:59 UTC 2020. [ 101s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 14 01:34:39 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 14 Jun 2020 01:34:39 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee57ec87bb33_e962b0071b305f012383a6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' -c ../src/udr/nnrf-handler.c [ 175s] [1924/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 175s] [1925/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 175s] [1926/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 175s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 175s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 175s] ../src/udm/context.c: In function ?udm_ue_add?: [ 175s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 175s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 175s] ~~^ [ 175s] %d [ 175s] cc1: some warnings being treated as errors [ 175s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 175s] [1928/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 175s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 175s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 175s] [1931/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 175s] [1932/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 175s] [1933/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 175s] ninja: build stopped: subcommand failed. [ 175s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 175s] make: *** [debian/rules:11: binary] Error 1 [ 175s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 175s] ### VM INTERACTION START ### [ 178s] [ 168.609102] sysrq: SysRq : Power Off [ 178s] [ 168.615641] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] lamb11 failed "build open5gs_1.2.5.20200614.dsc" at Sun Jun 14 01:34:33 UTC 2020. [ 178s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 14 01:35:13 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 14 Jun 2020 01:35:13 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee57ee7ec809_e962b0071b305f01238412@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 209s] include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 209s] FAILED: src/udm/udm at sta/context.c.o [ 209s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 209s] ../src/udm/context.c: In function ?udm_ue_add?: [ 209s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 209s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 209s] ~~^ [ 209s] %d [ 209s] cc1: some warnings being treated as errors [ 209s] [1936/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 209s] [1937/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-build.c.o' -MF 'src/udm/udm at sta/nudr-build.c.o.d' -o 'src/udm/udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 209s] [1938/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 209s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdeb[ 196.499785] serial8250: too much work for irq4 [ 209s] ug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 209s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 209s] [1941/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 210s] [1942/2112] cc -Isrc/pcrf/pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 210s] ninja: build stopped: subcommand failed. [ 210s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 210s] debian/rules:11: recipe for target 'binary' failed [ 210s] make: *** [binary] Error 1 [ 210s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 210s] ### VM INTERACTION START ### [ 213s] [ 200.801585] sysrq: SysRq : Power Off [ 213s] [ 200.815658] reboot: Power down [ 213s] ### VM INTERACTION END ### [ 213s] [ 213s] cloud136 failed "build open5gs_1.2.5.20200614.dsc" at Sun Jun 14 01:35:00 UTC 2020. [ 213s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 14 08:10:13 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 14 Jun 2020 08:10:13 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee5db7933c09_e962b0071b305f0127289a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 486s] [1932/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 486s] [1933/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 486s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 486s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 486s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 486s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 486s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 486s] ../src/udm/context.c: In function ?udm_ue_add?: [ 486s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 486s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 486s] ~~^ [ 486s] %d [ 486s] cc1: some warnings being treated as errors [ 486s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 486s] [1938/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-build.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 486s] [1939/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 486s] [1940/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 487s] [1941/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/nf-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 487s] ninja: build stopped: subcommand failed. [ 487s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 487s] make: *** [debian/rules:11: binary] Error 1 [ 487s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 487s] ### VM INTERACTION START ### [ 490s] [ 467.752503] sysrq: SysRq : Power Off [ 490s] [ 467.760610] reboot: Power down [ 490s] ### VM INTERACTION END ### [ 490s] [ 490s] obs-arm-5 failed "build open5gs_1.2.5.20200614.dsc" at Sun Jun 14 08:10:06 UTC 2020. [ 490s] -- 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 Jun 14 08:17:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 14 Jun 2020 08:17:43 +0000 Subject: Change in osmo-bts[master]: measurement: replace u_int64_t with uint64_t In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18822 ) Change subject: measurement: replace u_int64_t with uint64_t ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18822/1/src/common/measurement.c File src/common/measurement.c: https://gerrit.osmocom.org/c/osmo-bts/+/18822/1/src/common/measurement.c at 473 PS1, Line 473: uint64_t Can we simply use 'unsigned long' here? Do we really need the bit-size precision? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id6b5df7f5045901109fe1007a5ad54e2f95b95f8 Gerrit-Change-Number: 18822 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 14 Jun 2020 08:17: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 Sun Jun 14 08:30:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 14 Jun 2020 08:30:05 +0000 Subject: Change in osmocom-bb[master]: trxcon: use osmo_{store, load}32be() to pack / unpack TDMA fn References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18823 ) Change subject: trxcon: use osmo_{store,load}32be() to pack / unpack TDMA fn ...................................................................... trxcon: use osmo_{store,load}32be() to pack / unpack TDMA fn Change-Id: I9eff9b8e4b8ce9e0563a1ec3c485ab8b0f306491 --- M src/host/trxcon/trx_if.c 1 file changed, 2 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/23/18823/1 diff --git a/src/host/trxcon/trx_if.c b/src/host/trxcon/trx_if.c index 91f84ec..7a736a8 100644 --- a/src/host/trxcon/trx_if.c +++ b/src/host/trxcon/trx_if.c @@ -592,7 +592,7 @@ } tn = buf[0]; - fn = (buf[1] << 24) | (buf[2] << 16) | (buf[3] << 8) | buf[4]; + fn = osmo_load32be(buf + 1); rssi = -(int8_t) buf[5]; toa256 = ((int16_t) (buf[6] << 8) | buf[7]); @@ -650,10 +650,7 @@ LOGP(DTRXD, LOGL_DEBUG, "TX burst tn=%u fn=%u pwr=%u\n", tn, fn, pwr); buf[0] = tn; - buf[1] = (fn >> 24) & 0xff; - buf[2] = (fn >> 16) & 0xff; - buf[3] = (fn >> 8) & 0xff; - buf[4] = (fn >> 0) & 0xff; + osmo_store32be(fn, buf + 1); buf[5] = pwr; /* Copy ubits {0,1} */ -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I9eff9b8e4b8ce9e0563a1ec3c485ab8b0f306491 Gerrit-Change-Number: 18823 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 14 10:03:56 2020 From: admin at opensuse.org (OBS Notification) Date: Sun, 14 Jun 2020 10:03:56 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee5f612b7d73_e962b0071b305f0129008@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 760s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 760s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 760s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 760s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 760s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 761s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 761s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 761s] [1935/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 761s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 761s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 762s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 762s] ../src/udm/context.c: In function ?udm_ue_add?: [ 762s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 762s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 762s] ~~^ [ 762s] %d [ 762s] cc1: some warnings being treated as errors [ 762s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 762s] ninja: build stopped: subcommand failed. [ 762s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1 [ 762s] make: *** [debian/rules:11: binary] Error 1 [ 762s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 762s] ### VM INTERACTION START ### [ 765s] [ 730.833854] sysrq: SysRq : Power Off [ 765s] [ 730.852144] reboot: Power down [ 765s] ### VM INTERACTION END ### [ 765s] [ 765s] armbuild01 failed "build open5gs_1.2.5.20200614.dsc" at Sun Jun 14 10:03:42 UTC 2020. [ 765s] -- 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 Jun 14 10:50:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 10:50:55 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 9: Code-Review+2 combining laforge's +1 and fixeria's +1 (review by fixeria has been addressed and no other changes since his +1) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 14 Jun 2020 10:50:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 10:51:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 10:51:05 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18507 ) Change subject: add osmo_mobile_identity API ...................................................................... add osmo_mobile_identity API Implement better API around 3GPP TS 24.008 Mobile Identity coding. struct osmo_mobile_identity is a decoded representation of the raw Mobile Identity, with a string representation as well as dedicated raw uint32_t TMSI. The aim is to remove all uncertainty about decoded buffer sizes / data types. I have patches ready for all osmo programs, completely replacing the Mobile Identity coding with this new API. Hence deprecate the old MI API. New API functions provide properly size-checking implementations of: - decoding a raw MI from a bunch of MI octets; - locating and decoding MI from a full 3GPP TS 24.008 Complete Layer 3 msgb; - encoding to a buffer; - encoding to the end of a msgb. Other than the old gsm48_generate_mid(), omit a TLV tag and length from encoding. Many callers manually stripped the tag and value after calling gsm48_generate_mid(). The aim is to leave writing a TL to the caller entirely, especially since some callers need to use a TvL, i.e. support a variable-size length of 8 or 16 bit. New validity checks so far not implemented anywhere else: - stricter validation of number of digits of IMSI, IMEI, IMEI-SV MI. - stricter on filler nibbles to be 0xf. Rationale: While implementing osmo-bsc's MSC pooling feature in osmo-bsc, this API will be used to reduce the number of times a Mobile Identity is extracted from a raw RSL message. Extracting the Mobile Identity from messages has numerous duplicate implementations across our code with various levels of specialization. https://xkcd.com/927/ To name a few: - libosmocore: gsm48_mi_to_string(), osmo_mi_name_buf() - osmo-bsc: extract_sub() - osmo-msc: mm_rx_loc_upd_req(), cm_serv_reuse_conn(), gsm48_rx_mm_serv_req(), vlr_proc_acc_req() We have existing functions to produce a human readable string from a Mobile Identity, more or less awkward: - gsm48_mi_to_string() decodes a TMSI as a decimal number. These days we use hexadecimal TMSI everywhere. - osmo_mi_name_buf() decodes the BCD digits from a raw MI every time, so we'd need to pass around the raw message bytes. Also, osmo_mi_name_buf() has the wrong signature, it should return a length like snprintf(). - osmo-bsc's extract_sub() first uses gsm48_mi_to_string() which encodes the raw uint32_t TMSI to a string, and then calls strtoul() via tmsi_from_string() to code those back to a raw uint32_t. Each of the above implementations employ their own size overflow checks, each invoke osmo_bcd2str() and implement their own TMSI osmo_load32be() handling. Too much code dup, let's hope that each and every one is correct. In osmo-bsc, I am now implementing MSC pooling, and need to extract NRI bits from a TMSI Mobile Identity. Since none of the above functions are general enough to be re-used, I found myself again copy-pasting Mobile Identity code: locating the MI in a 24.008 message with proper size checks, decoding MI octets. This time I would like it to become a generally re-usable API. Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gsm/gsm0808.c M src/gsm/gsm29118.c M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 13 files changed, 1,165 insertions(+), 150 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index e637786..8619120 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -55,6 +55,7 @@ uint8_t osmo_char2bcd(char c); int osmo_bcd2str(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex); +int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex); int osmo_hexparse(const char *str, uint8_t *b, int max_len); diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h index 7c68b1d..81f6028 100644 --- a/include/osmocom/gsm/gsm48.h +++ b/include/osmocom/gsm/gsm48.h @@ -4,10 +4,12 @@ #include +#include #include #include #include +#include #include #include @@ -48,16 +50,55 @@ void gsm48_generate_lai2(struct gsm48_loc_area_id *lai48, const struct osmo_location_area_id *lai); #define GSM48_MID_MAX_SIZE 11 -int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi); -int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi); -uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type); +int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) + OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); +int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) + OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); +uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) + OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); -/* Convert Mobile Identity (10.5.1.4) to string */ -int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len); const char *gsm48_mi_type_name(uint8_t mi); -const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len); -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len); -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len); +/* Convert encoded Mobile Identity (10.5.1.4) to string */ +int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len) + OSMO_DEPRECATED("Instead use osmo_mobile_identity_decode()"); +const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_c()"); +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_buf()"); +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_c()"); + +/*! Decoded representation of a Mobile Identity (3GPP TS 24.008 10.5.1.4). + * See osmo_mobile_identity_decode() and osmo_mobile_identity_from_l3(). */ +struct osmo_mobile_identity { + /*! A GSM_MI_TYPE_* constant (like GSM_MI_TYPE_IMSI). */ + uint8_t type; + /*! Decoded Mobile Identity digits or TMSI value. IMSI, IMEI and IMEISV as digits like + * "12345678", and TMSI is represented as raw uint32_t. */ + union { + /*! type == GSM_MI_TYPE_IMSI. */ + char imsi[GSM23003_IMSI_MAX_DIGITS + 1]; + /*! type == GSM_MI_TYPE_IMEI. */ + char imei[GSM23003_IMEI_NUM_DIGITS + 1]; + /*! type == GSM_MI_TYPE_IMEISV. */ + char imeisv[GSM23003_IMEISV_NUM_DIGITS + 1]; + /*! TMSI / P-TMSI / M-TMSI integer value if type == GSM_MI_TYPE_TMSI. */ + uint32_t tmsi; + }; +}; + +int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi); +char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi); +int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b); +int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, + bool allow_hex); +int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex); +int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits); +int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex); +int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex); /* Parse Routeing Area Identifier */ void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 38794c2..2784d0a 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1170,19 +1170,20 @@ /* IMSI */ if (dup->imsi && strlen(dup->imsi)) { - uint8_t mi[GSM48_MID_MAX_SIZE]; -/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, - * but somehow gcc (8.2) is not smart enough to figure this out and claims that - * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to - * mi[131], which is wrong */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Warray-bounds" - int imsi_len = gsm48_generate_mid_from_imsi(mi, dup->imsi); - OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); - if (imsi_len > 2) - msgb_tvlv_push(msg, BSSGP_IE_IMSI, - imsi_len-2, mi+2); -#pragma GCC diagnostic pop + struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; + OSMO_STRLCPY_ARRAY(mi.imsi, dup->imsi); + msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); + if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { + if (log_check_level(DBSSGP, LOGL_NOTICE)) { + char strbuf[64]; + osmo_mobile_identity_to_str_buf(strbuf, sizeof(strbuf), &mi); + LOGP(DBSSGP, LOGL_ERROR, + "NSEI=%u/BVCI=%u Cannot encode Mobile Identity %s\n", + nsei, bvci, strbuf); + } + msgb_free(msg); + return -EINVAL; + } } /* DRX parameters */ @@ -1227,12 +1228,8 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t drx_params = osmo_htons(pinfo->drx_params); - uint8_t mi[GSM48_MID_MAX_SIZE]; - int imsi_len = gsm48_generate_mid_from_imsi(mi, pinfo->imsi); struct gsm48_ra_id ra; - - if (imsi_len < 2) - return -EINVAL; + struct osmo_mobile_identity mi; msgb_nsei(msg) = nsei; msgb_bvci(msg) = ns_bvci; @@ -1241,16 +1238,23 @@ bgph->pdu_type = BSSGP_PDUT_PAGING_PS; else bgph->pdu_type = BSSGP_PDUT_PAGING_CS; + /* IMSI */ -/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, - * but somehow gcc (8.2) is not smart enough to figure this out and claims that - * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to - * mi[131], which is wrong */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Warray-bounds" - OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); - msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); -#pragma GCC diagnostic pop + mi = (struct osmo_mobile_identity){ .type = GSM_MI_TYPE_IMSI, }; + OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); + msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); + if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { + if (log_check_level(DBSSGP, LOGL_NOTICE)) { + char strbuf[64]; + osmo_mobile_identity_to_str_buf(strbuf, sizeof(strbuf), &mi); + LOGP(DBSSGP, LOGL_ERROR, + "NSEI=%u/BVCI=%u Cannot encode Mobile Identity %s\n", + nsei, ns_bvci, strbuf); + } + msgb_free(msg); + return -EINVAL; + } + /* DRX Parameters */ msgb_tvlv_put(msg, BSSGP_IE_DRX_PARAMS, 2, (uint8_t *) &drx_params); diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 5c9d11c..9e9cefc 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -178,22 +178,17 @@ const char *imsi) { struct msgb *msg = common_tx_radio_status(bctx); - uint8_t mi[GSM48_MID_MAX_SIZE]; - int imsi_len = gsm48_generate_mid_from_imsi(mi, imsi); + struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; + OSMO_STRLCPY_ARRAY(mi.imsi, imsi); if (!msg) return -ENOMEM; -/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, - * but somehow gcc (8.2) is not smart enough to figure this out and claims that - * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to - * mi[131], which is wrong */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Warray-bounds" - OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); - /* strip the MI type and length values (2 bytes) */ - if (imsi_len > 2) - msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); -#pragma GCC diagnostic pop + + msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); + if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { + msgb_free(msg); + return -EINVAL; + } LOGPC(DBSSGP, LOGL_NOTICE, "IMSI=%s ", imsi); return common_tx_radio_status2(msg, cause); @@ -486,6 +481,7 @@ struct tlv_parsed tp; uint8_t ra[6]; int rc, data_len; + struct osmo_mobile_identity mi; memset(ra, 0, sizeof(ra)); @@ -510,9 +506,11 @@ goto err_mand_ie; if (!pinfo->imsi) pinfo->imsi = talloc_zero_size(pinfo, GSM_IMSI_LENGTH); - gsm48_mi_to_string(pinfo->imsi, GSM_IMSI_LENGTH, - TLVP_VAL(&tp, BSSGP_IE_IMSI), - TLVP_LEN(&tp, BSSGP_IE_IMSI)); + if (osmo_mobile_identity_decode(&mi, TLVP_VAL(&tp, BSSGP_IE_IMSI), TLVP_LEN(&tp, BSSGP_IE_IMSI), false)) + goto err_mand_ie; + if (mi.type != GSM_MI_TYPE_IMSI) + goto err_mand_ie; + osmo_talloc_replace_string(pinfo, &pinfo->imsi, mi.imsi); /* DRX Parameters */ if (!TLVP_PRESENT(&tp, BSSGP_IE_DRX_PARAMS)) diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 9fdf379..6560d4b 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -730,9 +730,10 @@ const uint8_t *chan_needed) { struct msgb *msg; - uint8_t mid_buf[GSM48_MI_SIZE + 2]; - int mid_len; + struct osmo_mobile_identity mi; uint32_t tmsi_sw; + uint8_t *l; + int rc; /* Mandatory elements! */ OSMO_ASSERT(imsi); @@ -750,8 +751,15 @@ msgb_v_put(msg, BSS_MAP_MSG_PAGING); /* mandatory IMSI 3.2.2.6 */ - mid_len = gsm48_generate_mid_from_imsi(mid_buf, imsi); - msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); + mi = (struct osmo_mobile_identity){ .type = GSM_MI_TYPE_IMSI, }; + OSMO_STRLCPY_ARRAY(mi.imsi, imsi); + l = msgb_tl_put(msg, GSM0808_IE_IMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc <= 0) { + msgb_free(msg); + return NULL; + } + *l = rc; /* TMSI 3.2.2.7 */ if (tmsi) { @@ -967,9 +975,17 @@ /* IMSI 3.2.2.6 */ if (params->imsi) { - uint8_t mid_buf[GSM48_MI_SIZE + 2]; - int mid_len = gsm48_generate_mid_from_imsi(mid_buf, params->imsi); - msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); + uint8_t *l; + int rc; + struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; + OSMO_STRLCPY_ARRAY(mi.imsi, params->imsi); + l = msgb_tl_put(msg, GSM0808_IE_IMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc <= 0) { + msgb_free(msg); + return NULL; + } + *l = rc; } if (params->aoip_transport_layer) diff --git a/src/gsm/gsm29118.c b/src/gsm/gsm29118.c index 2c02b2f..5c72b4d 100644 --- a/src/gsm/gsm29118.c +++ b/src/gsm/gsm29118.c @@ -219,12 +219,14 @@ /* Encode IMSI from string representation and append to SGSaAP msg */ static void msgb_sgsap_imsi_put(struct msgb *msg, const char *imsi) { - uint8_t buf[16]; - uint8_t len; - /* encoding is just like TS 04.08 */ - len = gsm48_generate_mid_from_imsi(buf, imsi); - /* skip first two bytes (tag+length) so we can use msgb_tlv_put */ - msgb_tlv_put(msg, SGSAP_IE_IMSI, len - 2, buf + 2); + int rc; + struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; + uint8_t *l; + OSMO_STRLCPY_ARRAY(mi.imsi, imsi); + l = msgb_tl_put(msg, SGSAP_IE_IMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + /* This function fails to do error handling, so in case of error, leave the len == 0. */ + *l = rc > 0? rc : 0; } /* Encode LAI from struct representation and append to SGSaAP msg */ diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 8d0998b..11bd361 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -45,6 +45,7 @@ #include #include #include +#include /*! \addtogroup gsm0408 * @{ @@ -458,70 +459,500 @@ return get_value_string(mi_type_names, mi); } -/*! Return a human readable representation of a Mobile Identity in caller-provided buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in caller-provided buffer. * \param[out] buf caller-provided output buffer * \param[in] buf_len size of buf in bytes * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return buf */ -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi_data, uint8_t mi_len) { - uint8_t mi_type; - uint32_t tmsi; - char mi_string[GSM48_MI_SIZE]; - - mi_type = (mi && mi_len) ? (mi[0] & GSM_MI_TYPE_MASK) : GSM_MI_TYPE_NONE; - - switch (mi_type) { - case GSM_MI_TYPE_TMSI: - /* Table 10.5.4.3, reverse generate_mid_from_tmsi */ - if (mi_len == GSM48_TMSI_LEN && mi[0] == (0xf0 | GSM_MI_TYPE_TMSI)) { - tmsi = osmo_load32be(&mi[1]); - snprintf(buf, buf_len, "TMSI-0x%08" PRIX32, tmsi); - } else { - snprintf(buf, buf_len, "TMSI-invalid"); - } - return buf; - - case GSM_MI_TYPE_IMSI: - case GSM_MI_TYPE_IMEI: - case GSM_MI_TYPE_IMEISV: - osmo_bcd2str(mi_string, sizeof(mi_string), mi, 1, (mi_len * 2) - (mi[0] & GSM_MI_ODD ? 0 : 1), true); - snprintf(buf, buf_len, "%s-%s", gsm48_mi_type_name(mi_type), mi_string); - return buf; - - default: + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true)) { snprintf(buf, buf_len, "unknown"); return buf; } + osmo_mobile_identity_to_str_buf(buf, buf_len, &mi); + return buf; } -/*! Return a human readable representation of a Mobile Identity in static buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in static buffer. * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid"... */ -const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) +const char *osmo_mi_name(const uint8_t *mi_data, uint8_t mi_len) { static __thread char mi_name[10 + GSM48_MI_SIZE + 1]; - return osmo_mi_name_buf(mi_name, sizeof(mi_name), mi, mi_len); + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true) == 0) + osmo_mobile_identity_to_str_buf(mi_name, sizeof(mi_name), &mi); + else + snprintf(mi_name, sizeof(mi_name), "unknown"); + return mi_name; } -/*! Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. * \param[in] ctx talloc context from which to allocate output buffer * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid" in a * dynamically-allocated output buffer. */ -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi_data, uint8_t mi_len) { - size_t buf_len = 10 + GSM48_MI_SIZE + 1; - char *mi_name = talloc_size(ctx, buf_len); - if (!mi_name) - return NULL; - return osmo_mi_name_buf(mi_name, buf_len, mi, mi_len); + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true)) + return talloc_strdup((void*)ctx, "unknown"); + return osmo_mobile_identity_to_str_c((void*)ctx, &mi); +} + +/*! Extract Mobile Identity from encoded bytes (3GPP TS 24.008 10.5.1.4). + * + * On failure (negative return value), mi->type == GSM_MI_TYPE_NONE, mi->string[] is all-zero and mi->tmsi == + * GSM_RESERVED_TMSI. + * + * On success, mi->type reflects the decoded Mobile Identity type (GSM_MI_TYPE_IMSI, GSM_MI_TYPE_TMSI, GSM_MI_TYPE_IMEI + * or GSM_MI_TYPE_IMEISV). + * + * On success, mi->string always contains a human readable representation of the Mobile Identity digits: IMSI, IMEI and + * IMEISV as digits like "12345678", and TMSI as "0x" and 8 hexadecimal digits like "0x1234abcd". + * + * mi->tmsi contains the uint32_t TMSI value iff the extracted Mobile Identity was a TMSI, or GSM_RESERVED_TMSI + * otherwise. + * + * \param[out] mi Return buffer for decoded Mobile Identity. + * \param[in] mi_data The encoded Mobile Identity octets. + * \param[in] mi_len Number of octets in mi_data. + * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. + * \returns 0 on success, negative on error: -EBADMSG = invalid length indication or invalid data, + * -EINVAL = unknown Mobile Identity type. + */ +int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, + bool allow_hex) +{ + int rc; + int nibbles_len; + char *str; + size_t str_size; + + if (!mi_data || mi_len < 1) + return -EBADMSG; + + nibbles_len = (mi_len - 1) * 2 + ((mi_data[0] & GSM_MI_ODD) ? 1 : 0); + + *mi = (struct osmo_mobile_identity){ + .type = mi_data[0] & GSM_MI_TYPE_MASK, + }; + + /* First do length checks */ + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + mi->tmsi = GSM_RESERVED_TMSI; + if (nibbles_len != (GSM23003_TMSI_NUM_BYTES * 2)) { + rc = -EBADMSG; + goto return_error; + } + break; + + case GSM_MI_TYPE_IMSI: + if (nibbles_len < GSM23003_IMSI_MIN_DIGITS || nibbles_len > GSM23003_IMSI_MAX_DIGITS) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imsi; + str_size = sizeof(mi->imsi); + break; + + case GSM_MI_TYPE_IMEI: + if (nibbles_len != GSM23003_IMEI_NUM_DIGITS && nibbles_len != GSM23003_IMEI_NUM_DIGITS_NO_CHK) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imei; + str_size = sizeof(mi->imei); + break; + + case GSM_MI_TYPE_IMEISV: + if (nibbles_len != GSM23003_IMEISV_NUM_DIGITS) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imeisv; + str_size = sizeof(mi->imeisv); + break; + + default: + rc = -EINVAL; + goto return_error; + } + + /* Decode BCD digits */ + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + /* MI is a 32bit integer TMSI. Length has been checked above. */ + if ((mi_data[0] & 0xf0) != 0xf0) { + /* A TMSI always has the first nibble == 0xf */ + rc = -EBADMSG; + goto return_error; + } + mi->tmsi = osmo_load32be(&mi_data[1]); + return 0; + + case GSM_MI_TYPE_IMSI: + case GSM_MI_TYPE_IMEI: + case GSM_MI_TYPE_IMEISV: + /* If the length is even, the last nibble (higher nibble of last octet) must be 0xf */ + if (!(mi_data[0] & GSM_MI_ODD) + && ((mi_data[mi_len - 1] & 0xf0) != 0xf0)) { + rc = -EBADMSG; + goto return_error; + } + rc = osmo_bcd2str(str, str_size, mi_data, 1, 1 + nibbles_len, allow_hex); + /* rc checked below */ + break; + + default: + /* Already handled above, but as future bug paranoia: */ + rc = -EINVAL; + goto return_error; + } + + /* check mi->str printing rc */ + if (rc < 1 || rc >= str_size) { + rc = -EBADMSG; + goto return_error; + } + return 0; + +return_error: + *mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_NONE, + }; + return rc; +} + +/*! Return the number of encoded Mobile Identity octets, without actually encoding. + * Useful to write tag-length header before encoding the MI. + * \param[in] mi Mobile Identity. + * \param[out] mi_digits If not NULL, store the number of nibbles of used MI data (i.e. strlen(mi->string) or 8 for a TMSI). + * \return octets that osmo_mobile_identity_encode_msgb() will write for this mi. + */ +int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits) +{ + int mi_nibbles; + if (!mi) + return -EINVAL; + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + mi_nibbles = GSM23003_TMSI_NUM_BYTES * 2; + break; + case GSM_MI_TYPE_IMSI: + mi_nibbles = strlen(mi->imsi); + if (mi_nibbles < GSM23003_IMSI_MIN_DIGITS + || mi_nibbles > GSM23003_IMSI_MAX_DIGITS) + return -EINVAL; + break; + case GSM_MI_TYPE_IMEI: + mi_nibbles = strlen(mi->imei); + if (mi_nibbles < GSM23003_IMEI_NUM_DIGITS_NO_CHK + || mi_nibbles > GSM23003_IMEI_NUM_DIGITS) + return -EINVAL; + break; + case GSM_MI_TYPE_IMEISV: + mi_nibbles = strlen(mi->imeisv); + if (mi_nibbles != GSM23003_IMEISV_NUM_DIGITS) + return -EINVAL; + break; + default: + return -ENOTSUP; + } + + if (mi_digits) + *mi_digits = mi_nibbles; + + /* one type nibble, plus the MI nibbles, plus a filler nibble to complete the last octet: + * mi_octets = ceil((float)(mi_nibbles + 1) / 2) + */ + return (mi_nibbles + 2) / 2; +} + +/*! Encode Mobile Identity from uint32_t (TMSI) or digits string (all others) (3GPP TS 24.008 10.5.1.4). + * + * \param[out] buf Return buffer for encoded Mobile Identity. + * \param[in] buflen sizeof(buf). + * \param[in] mi Mobile identity to encode. + * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. + * \returns Amount of bytes written to buf, or negative on error. + */ +int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex) +{ + int rc; + int nibbles_len; + int mi_octets; + const char *mi_str; + + if (!buf || !buflen) + return -EIO; + + mi_octets = osmo_mobile_identity_encoded_len(mi, &nibbles_len); + if (mi_octets < 0) + return mi_octets; + if (mi_octets > buflen) + return -ENOSPC; + + buf[0] = (mi->type & GSM_MI_TYPE_MASK) | ((nibbles_len & 1) ? GSM_MI_ODD : 0); + + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + buf[0] |= 0xf0; + osmo_store32be(mi->tmsi, &buf[1]); + return mi_octets; + + case GSM_MI_TYPE_IMSI: + mi_str = mi->imsi; + break; + case GSM_MI_TYPE_IMEI: + mi_str = mi->imei; + break; + case GSM_MI_TYPE_IMEISV: + mi_str = mi->imeisv; + break; + default: + return -ENOTSUP; + } + rc = osmo_str2bcd(buf, buflen, mi_str, 1, -1, allow_hex); + if (rc != mi_octets) + return -EINVAL; + return mi_octets; +} + +/*! Encode Mobile Identity type and BCD digits, appended to a msgb. + * Example to add a GSM48_IE_MOBILE_ID IEI with tag and length to a msgb: + * + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, .tmsi = random_tmsi, }; + * uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); + * int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + * if (rc < 0) + * goto error; + * *l = rc; + * + * Example to add a BSSGP_IE_IMSI with tag and variable-size length, where the + * length needs to be known at the time of writing the IE tag-length header: + * + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; + * OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); + * msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); + * if (osmo_mobile_identity_encode_msgb(msg, &mi, false) < 0) + * goto error; + */ +int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex) +{ + int rc = osmo_mobile_identity_encode_buf(msg->tail, msgb_tailroom(msg), mi, allow_hex); + if (rc < 0) + return rc; + msgb_put(msg, rc); + return rc; +} + +/*! Extract Mobile Identity from a Complete Layer 3 message. + * + * Determine the Mobile Identity data and call osmo_mobile_identity_decode() to return a decoded struct + * osmo_mobile_identity. + * + * \param[out] mi Return buffer for decoded Mobile Identity. + * \param[in] msg The Complete Layer 3 message to extract from (LU, CM Service Req or Paging Resp). + * \returns 0 on success, negative on error: return codes as defined in osmo_mobile_identity_decode(), or + * -ENOTSUP = not a Complete Layer 3 message, + */ +int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex) +{ + const struct gsm48_hdr *gh; + int8_t pdisc = 0; + uint8_t mtype = 0; + const struct gsm48_loc_upd_req *lu; + const uint8_t *cm2_buf; + uint8_t cm2_len; + const uint8_t *mi_start; + const struct gsm48_pag_resp *paging_response; + const uint8_t *mi_data; + uint8_t mi_len; + const struct gsm48_imsi_detach_ind *idi; + + *mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_NONE, + .tmsi = GSM_RESERVED_TMSI, + }; + + if (msgb_l3len(msg) < sizeof(*gh)) + return -EBADMSG; + + gh = msgb_l3(msg); + pdisc = gsm48_hdr_pdisc(gh); + mtype = gsm48_hdr_msg_type(gh); + + switch (pdisc) { + case GSM48_PDISC_MM: + + switch (mtype) { + case GSM48_MT_MM_LOC_UPD_REQUEST: + /* First make sure that lu-> can be dereferenced */ + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) + return -EBADMSG; + + /* Now we know there is enough msgb data to read a lu->mi_len, so also check that */ + lu = (struct gsm48_loc_upd_req*)gh->data; + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu) + lu->mi_len) + return -EBADMSG; + mi_data = lu->mi; + mi_len = lu->mi_len; + goto got_mi; + + case GSM48_MT_MM_CM_SERV_REQ: + case GSM48_MT_MM_CM_REEST_REQ: + /* Unfortunately in Phase1 the Classmark2 length is variable, so we cannot + * just use gsm48_service_request struct, and need to parse it manually. */ + if (msgb_l3len(msg) < sizeof(*gh) + 2) + return -EBADMSG; + + cm2_len = gh->data[1]; + cm2_buf = gh->data + 2; + goto got_cm2; + + case GSM48_MT_MM_IMSI_DETACH_IND: + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*idi)) + return -EBADMSG; + idi = (struct gsm48_imsi_detach_ind*) gh->data; + mi_data = idi->mi; + mi_len = idi->mi_len; + goto got_mi; + + case GSM48_MT_MM_ID_RESP: + if (msgb_l3len(msg) < sizeof(*gh) + 2) + return -EBADMSG; + mi_data = gh->data+1; + mi_len = gh->data[0]; + goto got_mi; + + default: + break; + } + break; + + case GSM48_PDISC_RR: + + switch (mtype) { + case GSM48_MT_RR_PAG_RESP: + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*paging_response)) + return -EBADMSG; + paging_response = (struct gsm48_pag_resp*)gh->data; + cm2_len = paging_response->cm2_len; + cm2_buf = (uint8_t*)&paging_response->cm2; + goto got_cm2; + + default: + break; + } + break; + } + + return -ENOTSUP; + +got_cm2: + /* MI (Mobile Identity) LV follows the Classmark2 */ + + /* There must be at least a mi_len byte after the CM2 */ + if (cm2_buf + cm2_len + 1 > msg->tail) + return -EBADMSG; + + mi_start = cm2_buf + cm2_len; + mi_len = mi_start[0]; + mi_data = mi_start + 1; + +got_mi: + /* mi_data points at the start of the Mobile Identity coding of mi_len bytes */ + if (mi_data + mi_len > msg->tail) + return -EBADMSG; + + return osmo_mobile_identity_decode(mi, mi_data, mi_len, allow_hex); +} + +/*! Return a human readable representation of a struct osmo_mobile_identity. + * Write a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". + * \param[out] buf String buffer to write to. + * \param[in] buflen sizeof(buf). + * \param[in] mi Decoded Mobile Identity data. + * \return the strlen() of the string written when buflen is sufficiently large, like snprintf(). + */ +int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + if (!mi) + return snprintf(buf, buflen, "NULL"); + OSMO_STRBUF_PRINTF(sb, "%s", gsm48_mi_type_name(mi->type)); + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + OSMO_STRBUF_PRINTF(sb, "-0x%08" PRIX32, mi->tmsi); + break; + case GSM_MI_TYPE_IMSI: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imsi); + break; + case GSM_MI_TYPE_IMEI: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imei); + break; + case GSM_MI_TYPE_IMEISV: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imeisv); + break; + default: + break; + } + return sb.chars_needed; +} + +/*! Like osmo_mobile_identity_to_str_buf(), but return the string in a talloc buffer. + * \param[in] ctx Talloc context to allocate from. + * \param[in] mi Decoded Mobile Identity data. + * \return a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". + */ +char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi) +{ + OSMO_NAME_C_IMPL(ctx, 32, "ERROR", osmo_mobile_identity_to_str_buf, mi) +} + +/*! Compare two osmo_mobile_identity structs, returning typical cmp() result. + * \param[in] a Left side osmo_mobile_identity. + * \param[in] b Right side osmo_mobile_identity. + * \returns 0 if both are equal, -1 if a < b, 1 if a > b. + */ +int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b) +{ + int cmp; + if (a == b) + return 0; + if (!a) + return -1; + if (!b) + return 1; + cmp = OSMO_CMP(a->type, b->type); + if (cmp) + return cmp; + switch (a->type) { + case GSM_MI_TYPE_TMSI: + return OSMO_CMP(a->tmsi, b->tmsi); + case GSM_MI_TYPE_IMSI: + return strncmp(a->imsi, b->imsi, sizeof(a->imsi)); + case GSM_MI_TYPE_IMEI: + return strncmp(a->imei, b->imei, sizeof(a->imei)); + case GSM_MI_TYPE_IMEISV: + return strncmp(a->imeisv, b->imeisv, sizeof(a->imeisv)); + default: + /* No known type, but both have the same type. */ + return 0; + } } /*! Checks is particular message is cipherable in A/Gb mode according to @@ -676,64 +1107,76 @@ } } -/*! Generate TS 04.08 Mobile ID from TMSI +static int legacy_compat_generate_mid(uint8_t *buf, const struct osmo_mobile_identity *mi) +{ + int rc; + buf[0] = GSM48_IE_MOBILE_ID; + rc = osmo_mobile_identity_encode_buf(buf + 2, GSM48_MID_MAX_SIZE - 2, mi, false); + if (rc <= 0) + return 0; + OSMO_ASSERT(rc <= 9); + buf[1] = rc; + return 2 + rc; +} + +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 04.08 Mobile ID from TMSI * \param[out] buf Caller-provided output buffer (7 bytes) * \param[in] tmsi TMSI to be encoded * \returns number of byes encoded (always 7) */ int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) { - uint32_t tmsi_be = osmo_htonl(tmsi); - - buf[0] = GSM48_IE_MOBILE_ID; - buf[1] = GSM48_TMSI_LEN; - buf[2] = 0xf0 | GSM_MI_TYPE_TMSI; - memcpy(&buf[3], &tmsi_be, sizeof(tmsi_be)); - - return 7; + struct osmo_mobile_identity mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = tmsi, + }; + return legacy_compat_generate_mid(buf, &mi); } -/*! Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string * \param[out] buf Caller-provided output buffer of at least GSM48_MID_MAX_SIZE bytes * \param[in] id Identity to be encoded * \param[in] mi_type Type of identity (e.g. GSM_MI_TYPE_IMSI, IMEI, IMEISV) * \returns number of bytes used in \a buf */ uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) { - uint8_t length = strnlen(id, 16), i, off = 0, odd = (length & 1) == 1; - /* maximum length == 16 (IMEISV) */ - - buf[0] = GSM48_IE_MOBILE_ID; - buf[2] = osmo_char2bcd(id[0]) << 4 | (mi_type & GSM_MI_TYPE_MASK) | (odd << 3); - - /* if the length is even we will fill half of the last octet */ - buf[1] = (length + (odd ? 1 : 2)) >> 1; - /* buf[1] maximum = 18/2 = 9 */ - OSMO_ASSERT(buf[1] <= 9); - - for (i = 1; i < buf[1]; ++i) { - uint8_t upper, lower = osmo_char2bcd(id[++off]); - if (!odd && off + 1 == length) - upper = 0x0f; - else - upper = osmo_char2bcd(id[++off]) & 0x0f; - - buf[2 + i] = (upper << 4) | lower; + struct osmo_mobile_identity mi = { .type = mi_type }; + switch (mi_type) { + case GSM_MI_TYPE_TMSI: + mi.tmsi = strtoul(id, NULL, 10); + break; + case GSM_MI_TYPE_IMSI: + OSMO_STRLCPY_ARRAY(mi.imsi, id); + break; + case GSM_MI_TYPE_IMEI: + OSMO_STRLCPY_ARRAY(mi.imei, id); + break; + case GSM_MI_TYPE_IMEISV: + OSMO_STRLCPY_ARRAY(mi.imeisv, id); + break; + default: + return 0; } - - /* maximum return value: 2 + 9 = 11 */ - return 2 + buf[1]; + return legacy_compat_generate_mid(buf, &mi); } -/*! Generate TS 04.08 Mobile ID from IMSI +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 04.08 Mobile ID from IMSI * \param[out] buf Caller-provided output buffer * \param[in] imsi IMSI to be encoded * \returns number of bytes used in \a buf */ int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) { - return gsm48_generate_mid(buf, imsi, GSM_MI_TYPE_IMSI); + struct osmo_mobile_identity mi = { + .type = GSM_MI_TYPE_IMSI, + }; + OSMO_STRLCPY_ARRAY(mi.imsi, imsi); + return legacy_compat_generate_mid(buf, &mi); } -/*! Convert TS 04.08 Mobile Identity (10.5.1.4) to string. +/*! Deprecated, see osmo_mobile_identity instead. + * Convert TS 04.08 Mobile Identity (10.5.1.4) to string. * This function does not validate the Mobile Identity digits, i.e. digits > 9 are returned as 'A'-'F'. * \param[out] string Caller-provided buffer for output * \param[in] str_len Length of \a string in bytes diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ac9aeb2..742cec3 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -363,6 +363,14 @@ gsm48_generate_mid_from_imsi; gsm48_generate_mid_from_tmsi; gsm48_mi_to_string; +osmo_mobile_identity_to_str_buf; +osmo_mobile_identity_to_str_c; +osmo_mobile_identity_cmp; +osmo_mobile_identity_decode; +osmo_mobile_identity_decode_from_l3; +osmo_mobile_identity_encoded_len; +osmo_mobile_identity_encode_buf; +osmo_mobile_identity_encode_msgb; gsm48_mm_att_tlvdef; gsm48_number_of_paging_subchannels; gsm48_parse_ra; diff --git a/src/utils.c b/src/utils.c index 18e105f..3c4a8c9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -175,6 +175,65 @@ return OSMO_MAX(0, end_nibble - start_nibble); } +/*! Convert string to BCD. + * The given nibble offsets are interpreted in BCD order, i.e. nibble 0 is bcd[0] & 0x0f, nibble 1 is bcd[0] & 0xf0, nibble + * 3 is bcd[1] & 0x0f, etc.. + * \param[out] dst Output BCD buffer. + * \param[in] dst_size sizeof() the output string buffer. + * \param[in] digits String containing decimal or hexadecimal digits in upper or lower case. + * \param[in] start_nibble Offset to start from, in nibbles, typically 1 to skip the first (MI type) nibble. + * \param[in] end_nibble Negative to write all digits found in str, followed by 0xf nibbles to fill any started octet. + * If >= 0, stop before this offset in nibbles, e.g. to get default behavior, pass + * start_nibble + strlen(str) + ((start_nibble + strlen(str)) & 1? 1 : 0) + 1. + * \param[in] allow_hex If false, return error if there are hexadecimal digits (A-F). If true, write those to + * BCD. + * \returns The buffer size in octets that is used to place all bcd digits (including the skipped nibbles + * from 'start_nibble' and rounded up to full octets); -EINVAL on invalid digits; + * -ENOMEM if dst is NULL, if dst_size is too small to contain all nibbles, or if start_nibble is negative. + */ +int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex) +{ + const char *digit = digits; + int nibble_i; + + if (!dst || !dst_size || start_nibble < 0) + return -ENOMEM; + + if (end_nibble < 0) { + end_nibble = start_nibble + strlen(digits); + /* If the last octet is not complete, add another filler nibble */ + if (end_nibble & 1) + end_nibble++; + } + if ((end_nibble / 2) > dst_size) + return -ENOMEM; + + for (nibble_i = start_nibble; nibble_i < end_nibble; nibble_i++) { + uint8_t nibble = 0xf; + int octet = nibble_i >> 1; + if (*digit) { + char c = *digit; + digit++; + if (c >= '0' && c <= '9') + nibble = c - '0'; + else if (allow_hex && c >= 'A' && c <= 'F') + nibble = 0xa + (c - 'A'); + else if (allow_hex && c >= 'a' && c <= 'f') + nibble = 0xa + (c - 'a'); + else + return -EINVAL; + } + nibble &= 0xf; + if ((nibble_i & 1)) + dst[octet] = (nibble << 4) | (dst[octet] & 0x0f); + else + dst[octet] = (dst[octet] & 0xf0) | nibble; + } + + /* floor(float(end_nibble) / 2) */ + return end_nibble / 2; +} + /*! Parse a string containing hexadecimal digits * \param[in] str string containing ASCII encoded hexadecimal digits * \param[out] b output buffer diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 9617823..a86fe11 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -18,6 +18,8 @@ * */ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + #include #include #include @@ -386,8 +388,9 @@ { .mi_type = GSM_MI_TYPE_IMSI | GSM_MI_ODD, .mi_str = "423423", - .mi_name = "IMSI-423423", - .expect_mi_tlv_hex = "1704413224f3", + .expect_str = "", + .expect_rc = 1, + .mi_name = "unknown", }, { .mi_type = GSM_MI_TYPE_IMSI, @@ -471,21 +474,21 @@ .mi_type = GSM_MI_TYPE_NONE, .mi_str = "123", .mi_name = "unknown", - .expect_mi_tlv_hex = "17021832", /* encoding invalid MI type */ + .expect_mi_tlv_hex = "", .expect_str = "", }, { .mi_type = GSM_MI_TYPE_NONE, .mi_str = "1234", .mi_name = "unknown", - .expect_mi_tlv_hex = "17031032f4", /* encoding invalid MI type */ + .expect_mi_tlv_hex = "", .expect_str = "", }, { .mi_type = GSM_MI_ODD, .mi_str = "1234", .mi_name = "unknown", - .expect_mi_tlv_hex = "17031032f4", /* encoding invalid MI type */ + .expect_mi_tlv_hex = "", .expect_str = "", }, }; @@ -522,9 +525,14 @@ printf(" ERROR: expected '%s'\n", t->expect_mi_tlv_hex); } - /* skip the GSM48_IE_MOBILE_ID tag and length */ - mi_buf = tlv_buf + 2; - mi_len = tlv_len - 2; + if (tlv_len) { + /* skip the GSM48_IE_MOBILE_ID tag and length */ + mi_buf = tlv_buf + 2; + mi_len = tlv_len - 2; + } else { + mi_buf = NULL; + mi_len = 0; + } rc = gsm48_mi_to_string(str, str_size, mi_buf, mi_len); printf(" -> MI-str=%s rc=%d\n", osmo_quote_str(str, -1), rc); @@ -611,6 +619,368 @@ printf("\n"); } +struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) +{ + struct msgb *msg = msgb_alloc_headroom(size, 4, label); + OSMO_ASSERT(msg); + msg->l3h = msgb_put(msg, osmo_hexparse(hex, msg->data, msgb_tailroom(msg))); + return msg; +} + +struct mobile_identity_tc { + const char *label; + const char *compl_l3_msg; + int expect_rc; + struct osmo_mobile_identity expect_mi; +}; + +/* Some Complete Layer 3 messages copied from real GSM network traces. */ +struct mobile_identity_tc mobile_identity_tests[] = { + { + .label = "LU with IMSI 901700000004620", + .compl_l3_msg = "050802008168000130" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "LU with TMSI 0x0980ad8a", + .compl_l3_msg = "05084262f224002a50" "05f40980ad8a", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x0980ad8a, + }, + }, + { + .label = "LU with invalid MI type", + .compl_l3_msg = "050802008168000130" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "LU with truncated IMSI MI", + .compl_l3_msg = "050802008168000130" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too short IMSI MI (12345)", + .compl_l3_msg = "050802008168000130" "03193254", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with just long enough IMSI MI 123456", + .compl_l3_msg = "050802008168000130" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "LU with max length IMSI MI 123456789012345", + .compl_l3_msg = "050802008168000130" "081932547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456789012345", + }, + }, + { + .label = "LU with just too long IMSI MI 1234567890123456", + .compl_l3_msg = "050802008168000130" "091132547698103254f6", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with truncated TMSI MI", + .compl_l3_msg = "05084262f224002a50" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with odd length TMSI", + .compl_l3_msg = "05084262f224002a50" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too long TMSI MI", + .compl_l3_msg = "05084262f224002a50" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too short TMSI", + .compl_l3_msg = "05084262f224002a50" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with IMSI 123456", + .compl_l3_msg = "052401035058a6" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with TMSI 0x5a42e404", + .compl_l3_msg = "052401035058a6" "05f45a42e404", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x5a42e404, + }, + }, + { + .label = "CM Service Request with shorter CM2, with IMSI 123456", + .compl_l3_msg = "052401025058" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with longer CM2, with IMSI 123456", + .compl_l3_msg = "052401055058a62342" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with shorter CM2, with TMSI 0x00000000", + .compl_l3_msg = "052401025058" "05f400000000", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0, + }, + }, + { + .label = "CM Service Request with invalid MI type", + .compl_l3_msg = "052401035058a6" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "CM Service Request with truncated IMSI MI", + .compl_l3_msg = "052401035058a6" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with truncated TMSI MI", + .compl_l3_msg = "0524010150" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with odd length TMSI", + .compl_l3_msg = "052401045058a623" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with too long TMSI MI", + .compl_l3_msg = "052401035058a6" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with too short TMSI", + .compl_l3_msg = "052401035058a6" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Reestablish Request with TMSI 0x5a42e404", + .compl_l3_msg = "052801035058a6" "05f45a42e404", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x5a42e404, + }, + }, + { + .label = "Paging Response with IMSI 1234567", + .compl_l3_msg = "06270003505886" "0419325476", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "1234567", + }, + }, + { + .label = "Paging Response with TMSI 0xb48883de", + .compl_l3_msg = "06270003505886" "05f4b48883de", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0xb48883de, + }, + }, + { + .label = "Paging Response with TMSI, with unused nibble not 0xf", + .compl_l3_msg = "06270003505886" "0504b48883de", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with too short IMEI (1234567)", + .compl_l3_msg = "06270003505886" "041a325476", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with IMEI 123456789012345", + .compl_l3_msg = "06270003505886" "081a32547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "123456789012345", + }, + }, + { + .label = "Paging Response with IMEI 12345678901234 (no Luhn checksum)", + .compl_l3_msg = "06270003505886" "0812325476981032f4", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "12345678901234", + }, + }, + { + .label = "Paging Response with IMEISV 1234567890123456", + .compl_l3_msg = "06270003505886" "091332547698103254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMEISV, + .imeisv = "1234567890123456", + }, + }, + { + .label = "Paging Response with too short IMEISV 123456789012345", + .compl_l3_msg = "06270003505886" "081b32547698103254", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with too long IMEISV 12345678901234567", + .compl_l3_msg = "06270003505886" "091b3254769810325476", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with IMSI 123456789012345 and flipped ODD bit", + .compl_l3_msg = "06270003505886" "081132547698103254", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with IMSI 901700000004620", + .compl_l3_msg = "050130" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "IMSI-Detach with TMSI 0x0980ad8a", + .compl_l3_msg = "050130" "05f40980ad8a", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x0980ad8a, + }, + }, + { + .label = "IMSI-Detach with invalid MI type", + .compl_l3_msg = "050130" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "IMSI-Detach with truncated IMSI MI", + .compl_l3_msg = "050130" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too short IMSI MI (12345)", + .compl_l3_msg = "050130" "03193254", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with just long enough IMSI MI 123456", + .compl_l3_msg = "050130" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "IMSI-Detach with max length IMSI MI 123456789012345", + .compl_l3_msg = "050130" "081932547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456789012345", + }, + }, + { + .label = "IMSI-Detach with just too long IMSI MI 1234567890123456", + .compl_l3_msg = "050130" "091132547698103254f6", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with truncated TMSI MI", + .compl_l3_msg = "050130" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with odd length TMSI", + .compl_l3_msg = "050130" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too long TMSI MI", + .compl_l3_msg = "050130" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too short TMSI", + .compl_l3_msg = "050130" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "Identity Response with IMSI 901700000004620", + .compl_l3_msg = "0519" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "Identity Response with IMEI 123456789012345", + .compl_l3_msg = "0519" "081a32547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "123456789012345", + }, + }, + { + .label = "Identity Response with IMEISV 9876543210987654", + .compl_l3_msg = "0519" "099378563412907856f4", + .expect_mi = { + .type = GSM_MI_TYPE_IMEISV, + .imeisv = "9876543210987654", + }, + }, +}; + +void test_struct_mobile_identity() +{ + struct mobile_identity_tc *t; + printf("%s()\n", __func__); + for (t = mobile_identity_tests; (t - mobile_identity_tests) < ARRAY_SIZE(mobile_identity_tests); t++) { + struct osmo_mobile_identity mi; + struct msgb *msg; + int rc; + memset(&mi, 0xff, sizeof(mi)); + + msg = msgb_from_hex(t->label, 1024, t->compl_l3_msg); + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + msgb_free(msg); + + printf("%s: rc = %d", t->label, rc); + if (!rc) { + printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); + } + + if (rc == t->expect_rc + && ((rc != 0) || !osmo_mobile_identity_cmp(&mi, &t->expect_mi))) { + printf(" ok"); + } else { + printf(" ERROR: Expected rc = %d", t->expect_rc); + if (!t->expect_rc) + printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &t->expect_mi)); + } + printf("\n"); + } + printf("\n"); +} + static const struct bcd_number_test { /* Human-readable test name */ const char *test_name; @@ -1182,6 +1552,7 @@ test_mid_from_imsi(); test_mid_encode_decode(); test_mid_decode_zero_length(); + test_struct_mobile_identity(); test_bcd_number_encode_decode(); test_ra_cap(); test_lai_encode_decode(); diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index d343869..f8de54a 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -17,9 +17,9 @@ -> MI-str="423423" rc=7 -> MI-name="IMSI-423423" - unknown 0x9 423423 - -> MI-TLV-hex='1704413224f3' - -> MI-str="423423" rc=7 - -> MI-name="IMSI-423423" + -> MI-TLV-hex='' + -> MI-str="" rc=1 + -> MI-name="unknown" - IMSI 4234235 -> MI-TLV-hex='170449322453' -> MI-str="4234235" rc=8 @@ -65,15 +65,15 @@ -> MI-str="3054" rc=9 -> MI-name="TMSI-0x12345678" - NONE 123 - -> MI-TLV-hex='17021832' + -> MI-TLV-hex='' -> MI-str="" rc=1 -> MI-name="unknown" - NONE 1234 - -> MI-TLV-hex='17031032f4' + -> MI-TLV-hex='' -> MI-str="" rc=1 -> MI-name="unknown" - unknown 0x8 1234 - -> MI-TLV-hex='17031032f4' + -> MI-TLV-hex='' -> MI-str="" rc=1 -> MI-name="unknown" @@ -139,6 +139,57 @@ rc=1 returned empty string +test_struct_mobile_identity() +LU with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +LU with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok +LU with invalid MI type: rc = -22 ok +LU with truncated IMSI MI: rc = -74 ok +LU with too short IMSI MI (12345): rc = -74 ok +LU with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok +LU with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok +LU with just too long IMSI MI 1234567890123456: rc = -74 ok +LU with truncated TMSI MI: rc = -74 ok +LU with odd length TMSI: rc = -74 ok +LU with too long TMSI MI: rc = -74 ok +LU with too short TMSI: rc = -74 ok +CM Service Request with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok +CM Service Request with shorter CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with longer CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with shorter CM2, with TMSI 0x00000000: rc = 0, mi = TMSI-0x00000000 ok +CM Service Request with invalid MI type: rc = -22 ok +CM Service Request with truncated IMSI MI: rc = -74 ok +CM Service Request with truncated TMSI MI: rc = -74 ok +CM Service Request with odd length TMSI: rc = -74 ok +CM Service Request with too long TMSI MI: rc = -74 ok +CM Service Request with too short TMSI: rc = -74 ok +CM Service Reestablish Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok +Paging Response with IMSI 1234567: rc = 0, mi = IMSI-1234567 ok +Paging Response with TMSI 0xb48883de: rc = 0, mi = TMSI-0xB48883DE ok +Paging Response with TMSI, with unused nibble not 0xf: rc = -74 ok +Paging Response with too short IMEI (1234567): rc = -74 ok +Paging Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok +Paging Response with IMEI 12345678901234 (no Luhn checksum): rc = 0, mi = IMEI-12345678901234 ok +Paging Response with IMEISV 1234567890123456: rc = 0, mi = IMEI-SV-1234567890123456 ok +Paging Response with too short IMEISV 123456789012345: rc = -74 ok +Paging Response with too long IMEISV 12345678901234567: rc = -74 ok +Paging Response with IMSI 123456789012345 and flipped ODD bit: rc = -74 ok +IMSI-Detach with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +IMSI-Detach with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok +IMSI-Detach with invalid MI type: rc = -22 ok +IMSI-Detach with truncated IMSI MI: rc = -74 ok +IMSI-Detach with too short IMSI MI (12345): rc = -74 ok +IMSI-Detach with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok +IMSI-Detach with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok +IMSI-Detach with just too long IMSI MI 1234567890123456: rc = -74 ok +IMSI-Detach with truncated TMSI MI: rc = -74 ok +IMSI-Detach with odd length TMSI: rc = -74 ok +IMSI-Detach with too long TMSI MI: rc = -74 ok +IMSI-Detach with too short TMSI: rc = -74 ok +Identity Response with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +Identity Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok +Identity Response with IMEISV 9876543210987654: rc = 0, mi = IMEI-SV-9876543210987654 ok + BSD number encoding / decoding test - Running test: regular 9-digit MSISDN - Encoding ASCII (buffer limit=0) '123456789'... diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index e87cb22..e15cf5f 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -487,6 +487,7 @@ { int i; uint8_t bcd[64]; + uint8_t bcd2[64]; int rc; printf("\nTesting bcd to string conversion\n"); @@ -511,6 +512,12 @@ printf(" ERROR: expected rc=%d\n", t->expect_rc); if (strcmp(str, t->expect_str)) printf(" ERROR: expected result %s\n", osmo_quote_str(t->expect_str, -1)); + + memset(bcd2, 0xff, sizeof(bcd2)); + rc = osmo_str2bcd(bcd2, sizeof(bcd2), str, t->start_nibble, -1, t->allow_hex); + printf("osmo_str2bcd(start_nibble=%d) -> rc=%d\n", t->start_nibble, rc); + if (rc > 0) + printf(" = %s\n", osmo_hexdump(bcd2, rc)); } printf("- zero output buffer\n"); diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index baa708e..cbab72a 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -181,27 +181,41 @@ - BCD-input='1a 32 54 76 98 f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234567890" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 54 76 98 f0 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=-22 -> "1234ABCD90" +osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234ABCD90" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 a4 cb 9d f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=-22 -> "1234567890F" +osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=11 -> "1234567890F" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[0..12[ str_size=64 rc=12 -> "A1234567890F" +osmo_str2bcd(start_nibble=0) -> rc=6 + = 1a 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=5 rc=11 -> "1234" +osmo_str2bcd(start_nibble=1) -> rc=3 + = 1f 32 f4 - BCD-input='' nibbles=[1..1[ str_size=64 rc=0 -> "" +osmo_str2bcd(start_nibble=1) -> rc=1 + = ff - zero output buffer bcd2str(NULL, ...) -> -12 bcd2str(dst, 0, ...) -> -12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 Gerrit-Change-Number: 18507 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sun Jun 14 10:52:48 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 10:52:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix f_enc_IMEI_L3() oddevenIndicator In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 ) Change subject: fix f_enc_IMEI_L3() oddevenIndicator ...................................................................... fix f_enc_IMEI_L3() oddevenIndicator f_gen_imei() calls f_enc_IMEI_L3() with a 14 digits argument, but the IMEI_L3 template used is hardcoded to 15 digits. So the oddevenIndicator must always indicate odd, not depend on the digits argument. f_gen_imei() should probably also compose a Luhn checksum, leaving that to another patch. Found by using the new osmo_mobile_identity API in osmo-msc, which is stricter about odd/even and filler digits than our previous implementations. See osmo-msc Idfc8e576e10756aeaacf5569f6178068313eb7ea . Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0 --- M library/L3_Templates.ttcn 1 file changed, 14 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 3032503..ba91180 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -184,11 +184,20 @@ private function f_enc_IMEI_L3(hexstring digits) return IMEI_L3 { var IMEI_L3 l3; var integer len := lengthof(digits); - if (len rem 2 == 1) { /* modulo remainder */ - l3.oddevenIndicator := '1'B; - } else { - l3.oddevenIndicator := '0'B; - } + /* IMEI_L3 is always 15 digits. That is actually a 14 digit IMEI + a Luhn checksum digit (see + * libosmocore/include/osmocom/gsm/protocol/gsm_23_003.h) + * + * Here, we must not make the oddevenIndicator depend on the 'digits' parameter, because: + * - The IMEI_L3 template assumes always 15 digits. + * - The 'digits' parameter, however, may also contain less digits, 14 in the case of + * f_gen_imei(). + * - The IMEI_L3 template will then fill up with zeros to make 15 digits. + * Hence oddevenIndicator must always indicate 'odd' == '1'B. + * + * FIXME: if the caller passes less than 15 digits, the Luhn checksum digit then ends up zero == most probably + * wrong. + */ + l3.oddevenIndicator := '1'B; l3.digits := digits; return l3; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaa9ba1214c4c15fd9620e68fe2e842fdf52912c0 Gerrit-Change-Number: 18758 Gerrit-PatchSet: 2 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 Sun Jun 14 10:54:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 10:54:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move type RAN_Configurations to RAN_Adapter.ttcnpp In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 ) Change subject: move type RAN_Configurations to RAN_Adapter.ttcnpp ...................................................................... move type RAN_Configurations to RAN_Adapter.ttcnpp So far used only in MSC_Tests.ttcn, but soon to be used also in BSC_Tests.ttcn. Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 --- M library/RAN_Adapter.ttcnpp M msc/MSC_Tests.ttcn 2 files changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/RAN_Adapter.ttcnpp b/library/RAN_Adapter.ttcnpp index f84fd34..68e1e60 100644 --- a/library/RAN_Adapter.ttcnpp +++ b/library/RAN_Adapter.ttcnpp @@ -64,6 +64,7 @@ octetstring sio, integer rctx }; +type record of RAN_Configuration RAN_Configurations; private function init_pars(inout RAN_Adapter ba, in RAN_Configuration cfg) { ba.sccp_pars := { diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 35ca84a..bfac7e9 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -81,7 +81,6 @@ import from TCCConversion_Functions all; const integer NUM_BSC := 3; -type record of RAN_Configuration RAN_Configurations; /* Needed for SGsAP SMS */ import from MobileL3_SMS_Types all; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8f7fd50a88302af645ab337a907d8f0ad79a306 Gerrit-Change-Number: 18759 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 Sun Jun 14 11:01:34 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:01:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow multiple MSCs In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 ) Change subject: bsc: allow multiple MSCs ...................................................................... bsc: allow multiple MSCs Similar to the MSC tests, have several g_bssap and mp_bssap_cfg. Prepare for MSC pool tests. Replace g_bssap with a g_bssap[NUM_MSC] array. Replace mp_bssap_cfg with an mp_bssap_cfg[NUM_MSC] array. Requires patch I1986e4ef43beee161c82193694421b56136c1afe in docker-playground to match the new required BSC_Tests.cfg format. Related: OS#3682 Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn M bsc/MSC_ConnectionHandler.ttcn 3 files changed, 119 insertions(+), 75 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 48766f1..364254c 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -59,6 +59,7 @@ import from SCCPasp_Types all; const integer NUM_BTS := 3; +const integer NUM_MSC := 3; const float T3101_MAX := 12.0; /* make sure to sync this with the osmo-bts.cfg you're using */ @@ -87,7 +88,7 @@ var MGCP_Emulation_CT vc_MGCP; port TELNETasp_PT BSCVTY; - var RAN_Adapter g_bssap; + var RAN_Adapter g_bssap[NUM_MSC]; /* for old legacy-tests only */ port BSSAP_CODEC_PT BSSAP; @@ -119,16 +120,40 @@ /* IP address at which the test binds */ charstring mp_test_ip := "127.0.0.1"; - RAN_Configuration mp_bssap_cfg := { - transport := BSSAP_TRANSPORT_AoIP, - sccp_service_type := "mtp3_itu", - sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" }, - own_pc := 185, - own_ssn := 254, - peer_pc := 187, - peer_ssn := 254, - sio := '83'O, - rctx := 0 + RAN_Configurations mp_bssap_cfg := { + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23905, "127.0.0.1", 2905, "127.0.0.1" }, + own_pc := 185, /* 0.23.1 first MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 0 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23906, "127.0.0.1", 2905, "127.0.0.1" }, + own_pc := 2, /* 0.0.2 second MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 2 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23907, "127.0.0.1", 2905, "127.0.0.1" }, + own_pc := 3, /* 0.0.3 third MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 3 + } }; /* Whether to enable osmux tests. Can be dropped completely and enable @@ -139,15 +164,16 @@ uint8_t mp_exp_ms_power_level := 7; } -private function f_gen_test_hdlr_pars() return TestHdlrParams { +private function f_gen_test_hdlr_pars(integer bssap_idx := 0) return TestHdlrParams { var TestHdlrParams pars := valueof(t_def_TestHdlrPars); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { pars.aoip := true; } else { pars.aoip := false; } pars.exp_ms_power_level := mp_exp_ms_power_level; + pars.mscpool.bssap_idx := bssap_idx; return pars; } @@ -158,13 +184,15 @@ mtc.stop; } -private function f_legacy_bssap_reset() runs on test_CT { +private function f_legacy_bssap_reset(integer bssap_idx := 0) runs on test_CT { var BSSAP_N_UNITDATA_ind ud_ind; timer T := 5.0; - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[bssap_idx].sccp_addr_peer, g_bssap[bssap_idx].sccp_addr_own, + ts_BSSMAP_Reset(0, g_osmux_enabled))); T.start; alt { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap.sccp_addr_own, g_bssap.sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { + [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap[bssap_idx].sccp_addr_own, g_bssap[bssap_idx].sccp_addr_peer, + tr_BSSMAP_ResetAck(g_osmux_enabled))) { log("Received RESET-ACK in response to RESET, we're ready to go!"); } [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset(g_osmux_enabled))) -> value ud_ind { @@ -306,7 +334,7 @@ mgw_udp_port := 2427, /* Enable it for SCCPlite, since we have 2 MGCP sockets towards MGW (UDP one + the on with MGCP over IPA forwarded from MSC one) */ - multi_conn_mode := (mp_bssap_cfg.transport == BSSAP_TRANSPORT_SCCPlite_SERVER) + multi_conn_mode := (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) }; vc_MGCP := MGCP_Emulation_CT.create(id); @@ -343,8 +371,12 @@ /* global initialization function * \param nr_bts Number of BTSs we should start/bring up - * \param handler_mode Start an RSL_Emulation_CT component (true) or not (false) */ -function f_init(integer nr_bts := NUM_BTS, boolean handler_mode := false, boolean allow_osmux := false) runs on test_CT { + * \param handler_mode Start an RSL_Emulation_CT component (true) or not (false). + * \param nr_msc Number of virtual MSCs to bring up to connect to osmo-bsc. + */ +function f_init(integer nr_bts := NUM_BTS, boolean handler_mode := false, boolean allow_osmux := false, + integer nr_msc := 1) runs on test_CT { + var integer bssap_idx; var integer i; if (g_initialized) { @@ -360,19 +392,21 @@ f_vty_allow_osmux(allow_osmux); } - /* Call a function of our 'parent component' RAN_Adapter_CT to start the - * MSC-side BSSAP emulation */ - if (handler_mode) { - var RanOps ranops := MSC_RanOps; - ranops.use_osmux := g_osmux_enabled; - f_ran_adapter_init(g_bssap, mp_bssap_cfg, "VirtMSC", ranops); - connect(self:SCCPLITE_IPA_CTRL, g_bssap.vc_RAN:CTRL_CLIENT); - f_ran_adapter_start(g_bssap); - } else { - f_ran_adapter_init(g_bssap, mp_bssap_cfg, "VirtMSC", omit); - connect(self:BSSAP, g_bssap.vc_SCCP:SCCP_SP_PORT); - f_ran_adapter_start(g_bssap); - f_legacy_bssap_reset(); + for (bssap_idx := 0; bssap_idx < nr_msc; bssap_idx := bssap_idx+1) { + /* Call a function of our 'parent component' RAN_Adapter_CT to start the + * MSC-side BSSAP emulation */ + if (handler_mode) { + var RanOps ranops := MSC_RanOps; + ranops.use_osmux := g_osmux_enabled; + f_ran_adapter_init(g_bssap[bssap_idx], mp_bssap_cfg[bssap_idx], "VirtMSC", ranops); + connect(self:SCCPLITE_IPA_CTRL, g_bssap[bssap_idx].vc_RAN:CTRL_CLIENT); + f_ran_adapter_start(g_bssap[bssap_idx]); + } else { + f_ran_adapter_init(g_bssap[bssap_idx], mp_bssap_cfg[bssap_idx], "VirtMSC", omit); + connect(self:BSSAP, g_bssap[bssap_idx].vc_SCCP:SCCP_SP_PORT); + f_ran_adapter_start(g_bssap[bssap_idx]); + f_legacy_bssap_reset(); + } } f_ipa_ctrl_start(mp_bsc_ip, mp_bsc_ctrl_port); @@ -612,16 +646,17 @@ /* Verify that the BSC refuses any BSSAP connection from the MSC (They are all BSC->MSC direction, * except for the inter-BSC handover, MT side) */ -testcase TC_outbound_connect() runs on test_CT { +testcase TC_outbound_connect(integer bssap_idx := 0) runs on test_CT { f_init(1); - BSSAP.send(ts_BSSAP_CONNECT_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, 2342, ts_BSSMAP_AssignmentReq)); + BSSAP.send(ts_BSSAP_CONNECT_req(g_bssap[bssap_idx].sccp_addr_peer, g_bssap[bssap_idx].sccp_addr_own, + 2342, ts_BSSMAP_AssignmentReq)); BSSAP.receive(tr_BSSAP_DISC_ind(2342, ?, ?)); setverdict(pass); } /* Test behavior if MSC answers with CREF to CR */ -testcase TC_assignment_cic_only() runs on test_CT { +testcase TC_assignment_cic_only(integer bssap_idx := 0) runs on test_CT { var BSSAP_N_CONNECT_ind rx_c_ind; var RSL_Message rx_rsl; var DchanTuple dt; @@ -629,7 +664,7 @@ f_init(1); dt := f_est_dchan('23'O, 23, '00000000'O); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { /* send assignment without AoIP IEs */ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_AssignmentReq(ts_BSSMAP_IE_CIC(0, 1)))); } else { @@ -651,10 +686,10 @@ } /* generate an assignment request for either AoIP or SCCPlite */ -function f_gen_ass_req(boolean osmux_enabled := false) return PDU_BSSAP { +function f_gen_ass_req(boolean osmux_enabled := false, integer bssap_idx := 0) return PDU_BSSAP { var PDU_BSSAP ass_cmd; var BSSMAP_IE_Osmo_OsmuxCID osmux_cid := valueof(ts_OsmuxCID(0)); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342)); if (osmux_enabled) { @@ -669,9 +704,9 @@ return ass_cmd; } -function f_gen_handover_req() return PDU_BSSAP { +function f_gen_handover_req(integer bssap_idx := 0) return PDU_BSSAP { var PDU_BSSAP ho_req; - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342)); ho_req := valueof(ts_BSSMAP_HandoverRequest(omit, tla)); @@ -683,10 +718,10 @@ } /* generate an assignment complete template for either AoIP or SCCPlite */ -function f_gen_exp_compl(boolean expect_osmux := false) return template PDU_BSSAP { +function f_gen_exp_compl(boolean expect_osmux := false, integer bssap_idx := 0) return template PDU_BSSAP { var template PDU_BSSAP exp_compl; var BSSMAP_IE_Osmo_OsmuxCID osmux_cid := valueof(ts_OsmuxCID(0)); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[bssap_idx].transport == BSSAP_TRANSPORT_AoIP) { if (expect_osmux) { exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?, osmux_cid); } else { @@ -1055,9 +1090,9 @@ IPA_RSL[0].clear; /* perform BSSAP RESET, expect RESET ACK and DISC.ind on connection */ - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[0].sccp_addr_peer, g_bssap[0].sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); interleave { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap.sccp_addr_own, g_bssap.sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } + [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap[0].sccp_addr_own, g_bssap[0].sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } [] BSSAP.receive(tr_BSSAP_DISC_ind(dt.sccp_conn_id, ?, ?)) { } } @@ -1258,10 +1293,6 @@ setverdict(pass); } -function f_bssap_tx_ud(template PDU_BSSAP bssap) runs on test_CT { - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, bssap)); -} - /*********************************************************************** * Paging Testing @@ -1314,7 +1345,8 @@ bssmap_chneed := omit; } - f_bssap_tx_ud(ts_BSSMAP_Paging(imsi, cid_list, tmsi, bssmap_chneed)); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[0].sccp_addr_peer, g_bssap[0].sccp_addr_own, + ts_BSSMAP_Paging(imsi, cid_list, tmsi, bssmap_chneed))); if (not istemplatekind(tmsi, "omit")) { mi := t_MI_TMSI(tmsi); @@ -1583,9 +1615,9 @@ f_pageing_helper('001010123456789'H, cid_list, c_BtsId_all); /* Perform a BSSMAP Reset and wait for ACK */ - BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); + BSSAP.send(ts_BSSAP_UNITDATA_req(g_bssap[0].sccp_addr_peer, g_bssap[0].sccp_addr_own, ts_BSSMAP_Reset(0, g_osmux_enabled))); alt { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap.sccp_addr_own, g_bssap.sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } + [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_bssap[0].sccp_addr_own, g_bssap[0].sccp_addr_peer, tr_BSSMAP_ResetAck(g_osmux_enabled))) { } [] BSSAP.receive { repeat; } } @@ -1744,8 +1776,8 @@ type function void_fn(charstring id) runs on MSC_ConnHdlr; /* helper function to create and connect a MSC_ConnHdlr component */ -private function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { - connect(vc_conn:RAN, g_bssap.vc_RAN:PROC); +private function f_connect_handler(inout MSC_ConnHdlr vc_conn, integer bssap_idx := 0) runs on test_CT { + connect(vc_conn:RAN, g_bssap[bssap_idx].vc_RAN:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC); @@ -1757,7 +1789,7 @@ connect(vc_conn:RSL2, bts[2].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL2_PROC, bts[2].rsl.vc_RSL:RSL_PROC); } - connect(vc_conn:BSSAP, g_bssap.vc_RAN:CLIENT); + connect(vc_conn:BSSAP, g_bssap[bssap_idx].vc_RAN:CLIENT); connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); connect(vc_conn:MGCP_MULTI, vc_MGCP:MGCP_CLIENT_MULTI); } @@ -1766,8 +1798,12 @@ runs on test_CT return MSC_ConnHdlr { var charstring id := testcasename(); var MSC_ConnHdlr vc_conn; + var integer bssap_idx := 0; + if (isvalue(pars)) { + bssap_idx := valueof(pars).mscpool.bssap_idx; + } vc_conn := MSC_ConnHdlr.create(id); - f_connect_handler(vc_conn); + f_connect_handler(vc_conn, bssap_idx); vc_conn.start(f_handler_init(fn, id, pars)); return vc_conn; } @@ -2063,7 +2099,7 @@ var template PDU_BSSAP exp_compl := f_gen_exp_compl(g_pars.use_osmux); /* puzzle together the ASSIGNMENT REQ for given codec[s] */ - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { ass_cmd.pdu.bssmap.assignmentRequest.codecList := g_pars.ass_codec_list; exp_compl.pdu.bssmap.assignmentComplete.speechCodec.codecElements[0] := g_pars.ass_codec_list.codecElements[0]; @@ -2118,7 +2154,7 @@ var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail; /* puzzle together the ASSIGNMENT REQ for given codec[s] */ - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { ass_cmd.pdu.bssmap.assignmentRequest.codecList := g_pars.ass_codec_list; } ass_cmd.pdu.bssmap.assignmentRequest.channelType := @@ -3323,8 +3359,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_into_this_bsc), pars); vc_conn.done; @@ -3396,8 +3432,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_msc_clears), pars); vc_conn.done; @@ -3476,8 +3512,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_msc_clears_after_ho_detect), pars); vc_conn.done; @@ -3557,8 +3593,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_no_detect), pars); vc_conn.done; @@ -3628,8 +3664,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap.sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap.sccp_addr_peer; + pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; + pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; vc_conn := f_start_handler(refers(f_tc_ho_in_fail_no_detect2), pars); vc_conn.done; @@ -4422,7 +4458,7 @@ execute( TC_ctrl_msc_connection_status() ); execute( TC_ctrl_msc0_connection_status() ); execute( TC_ctrl() ); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_SCCPlite_SERVER) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) { execute( TC_ctrl_location() ); } @@ -4453,7 +4489,7 @@ execute( TC_assignment_sign() ); execute( TC_assignment_fr_a5_0() ); execute( TC_assignment_fr_a5_1() ); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { execute( TC_assignment_fr_a5_1_codec_missing() ); } execute( TC_assignment_fr_a5_3() ); @@ -4468,7 +4504,7 @@ execute( TC_assignment_codec_amr_f() ); execute( TC_assignment_codec_amr_h() ); - if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { execute( TC_assignment_codec_amr_f_S1() ); execute( TC_assignment_codec_amr_h_S1() ); execute( TC_assignment_codec_amr_f_S124() ); diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 6087133..72fb525 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -161,8 +161,8 @@ /* helper function to create and connect a MSC_ConnHdlr component */ /* FIXME: Why can't we use BSC_Tests.f_connect_andler() ?!? */ -private function f_connect_handler(inout LCLS_MSC_ConnHdlr vc_conn) runs on lcls_test_CT { - connect(vc_conn:RAN, g_bssap.vc_RAN:PROC); +private function f_connect_handler(inout LCLS_MSC_ConnHdlr vc_conn, integer bssap_idx := 0) runs on lcls_test_CT { + connect(vc_conn:RAN, g_bssap[bssap_idx].vc_RAN:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC); @@ -170,7 +170,7 @@ connect(vc_conn:RSL1, bts[1].rsl.vc_RSL:CLIENT_PT); connect(vc_conn:RSL1_PROC, bts[1].rsl.vc_RSL:RSL_PROC); } - connect(vc_conn:BSSAP, g_bssap.vc_RAN:CLIENT); + connect(vc_conn:BSSAP, g_bssap[bssap_idx].vc_RAN:CLIENT); connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); } diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index f1d2e63..feedc6f 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -514,6 +514,10 @@ SCCP_PAR_Address sccp_addr_bsc } +type record TestHdlrParamsMSCPool { + integer bssap_idx +} + type record TestHdlrParams { OCT1 ra, GsmFrameNumber fn, @@ -529,7 +533,8 @@ uint5_t exp_ms_power_level, boolean exp_ms_power_params, boolean aoip, - boolean use_osmux + boolean use_osmux, + TestHdlrParamsMSCPool mscpool }; /* Note: Do not use valueof() to get a value of this template, use @@ -556,7 +561,10 @@ exp_ms_power_level := 7, /* calculated from osmo-bsc.cfg "ms max power" */ exp_ms_power_params := false, aoip := true, - use_osmux := false + use_osmux := false, + mscpool := { + bssap_idx := 0 + } } function f_create_chan_and_exp() runs on MSC_ConnHdlr { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f Gerrit-Change-Number: 18760 Gerrit-PatchSet: 5 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 Sun Jun 14 11:01:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:01:43 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18774 ) Change subject: BSC_Tests.cfg: adjust cfg for multiple MSCs ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1986e4ef43beee161c82193694421b56136c1afe Gerrit-Change-Number: 18774 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 14 Jun 2020 11:01: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 Jun 14 11:01:46 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:01:46 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18774 ) Change subject: BSC_Tests.cfg: adjust cfg for multiple MSCs ...................................................................... BSC_Tests.cfg: adjust cfg for multiple MSCs This only enables ttcn to be able to connect multiple MSCs. To be able to use this in the BSC_Tests, osmo-bsc.cfg needs adjusting in an upcoming patch; tests using this are in osmo-ttcn3-hacks I21cbab193cd0de2e5692665442eae113d5f61904. Depends: Ibb36695b7c31f7b04eec6c5d59522fc0779b3c2f (osmo-ttcn3-hacks) Change-Id: I1986e4ef43beee161c82193694421b56136c1afe --- M ttcn3-bsc-test/BSC_Tests.cfg M ttcn3-bsc-test/osmo-stp.cfg 2 files changed, 50 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve neels: Verified diff --git a/ttcn3-bsc-test/BSC_Tests.cfg b/ttcn3-bsc-test/BSC_Tests.cfg index a27d099..fab146d 100644 --- a/ttcn3-bsc-test/BSC_Tests.cfg +++ b/ttcn3-bsc-test/BSC_Tests.cfg @@ -13,15 +13,39 @@ BSC_Tests.mp_test_ip := "172.18.2.203"; BSC_Tests.mp_enable_osmux_test := true; BSC_Tests.mp_bssap_cfg := { - transport := BSSAP_TRANSPORT_AoIP, - sccp_service_type := "mtp3_itu", - sctp_addr := { 23905, "172.18.2.203", 2905, "172.18.2.200" }, - own_pc := 185, - own_ssn := 254, - peer_pc := 187, - peer_ssn := 254, - sio := '83'O, - rctx := 1 + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23905, "172.18.2.203", 2905, "172.18.2.200" }, + own_pc := 185, /* 0.23.1 first MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 1 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23906, "172.18.2.203", 2905, "172.18.2.200" }, + own_pc := 2, /* 0.0.2 second MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 2 + }, + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 23907, "172.18.2.203", 2905, "172.18.2.200" }, + own_pc := 3, /* 0.0.3 third MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 3 + } }; BSC_Tests_CBSP.mp_cgi_bts0 := { '001'H, '01'H, 1, 0 }; BSC_Tests_CBSP.mp_cgi_bts1 := { '001'H, '01'H, 1, 1 }; diff --git a/ttcn3-bsc-test/osmo-stp.cfg b/ttcn3-bsc-test/osmo-stp.cfg index 9102114..0c6d3a2 100644 --- a/ttcn3-bsc-test/osmo-stp.cfg +++ b/ttcn3-bsc-test/osmo-stp.cfg @@ -45,8 +45,25 @@ as virt-msc0 m3ua asp virt-msc0-0 routing-key 1 0.23.1 + + asp virt-msc1-0 23906 2905 m3ua + local-ip 172.18.2.200 + remote-ip 172.18.2.203 + as virt-msc1 m3ua + asp virt-msc1-0 + routing-key 2 0.0.2 + + asp virt-msc2-0 23907 2905 m3ua + local-ip 172.18.2.200 + remote-ip 172.18.2.203 + as virt-msc2 m3ua + asp virt-msc2-0 + routing-key 3 0.0.3 + route-table system update route 0.23.1 7.255.7 linkset virt-msc0 + update route 0.0.2 7.255.7 linkset virt-msc1 + update route 0.0.3 7.255.7 linkset virt-msc2 listen m3ua 2905 accept-asp-connections dynamic-permitted listen ipa 5000 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1986e4ef43beee161c82193694421b56136c1afe Gerrit-Change-Number: 18774 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 11:06:38 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:06:38 +0000 Subject: Change in osmocom-bb[master]: trxcon: use osmo_{store, load}32be() to pack / unpack TDMA fn In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18823 ) Change subject: trxcon: use osmo_{store,load}32be() to pack / unpack TDMA fn ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I9eff9b8e4b8ce9e0563a1ec3c485ab8b0f306491 Gerrit-Change-Number: 18823 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 14 Jun 2020 11:06:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 11:09:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:09:00 +0000 Subject: Change in osmo-bts[master]: measurement: replace u_int64_t with uint64_t In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18822 ) Change subject: measurement: replace u_int64_t with uint64_t ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18822/1/src/common/measurement.c File src/common/measurement.c: https://gerrit.osmocom.org/c/osmo-bts/+/18822/1/src/common/measurement.c at 473 PS1, Line 473: uint64_t > Can we simply use 'unsigned long' here? Do we really need the bit-size precision? /me prefers explicit bit size because who knows what arch out there has what size of long -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id6b5df7f5045901109fe1007a5ad54e2f95b95f8 Gerrit-Change-Number: 18822 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 14 Jun 2020 11:09:00 +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 Sun Jun 14 11:10:28 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:10:28 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 14 Jun 2020 11:10:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 11:11:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:11:04 +0000 Subject: Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payload In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18645 ) Change subject: mgcp_trunk: remove audio_name and audio_payload ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Gerrit-Change-Number: 18645 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 14 Jun 2020 11:11: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 Jun 14 11:20:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:20:22 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 11: Code-Review-1 (4 comments) some still unaddressed https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c at 751 PS11, Line 751: OSMO_ASSERT(trunk); thanks for applying here... https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c at 760 PS11, Line 760: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); ...and there are still many more of these below The point being that mgcp_trunk_by_num() does not guarantee to actually find a trunk. The virtual trunk may be expected to be always allocated, but if it isn't for whatever reason, leaving the result unchecked may run into situations that are hard to debug. https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c at 882 PS11, Line 882: continue; please still explain, as in previous comment: - below, I find VTY commands that are only valid for the virtual trunk, yet we're writing them for non-virtual trunks? - how is the virtual trunk written to vty now? To me it seems to make sense to write both kinds here? https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/tests/mgcp/mgcp_test.c File tests/mgcp/mgcp_test.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/tests/mgcp/mgcp_test.c at 771 PS11, Line 771: trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk), and more below -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 14 Jun 2020 11:20: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 Sun Jun 14 11:23:47 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:23:47 +0000 Subject: Change in libosmo-sccp[master]: M3UA: Accept DATA without routing context IE if only a single AS in ASP In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 ) Change subject: M3UA: Accept DATA without routing context IE if only a single AS in ASP ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Gerrit-Change-Number: 18818 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 14 Jun 2020 11:23:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 11:30:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 14 Jun 2020 11:30:57 +0000 Subject: Change in osmocom-bb[master]: trxcon: use osmo_{store, load}32be() to pack / unpack TDMA fn In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18823 ) Change subject: trxcon: use osmo_{store,load}32be() to pack / unpack TDMA fn ...................................................................... trxcon: use osmo_{store,load}32be() to pack / unpack TDMA fn Change-Id: I9eff9b8e4b8ce9e0563a1ec3c485ab8b0f306491 --- M src/host/trxcon/trx_if.c 1 file changed, 2 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/src/host/trxcon/trx_if.c b/src/host/trxcon/trx_if.c index 91f84ec..7a736a8 100644 --- a/src/host/trxcon/trx_if.c +++ b/src/host/trxcon/trx_if.c @@ -592,7 +592,7 @@ } tn = buf[0]; - fn = (buf[1] << 24) | (buf[2] << 16) | (buf[3] << 8) | buf[4]; + fn = osmo_load32be(buf + 1); rssi = -(int8_t) buf[5]; toa256 = ((int16_t) (buf[6] << 8) | buf[7]); @@ -650,10 +650,7 @@ LOGP(DTRXD, LOGL_DEBUG, "TX burst tn=%u fn=%u pwr=%u\n", tn, fn, pwr); buf[0] = tn; - buf[1] = (fn >> 24) & 0xff; - buf[2] = (fn >> 16) & 0xff; - buf[3] = (fn >> 8) & 0xff; - buf[4] = (fn >> 0) & 0xff; + osmo_store32be(fn, buf + 1); buf[5] = pwr; /* Copy ubits {0,1} */ -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I9eff9b8e4b8ce9e0563a1ec3c485ab8b0f306491 Gerrit-Change-Number: 18823 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria 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 Sun Jun 14 11:31:33 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:31:33 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 ) Change subject: Implement per-test timeout guard ...................................................................... Patch Set 4: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799/4/src/osmo_gsm_tester/core/suite.py File src/osmo_gsm_tester/core/suite.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799/4/src/osmo_gsm_tester/core/suite.py at 61 PS4, Line 61: #self.log('dictionary is: %r' % repr(d)) (you want to keep this comment?) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799/4/src/osmo_gsm_tester/testenv.py File src/osmo_gsm_tester/testenv.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799/4/src/osmo_gsm_tester/testenv.py at 130 PS4, Line 130: (two blank lines) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 14 Jun 2020 11:31: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 Sun Jun 14 11:34:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:34:22 +0000 Subject: Change in osmo-gsm-tester[master]: Refactor test specific config parsing & generation In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 ) Change subject: Refactor test specific config parsing & generation ...................................................................... Patch Set 1: Code-Review+1 (1 comment) I'm so distant from this code now, but it looks like you know that it makes sense https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798/1/src/osmo_gsm_tester/core/test.py File src/osmo_gsm_tester/core/test.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798/1/src/osmo_gsm_tester/core/test.py at 139 PS1, Line 139: return self._config_test_specific (i wonder why you need this getter guard) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 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: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26 Gerrit-Change-Number: 18798 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 14 Jun 2020 11:34: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 Sun Jun 14 11:49:41 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:49:41 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... Patch Set 3: Code-Review+1 (4 comments) https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.h File Transceiver52M/device/uhd/UHDDevice.h: https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.h at 139 PS3, Line 139: double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; it seems you should rather completely remove these functions, especially since they are private? ...oh wait, inheritance, right? https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.cpp at 218 PS3, Line 218: static double TxGain2TxPower(dev_band_desc& desc, double tx_gain_db) const dev_band_desc (typically the '&' sticks to the variable name, not the type. Like above: "const std::string &msg") https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.cpp at 222 PS3, Line 222: static double TxPower2TxGain(dev_band_desc& desc, double tx_power_dbm) same https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.cpp at 1054 PS3, Line 1054: band = req_band; (this logging seems nice to have? why drop it?) -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 14 Jun 2020 11:49: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 Sun Jun 14 11:56:51 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:56:51 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/18721/2/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18721/2/Transceiver52M/device/uhd/UHDDevice.cpp at 1044 PS2, Line 1044: << " dB based on GSM band information"; patch 18723 is removing this logging again, maybe not add it at all? -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 14 Jun 2020 11:56:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 11:57:33 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 11:57:33 +0000 Subject: Change in osmo-trx[master]: radioInterface: Operate on real Tx power attenuation rather than on d... In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18722 ) Change subject: radioInterface: Operate on real Tx power attenuation rather than on device specific gains ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 Gerrit-Change-Number: 18722 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sun, 14 Jun 2020 11:57:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 12:10:46 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 12:10:46 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... Patch Set 2: Code-Review-1 (2 comments) (would be nice to also see the code that is using this new IE in the same patch, or mention in the commit log the change id of the patch that will add that later) https://gerrit.osmocom.org/c/osmo-msc/+/18692/2/include/osmocom/msc/ran_msg.h File include/osmocom/msc/ran_msg.h: https://gerrit.osmocom.org/c/osmo-msc/+/18692/2/include/osmocom/msc/ran_msg.h at 89 PS2, Line 89: uint32_t call_id; each of these structs must allow indicating presence or absence of optional IEs. The earlier patch set using call_id_present was exactly the right thing to do. sorry to add another iteration, but please bring back call_id_present. (The idea of these structs is to represent 1:1 what the encoded message contained/should contain, and not make any assumptions on how individual IEs interact.) https://gerrit.osmocom.org/c/osmo-msc/+/18692/2/src/libmsc/ran_msg_a.c File src/libmsc/ran_msg_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/18692/2/src/libmsc/ran_msg_a.c at 998 PS2, Line 998: call_id = &ac->call_id; I don't understand why the call_id is related to RTP address. I prefer the earlier patch set handling the call_id separately by call_id_present. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Sun, 14 Jun 2020 12:10: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 Sun Jun 14 12:22:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 12:22:03 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 3: (3 comments) It looks like my code is not flexible enough to allow handover for non-voice connections: I see that cc_trans is expected to always exist in some places. Nevertheless, please let's not continue on that mistake of mine: call_id should have optional presence everywhere. We should probably do something like .call_id_present = (cc.active_trans != NULL) (I guess we should also add MSC ttcn3 tests to make sure handover on a non-CC conn doesn't crash the MSC! ... just added https://osmocom.org/issues/4612 ) https://gerrit.osmocom.org/c/osmo-msc/+/18740/2/src/libmsc/msc_ho.c File src/libmsc/msc_ho.c: https://gerrit.osmocom.org/c/osmo-msc/+/18740/2/src/libmsc/msc_ho.c at 406 PS2, Line 406: .call_id = cc_trans->callref, > Thats indeed not required. The generator function unconditionally picks it, which is ok. [?] I'm pretty sure that's not ok, call_id must be treated optional in all layers of generating a handover request https://gerrit.osmocom.org/c/osmo-msc/+/18740/3/src/libmsc/msc_ho.c File src/libmsc/msc_ho.c: https://gerrit.osmocom.org/c/osmo-msc/+/18740/3/src/libmsc/msc_ho.c at 406 PS3, Line 406: .call_id = cc_trans->callref, call_id_present = true https://gerrit.osmocom.org/c/osmo-msc/+/18740/3/src/libmsc/ran_msg_a.c File src/libmsc/ran_msg_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/18740/3/src/libmsc/ran_msg_a.c at 1120 PS3, Line 1120: .call_id_present = true, nice catch! but handover may also happen for non-voice connections, so this has to be .call_id_present = n->call_id_present. (I hope n->call_id_present exists?) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 14 Jun 2020 12:22:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 14 12:23:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 14 Jun 2020 12:23:11 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 3: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 14 Jun 2020 12:23: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 Jun 15 01:00:17 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 01:00:17 +0000 Subject: Change in libosmo-sccp[master]: sccp_user_find: optimize: search PC only for valid PC arg In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 ) Change subject: sccp_user_find: optimize: search PC only for valid PC arg ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/18503/1/src/sccp_user.c File src/sccp_user.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/18503/1/src/sccp_user.c at 53 PS1, Line 53: if (osmo_ss7_pc_is_valid(pc)) { > Ah I see now, good point. [?] It is possible to configure an SCCP user that serves an SSN *without* limiting on a specific point-code. So if a user has a valid PC configured that matches, that user gets selected with higher prio. After that, a user with only SSN set can catch all remaining messages on that SSN. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I3533a01e29b97bebe4b8f1f6965444519b3bacfe Gerrit-Change-Number: 18503 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 01:00:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 01:16:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 01:16:24 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear ... 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-msc/+/18714 to look at the new patch set (#2). Change subject: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit ...................................................................... msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit There is an invalid Mobile Identity in the msc_vlr_test_gsm_ciph test data. This became apparent when applying the new osmo_mobile_identity API (in a following patch). Current Mobile Identity API ignores the error. Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 --- M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/14/18714/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 Gerrit-Change-Number: 18714 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 01:16:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 01:16:24 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 to look at the new patch set (#2). Change subject: add rudimentary NRI support for MSC pooling ...................................................................... add rudimentary NRI support for MSC pooling This patch served for a manual testing counterpart for osmo-bsc to implement MSC pooling. This enables a basic MSC pooling setup, but for a production setup, osmo-msc would still lack various features related to unloading subscribers to another MSC as explained in 3GPP TS 23.236. Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 --- M include/osmocom/msc/vlr.h M src/libmsc/msc_vty.c M src/libvlr/vlr.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_hlr_timeout.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/test_nodes.vty 17 files changed, 246 insertions(+), 122 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/70/18770/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 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 Jun 15 01:22:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 01:22:04 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18765/2/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/2/src/osmo-bsc/bsc_vty.c at 1166 PS2, Line 1166: vty_out(vty, " %% INVALID:"); > This place doesn't look like the correct one to do this kind of checks and print this kind of warnin [?] it is checked during input parsing, I guess I was just being paranoid when writing this... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 01:22: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 Jun 15 01:36:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 01:36:02 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18712 ) Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18712/2/include/osmocom/bsc/bsc_subscriber.h File include/osmocom/bsc/bsc_subscriber.h: https://gerrit.osmocom.org/c/osmo-bsc/+/18712/2/include/osmocom/bsc/bsc_subscriber.h at 11 PS2, Line 11: struct osmo_mobile_identity; > Can we please include structs from header files instead of leaving potentially dangling definitions [?] it is good to avoid as many #include as possible in .h files, and to #include headers in .c files instead, Reason being: smaller compile units (from less includes) and helping to avoid circular header dependencies. but I including a header from an entirely other library of course has no danger of circular includes, and naming the header can make it more clear where it's coming from. I still kind of prefer less #includes in .h, you get the entire picture in the .c anyway. avoiding evangelism here, have your #include then. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 01:36: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 admin at opensuse.org Mon Jun 15 01:36:01 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 01:36:01 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee6d09483ff5_e962b0071b305f01530926@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: clude/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 100s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 100s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 100s] [1933/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/ue-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/ue-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 100s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 100s] [1935/2112] cc -Isrc/ausf/07dd590@@ausf at sta -Isrc/ausf -I../src/ausf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/ausf/07dd590@@ausf at sta/context.c.o' -MF 'src/ausf/07dd590@@ausf at sta/context.c.o.d' -o 'src/ausf/07dd590@@ausf at sta/context.c.o' -c ../src/ausf/context.c [ 100s] FAILED: src/ausf/07dd590@@ausf at sta/context.c.o [ 100s] cc -Isrc/ausf/07dd590@@ausf at sta -Isrc/ausf -I../src/ausf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/ausf/07dd590@@ausf at sta/context.c.o' -MF 'src/ausf/07dd590@@ausf at sta/context.c.o.d' -o 'src/ausf/07dd590@@ausf at sta/context.c.o' -c ../src/ausf/context.c [ 100s] ../src/ausf/context.c: In function ?ausf_ue_add?: [ 100s] ../src/ausf/context.c:130:25: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 100s] ogs_msprintf("%ld", ogs_pool_index(&ausf_ue_pool, ausf_ue)); [ 100s] ~~^ [ 100s] %d [ 100s] cc1: some warnings being treated as errors [ 100s] [1936/2112] cc -Isrc/pgw/34dbbb0@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/34dbbb0@@pgw at sta/pgw-fd-path.c.o' -MF 'src/pgw/34dbbb0@@pgw at sta/pgw-fd-path.c.o.d' -o 'src/pgw/34dbbb0@@pgw at sta/pgw-fd-path.c.o' -c ../src/pgw/pgw-fd-path.c [ 100s] [1937/2112] cc -Isrc/pgw/34dbbb0@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o' -MF 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o.d' -o 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o' -c ../src/pgw/pgw-context.c [ 100s] [1938/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 100s] [1939/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -MF 'src/udm/3eca12a@@udm at sta/nf-sm.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 100s] [1940/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 100s] ninja: build stopped: subcommand failed. [ 100s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j16 -v returned exit code 1 [ 100s] make: *** [debian/rules:11: binary] Error 1 [ 100s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 100s] ### VM INTERACTION START ### [ 103s] [ 97.299050] sysrq: SysRq : Power Off [ 103s] [ 97.302782] reboot: Power down [ 103s] ### VM INTERACTION END ### [ 103s] [ 103s] goat15 failed "build open5gs_1.2.5.20200615.dsc" at Mon Jun 15 01:35:51 UTC 2020. [ 103s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 01:36:01 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 01:36:01 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee6d095c1168_e962b0071b305f015310a7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 221s] [1932/2112] cc -Isrc/udr/udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/udr at sta/nf-sm.c.o' -MF 'src/udr/udr at sta/nf-sm.c.o.d' -o 'src/udr/udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 221s] [1933/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 221s] FAILED: src/udm/udm at sta/context.c.o [ 221s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 221s] ../src/udm/context.c: In function ?udm_ue_add?: [ 221s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 221s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 221s] ~~^ [ 221s] %d [ 221s] cc1: some warnings being treated as errors [ 221s] [1934/2112] cc -Isrc/udr/udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/udr at sta/udr-sm.c.o' -MF 'src/udr/udr at sta/udr-sm.c.o.d' -o 'src/udr/udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 221s] [1935/2112] cc -Isrc/pcrf/pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 221s] [1936/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-build.c.o' -MF 'src/udm/udm at sta/nudr-build.c.o.d' -o 'src/udm/udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 222s] [1937/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudm-handler.c.o' -MF 'src/udm/udm at sta/nudm-handler.c.o.d' -o 'src/udm/udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 222s] [1938/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 222s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 222s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 222s] ninja: build stopped: subcommand failed. [ 222s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 222s] debian/rules:11: recipe for target 'binary' failed [ 222s] make: *** [binary] Error 1 [ 222s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 222s] ### VM INTERACTION START ### [ 225s] [ 216.113680] sysrq: SysRq : Power Off [ 225s] [ 216.118879] reboot: Power down [ 225s] ### VM INTERACTION END ### [ 225s] [ 225s] lamb19 failed "build open5gs_1.2.5.20200615.dsc" at Mon Jun 15 01:35:47 UTC 2020. [ 225s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 01:41:43 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 01:41:43 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee6d1f2b64b1_e962b0071b305f015318de@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 546s] [1922/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 546s] [1923/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 546s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 546s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 546s] ../src/udm/context.c: In function ?udm_ue_add?: [ 546s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 546s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 546s] ~~^ [ 546s] %d [ 546s] cc1: some warnings being treated as errors [ 546s] [1924/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 546s] [1925/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 546s] [1926/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=mi[ 518.797727] serial8250: too much work for irq4 [ 546s] ssing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 546s] [1927/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 547s] [1928/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 547s] [1929/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 547s] [1930/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 547s] ninja: build stopped: subcommand failed. [ 547s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 547s] make: *** [debian/rules:11: binary] Error 1 [ 547s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 547s] ### VM INTERACTION START ### [ 551s] [ 523.104568] sysrq: SysRq : Power Off [ 551s] [ 523.111893] reboot: Power down [ 551s] ### VM INTERACTION END ### [ 551s] [ 551s] lamb02 failed "build open5gs_1.2.5.20200615.dsc" at Mon Jun 15 01:41:29 UTC 2020. [ 551s] -- 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 Jun 15 01:57:41 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 01:57:41 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add 'no allow-attach' for MSC off-loading In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18778 ) Change subject: MSC pooling: add 'no allow-attach' for MSC off-loading ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18778/2/src/osmo-bsc/gsm_08_08.c File src/osmo-bsc/gsm_08_08.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18778/2/src/osmo-bsc/gsm_08_08.c at 286 PS2, Line 286: if (!msc->allow_attach) > Should you check this above? Otherwise if NRI matches it will still use it even if administratively [?] that is exactly what is supposed to happen. explaining in a comment in the next patch set https://gerrit.osmocom.org/c/osmo-bsc/+/18778/2/src/osmo-bsc/osmo_bsc_vty.c File src/osmo-bsc/osmo_bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18778/2/src/osmo-bsc/osmo_bsc_vty.c at 882 PS2, Line 882: " but the NAS node selection function will skip this MSC for new subscribers\n") ...also explained here. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 Gerrit-Change-Number: 18778 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 01:57:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 02:05:06 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 02:05:06 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18768 ) Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18768/4/src/osmo-bsc/bsc_subscr_conn_fsm.c File src/osmo-bsc/bsc_subscr_conn_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18768/4/src/osmo-bsc/bsc_subscr_conn_fsm.c at 1071 PS4, Line 1071: conn->sccp.msc->nr, > Are we sure msc is always non NULL here? normally it is guaranteed non null, but indeed it seems like i missed some error cases where it might be null -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 02: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 Mon Jun 15 02:06:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 02:06:03 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() 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/+/18712 to look at the new patch set (#3). Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... remove extract_sub(), add bsc_subscr_find_or_create_by_mi() Use the new osmo_mobile_identity API to shed some code dup and simplify. gsm48_paging_extract_mi() is now unused, drop. (More refactoring to use osmo_mobile_identity follows in subsequent patch.) Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b --- M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/gsm_04_08_rr.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/gsm_08_08.c 6 files changed, 53 insertions(+), 58 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/18712/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 02:06:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 02:06:03 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 to look at the new patch set (#3). Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... MSC pooling: make NRI mappings VTY configurable Use the osmo_nri_ranges API to manage each MSC's NRI ranges by VTY configuration. Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c A tests/nri_cfg.vty 7 files changed, 380 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/18765/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 02:06:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 02:06:03 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add 'no allow-attach' for MSC off-loading 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/+/18778 to look at the new patch set (#3). Change subject: MSC pooling: add 'no allow-attach' for MSC off-loading ...................................................................... MSC pooling: add 'no allow-attach' for MSC off-loading As in 3GPP TS 23.236, to offload an MSC, the BSC must be able to avoid attaching new subscribers to it: 4.5a.1: "UEs being moved from one CN node are stopped from registering to the same CN node again by an O&M command in BSCs and RNCs connected to the pool." Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 --- M include/osmocom/bsc/bsc_msc_data.h M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c M tests/nri_cfg.vty 5 files changed, 55 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/78/18778/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 Gerrit-Change-Number: 18778 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 02:06:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 02:06:03 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 to look at the new patch set (#5). Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... log: add MSC number to bsc_subscr_conn_fsm id Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/18768/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 15 02:07:48 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:07:48 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5ee6d80c32e12_e962b0071b305f0153517e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 379s] # -*- compilation -*- [ 379s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph .[ 363.133977] serial8250: too much work for irq4 [ 379s] .. [ 379s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 379s] --- experr 2020-06-15 02:07:37.218639217 +0000 [ 379s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 02:07:37.258639217 +0000 [ 379s] @@ -1790,7 +1790,7 @@ [ 379s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 379s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 379s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 379s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 379s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 379s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 379s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 379s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 379s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 379s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 379s] make[1]: *** [override_dh_auto_test] Error 1 [ 379s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 379s] debian/rules:45: recipe for target 'build' failed [ 379s] make: *** [build] Error 2 [ 379s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 379s] ### VM INTERACTION START ### [ 380s] Powering off. [ 380s] [ 364.285122] reboot: Power down [ 380s] ### VM INTERACTION END ### [ 380s] [ 380s] cloud101 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:07:41 UTC 2020. [ 380s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:11:12 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:11:12 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5ee6d8db90898_e962b0071b305f015360a8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 200s] [ 200s] # -*- compilation -*- [ 200s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 200s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 200s] --- experr 2020-06-15 02:11:06.032000000 +0000 [ 200s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 02:11:06.052000000 +0000 [ 200s] @@ -1790,7 +1790,7 @@ [ 200s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 200s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 200s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 200s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 200s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 200s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 200s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 200s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 200s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 200s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 200s] make[1]: *** [override_dh_auto_test] Error 1 [ 200s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 200s] debian/rules:45: recipe for target 'build' failed [ 200s] make: *** [build] Error 2 [ 200s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 200s] ### VM INTERACTION START ### [ 203s] [ 194.913435] sysrq: SysRq : Power Off [ 203s] [ 194.918547] reboot: Power down [ 203s] ### VM INTERACTION END ### [ 203s] [ 203s] sheep86 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:11:11 UTC 2020. [ 203s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:13:30 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:13:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5ee6d95a3debe_e962b0071b305f01536362@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 306s] | #define HAVE_MEMORY_H 1 [ 306s] | #define HAVE_STRINGS_H 1 [ 306s] | #define HAVE_INTTYPES_H 1 [ 306s] | #define HAVE_STDINT_H 1 [ 306s] | #define HAVE_UNISTD_H 1 [ 306s] | #define HAVE_DLFCN_H 1 [ 306s] | #define LT_OBJDIR ".libs/" [ 306s] | #define HAVE_LIBSCTP 1 [ 306s] | #define BUILD_SMPP 1 [ 306s] | #define BUILD_IU 1 [ 306s] | #define STDC_HEADERS 1 [ 306s] | #define HAVE_DBI_DBD_H 1 [ 306s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 306s] | [ 306s] | configure: exit 0 [ 306s] [ 306s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 306s] make[1]: *** [override_dh_auto_test] Error 1 [ 306s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 306s] debian/rules:45: recipe for target 'build' failed [ 306s] make: *** [build] Error 2 [ 306s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 306s] ### VM INTERACTION START ### [ 308s] [ 297.121662] sysrq: SysRq : Power Off [ 308s] [ 297.128342] reboot: Power down [ 308s] ### VM INTERACTION END ### [ 308s] [ 308s] lamb05 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:13:15 UTC 2020. [ 308s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:14:22 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:14:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee6d994e5189_e962b0071b305f0153684c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 438s] | #define HAVE_STDLIB_H 1 [ 438s] | #define HAVE_STRING_H 1 [ 438s] | #define HAVE_MEMORY_H 1 [ 438s] | #define HAVE_STRINGS_H 1 [ 438s] | #define HAVE_INTTYPES_H 1 [ 438s] | #define HAVE_STDINT_H 1 [ 438s] | #define HAVE_UNISTD_H 1 [ 438s] | #define HAVE_DLFCN_H 1 [ 438s] | #define LT_OBJDIR ".libs/" [ 438s] | #define HAVE_LIBSCTP 1 [ 438s] | #define BUILD_SMPP 1 [ 438s] | #define BUILD_IU 1 [ 438s] | #define STDC_HEADERS 1 [ 438s] | #define HAVE_DBI_DBD_H 1 [ 438s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 438s] | [ 438s] | configure: exit 0 [ 438s] [ 438s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 438s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 438s] make: *** [debian/rules:45: build] Error 2 [ 438s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 438s] ### VM INTERACTION START ### [ 441s] [ 424.528502] sysrq: SysRq : Power Off [ 441s] [ 424.532715] reboot: Power down [ 441s] ### VM INTERACTION END ### [ 441s] [ 441s] lamb11 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:14:17 UTC 2020. [ 441s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:17:29 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:17:29 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee6da48b90e9_e962b0071b305f01536970@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.10/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 443s] | #define HAVE_STDLIB_H 1 [ 443s] | #define HAVE_STRING_H 1 [ 443s] | #define HAVE_MEMORY_H 1 [ 443s] | #define HAVE_STRINGS_H 1 [ 443s] | #define HAVE_INTTYPES_H 1 [ 443s] | #define HAVE_STDINT_H 1 [ 443s] | #define HAVE_UNISTD_H 1 [ 443s] | #define HAVE_DLFCN_H 1 [ 443s] | #define LT_OBJDIR ".libs/" [ 443s] | #define HAVE_LIBSCTP 1 [ 443s] | #define BUILD_SMPP 1 [ 443s] | #define BUILD_IU 1 [ 443s] | #define STDC_HEADERS 1 [ 443s] | #define HAVE_DBI_DBD_H 1 [ 443s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 443s] | [ 443s] | configure: exit 0 [ 443s] [ 443s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 443s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 443s] make: *** [debian/rules:45: build] Error 2 [ 443s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 443s] ### VM INTERACTION START ### [ 446s] [ 435.950635] sysrq: SysRq : Power Off [ 446s] [ 435.969157] reboot: Power down [ 446s] ### VM INTERACTION END ### [ 446s] [ 446s] build76 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:17:27 UTC 2020. [ 446s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:23:47 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:23:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee6dbd025f7d_e962b0071b305f0154451f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 445s] [ 445s] # -*- compilation -*- [ 445s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 445s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 445s] --- experr 2020-06-15 02:23:36.169096416 +0000 [ 445s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 02:23:36.201096418 +0000 [ 445s] @@ -1790,7 +1790,7 @@ [ 445s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 445s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 445s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 445s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 445s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 445s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 445s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 445s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 445s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 445s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 445s] make[1]: *** [override_dh_auto_test] Error 1 [ 445s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 445s] debian/rules:45: recipe for target 'build' failed [ 445s] make: *** [build] Error 2 [ 445s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 445s] ### VM INTERACTION START ### [ 448s] [ 422.348476] sysrq: SysRq : Power Off [ 448s] [ 422.360884] reboot: Power down [ 448s] ### VM INTERACTION END ### [ 448s] [ 448s] cloud113 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:23:41 UTC 2020. [ 448s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:45:29 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:45:29 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5ee6e0d6e9401_e962b0071b305f01549714@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 414s] [ 414s] # -*- compilation -*- [ 414s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 414s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 414s] --- experr 2020-06-15 02:45:09.170000000 +0000 [ 414s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 02:45:09.220000000 +0000 [ 414s] @@ -1790,7 +1790,7 @@ [ 414s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 414s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 414s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 414s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 414s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 414s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 414s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 414s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 414s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 414s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 414s] make[1]: *** [override_dh_auto_test] Error 1 [ 414s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 414s] debian/rules:45: recipe for target 'build' failed [ 414s] make: *** [build] Error 2 [ 414s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 414s] ### VM INTERACTION START ### [ 417s] [ 394.551869] sysrq: Power Off [ 417s] [ 394.553360] reboot: Power down [ 417s] ### VM INTERACTION END ### [ 417s] [ 417s] obs-arm-9 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:45:13 UTC 2020. [ 417s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:56:04 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:56:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5ee6e34d879f_e962b0071b305f015534b6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 279s] | [ 279s] | configure: exit 0 [ 279s] [ 279s] # -*- compilation -*- [ 279s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 279s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 279s] --- experr 2020-06-15 02:55:43.516124999 +0000 [ 279s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 02:55:43.536125000 +0000 [ 279s] @@ -1790,7 +1790,7 @@ [ 279s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 279s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 279s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 279s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 279s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 279s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 279s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 279s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 279s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 279s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 279s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 279s] make: *** [debian/rules:45: build] Error 2 [ 279s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 279s] ### VM INTERACTION START ### [ 281s] [ 271.818367] sysrq: SysRq : Power Off [ 281s] [ 271.819848] reboot: Power down [ 281s] ### VM INTERACTION END ### [ 281s] [ 281s] build83 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:55:47 UTC 2020. [ 281s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:56:04 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:56:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5ee6e34dbab93_e962b0071b305f01553573@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/aarch64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 1143s] | configure:5213: checking for objdump [ 1143s] | configure:5229: found /usr/bin/objdump [ 1143s] | configure:5240: result: objdump [ 1143s] | configure:5272: checking how to recognize dependent libraries [ 1143s] | configure:5472: result: pass_all [ 1143s] | configure:5557: checking for dlltool [ 1143s] | configure:5587: result: no [ 1143s] | configure:5617: checking how to associate runtime and link libraries [ 1143s] | configure:5644: result: printf %s\n [ 1143s] | configure:5705: checking for ar [ 1143s] | configure:5721: found /usr/bin/ar [ 1143s] | configure:5732: result: ar [ 1143s] | configure:5769: checking for archiver @FILE support [ 1143s] | configure:5786: gcc -c -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 conftest.c >&5 [ 1143s] | configure:5786: $? = 0 [ 1143s] | configure:5789: ar cru libconftest.a @conftest.lst >&5 [ 1143s] | ar: `u' modifier ignored since `D' is the default (see `U') [ 1143s] | configure:5792: $? = 0 [ 1143s] | configure:5797: ar cru libconftest.a @conftest.lst >&5 [ 1143s] | ar: `u' modifier ignored since `D' is the default (see `U') [ 1143s] | ar: conftest.o: No such file or directory [ 1143s] | configure:5800: $? = 1 [ 1143s] | configure:5799: result: @ [ 1145s] | configure:585[ 1094.734824] sysrq: SysRq : Power Off [ 1145s] [ 1094.775657] reboot: Power down [ 1145s] ### VM INTERACTION END ### [ 1145s] [ 1145s] obs-arm-3 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:55:49 UTC 2020. [ 1145s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:56:21 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:56:21 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5ee6e36a9e6b9_e962b0071b305f01553823@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 139s] | #define HAVE_MEMORY_H 1 [ 139s] | #define HAVE_STRINGS_H 1 [ 139s] | #define HAVE_INTTYPES_H 1 [ 139s] | #define HAVE_STDINT_H 1 [ 139s] | #define HAVE_UNISTD_H 1 [ 139s] | #define HAVE_DLFCN_H 1 [ 139s] | #define LT_OBJDIR ".libs/" [ 139s] | #define HAVE_LIBSCTP 1 [ 139s] | #define BUILD_SMPP 1 [ 139s] | #define BUILD_IU 1 [ 139s] | #define STDC_HEADERS 1 [ 139s] | #define HAVE_DBI_DBD_H 1 [ 139s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 139s] | [ 139s] | configure: exit 0 [ 139s] [ 139s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 139s] make[1]: *** [override_dh_auto_test] Error 1 [ 139s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 139s] debian/rules:45: recipe for target 'build' failed [ 139s] make: *** [build] Error 2 [ 139s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 139s] ### VM INTERACTION START ### [ 140s] Powering off. [ 140s] [ 133.812361] reboot: Power down [ 140s] ### VM INTERACTION END ### [ 140s] [ 140s] goat15 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:56:08 UTC 2020. [ 140s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:57:47 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:57:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5ee6e3c3bee9d_e962b0071b305f0155422b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 257s] | #define HAVE_MEMORY_H 1 [ 257s] | #define HAVE_STRINGS_H 1 [ 257s] | #define HAVE_INTTYPES_H 1 [ 257s] | #define HAVE_STDINT_H 1 [ 257s] | #define HAVE_UNISTD_H 1 [ 257s] | #define HAVE_DLFCN_H 1 [ 257s] | #define LT_OBJDIR ".libs/" [ 257s] | #define HAVE_LIBSCTP 1 [ 257s] | #define BUILD_SMPP 1 [ 257s] | #define BUILD_IU 1 [ 257s] | #define STDC_HEADERS 1 [ 257s] | #define HAVE_DBI_DBD_H 1 [ 257s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 257s] | [ 257s] | configure: exit 0 [ 257s] [ 257s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 257s] make[1]: *** [override_dh_auto_test] Error 1 [ 257s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 257s] debian/rules:45: recipe for target 'build' failed [ 257s] make: *** [build] Error 2 [ 257s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 257s] ### VM INTERACTION START ### [ 259s] [ 250.642897] sysrq: SysRq : Power Off [ 259s] [ 250.647666] reboot: Power down [ 259s] ### VM INTERACTION END ### [ 259s] [ 259s] sheep87 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:57:35 UTC 2020. [ 259s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 02:58:21 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 02:58:21 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5ee6e3e29a2a6_e962b0071b305f0155455d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 290s] | #define HAVE_MEMORY_H 1 [ 290s] | #define HAVE_STRINGS_H 1 [ 290s] | #define HAVE_INTTYPES_H 1 [ 290s] | #define HAVE_STDINT_H 1 [ 290s] | #define HAVE_UNISTD_H 1 [ 290s] | #define HAVE_DLFCN_H 1 [ 290s] | #define LT_OBJDIR ".libs/" [ 290s] | #define HAVE_LIBSCTP 1 [ 290s] | #define BUILD_SMPP 1 [ 290s] | #define BUILD_IU 1 [ 290s] | #define STDC_HEADERS 1 [ 290s] | #define HAVE_DBI_DBD_H 1 [ 290s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 290s] | [ 290s] | configure: exit 0 [ 290s] [ 290s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 290s] make[1]: *** [override_dh_auto_test] Error 1 [ 290s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 290s] debian/rules:45: recipe for target 'build' failed [ 290s] make: *** [build] Error 2 [ 290s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 290s] ### VM INTERACTION START ### [ 293s] [ 282.979232] sysrq: SysRq : Power Off [ 293s] [ 282.986965] reboot: Power down [ 293s] ### VM INTERACTION END ### [ 293s] [ 293s] lamb58 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 02:58:04 UTC 2020. [ 293s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 03:00:21 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 03:00:21 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.10/x86_64 In-Reply-To: References: Message-ID: <5ee6e4582c952_e962b0071b305f0155489a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 366s] | [ 366s] | configure: exit 0 [ 366s] [ 366s] # -*- compilation -*- [ 366s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 366s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 366s] --- experr 2020-06-15 03:00:01.408000000 +0000 [ 366s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 03:00:01.436000000 +0000 [ 366s] @@ -1790,7 +1790,7 @@ [ 366s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 366s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 366s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 366s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 366s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 366s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 366s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 366s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 366s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 366s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 366s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 366s] make: *** [debian/rules:45: build] Error 2 [ 366s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 366s] ### VM INTERACTION START ### [ 370s] [ 357.955971] sysrq: SysRq : Power Off [ 370s] [ 357.961417] reboot: Power down [ 370s] ### VM INTERACTION END ### [ 370s] [ 370s] lamb07 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 03:00:06 UTC 2020. [ 370s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 03:00:22 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 03:00:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5ee6e45c619cb_e962b0071b305f015551db@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_19.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_19.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 368s] | #define HAVE_STDLIB_H 1 [ 368s] | #define HAVE_STRING_H 1 [ 368s] | #define HAVE_MEMORY_H 1 [ 368s] | #define HAVE_STRINGS_H 1 [ 368s] | #define HAVE_INTTYPES_H 1 [ 368s] | #define HAVE_STDINT_H 1 [ 368s] | #define HAVE_UNISTD_H 1 [ 368s] | #define HAVE_DLFCN_H 1 [ 368s] | #define LT_OBJDIR ".libs/" [ 368s] | #define HAVE_LIBSCTP 1 [ 368s] | #define BUILD_SMPP 1 [ 368s] | #define BUILD_IU 1 [ 368s] | #define STDC_HEADERS 1 [ 368s] | #define HAVE_DBI_DBD_H 1 [ 368s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 368s] | [ 368s] | configure: exit 0 [ 368s] [ 368s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 368s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 368s] make: *** [debian/rules:45: build] Error 2 [ 368s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 368s] ### VM INTERACTION START ### [ 371s] [ 359.761075] sysrq: SysRq : Power Off [ 371s] [ 359.765763] reboot: Power down [ 372s] ### VM INTERACTION END ### [ 372s] [ 372s] lamb11 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 03:00:14 UTC 2020. [ 372s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 03:00:56 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 03:00:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5ee6e47cef020_e962b0071b305f015553b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 445s] | #define HAVE_MEMORY_H 1 [ 445s] | #define HAVE_STRINGS_H 1 [ 445s] | #define HAVE_INTTYPES_H 1 [ 445s] | #define HAVE_STDINT_H 1 [ 445s] | #define HAVE_UNISTD_H 1 [ 445s] | #define HAVE_DLFCN_H 1 [ 445s] | #define LT_OBJDIR ".libs/" [ 445s] | #define HAVE_LIBSCTP 1 [ 445s] | #define BUILD_SMPP 1 [ 445s] | #define BUILD_IU 1 [ 445s] | #define STDC_HEADERS 1 [ 445s] | #define HAVE_DBI_DBD_H 1 [ 445s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 445s] | [ 445s] | configure: exit 0 [ 445s] [ 445s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 445s] make[1]: *** [override_dh_auto_test] Error 1 [ 445s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 445s] debian/rules:45: recipe for target 'build' failed [ 445s] make: *** [build] Error 2 [ 445s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 445s] ### VM INTERACTION START ### [ 448s] [ 413.838729] sysrq: SysRq : Power Off [ 448s] [ 413.853745] reboot: Power down [ 448s] ### VM INTERACTION END ### [ 448s] [ 448s] cloud136 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 03:00:40 UTC 2020. [ 448s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 03:00:58 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 03:00:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5ee6e480530df_e962b0071b305f015555e4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 453s] | #define HAVE_STDLIB_H 1 [ 453s] | #define HAVE_STRING_H 1 [ 453s] | #define HAVE_MEMORY_H 1 [ 453s] | #define HAVE_STRINGS_H 1 [ 453s] | #define HAVE_INTTYPES_H 1 [ 453s] | #define HAVE_STDINT_H 1 [ 453s] | #define HAVE_UNISTD_H 1 [ 453s] | #define HAVE_DLFCN_H 1 [ 453s] | #define LT_OBJDIR ".libs/" [ 453s] | #define HAVE_LIBSCTP 1 [ 453s] | #define BUILD_SMPP 1 [ 453s] | #define BUILD_IU 1 [ 453s] | #define STDC_HEADERS 1 [ 453s] | #define HAVE_DBI_DBD_H 1 [ 453s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 453s] | [ 453s] | configure: exit 0 [ 453s] [ 453s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 453s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 453s] make: *** [debian/rules:45: build] Error 2 [ 453s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 453s] ### VM INTERACTION START ### [ 455s] [ 438.643552] sysrq: SysRq : Power Off [ 455s] [ 438.646785] reboot: Power down [ 455s] ### VM INTERACTION END ### [ 455s] [ 455s] lamb54 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 03:00:54 UTC 2020. [ 455s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 03:22:42 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 03:22:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5ee6e99e22244_e962b0071b305f015599a0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 797s] | [ 797s] | configure: exit 0 [ 797s] [ 797s] # -*- compilation -*- [ 797s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 797s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 797s] --- experr 2020-06-15 03:22:22.446058642 +0000 [ 797s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 03:22:22.474058640 +0000 [ 797s] @@ -1790,7 +1790,7 @@ [ 797s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 797s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 797s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 797s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 797s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 797s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 797s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 797s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 797s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 797s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 797s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 797s] make: *** [debian/rules:45: build] Error 2 [ 797s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 797s] ### VM INTERACTION START ### [ 798s] Powering off. [ 798s] [ 771.259959] reboot: Power down [ 798s] ### VM INTERACTION END ### [ 798s] [ 798s] cloud119 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 03:22:26 UTC 2020. [ 798s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 03:49:39 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 03:49:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ee6efd81d7e0_e962b0071b305f01585438@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 473s] | [ 473s] | configure: exit 0 [ 473s] [ 473s] # -*- compilation -*- [ 473s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 473s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 473s] --- experr 2020-06-15 03:49:29.120000000 +0000 [ 473s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-15 03:49:29.144000000 +0000 [ 473s] @@ -1790,7 +1790,7 @@ [ 473s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 473s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 473s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 473s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 473s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 473s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 473s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 473s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 473s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 473s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 473s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 473s] make: *** [debian/rules:45: build] Error 2 [ 473s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 473s] ### VM INTERACTION START ### [ 474s] Powering off. [ 474s] [ 457.788362] reboot: Power down [ 474s] ### VM INTERACTION END ### [ 474s] [ 474s] lamb20 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 03:49:31 UTC 2020. [ 474s] -- 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 Jun 15 07:27:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 15 Jun 2020 07:27:42 +0000 Subject: Change in libosmo-sccp[master]: sccp_user_find: optimize: search PC only for valid PC arg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 ) Change subject: sccp_user_find: optimize: search PC only for valid PC arg ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I3533a01e29b97bebe4b8f1f6965444519b3bacfe Gerrit-Change-Number: 18503 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 07:27:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:25:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:25:07 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18714 ) Change subject: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 Gerrit-Change-Number: 18714 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:25: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 Jun 15 08:26:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:26:59 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18770 ) Change subject: add rudimentary NRI support for MSC pooling ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08: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 Mon Jun 15 08:34:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:34:25 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... Patch Set 2: Code-Review+2 I'll leave it there, it's good in case someone wants to debug this intermediate step. +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 15 Jun 2020 08:34:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:34:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:34:36 +0000 Subject: Change in osmo-trx[master]: radioInterface: Operate on real Tx power attenuation rather than on d... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18722 ) Change subject: radioInterface: Operate on real Tx power attenuation rather than on device specific gains ...................................................................... Patch Set 3: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 Gerrit-Change-Number: 18722 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 15 Jun 2020 08:34:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:40:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:40:07 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.h File Transceiver52M/device/uhd/UHDDevice.h: https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.h at 139 PS3, Line 139: double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; > it seems you should rather completely remove these functions, especially since they are private? [?] indeed, inheritance, other devices still use them. https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18723/3/Transceiver52M/device/uhd/UHDDevice.cpp at 1054 PS3, Line 1054: band = req_band; > (this logging seems nice to have? why drop it?) Because global variable tx_gain_max doesn't exist anymore, and related logic moved to others parts in the file. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 15 Jun 2020 08:40:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:41:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:41:39 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: Hello tnt, fixeria, daniel, roh, neels, laforge, Jenkins Builder, Hoernchen, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 to look at the new patch set (#4). Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... UHDDevice: Compute TxGain on UHD API based on expected Tx output power Right now, according to a few measurements taken on B210, we expect the Tx Gain at UHD level to relate 1:1 with the slope in Tx output power given a specific band. If more fine-grained results are wanted or some device doesn't follow a 1:1 slope relationship, functions TxGain2TxPower and TxPower2TxGain need to be adapted/improved. Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 --- M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 2 files changed, 58 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/23/18723/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:42:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:42:42 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... Patch Set 4: Code-Review+2 Fixed small details suggested by Neels, re-applying +2 and merging. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 15 Jun 2020 08:42: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 Jun 15 08:47:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:47:22 +0000 Subject: Change in libosmo-sccp[master]: M3UA: Accept DATA without routing context IE if only a single AS in ASP In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 ) Change subject: M3UA: Accept DATA without routing context IE if only a single AS in ASP ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/18818/1/src/m3ua.c File src/m3ua.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/18818/1/src/m3ua.c at 590 PS1, Line 590: LOGPASP(asp, DLM3UA, LOGL_ERROR, I don't think we really need to pass __func__ here, it's avilable already through the log macros. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Gerrit-Change-Number: 18818 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:47: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 Mon Jun 15 08:48:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:48:25 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18712 ) Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:48: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 Jun 15 08:49:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:49:23 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:49:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:50:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:50:54 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add 'no allow-attach' for MSC off-loading In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18778 ) Change subject: MSC pooling: add 'no allow-attach' for MSC off-loading ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 Gerrit-Change-Number: 18778 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:50: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 Jun 15 08:51:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:51:48 +0000 Subject: Change in libosmo-sccp[master]: sccp_user_find: optimize: search PC only for valid PC arg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 ) Change subject: sccp_user_find: optimize: search PC only for valid PC arg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I3533a01e29b97bebe4b8f1f6965444519b3bacfe Gerrit-Change-Number: 18503 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:51:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:54:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:54:31 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 to look at the new patch set (#5). Change subject: Implement per-test timeout guard ...................................................................... Implement per-test timeout guard Timeout value can be specified by test in suite.conf: config: suite: : : timeout: 2 # 2 seconds timeout Change-Id: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 --- M doc/manuals/chapters/config.adoc M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.py M selftest/suite_test/suitedirA/test_suite/suite.conf A selftest/suite_test/suitedirA/test_suite/test_timeout.py M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 8 files changed, 78 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/99/18799/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:54:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:54:55 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 ) Change subject: Implement per-test timeout guard ...................................................................... Patch Set 5: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:54:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:54:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:54:58 +0000 Subject: Change in osmo-gsm-tester[master]: Refactor test specific config parsing & generation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 ) Change subject: Refactor test specific config parsing & generation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 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: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26 Gerrit-Change-Number: 18798 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:54:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 08:55:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:55:03 +0000 Subject: Change in osmo-gsm-tester[master]: Refactor test specific config parsing & generation In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 ) Change subject: Refactor test specific config parsing & generation ...................................................................... Refactor test specific config parsing & generation The dictionary is generated once during test creation at suite startup. Change-Id: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26 --- M selftest/suite_test/suite_test.ok M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 4 files changed, 24 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index 3264fe2..c7c76d7 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -27,6 +27,8 @@ - times: '2' - run hello world test +tst test_suite: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] --------------------------------------------------------------------- trial test_suite @@ -179,6 +181,9 @@ FAIL: test_fail_raise.py (N.N sec) ExpectedFail: This failure is expected skip: test_suite_params.py - test with half empty scenario +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] --------------------------------------------------------------------- trial test_suite @@ -265,6 +270,9 @@ skip: test_fail_raise.py skip: test_suite_params.py - test with scenario +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] --------------------------------------------------------------------- trial test_suite @@ -351,6 +359,9 @@ skip: test_fail_raise.py skip: test_suite_params.py - test with scenario and modifiers +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ... [suite.py:[LINENR]] tst test_suite: DBG: {combining='resources'} [suite.py:[LINENR]] tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}} [test_suite?{combining_scenarios='resources'}] [suite.py:[LINENR]] @@ -483,6 +494,9 @@ skip: test_fail_raise.py skip: test_suite_params.py - test with suite-specific config +tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={suite={test_suite={some_suite_global_param='heyho', test_suite_params={one_bool_parameter='true', second_list_parameter=['23', '45']}}}}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ... [suite.py:[LINENR]] tst test_suite: DBG: {combining='resources'} [suite.py:[LINENR]] tst {combining_scenarios='resources'}: DBG: {definition_conf={bts=[{'label': 'sysmoCell 5000'}, {'label': 'sysmoCell 5000'}, {'type': 'sysmo'}], ip_address=[{}], modem=[{}, {}]}} [test_suite?{combining_scenarios='resources'}] [suite.py:[LINENR]] @@ -598,9 +612,6 @@ trial test_suite test_suite_params.py ---------------------------------------------- tst test_suite_params.py:[LINENR]: starting test [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] -tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] -tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={suite={test_suite={some_suite_global_param='heyho', test_suite_params={one_bool_parameter='true', second_list_parameter=['23', '45']}}}}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite_params.py:[LINENR]: SPECIFIC SUITE CONFIG: {'some_suite_global_param': 'heyho', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: 'test_suite_params': {'one_bool_parameter': 'true', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: 'second_list_parameter': ['23', '45']}} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] @@ -619,6 +630,8 @@ pass: test_suite_params.py (N.N sec) - test with template overlay cnf suiteC: DBG: reading suite.conf [suite.py:[LINENR]] +tst suiteC: DBG: {combining='config'} [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] [suite.py:[LINENR]] --------------------------------------------------------------------- trial suiteC @@ -651,8 +664,6 @@ --- ReservedResources: DBG: {using={_hash='fd103b22c7cf2480d609150e06f4bbd92ac78d8c', _reserved_by='suiteC-[ID_NUM]-[ID_NUM]', addr='10.42.42.2'}} [resource.py:[LINENR]] tst test_template_overlay.py:[LINENR]: - Testing: original template [suiteC?test_template_overlay.py:[LINENR]] [test_template_overlay.py:[LINENR]] run osmo-stp_10.42.42.2: DBG: {config_file='test_trial_tmp/test_run_6/suiteC/test_template_overlay.py/osmo-stp_10.42.42.2/osmo-stp.cfg'} [suiteC?test_template_overlay.py:[LINENR]?test_template_overlay.py?osmo-stp_10.42.42.2] [stp_osmo.py:[LINENR]] -tst suiteC: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] [suite.py:[LINENR]] run osmo-stp_10.42.42.2: DBG: STP CONFIG: {'stp': {'ip_address': {'_hash': 'fd103b22c7cf2480d609150e06f4bbd92ac78d8c', '_reserved_by': 'suiteC-[ID_NUM]-[ID_NUM]', diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index c55c5e9..9b9062d 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -98,7 +98,8 @@ def load_tests(self): self.tests = [] for test_basename in self.definition.test_basenames: - self.tests.append(test.Test(self, test_basename)) + test_specific_config = self.config_suite_specific().get(test_basename.rstrip('.py'), {}) + self.tests.append(test.Test(self, test_basename, test_specific_config)) def mark_start(self): self.start_timestamp = time.time() diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 7347229..45dfd41 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -35,11 +35,12 @@ PASS = 'pass' FAIL = 'FAIL' - def __init__(self, suite_run, test_basename): + def __init__(self, suite_run, test_basename, test_specific_config): self.basename = test_basename super().__init__(log.C_TST, self.basename) self._run_dir = None self.suite_run = suite_run + self._config_test_specific = test_specific_config self.path = os.path.join(self.suite_run.definition.suite_dir, self.basename) self.status = Test.UNKNOWN self.start_timestamp = 0 @@ -134,6 +135,9 @@ self.status = Test.SKIP self.duration = 0 + def config_test_specific(self): + return self._config_test_specific + def set_report_stdout(self, text): 'Overwrite stdout text stored in report from inside a test' self._report_stdout = text diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index d6c18ee..11199c2 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -146,7 +146,7 @@ return self.suite_run.config_suite_specific() def config_test_specific(self): - return self.suite_run.config_suite_specific().get(self._test.module_name(), {}) + return self._test.config_test_specific() def set_overlay_template_dir(self, template_dir=None): '''Overlay a directory on top of default one when looking for -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18798 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: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26 Gerrit-Change-Number: 18798 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder 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 Jun 15 08:55:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:55:03 +0000 Subject: Change in osmo-gsm-tester[master]: Implement per-test timeout guard In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 ) Change subject: Implement per-test timeout guard ...................................................................... Implement per-test timeout guard Timeout value can be specified by test in suite.conf: config: suite: : : timeout: 2 # 2 seconds timeout Change-Id: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 --- M doc/manuals/chapters/config.adoc M selftest/suite_test/suite_test.ok M selftest/suite_test/suite_test.py M selftest/suite_test/suitedirA/test_suite/suite.conf A selftest/suite_test/suitedirA/test_suite/test_timeout.py M src/osmo_gsm_tester/core/suite.py M src/osmo_gsm_tester/core/test.py M src/osmo_gsm_tester/testenv.py 8 files changed, 78 insertions(+), 20 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/doc/manuals/chapters/config.adoc b/doc/manuals/chapters/config.adoc index 118f056..f4e08b3 100644 --- a/doc/manuals/chapters/config.adoc +++ b/doc/manuals/chapters/config.adoc @@ -190,7 +190,18 @@ a_suite_test_foo: one_test_parameter_for_test_foo: 'str' another_test_parameter_for_test_foo: ['bool_str'] + +config: + suite: + : + some_suite_parameter: 3 + a_suite_test_foo: + one_test_parameter_for_test_foo: 'hello' + timeout: 30 <1> ---- +<1> The per-test _timeout_ attribute is implicitly defined for all tests with +type _duration_, and will trigger a timeout if test doesn't finish in time +specified. [[scenarios_dir]] ==== 'scenarios_dir' diff --git a/selftest/suite_test/suite_test.ok b/selftest/suite_test/suite_test.ok index c7c76d7..58593fd 100644 --- a/selftest/suite_test/suite_test.ok +++ b/selftest/suite_test/suite_test.ok @@ -15,6 +15,11 @@ cnf [PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf: ERR: FileNotFoundError: [Errno 2] No such file or directory: '[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf' [empty_dir?[PATH]/selftest/suite_test/suitedirA/empty_dir/suite.conf] - valid suite dir cnf test_suite: DBG: reading suite.conf +config: + suite: + test_suite: + test_timeout: + timeout: '1' resources: bts: - label: sysmoCell 5000 @@ -28,7 +33,7 @@ - run hello world test tst test_suite: DBG: {combining='config'} -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] +tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}} [test_suite?{combining_scenarios='config'}] --------------------------------------------------------------------- trial test_suite @@ -101,7 +106,7 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 6) +PASS: test_suite (pass: 1, skip: 7) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py @@ -109,6 +114,7 @@ skip: test_fail.py skip: test_fail_raise.py skip: test_suite_params.py + skip: test_timeout.py - a test with an error @@ -125,7 +131,7 @@ --------------------------------------------------------------------- trial test_suite FAIL --------------------------------------------------------------------- -FAIL: test_suite (fail: 1, skip: 6) +FAIL: test_suite (fail: 1, skip: 7) skip: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py @@ -133,6 +139,7 @@ skip: test_fail.py skip: test_fail_raise.py skip: test_suite_params.py + skip: test_timeout.py - a test with a failure @@ -149,7 +156,7 @@ --------------------------------------------------------------------- trial test_suite FAIL --------------------------------------------------------------------- -FAIL: test_suite (fail: 1, skip: 6) +FAIL: test_suite (fail: 1, skip: 7) skip: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py @@ -157,6 +164,7 @@ FAIL: test_fail.py (N.N sec) EpicFail: This failure is expected skip: test_fail_raise.py skip: test_suite_params.py + skip: test_timeout.py - a test with a raised failure @@ -172,7 +180,7 @@ --------------------------------------------------------------------- trial test_suite FAIL --------------------------------------------------------------------- -FAIL: test_suite (fail: 1, skip: 6) +FAIL: test_suite (fail: 1, skip: 7) skip: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py @@ -180,9 +188,10 @@ skip: test_fail.py (N.N sec) FAIL: test_fail_raise.py (N.N sec) ExpectedFail: This failure is expected skip: test_suite_params.py + skip: test_timeout.py - test with half empty scenario tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] --------------------------------------------------------------------- @@ -261,7 +270,7 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 6) +PASS: test_suite (pass: 1, skip: 7) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py @@ -269,9 +278,10 @@ skip: test_fail.py skip: test_fail_raise.py skip: test_suite_params.py + skip: test_timeout.py - test with scenario tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] --------------------------------------------------------------------- @@ -350,7 +360,7 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 6) +PASS: test_suite (pass: 1, skip: 7) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py @@ -358,9 +368,10 @@ skip: test_fail.py skip: test_fail_raise.py skip: test_suite_params.py + skip: test_timeout.py - test with scenario and modifiers tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ... [suite.py:[LINENR]] tst test_suite: DBG: {combining='resources'} [suite.py:[LINENR]] @@ -485,7 +496,7 @@ --------------------------------------------------------------------- trial test_suite PASS --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 6) +PASS: test_suite (pass: 1, skip: 7) pass: hello_world.py (N.N sec) skip: mo_mt_sms.py skip: mo_sms.py @@ -493,9 +504,10 @@ skip: test_fail.py skip: test_fail_raise.py skip: test_suite_params.py + skip: test_timeout.py - test with suite-specific config tst test_suite: DBG: {combining='config'} [suite.py:[LINENR]] -tst {combining_scenarios='config'}: DBG: {definition_conf={}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] +tst {combining_scenarios='config'}: DBG: {definition_conf={suite={test_suite={test_timeout={timeout='1'}}}}} [test_suite?{combining_scenarios='config'}] [suite.py:[LINENR]] tst {combining_scenarios='config', scenario='foo'}: DBG: {conf={suite={test_suite={some_suite_global_param='heyho', test_suite_params={one_bool_parameter='true', second_list_parameter=['23', '45']}}}}, scenario='foo'} [test_suite?{combining_scenarios='config', scenario='foo'}] [suite.py:[LINENR]] tst test_suite: reserving resources in [PATH]/selftest/suite_test/test_work/state_dir ... [suite.py:[LINENR]] tst test_suite: DBG: {combining='resources'} [suite.py:[LINENR]] @@ -614,13 +626,21 @@ tst test_suite_params.py:[LINENR]: starting test [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: SPECIFIC SUITE CONFIG: {'some_suite_global_param': 'heyho', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: 'test_suite_params': {'one_bool_parameter': 'true', [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] -tst test_suite_params.py:[LINENR]: 'second_list_parameter': ['23', '45']}} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] +tst test_suite_params.py:[LINENR]: 'second_list_parameter': ['23', '45']}, [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] +tst test_suite_params.py:[LINENR]: 'test_timeout': {'timeout': '1'}} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR]: SPECIFIC TEST CONFIG: {'one_bool_parameter': 'true', 'second_list_parameter': ['23', '45']} [test_suite?test_suite_params.py:[LINENR]] [test_suite_params.py:[LINENR]] tst test_suite_params.py:[LINENR] Test passed (N.N sec) [test_suite?test_suite_params.py] [test.py:[LINENR]] + +---------------------------------------------- +trial test_suite test_timeout.py +---------------------------------------------- +tst test_timeout.py:[LINENR]: starting test and waiting to receive Timeout after 1 seconds [test_suite?test_timeout.py:[LINENR]] [test_timeout.py:[LINENR]] +tst test_timeout.py:[LINENR]: ERR: Error: test_timeout.py:[LINENR] Test Timeout triggered: 1 seconds elapsed [test_suite?test_timeout.py:[LINENR]?test_timeout.py] [test_suite?test_timeout.py:[LINENR]] [testenv.py:[LINENR]: raise log_module.Error('Test Timeout triggered: %d seconds elapsed' % self._test.elapsed_time())] +tst test_timeout.py:[LINENR]: Test FAILED (N.N sec) [test_suite?test_timeout.py:[LINENR]] [test.py:[LINENR]] --------------------------------------------------------------------- -trial test_suite PASS +trial test_suite FAIL --------------------------------------------------------------------- -PASS: test_suite (pass: 1, skip: 6) +FAIL: test_suite (fail: 1, pass: 1, skip: 6) skip: hello_world.py skip: mo_mt_sms.py skip: mo_sms.py @@ -628,6 +648,7 @@ skip: test_fail.py skip: test_fail_raise.py pass: test_suite_params.py (N.N sec) + FAIL: test_timeout.py (N.N sec) Error: test_timeout.py:[LINENR] Test Timeout triggered: 1 seconds elapsed [test_suite?test_timeout.py:[LINENR]?test_timeout.py] - test with template overlay cnf suiteC: DBG: reading suite.conf [suite.py:[LINENR]] tst suiteC: DBG: {combining='config'} [suite.py:[LINENR]] diff --git a/selftest/suite_test/suite_test.py b/selftest/suite_test/suite_test.py index 260b9c4..9708037 100755 --- a/selftest/suite_test/suite_test.py +++ b/selftest/suite_test/suite_test.py @@ -102,7 +102,7 @@ s = suite.SuiteRun(trial, 'test_suite', s_def, [sc]) s.reserve_resources() print(repr(s.reserved_resources)) -results = s.run_tests('test_suite_params.py') +results = s.run_tests(['test_suite_params.py', 'test_timeout.py']) print(report.suite_to_text(s)) print('- test with template overlay') diff --git a/selftest/suite_test/suitedirA/test_suite/suite.conf b/selftest/suite_test/suitedirA/test_suite/suite.conf index ff4899a..0426ea7 100644 --- a/selftest/suite_test/suitedirA/test_suite/suite.conf +++ b/selftest/suite_test/suitedirA/test_suite/suite.conf @@ -15,3 +15,9 @@ one_bool_parameter: 'bool_str' second_list_parameter: ['uint'] + +config: + suite: + test_suite: + test_timeout: + timeout: 1 # timeout in 1 second diff --git a/selftest/suite_test/suitedirA/test_suite/test_timeout.py b/selftest/suite_test/suitedirA/test_suite/test_timeout.py new file mode 100644 index 0000000..eeddb70 --- /dev/null +++ b/selftest/suite_test/suitedirA/test_suite/test_timeout.py @@ -0,0 +1,6 @@ +from osmo_gsm_tester.testenv import * + +timeout = int(tenv.config_test_specific()['timeout']) +print('starting test and waiting to receive Timeout after %d seconds' % timeout) +sleep(10) +print('test failed, we expected timeout after %d seconds' % timeout) diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index 9b9062d..938471c 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -44,6 +44,8 @@ self.suite_dir = suite_dir self.conf = None self._schema = None + self.test_basenames = [] + self.load_test_basenames() self.read_conf() def read_conf(self): @@ -54,13 +56,16 @@ SuiteDefinition.CONF_FILENAME)) # Drop schema part since it's dynamically defining content, makes no sense to validate it. self._schema = self.conf.pop('schema', {}) + # Add per-test 'timeout' attribute: + d = {t.rstrip('.py'):{'timeout': schema.DURATION} for t in self.test_basenames} + schema.combine(self._schema, d) + # Convert config file format to proper schema format and register it: sdef = schema.config_to_schema_def(self._schema, "%s." % self._suite_name) schema.register_config_schema('suite', sdef) + # Finally validate the file: schema.validate(self.conf, schema.get_all_schema()) - self.load_test_basenames() def load_test_basenames(self): - self.test_basenames = [] for basename in sorted(os.listdir(self.suite_dir)): if not basename.endswith('.py'): continue diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index 45dfd41..c6d88e6 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -35,12 +35,12 @@ PASS = 'pass' FAIL = 'FAIL' - def __init__(self, suite_run, test_basename, test_specific_config): + def __init__(self, suite_run, test_basename, config_test_specific): self.basename = test_basename super().__init__(log.C_TST, self.basename) self._run_dir = None self.suite_run = suite_run - self._config_test_specific = test_specific_config + self._config_test_specific = config_test_specific self.path = os.path.join(self.suite_run.definition.suite_dir, self.basename) self.status = Test.UNKNOWN self.start_timestamp = 0 @@ -49,6 +49,7 @@ self.fail_message = None self.log_targets = [] self._report_stdout = None + self.timeout = int(config_test_specific['timeout']) if 'timeout' in config_test_specific else None def module_name(self): 'Return test name without trailing .py' diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 11199c2..77d844a 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -55,6 +55,8 @@ self.test_import_modules_to_clean_up = [] self.objects_to_clean_up = None MainLoop.register_poll_func(self.poll) + if self._test.timeout is not None: # aimed at firing once + MainLoop.register_poll_func(self.timeout_expired, timestep=self._test.timeout) def test(self): return self._test @@ -120,6 +122,11 @@ except Exception: log_module.log_exn() + def timeout_expired(self): + # Avoid timeout being called several times: + MainLoop.unregister_poll_func(self.timeout_expired) + raise log_module.Error('Test Timeout triggered: %d seconds elapsed' % self._test.elapsed_time()) + def poll(self): for proc, respawn in self._processes: if proc.terminated(): @@ -139,6 +146,7 @@ self.objects_cleanup() self.suite_run.reserved_resources.put_all() MainLoop.unregister_poll_func(self.poll) + MainLoop.unregister_poll_func(self.timeout_expired) self.test_import_modules_cleanup() self.set_overlay_template_dir(None) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18799 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: I522f51f77f8be64ebfdb5d5e07ba92baf82d7706 Gerrit-Change-Number: 18799 Gerrit-PatchSet: 5 Gerrit-Owner: pespin 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 Jun 15 08:56:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 08:56:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move logical channel handlers to separate files In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18820 ) Change subject: osmo-bts-trx: move logical channel handlers to separate files ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie5663fd90596b4800a4546675a323250bbb24c80 Gerrit-Change-Number: 18820 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 08:56:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 09:06:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 09:06:45 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: introduce and use struct trx_dl_burst_req In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18821 ) Change subject: osmo-bts-trx: introduce and use struct trx_dl_burst_req ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/common/scheduler.c at 1210 PS1, Line 1210: br->burst_len = ARRAY_SIZE(dummy_burst); Be careful here, iirc when I fixed this for EGPRS a few days ago, func() above (or some code before it) was setting nbits but having bits=NULL. Which means if logic is still the same in the function, you are changing the logic here, as in br->burstlen!=0 and you won't enter here. https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/osmo-bts-trx/scheduler_trx.c at 89 PS1, Line 89: /* TODO: Tx attenuation is always 0? */ we should get it from lchan->bs_power I think. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If3014e69746559963569b77561dbf7b163c68ffa Gerrit-Change-Number: 18821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 09:06:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 09:08:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 09:08:16 +0000 Subject: Change in osmo-bts[master]: abis.c: Grab reference to e1inp_line_get if already created In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18732 ) Change subject: abis.c: Grab reference to e1inp_line_get if already created ...................................................................... Patch Set 2: Code-Review+2 Readdig neel's +2 after fixing requested whitespace. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 Gerrit-Change-Number: 18732 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 09: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 Mon Jun 15 09:08:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 09:08:18 +0000 Subject: Change in osmo-bts[master]: abis.c: Grab reference to e1inp_line_get if already created In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18732 ) Change subject: abis.c: Grab reference to e1inp_line_get if already created ...................................................................... abis.c: Grab reference to e1inp_line_get if already created Since we are returning the pointer, it should always be grabbing a reference (find doesn't do it). In practice it's not much important since it is always created and not found. Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 --- M src/common/abis.c 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/common/abis.c b/src/common/abis.c index 44b8eff..ab32870 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -280,8 +280,10 @@ bts_dev_info.location2 = model_name; line = e1inp_line_find(0); - if (!line) - line = e1inp_line_create(0, "ipa"); + if (line) + e1inp_line_get(line); /* We want a new reference for returned line */ + else + line = e1inp_line_create(0, "ipa"); /* already comes with a reference */ if (!line) return NULL; e1inp_line_bind_ops(line, &line_ops); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib84636663be2df33d497131c780b010b57f17e32 Gerrit-Change-Number: 18732 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Jun 15 09:08:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 09:08:33 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... UHDDevice: Implement getNominalTxPower() based on TxFrequency The table with nominal UHD Tx Gains and real transmit power is filled with values measured experimentally. More information can be found in OS#4583. Related: OS#4583 Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb --- M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 2 files changed, 90 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 2970173..93dde4b 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -33,6 +33,10 @@ #include "config.h" #endif +extern "C" { +#include +} + #ifdef USE_UHD_3_11 #include #include @@ -123,6 +127,26 @@ { std::make_tuple(B2XX_MCBTS, 4, 4), { 1, 51.2e6, MCBTS_SPACING*4, B2XX_TIMING_MCBTS, "B200/B210 4 SPS Multi-ARFCN" } }, }; +typedef std::tuple dev_band_key; +/* Maximum UHD Tx Gain which can be set/used without distorting the + output signal, and the resulting real output power measured when that + gain is used. Correct measured values only provided for B210 so far. */ +struct dev_band_desc { + double nom_uhd_tx_gain; /* dB */ + double nom_out_tx_power; /* dBm */ +}; +typedef std::map::const_iterator dev_band_map_it; +static const std::map dev_band_nom_power_param_map { + { std::make_tuple(B200, GSM_BAND_850), { 89.75, 13.3 } }, + { std::make_tuple(B200, GSM_BAND_900), { 89.75, 13.3 } }, + { std::make_tuple(B200, GSM_BAND_1800), { 89.75, 7.5 } }, + { std::make_tuple(B200, GSM_BAND_1900), { 89.75, 7.7 } }, + { std::make_tuple(B210, GSM_BAND_850), { 89.75, 13.3 } }, + { std::make_tuple(B210, GSM_BAND_900), { 89.75, 13.3 } }, + { std::make_tuple(B210, GSM_BAND_1800), { 89.75, 7.5 } }, + { std::make_tuple(B210, GSM_BAND_1900), { 89.75, 7.7 } }, +}; + void *async_event_loop(uhd_device *dev) { set_selfthread_name("UHDAsyncEvent"); @@ -195,7 +219,7 @@ : RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), tx_gain_min(0.0), tx_gain_max(0.0), rx_gain_min(0.0), rx_gain_max(0.0), - tx_spp(0), rx_spp(0), + band((enum gsm_band)0), tx_spp(0), rx_spp(0), started(false), aligned(false), drop_cnt(0), prev_ts(0,0), ts_initial(0), ts_offset(0), async_event_thrd(NULL) { @@ -209,6 +233,27 @@ delete rx_buffers[i]; } +void uhd_device::get_dev_band_desc(dev_band_desc& desc) +{ + dev_band_map_it it; + enum gsm_band req_band = band; + + if (req_band == 0) { + LOGC(DDEV, ERROR) << "Nominal Tx Power requested before Tx Frequency was set! Providing band 900 by default... "; + req_band = GSM_BAND_900; + } + it = dev_band_nom_power_param_map.find(dev_band_key(dev_type, req_band)); + if (it == dev_band_nom_power_param_map.end()) { + dev_desc desc = dev_param_map.at(dev_key(dev_type, tx_sps, rx_sps)); + LOGC(DDEV, ERROR) << "No Tx Power measurements exist for device " + << desc.str << " on band " << gsm_band_name(req_band) + << ", using B210 ones as fallback"; + it = dev_band_nom_power_param_map.find(dev_band_key(B210, req_band)); + } + OSMO_ASSERT(it != dev_band_nom_power_param_map.end()) + desc = it->second; +} + void uhd_device::init_gains() { uhd::gain_range_t range; @@ -343,10 +388,10 @@ int uhd_device::getNominalTxPower(size_t chan) { - /* TODO: return value based on some experimentally generated table depending on - * band/arfcn, which is known here thanks to TXTUNE - */ - return 23; + dev_band_desc desc; + get_dev_band_desc(desc); + + return desc.nom_out_tx_power; } /* @@ -960,13 +1005,44 @@ bool uhd_device::setTxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + dev_band_desc desc; + if (chan >= tx_freqs.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; return false; } ScopedLock lock(tune_lock); - return set_freq(wFreq, chan, true); + req_arfcn = gsm_freq102arfcn(wFreq / 1000 / 100 , 0); + if (req_arfcn == 0xffff) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown ARFCN for Tx Frequency " << wFreq / 1000 << " kHz"; + return false; + } + if (gsm_arfcn2band_rc(req_arfcn, &req_band) < 0) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown GSM band for Tx Frequency " << wFreq + << " Hz (ARFCN " << req_arfcn << " )"; + return false; + } + + if (band != 0 && req_band != band) { + LOGCHAN(chan, DDEV, ALERT) << "Requesting Tx Frequency " << wFreq + << " Hz different from previous band " << gsm_band_name(band); + return false; + } + + if (!set_freq(wFreq, chan, true)) + return false; + + band = req_band; + + /* Update Max Tx Gain */ + get_dev_band_desc(desc); + tx_gain_max = desc.nom_uhd_tx_gain; + LOGCHAN(chan, DDEV, INFO) << "Updating max Gain to " << tx_gain_max + << " dB based on GSM band information"; + return true; } bool uhd_device::setRxFreq(double wFreq, size_t chan) diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 01d71a0..8a2d592 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -37,6 +37,10 @@ #include #include +extern "C" { +#include +} + enum uhd_dev_type { USRP1, @@ -52,6 +56,8 @@ LIMESDR, }; +struct dev_band_desc; + /* uhd_device - UHD implementation of the Device interface. Timestamped samples are sent to and received from the device. An intermediate buffer @@ -143,6 +149,7 @@ std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; + enum gsm_band band; size_t tx_spp, rx_spp; bool started; @@ -171,6 +178,7 @@ uhd::tune_request_t select_freq(double wFreq, size_t chan, bool tx); bool set_freq(double freq, size_t chan, bool tx); + void get_dev_band_desc(dev_band_desc& desc); Thread *async_event_thrd; Mutex tune_lock; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 09:08:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 09:08:33 +0000 Subject: Change in osmo-trx[master]: radioInterface: Operate on real Tx power attenuation rather than on d... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18722 ) Change subject: radioInterface: Operate on real Tx power attenuation rather than on device specific gains ...................................................................... radioInterface: Operate on real Tx power attenuation rather than on device specific gains All the Tx gain related APIs are left out of reach from radioInterface, and in there we simply interact with radioDevice passing the attenuation received from TRXC. Prior gain logic is moved in base radiodevice class, with the idea that the setTxGain() and related functions will be dropped over time in each sublcass in favour of an specific implementation of the SetPowerAttenuation API. Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 --- M Transceiver52M/device/common/radioDevice.h M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.h M Transceiver52M/device/usrp1/USRPDevice.h M Transceiver52M/radioInterface.cpp M Transceiver52M/radioInterface.h M Transceiver52M/radioInterfaceMulti.cpp 7 files changed, 59 insertions(+), 61 deletions(-) Approvals: Jenkins Builder: Verified neels: 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/Transceiver52M/device/common/radioDevice.h b/Transceiver52M/device/common/radioDevice.h index 8dd8f49..e51527d 100644 --- a/Transceiver52M/device/common/radioDevice.h +++ b/Transceiver52M/device/common/radioDevice.h @@ -125,21 +125,9 @@ /** return minimum Rx Gain **/ virtual double minRxGain(void) = 0; - /** sets the transmit chan gain, returns the gain setting **/ - virtual double setTxGain(double dB, size_t chan = 0) = 0; - /** returns the Nominal transmit output power of the transceiver in dBm, negative on error **/ virtual int getNominalTxPower(size_t chan = 0) = 0; - /** get transmit gain */ - virtual double getTxGain(size_t chan = 0) = 0; - - /** return maximum Tx Gain **/ - virtual double maxTxGain(void) = 0; - - /** return minimum Tx Gain **/ - virtual double minTxGain(void) = 0; - /** sets the RX path to use, returns true if successful and false otherwise */ virtual bool setRxAntenna(const std::string &ant, size_t chan = 0) = 0; @@ -163,6 +151,18 @@ virtual double getRxFreq(size_t chan = 0) = 0; virtual double getSampleRate()=0; + /* Default backward-compatible implementation based on TxGain APIs. New + implementations should be based on getNominalTxPower() once implemented for + the specific backend. */ + virtual double setPowerAttenuation(int atten, size_t chan) { + double rfGain; + rfGain = setTxGain(maxTxGain() - atten, chan); + return maxTxGain() - rfGain; + } + virtual double getPowerAttenuation(size_t chan=0) { + return maxTxGain() - getTxGain(chan); + } + protected: size_t tx_sps, rx_sps; InterfaceType iface; @@ -171,6 +171,15 @@ std::vector tx_paths, rx_paths; std::vector m_ctr; + /** sets the transmit chan gain, returns the gain setting **/ + virtual double setTxGain(double dB, size_t chan = 0) = 0; + + /** get transmit gain */ + virtual double getTxGain(size_t chan = 0) = 0; + + /** return maximum Tx Gain **/ + virtual double maxTxGain(void) = 0; + RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chan_num, double offset, const std::vector& tx_paths, const std::vector& rx_paths): diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 78fd62a..c83fed2 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -77,6 +77,19 @@ void update_stream_stats_rx(size_t chan, bool *overrun); void update_stream_stats_tx(size_t chan, bool *underrun); bool do_clock_src_freq(enum ReferenceType ref, double freq); + /** sets the transmit chan gain, returns the gain setting **/ + double setTxGain(double dB, size_t chan = 0); + + /** get transmit gain */ + double getTxGain(size_t chan = 0) { + return tx_gains[chan]; + } + + /** return maximum Tx Gain **/ + double maxTxGain(void); + + /** return minimum Rx Gain **/ + double minTxGain(void); public: @@ -165,20 +178,6 @@ /** return minimum Rx Gain **/ double minRxGain(void); - /** sets the transmit chan gain, returns the gain setting **/ - double setTxGain(double dB, size_t chan = 0); - - /** get transmit gain */ - double getTxGain(size_t chan = 0) { - return tx_gains[chan]; - } - - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); - int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 8a2d592..d87caf2 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -101,11 +101,6 @@ double maxRxGain(void) { return rx_gain_max; } double minRxGain(void) { return rx_gain_min; } - double setTxGain(double db, size_t chan); - double getTxGain(size_t chan = 0); - double maxTxGain(void) { return tx_gain_max; } - double minTxGain(void) { return tx_gain_min; } - int getNominalTxPower(size_t chan = 0); double getTxFreq(size_t chan); @@ -136,6 +131,11 @@ }; private: + double setTxGain(double db, size_t chan); + double getTxGain(size_t chan = 0); + double maxTxGain(void) { return tx_gain_max; } + double minTxGain(void) { return tx_gain_min; } + uhd::usrp::multi_usrp::sptr usrp_dev; uhd::tx_streamer::sptr tx_stream; uhd::rx_streamer::sptr rx_stream; diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index 0549192..1c1b3be 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -85,6 +85,18 @@ int writeSamplesControl(std::vector &bufs, int len, bool *underrun, TIMESTAMP timestamp = 0xffffffff, bool isControl = false); + /** sets the transmit chan gain, returns the gain setting **/ + double setTxGain(double dB, size_t chan = 0); + + /** get transmit gain */ + double getTxGain(size_t chan = 0) { return txGain; } + + /** return maximum Tx Gain **/ + double maxTxGain(void); + + /** return minimum Rx Gain **/ + double minTxGain(void); + #ifdef SWLOOPBACK short loopbackBuffer[1000000]; int loopbackBufferSize; @@ -168,18 +180,6 @@ /** return minimum Rx Gain **/ double minRxGain(void); - /** sets the transmit chan gain, returns the gain setting **/ - double setTxGain(double dB, size_t chan = 0); - - /** get transmit gain */ - double getTxGain(size_t chan = 0) { return txGain; } - - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); - int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp index fb724d2..adc2ee7 100644 --- a/Transceiver52M/radioInterface.cpp +++ b/Transceiver52M/radioInterface.cpp @@ -103,7 +103,7 @@ int RadioInterface::setPowerAttenuation(int atten, size_t chan) { - double rfGain, digAtten; + double rfAtten, digAtten; if (chan >= mChans) { LOG(ALERT) << "Invalid channel requested"; @@ -113,8 +113,8 @@ if (atten < 0.0) atten = 0.0; - rfGain = setTxGain(mDevice->maxTxGain() - (double) atten, chan); - digAtten = (double) atten - mDevice->maxTxGain() + rfGain; + rfAtten = mDevice->setPowerAttenuation((double) atten, chan); + digAtten = (double) atten - rfAtten; if (digAtten < 1.0) powerScaling[chan] = 1.0; @@ -318,11 +318,6 @@ return mDevice->setRxGain(dB, chan); } -double RadioInterface::setTxGain(double dB, size_t chan) -{ - return mDevice->setTxGain(dB, chan); -} - /* Receive a timestamped chunk from the device */ int RadioInterface::pullBuffer() { diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h index eb7ed3b..8e5f4c1 100644 --- a/Transceiver52M/radioInterface.h +++ b/Transceiver52M/radioInterface.h @@ -116,7 +116,8 @@ /** drive reception of GSM bursts. -1: Error. 0: Radio off. 1: Received something. */ int driveReceiveRadio(); - int setPowerAttenuation(int atten, size_t chan = 0); + /** set transmit power attenuation */ + virtual int setPowerAttenuation(int atten, size_t chan = 0); int getNominalTxPower(size_t chan = 0); /** returns the full-scale transmit amplitude **/ @@ -135,9 +136,6 @@ /** drive synchronization of Tx/Rx of USRP */ void alignRadio(); - /** set transmit gain */ - virtual double setTxGain(double dB, size_t chan = 0); - friend void *AlignRadioServiceLoopAdapter(RadioInterface*); }; @@ -167,7 +165,7 @@ bool pushBuffer(); int pullBuffer(); bool verify_arfcn_consistency(double freq, size_t chan, bool tx); - virtual double setTxGain(double dB, size_t chan); + virtual int setPowerAttenuation(int atten, size_t chan = 0); signalVector *outerSendBuffer; signalVector *outerRecvBuffer; diff --git a/Transceiver52M/radioInterfaceMulti.cpp b/Transceiver52M/radioInterfaceMulti.cpp index a0c24b5..29f85ca 100644 --- a/Transceiver52M/radioInterfaceMulti.cpp +++ b/Transceiver52M/radioInterfaceMulti.cpp @@ -437,11 +437,8 @@ return mDevice->getRxGain(); } -double RadioInterfaceMulti::setTxGain(double dB, size_t chan) +int RadioInterfaceMulti::setPowerAttenuation(int atten, size_t chan) { - if (chan == 0) - return mDevice->setTxGain(dB); - else - return mDevice->getTxGain(); + return RadioInterface::setPowerAttenuation(atten, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f8a1bcbed74aa9310306b97b0b1bfb02f7855e6 Gerrit-Change-Number: 18722 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 09:08:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 09:08:34 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Compute TxGain on UHD API based on expected Tx output power In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18723 ) Change subject: UHDDevice: Compute TxGain on UHD API based on expected Tx output power ...................................................................... UHDDevice: Compute TxGain on UHD API based on expected Tx output power Right now, according to a few measurements taken on B210, we expect the Tx Gain at UHD level to relate 1:1 with the slope in Tx output power given a specific band. If more fine-grained results are wanted or some device doesn't follow a 1:1 slope relationship, functions TxGain2TxPower and TxPower2TxGain need to be adapted/improved. Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 --- M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 2 files changed, 58 insertions(+), 47 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 93dde4b..d1f61d3 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -212,12 +212,23 @@ } #endif +/* So far measurements done for B210 show really close to linear relationship + * between gain and real output power, so we simply adjust the measured offset + */ +static double TxGain2TxPower(const dev_band_desc &desc, double tx_gain_db) +{ + return desc.nom_out_tx_power - (desc.nom_uhd_tx_gain - tx_gain_db); +} +static double TxPower2TxGain(const dev_band_desc &desc, double tx_power_dbm) +{ + return desc.nom_uhd_tx_gain - (desc.nom_out_tx_power - tx_power_dbm); +} + uhd_device::uhd_device(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chan_num, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) : RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), - tx_gain_min(0.0), tx_gain_max(0.0), rx_gain_min(0.0), rx_gain_max(0.0), band((enum gsm_band)0), tx_spp(0), rx_spp(0), started(false), aligned(false), drop_cnt(0), @@ -256,6 +267,7 @@ void uhd_device::init_gains() { + double tx_gain_min, tx_gain_max; uhd::gain_range_t range; if (dev_type == UMTRX) { @@ -320,37 +332,6 @@ LOGC(DDEV, INFO) << "Rates configured for " << desc.str; } -double uhd_device::setTxGain(double db, size_t chan) -{ - if (chan >= tx_gains.size()) { - LOGC(DDEV, ALERT) << "Requested non-existent channel" << chan; - return 0.0f; - } - - if (dev_type == UMTRX) { - std::vector gain_stages = usrp_dev->get_tx_gain_names(0); - if (gain_stages[0] == "VGA" || gain_stages[0] == "PA") { - usrp_dev->set_tx_gain(db, chan); - } else { - // New UHD versions support split configuration of - // Tx gain stages. We utilize this to set the gain - // configuration, optimal for the Tx signal quality. - // From our measurements, VGA1 must be 18dB plus-minus - // one and VGA2 is the best when 23dB or lower. - usrp_dev->set_tx_gain(UMTRX_VGA1_DEF, "VGA1", chan); - usrp_dev->set_tx_gain(db-UMTRX_VGA1_DEF, "VGA2", chan); - } - } else { - usrp_dev->set_tx_gain(db, chan); - } - - tx_gains[chan] = usrp_dev->get_tx_gain(chan); - - LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)"; - - return tx_gains[chan]; -} - double uhd_device::setRxGain(double db, size_t chan) { if (chan >= rx_gains.size()) { @@ -376,14 +357,50 @@ return rx_gains[chan]; } -double uhd_device::getTxGain(size_t chan) -{ +double uhd_device::setPowerAttenuation(int atten, size_t chan) { + double db; + dev_band_desc desc; + + if (chan >= tx_gains.size()) { + LOGC(DDEV, ALERT) << "Requested non-existent channel" << chan; + return 0.0f; + } + + get_dev_band_desc(desc); + db = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + + if (dev_type == UMTRX) { + std::vector gain_stages = usrp_dev->get_tx_gain_names(0); + if (gain_stages[0] == "VGA" || gain_stages[0] == "PA") { + usrp_dev->set_tx_gain(db, chan); + } else { + // New UHD versions support split configuration of + // Tx gain stages. We utilize this to set the gain + // configuration, optimal for the Tx signal quality. + // From our measurements, VGA1 must be 18dB plus-minus + // one and VGA2 is the best when 23dB or lower. + usrp_dev->set_tx_gain(UMTRX_VGA1_DEF, "VGA1", chan); + usrp_dev->set_tx_gain(db-UMTRX_VGA1_DEF, "VGA2", chan); + } + } else { + usrp_dev->set_tx_gain(db, chan); + } + + tx_gains[chan] = usrp_dev->get_tx_gain(chan); + + LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)"; + + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); +} +double uhd_device::getPowerAttenuation(size_t chan) { + dev_band_desc desc; if (chan >= tx_gains.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; return 0.0f; } - return tx_gains[chan]; + get_dev_band_desc(desc); + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); } int uhd_device::getNominalTxPower(size_t chan) @@ -1007,7 +1024,6 @@ { uint16_t req_arfcn; enum gsm_band req_band; - dev_band_desc desc; if (chan >= tx_freqs.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; @@ -1036,12 +1052,6 @@ return false; band = req_band; - - /* Update Max Tx Gain */ - get_dev_band_desc(desc); - tx_gain_max = desc.nom_uhd_tx_gain; - LOGCHAN(chan, DDEV, INFO) << "Updating max Gain to " << tx_gain_max - << " dB based on GSM band information"; return true; } diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index d87caf2..2c428ca 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -101,6 +101,9 @@ double maxRxGain(void) { return rx_gain_max; } double minRxGain(void) { return rx_gain_min; } + double setPowerAttenuation(int atten, size_t chan); + double getPowerAttenuation(size_t chan = 0); + int getNominalTxPower(size_t chan = 0); double getTxFreq(size_t chan); @@ -131,10 +134,9 @@ }; private: - double setTxGain(double db, size_t chan); - double getTxGain(size_t chan = 0); - double maxTxGain(void) { return tx_gain_max; } - double minTxGain(void) { return tx_gain_min; } + double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } + double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; + double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; uhd::usrp::multi_usrp::sptr usrp_dev; uhd::tx_streamer::sptr tx_stream; @@ -144,7 +146,6 @@ double tx_rate, rx_rate; - double tx_gain_min, tx_gain_max; double rx_gain_min, rx_gain_max; std::vector tx_gains, rx_gains; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f432465dce5c6ec1f1bc4653f6149efb18c3f43 Gerrit-Change-Number: 18723 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 09:40:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 09:40:17 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Prepend underscor to internal method References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18824 ) Change subject: testenv: Prepend underscor to internal method ...................................................................... testenv: Prepend underscor to internal method Change-Id: I2297f4b44d6f0c88409ab6982de4e3640a6a48b2 --- M src/osmo_gsm_tester/testenv.py 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/24/18824/1 diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 77d844a..ea71df9 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -56,7 +56,7 @@ self.objects_to_clean_up = None MainLoop.register_poll_func(self.poll) if self._test.timeout is not None: # aimed at firing once - MainLoop.register_poll_func(self.timeout_expired, timestep=self._test.timeout) + MainLoop.register_poll_func(self._timeout_expired, timestep=self._test.timeout) def test(self): return self._test @@ -122,9 +122,9 @@ except Exception: log_module.log_exn() - def timeout_expired(self): + def _timeout_expired(self): # Avoid timeout being called several times: - MainLoop.unregister_poll_func(self.timeout_expired) + MainLoop.unregister_poll_func(self._timeout_expired) raise log_module.Error('Test Timeout triggered: %d seconds elapsed' % self._test.elapsed_time()) def poll(self): @@ -146,7 +146,7 @@ self.objects_cleanup() self.suite_run.reserved_resources.put_all() MainLoop.unregister_poll_func(self.poll) - MainLoop.unregister_poll_func(self.timeout_expired) + MainLoop.unregister_poll_func(self._timeout_expired) self.test_import_modules_cleanup() self.set_overlay_template_dir(None) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18824 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: I2297f4b44d6f0c88409ab6982de4e3640a6a48b2 Gerrit-Change-Number: 18824 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 Jun 15 09:54:40 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 09:54:40 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: introduce and use struct trx_dl_burst_req In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18821 ) Change subject: osmo-bts-trx: introduce and use struct trx_dl_burst_req ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/common/scheduler.c at 1210 PS1, Line 1210: br->burst_len = ARRAY_SIZE(dummy_burst); > Be careful here, iirc when I fixed this for EGPRS a few days ago, func() above (or some code before [?] Yep, I remember your fix. The general rule is that a logical channel handler, i.e. func(), sets br->burst_len *iff* br->burst contains a valid burst. By default, both br->burst and br->burst_len are zero-initialized, so in the worst case we will Tx a sequence of zeros. Given that I refactored all lchan handlers, I don't think it's possible. https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/osmo-bts-trx/scheduler_trx.c at 89 PS1, Line 89: /* TODO: Tx attenuation is always 0? */ > we should get it from lchan->bs_power I think. Right. Do you know if osmo-trx supports per-burst power attenuation? "The Power Level field (octet 2) indicates the number of 2 dB steps by which the power shall be reduced from its nominal value, Pn, set by the network operator to adjust the coverage." -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If3014e69746559963569b77561dbf7b163c68ffa Gerrit-Change-Number: 18821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 09:54:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 10:20:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 10:20:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: introduce and use struct trx_dl_burst_req In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18821 ) Change subject: osmo-bts-trx: introduce and use struct trx_dl_burst_req ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18821/1/src/osmo-bts-trx/scheduler_trx.c at 89 PS1, Line 89: /* TODO: Tx attenuation is always 0? */ > Right. Do you know if osmo-trx supports per-burst power attenuation? [?] osmo-trx does use the value, see Transceiver::addRadioVector() https://git.osmocom.org/osmo-trx/tree/Transceiver52M/Transceiver.cpp#n373 (the variable is wrongly named RSSI there): """ addRadioVector(chan, newBurst, dl->tx_att, currTime); // which uses it like this: (dl->tx_att is RSSI) scaleVector(*burst, txFullScale * pow(10, -RSSI / 10)); """ According to Harald the attenuation value is to be applied on top of already global one, so iiuc it's doing the correct thing here (further attenuating it if the value is !=0). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If3014e69746559963569b77561dbf7b163c68ffa Gerrit-Change-Number: 18821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 10:20:21 +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 Mon Jun 15 10:28:55 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 10:28:55 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw: refactor endpoint and trunk handling In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18644 ) Change subject: osmo-mgw: refactor endpoint and trunk handling ...................................................................... osmo-mgw: refactor endpoint and trunk handling The trunk and endpoint handling in osmo-mgw is still very complex and implemented in various places (mostly mgcp_protocol.c). Also we use still integers for endpoint identification, which is not flexible enough to address timeslots/subslots on an E1 trunk. Some refactoring is needed. - get rid of integers as endpoint identifiers, use strings instead and find the endpoint based on its string name on the trunk. - identify the trunk based on the trunk prefix given in the endpoint name. - refactor trunk and endpoint allocation. Aggregate functionality in in mgcp_endp.c and mgcp_trunk.c. Also remove non-reusable code that relates to the still exisiting, but unfinished E1 trunk support. - refactor rate counters, put them into a separate module and do no longer allocate them per trunk. Allocate them globally instead. Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Related: OS#2659 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h A include/osmocom/mgcp/mgcp_ratectr.h A include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_msg.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_sdp.c A src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c M tests/mgcp/mgcp_test.c 21 files changed, 938 insertions(+), 628 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved neels: Looks good to me, approved diff --git a/include/osmocom/mgcp/Makefile.am b/include/osmocom/mgcp/Makefile.am index 036b4ca..fb7654f 100644 --- a/include/osmocom/mgcp/Makefile.am +++ b/include/osmocom/mgcp/Makefile.am @@ -7,5 +7,7 @@ mgcp_sdp.h \ mgcp_codec.h \ mgcp_ctrl.h \ + mgcp_trunk.h \ debug.h \ + mgcp_ratectr.h \ $(NULL) diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 538c907..3811991 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -34,6 +34,8 @@ #include #include +#include "mgcp_ratectr.h" + #define RTP_PORT_DEFAULT_RANGE_START 16002 #define RTP_PORT_DEFAULT_RANGE_END RTP_PORT_DEFAULT_RANGE_START + 64 @@ -59,8 +61,8 @@ #define MGCP_POLICY_REJECT 5 #define MGCP_POLICY_DEFER 6 -typedef int (*mgcp_change)(struct mgcp_trunk *cfg, int endpoint, int state); -typedef int (*mgcp_policy)(struct mgcp_trunk *cfg, int endpoint, int state, const char *transactio_id); +typedef int (*mgcp_change)(struct mgcp_endpoint *endp, int state); +typedef int (*mgcp_policy)(struct mgcp_endpoint *endp, int state, const char *transaction_id); typedef int (*mgcp_reset)(struct mgcp_trunk *cfg); typedef int (*mgcp_rqnt)(struct mgcp_endpoint *endp, char tone); @@ -177,57 +179,6 @@ MGCP_DLCX_DEFERRED_BY_POLICY, }; -struct mgcp_trunk { - struct llist_head entry; - - struct mgcp_config *cfg; - - int trunk_nr; - int trunk_type; - - char *audio_fmtp_extra; - char *audio_name; - int audio_payload; - int audio_send_ptime; - int audio_send_name; - int audio_loop; - - int no_audio_transcoding; - - int omit_rtcp; - int keepalive_interval; - - /* RTP patching */ - int force_constant_ssrc; /* 0: don't, 1: once */ - int force_aligned_timing; - bool rfc5993_hr_convert; - - /* spec handling */ - int force_realloc; - - /* timer */ - struct osmo_timer_list keepalive_timer; - - /* When set, incoming RTP packets are not filtered - * when ports and ip-address do not match (debug) */ - int rtp_accept_all; - - unsigned int number_endpoints; - int vty_number_endpoints; - struct mgcp_endpoint *endpoints; - - /* Rate counter group which contains stats for generic MGCP events. */ - struct rate_ctr_group *mgcp_general_ctr_group; - /* Rate counter group which contains stats for processed CRCX commands. */ - struct rate_ctr_group *mgcp_crcx_ctr_group; - /* Rate counter group which contains stats for processed MDCX commands. */ - struct rate_ctr_group *mgcp_mdcx_ctr_group; - /* Rate counter group which contains stats for processed DLCX commands. */ - struct rate_ctr_group *mgcp_dlcx_ctr_group; - /* Rate counter group which aggregates stats of individual RTP connections. */ - struct rate_ctr_group *all_rtp_conn_stats; -}; - enum mgcp_role { MGCP_BSC = 0, MGCP_BSC_NAT, @@ -295,6 +246,10 @@ /* osmocom CTRL interface */ struct ctrl_handle *ctrl; + + /* global rate counters to measure the MGWs overall performance and + * health */ + struct mgcp_ratectr_global ratectr; }; /* config management */ @@ -302,7 +257,6 @@ int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg, enum mgcp_role role); int mgcp_vty_init(void); -int mgcp_endpoints_allocate(struct mgcp_trunk *cfg); void mgcp_trunk_set_keepalive(struct mgcp_trunk *trunk, int interval); /* @@ -311,7 +265,7 @@ struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg); -int mgcp_send_reset_ep(struct mgcp_endpoint *endp, int endpoint); +int mgcp_send_reset_ep(struct mgcp_endpoint *endp); int mgcp_send_reset_all(struct mgcp_config *cfg); diff --git a/include/osmocom/mgcp/mgcp_common.h b/include/osmocom/mgcp/mgcp_common.h index a1bbb19..07d8d37 100644 --- a/include/osmocom/mgcp/mgcp_common.h +++ b/include/osmocom/mgcp/mgcp_common.h @@ -100,6 +100,10 @@ /* A prefix to denote the virtual trunk (RTP on both ends) */ #define MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK "rtpbridge/" +/* A prefix to denote the e1 trunk + * (see also RFC3435 section E.2) */ +#define MGCP_ENDPOINT_PREFIX_E1_TRUNK "ds/e1-" + /* Maximal number of payload types / codecs that can be negotiated via SDP at * at once. */ #define MGCP_MAX_CODECS 10 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 8fa8390..5737cd2 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -28,8 +28,8 @@ struct mgcp_endpoint; #define LOGPENDP(endp, cat, level, fmt, args...) \ -LOGP(cat, level, "endpoint:0x%x " fmt, \ - endp ? ENDPOINT_NUMBER(endp) : -1, \ +LOGP(cat, level, "endpoint:%s " fmt, \ + endp ? endp->name : "none", \ ## args) /* Callback type for RTP dispatcher functions @@ -68,6 +68,9 @@ /*! MGCP endpoint model */ struct mgcp_endpoint { + /*! Unique endpoint name, used for addressing via MGCP */ + char *name; + /*! Call identifier string (as supplied by the call agant) */ char *callid; @@ -80,7 +83,7 @@ /*! Backpointer to the MGW configuration */ struct mgcp_config *cfg; - /*! Backpointer to the Trunk specific configuration */ + /*! Backpointer to the trunk this endpoint belongs to */ struct mgcp_trunk *trunk; /*! Endpoint properties (see above) */ @@ -100,7 +103,9 @@ uint32_t x_osmo_ign; }; -/*! Extract endpoint number for a given endpoint */ -#define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->trunk->endpoints)) - +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name); void mgcp_endp_release(struct mgcp_endpoint *endp); +struct mgcp_endpoint *mgcp_endp_by_name_trunk(int *cause, const char *epname, + const struct mgcp_trunk *trunk); +struct mgcp_endpoint *mgcp_endp_by_name(int *cause, const char *epname, + struct mgcp_config *cfg); diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index b2e2210..174bfd9 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -282,9 +282,6 @@ return endpoint + 60; } -struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int index); -struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index); - char *get_lco_identifier(const char *options); int check_local_cx_options(void *ctx, const char *options); void mgcp_rtp_end_config(struct mgcp_endpoint *endp, int expect_ssrc_change, diff --git a/include/osmocom/mgcp/mgcp_ratectr.h b/include/osmocom/mgcp/mgcp_ratectr.h new file mode 100644 index 0000000..e05b70c --- /dev/null +++ b/include/osmocom/mgcp/mgcp_ratectr.h @@ -0,0 +1,22 @@ +#pragma once + +/* NOTE: When adding counters, also the dump_ratectr_* routines in vty.c must be updated. */ + +struct mgcp_ratectr_global { + /* Rate counter group which contains stats for generic MGCP events. */ + struct rate_ctr_group *mgcp_general_ctr_group; +}; + +struct mgcp_ratectr_trunk { + /* Rate counter group which contains stats for processed CRCX commands. */ + struct rate_ctr_group *mgcp_crcx_ctr_group; + /* Rate counter group which contains stats for processed MDCX commands. */ + struct rate_ctr_group *mgcp_mdcx_ctr_group; + /* Rate counter group which contains stats for processed DLCX commands. */ + struct rate_ctr_group *mgcp_dlcx_ctr_group; + /* Rate counter group which aggregates stats of individual RTP connections. */ + struct rate_ctr_group *all_rtp_conn_stats; +}; + +int mgcp_ratectr_global_alloc(void *ctx, struct mgcp_ratectr_global *ratectr); +int mgcp_ratectr_trunk_alloc(void *ctx, struct mgcp_ratectr_trunk *ratectr); diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h new file mode 100644 index 0000000..436e39a --- /dev/null +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -0,0 +1,49 @@ +#pragma once + +struct mgcp_trunk { + struct llist_head entry; + + struct mgcp_config *cfg; + + int trunk_nr; + int trunk_type; + + char *audio_fmtp_extra; + char *audio_name; + int audio_payload; + int audio_send_ptime; + int audio_send_name; + int audio_loop; + + int no_audio_transcoding; + + int omit_rtcp; + int keepalive_interval; + + /* RTP patching */ + int force_constant_ssrc; /* 0: don't, 1: once */ + int force_aligned_timing; + bool rfc5993_hr_convert; + + /* spec handling */ + int force_realloc; + + /* timer */ + struct osmo_timer_list keepalive_timer; + + /* When set, incoming RTP packets are not filtered + * when ports and ip-address do not match (debug) */ + int rtp_accept_all; + + unsigned int number_endpoints; + unsigned int vty_number_endpoints; + struct mgcp_endpoint **endpoints; + + /* global rate counters to measure the trunks overall performance and health */ + struct mgcp_ratectr_trunk ratectr; +}; + +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr); +int mgcp_trunk_alloc_endpts(struct mgcp_trunk *tcfg); +struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, int index); +struct mgcp_trunk *mgcp_trunk_by_name(const struct mgcp_config *cfg, const char *epname); diff --git a/src/libosmo-mgcp/Makefile.am b/src/libosmo-mgcp/Makefile.am index a0c015b..77d0cdf 100644 --- a/src/libosmo-mgcp/Makefile.am +++ b/src/libosmo-mgcp/Makefile.am @@ -40,5 +40,7 @@ mgcp_conn.c \ mgcp_stat.c \ mgcp_endp.c \ + mgcp_trunk.c \ mgcp_ctrl.c \ + mgcp_ratectr.c \ $(NULL) diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index 3cea495..c251317 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -19,6 +19,7 @@ */ #include #include +#include #include /* Helper function to dump codec information of a specified codec to a printable diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 0b499b4..6802b91 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -254,10 +255,9 @@ return NULL; } -static void -aggregate_rtp_conn_stats(struct mgcp_trunk *trunk, struct mgcp_conn_rtp *conn_rtp) +static void aggregate_rtp_conn_stats(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn_rtp) { - struct rate_ctr_group *all_stats = trunk->all_rtp_conn_stats; + struct rate_ctr_group *all_stats = endp->trunk->ratectr.all_rtp_conn_stats; struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; if (all_stats == NULL || conn_stats == NULL) @@ -296,7 +296,7 @@ switch (conn->type) { case MGCP_CONN_TYPE_RTP: - aggregate_rtp_conn_stats(endp->trunk, &conn->u.rtp); + aggregate_rtp_conn_stats(endp, &conn->u.rtp); mgcp_rtp_conn_cleanup(&conn->u.rtp); break; default: diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index eec46bf..6c78de2 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -1,7 +1,7 @@ /* Endpoint types */ /* - * (C) 2017 by sysmocom s.f.m.c. GmbH + * (C) 2017-2020 by sysmocom s.f.m.c. GmbH * All Rights Reserved * * Author: Philipp Maier @@ -23,6 +23,7 @@ #include #include +#include /* Endpoint typeset definition */ const struct mgcp_endpoint_typeset ep_typeset = { @@ -32,6 +33,39 @@ .rtp.cleanup_cb = mgcp_cleanup_rtp_bridge_cb }; +/*! allocate an endpoint and set default values. + * \param[in] trunk configuration. + * \param[in] name endpoint name. + * \returns endpoint on success, NULL on failure. */ +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name) +{ + struct mgcp_endpoint *endp; + + endp = talloc_zero(trunk->endpoints, struct mgcp_endpoint); + if (!endp) + return NULL; + + INIT_LLIST_HEAD(&endp->conns); + endp->cfg = trunk->cfg; + endp->trunk = trunk; + endp->name = talloc_strdup(endp, name); + + switch (trunk->trunk_type) { + case MGCP_TRUNK_VIRTUAL: + endp->type = &ep_typeset.rtp; + break; + case MGCP_TRUNK_E1: + /* FIXME: Implement E1 allocation */ + LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); + break; + default: + osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", + trunk->trunk_type, __FILE__, __LINE__); + } + + return endp; +} + /*! release endpoint, all open connections are closed. * \param[in] endp endpoint to release */ void mgcp_endp_release(struct mgcp_endpoint *endp) @@ -53,3 +87,223 @@ endp->local_options.codec = NULL; endp->wildcarded_req = false; } + +/* Check if the endpoint name contains the prefix (e.g. "rtpbridge/" or + * "ds/e1-") and write the epname without the prefix back to the memory + * pointed at by epname. (per trunk the prefix is the same for all endpoints, + * so no ambiguity is introduced) */ +static void chop_epname_prefix(char *epname, const struct mgcp_trunk *trunk) +{ + size_t prefix_len; + switch (trunk->trunk_type) { + case MGCP_TRUNK_VIRTUAL: + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; + if (strncmp + (epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, + prefix_len) == 0) + memmove(epname, epname + prefix_len, + strlen(epname) - prefix_len + 1); + return; + case MGCP_TRUNK_E1: + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; + if (strncmp + (epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, + prefix_len) == 0) + memmove(epname, epname + prefix_len, + strlen(epname) - prefix_len + 1); + return; + default: + OSMO_ASSERT(false); + } +} + +/* Check if the endpoint name contains a suffix (e.g. "@mgw") and truncate + * epname by writing a '\0' char where the suffix starts. */ +static void chop_epname_suffix(char *epname, const struct mgcp_trunk *trunk) +{ + char *suffix_begin; + + /* Endpoints on the virtual trunk may have a domain name that is + * followed after an @ character, this can be chopped off. All + * other supported trunk types do not have any suffixes that may + * be chopped off */ + if (trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { + suffix_begin = strchr(epname, '@'); + if (!suffix_begin) + return; + *suffix_begin = '\0'; + } +} + +/* Convert all characters in epname to lowercase and strip trunk prefix and + * endpoint name suffix (domain name) from epname. The result is written to + * to the memory pointed at by epname_stripped. The expected size of the + * result is either equal or lower then the length of the input string + * (epname) */ +static void strip_epname(char *epname_stripped, const char *epname, + const struct mgcp_trunk *trunk) +{ + osmo_str_tolower_buf(epname_stripped, MGCP_ENDPOINT_MAXLEN, epname); + chop_epname_prefix(epname_stripped, trunk); + chop_epname_suffix(epname_stripped, trunk); +} + +/* Go through the trunk and find a random free (no active calls) endpoint, + * this function is called when a wildcarded request is carried out, which + * means that it is up to the MGW to choose a random free endpoint. */ +static struct mgcp_endpoint *find_free_endpoint(const struct mgcp_trunk *trunk) +{ + struct mgcp_endpoint *endp; + unsigned int i; + + for (i = 0; i < trunk->number_endpoints; i++) { + endp = trunk->endpoints[i]; + if (endp->callid == NULL) + return endp; + } + + return NULL; +} + +/* Find an endpoint specified by its name. If the endpoint can not be found, + * return NULL */ +static struct mgcp_endpoint *find_specific_endpoint(const char *epname, + const struct mgcp_trunk *trunk) +{ + char epname_stripped[MGCP_ENDPOINT_MAXLEN]; + char epname_stripped_endp[MGCP_ENDPOINT_MAXLEN]; + struct mgcp_endpoint *endp; + unsigned int i; + + /* Strip irrelevant information from the endpoint name */ + strip_epname(epname_stripped, epname, trunk); + + for (i = 0; i < trunk->number_endpoints; i++) { + endp = trunk->endpoints[i]; + strip_epname(epname_stripped_endp, endp->name, trunk); + if (strcmp(epname_stripped_endp, epname_stripped) == 0) + return endp; + } + + return NULL; +} + +/*! Find an endpoint by its name on a specified trunk. + * \param[out] cause pointer to store cause code, can be NULL. + * \param[in] epname endpoint name to lookup. + * \param[in] trunk where the endpoint is located. + * \returns endpoint or NULL if endpoint was not found. */ +struct mgcp_endpoint *mgcp_endp_by_name_trunk(int *cause, const char *epname, + const struct mgcp_trunk *trunk) +{ + struct mgcp_endpoint *endp; + + if (cause) + *cause = 0; + + /* At the moment we only support a primitive ('*'-only) method of + * wildcarded endpoint searches that picks the next free endpoint on + * a trunk. */ + if (strstr(epname, "*")) { + endp = find_free_endpoint(trunk); + if (endp) { + LOGPENDP(endp, DLMGCP, LOGL_DEBUG, + "(trunk:%d) found free endpoint: %s\n", + trunk->trunk_nr, endp->name); + endp->wildcarded_req = true; + return endp; + } + + LOGP(DLMGCP, LOGL_ERROR, + "(trunk:%d) Not able to find a free endpoint\n", + trunk->trunk_nr); + if (cause) + *cause = -403; + return NULL; + } + + /* Find an endpoint by its name (if wildcarded request is not + * applicable) */ + endp = find_specific_endpoint(epname, trunk); + if (endp) { + LOGPENDP(endp, DLMGCP, LOGL_DEBUG, + "(trunk:%d) found endpoint: %s\n", + trunk->trunk_nr, endp->name); + endp->wildcarded_req = false; + return endp; + } + + LOGP(DLMGCP, LOGL_ERROR, + "(trunk:%d) Not able to find specified endpoint: %s\n", + trunk->trunk_nr, epname); + if (cause) + *cause = -500; + + return NULL; +} + +/* Check if the domain name, which is supplied with the endpoint name + * matches the configuration. */ +static int check_domain_name(const char *epname, struct mgcp_config *cfg) +{ + char *domain_to_check; + + domain_to_check = strstr(epname, "@"); + if (!domain_to_check) { + LOGP(DLMGCP, LOGL_ERROR, "missing domain name in endpoint name \"%s\", expecting \"%s\"\n", + epname, cfg->domain); + return -EINVAL; + } + + /* Accept any domain if configured as "*" */ + if (!strcmp(cfg->domain, "*")) + return 0; + + if (strcmp(domain_to_check+1, cfg->domain) != 0) { + LOGP(DLMGCP, LOGL_ERROR, "wrong domain name in endpoint name \"%s\", expecting \"%s\"\n", + epname, cfg->domain); + return -EINVAL; + } + + return 0; +} + +/*! Find an endpoint by its name, search at all trunks. + * \param[out] cause, pointer to store cause code, can be NULL. + * \param[in] epname, must contain trunk prefix. + * \param[in] cfg, mgcp configuration (trunks). + * \returns endpoint or NULL if endpoint was not found. */ +struct mgcp_endpoint *mgcp_endp_by_name(int *cause, const char *epname, + struct mgcp_config *cfg) +{ + struct mgcp_trunk *trunk; + struct mgcp_endpoint *endp; + char epname_lc[MGCP_ENDPOINT_MAXLEN]; + + osmo_str_tolower_buf(epname_lc, sizeof(epname_lc), epname); + epname = epname_lc; + + if (cause) + *cause = -500; + + /* Identify the trunk where the endpoint is located */ + trunk = mgcp_trunk_by_name(cfg, epname); + if (!trunk) + return NULL; + + /* Virtual endpoints require a domain name (see RFC3435, section E.3) */ + if (trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { + if (check_domain_name(epname, cfg)) + return NULL; + } + + /* Identify the endpoint on the trunk */ + endp = mgcp_endp_by_name_trunk(cause, epname, trunk); + if (!endp) { + return NULL; + } + + if (cause) + *cause = 0; + return endp; +} diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c index 7124a39..019466e 100644 --- a/src/libosmo-mgcp/mgcp_msg.c +++ b/src/libosmo-mgcp/mgcp_msg.c @@ -129,167 +129,6 @@ return ret; } -/* We have a null terminated string with the endpoint name here. We only - * support two kinds. Simple ones as seen on the BSC level and the ones - * seen on the trunk side. (helper function for find_endpoint()) */ -static struct mgcp_endpoint *find_e1_endpoint(struct mgcp_config *cfg, - const char *mgcp) -{ - char *rest = NULL; - struct mgcp_trunk *trunk; - int trunk_index, endp; - struct mgcp_endpoint *endp_ptr; - - trunk_index = strtoul(mgcp + 6, &rest, 10); - if (rest == NULL || rest[0] != '/' || trunk_index < 1) { - LOGP(DLMGCP, LOGL_ERROR, "Wrong trunk name '%s'\n", mgcp); - return NULL; - } - - endp = strtoul(rest + 1, &rest, 10); - if (rest == NULL || rest[0] != '@') { - LOGP(DLMGCP, LOGL_ERROR, "Wrong endpoint name '%s'\n", mgcp); - return NULL; - } - - /* signalling is on timeslot 1 */ - if (endp == 1) - return NULL; - - trunk = mgcp_trunk_num(cfg, trunk_index); - if (!trunk) { - LOGP(DLMGCP, LOGL_ERROR, "The trunk %d is not declared.\n", - trunk_index); - return NULL; - } - - if (!trunk->endpoints) { - LOGP(DLMGCP, LOGL_ERROR, - "Endpoints of trunk %d not allocated.\n", trunk_index); - return NULL; - } - - if (endp < 1 || endp >= trunk->number_endpoints) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to find endpoint '%s'\n", - mgcp); - return NULL; - } - - endp_ptr = &trunk->endpoints[endp]; - endp_ptr->wildcarded_req = false; - return endp_ptr; -} - -/* Find an endpoint that is not in use. Do this by going through the endpoint - * array, check the callid. A callid nullpointer indicates that the endpoint - * is free */ -static struct mgcp_endpoint *find_free_endpoint(struct mgcp_endpoint *endpoints, - unsigned int number_endpoints) -{ - struct mgcp_endpoint *endp; - unsigned int i; - - for (i = 0; i < number_endpoints; i++) { - if (endpoints[i].callid == NULL) { - endp = &endpoints[i]; - LOGPENDP(endp, DLMGCP, LOGL_DEBUG, - "found free endpoint\n"); - endp->wildcarded_req = true; - return endp; - } - } - - LOGP(DLMGCP, LOGL_ERROR, "Not able to find a free endpoint\n"); - return NULL; -} - -/* Check if the domain name, which is supplied with the endpoint name - * matches the configuration. */ -static int check_domain_name(struct mgcp_config *cfg, const char *mgcp) -{ - char *domain_to_check; - - domain_to_check = strstr(mgcp, "@"); - if (!domain_to_check) - return -EINVAL; - - /* Accept any domain if configured as "*" */ - if (!strcmp(cfg->domain, "*")) - return 0; - - if (strcmp(domain_to_check+1, cfg->domain) != 0) { - LOGP(DLMGCP, LOGL_ERROR, "Wrong domain name '%s', expecting '%s'\n", mgcp, cfg->domain); - return -EINVAL; - } - - return 0; -} - -/* Search the endpoint pool for the endpoint that had been selected via the - * MGCP message (helper function for mgcp_analyze_header()) */ -static struct mgcp_endpoint *find_endpoint(struct mgcp_config *cfg, - const char *mgcp, - int *cause) -{ - char *endptr = NULL; - unsigned int gw = INT_MAX; - const char *endpoint_number_str; - struct mgcp_endpoint *endp; - struct mgcp_trunk *virt_trunk = cfg->virt_trunk; - - *cause = 0; - - /* Check if the domainname in the request is correct */ - if (check_domain_name(cfg, mgcp)) { - *cause = -500; - return NULL; - } - - /* Check if the E1 trunk is requested */ - if (strncmp(mgcp, "ds/e1", 5) == 0) { - endp = find_e1_endpoint(cfg, mgcp); - if (!endp) - *cause = -500; - return endp; - } - - /* Check if the virtual trunk is addressed (new, correct way with prefix) */ - if (strncmp - (mgcp, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, - strlen(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK)) == 0) { - endpoint_number_str = - mgcp + strlen(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK); - if (endpoint_number_str[0] == '*') { - endp = find_free_endpoint(virt_trunk->endpoints, - virt_trunk->number_endpoints); - if (!endp) - *cause = -403; - return endp; - } - gw = strtoul(endpoint_number_str, &endptr, 16); - if (gw < virt_trunk->number_endpoints && endptr[0] == '@') { - endp = &virt_trunk->endpoints[gw]; - endp->wildcarded_req = false; - return endp; - } - } - - /* Deprecated method without prefix */ - LOGP(DLMGCP, LOGL_NOTICE, - "Addressing virtual trunk without prefix (deprecated), please use %s: '%s'\n", - MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, mgcp); - gw = strtoul(mgcp, &endptr, 16); - if (gw < virt_trunk->number_endpoints && endptr[0] == '@') { - endp = &virt_trunk->endpoints[gw]; - endp->wildcarded_req = false; - return endp; - } - - LOGP(DLMGCP, LOGL_ERROR, "Not able to find the endpoint: '%s'\n", mgcp); - *cause = -500; - return NULL; -} - /*! Analyze and parse the the hader of an MGCP messeage string. * \param[out] pdata caller provided memory to store the parsing results * \param[in] data mgcp message string @@ -317,7 +156,7 @@ pdata->trans = elem; break; case 1: - pdata->endp = find_endpoint(pdata->cfg, elem, &cause); + pdata->endp = mgcp_endp_by_name(&cause, elem, pdata->cfg); if (!pdata->endp) { LOGP(DLMGCP, LOGL_ERROR, "Unable to find Endpoint `%s'\n", elem); @@ -391,8 +230,8 @@ const size_t line_len = strlen(line); if (line[0] != '\0' && line_len < 2) { LOGP(DLMGCP, LOGL_ERROR, - "Wrong MGCP option format: '%s' on 0x%x\n", - line, ENDPOINT_NUMBER(endp)); + "Wrong MGCP option format: '%s' on %s\n", + line, endp->name); return 0; } diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 2d3fdc3..8efc6b7 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include #include @@ -61,11 +62,11 @@ int id, int inc) { struct rate_ctr_group *conn_stats = conn_rtp->rate_ctr_group; - struct rate_ctr_group *trunk_stats = endp->trunk->all_rtp_conn_stats; + struct rate_ctr_group *mgw_stats = endp->trunk->ratectr.all_rtp_conn_stats; - /* add to both the per-connection and the per-trunk global stats */ + /* add to both the per-connection and the global stats */ rate_ctr_add(&conn_stats->ctr[id], inc); - rate_ctr_add(&trunk_stats->ctr[id], inc); + rate_ctr_add(&mgw_stats->ctr[id], inc); } static void rtpconn_rate_ctr_inc(struct mgcp_conn_rtp *conn_rtp, struct mgcp_endpoint *endp, int id) @@ -648,9 +649,8 @@ return; #if 0 - DEBUGP(DRTP, - "endpoint:0x%x payload hdr payload %u -> endp payload %u\n", - ENDPOINT_NUMBER(endp), rtp_hdr->payload_type, payload); + LOGPENDP(endp, DRTP, LOGL_DEBUG, "payload hdr payload %u -> endp payload %u\n", + rtp_hdr->payload_type, payload); rtp_hdr->payload_type = payload; #endif } @@ -1436,11 +1436,10 @@ /* Bind RTP and RTCP port (helper function for mgcp_bind_net_rtp_port()) */ static int bind_rtp(struct mgcp_config *cfg, const char *source_addr, - struct mgcp_rtp_end *rtp_end, int endpno) + struct mgcp_rtp_end *rtp_end, struct mgcp_endpoint *endp) { /* NOTE: The port that is used for RTCP is the RTP port incremented by one * (e.g. RTP-Port = 16000 ==> RTCP-Port = 16001) */ - struct mgcp_endpoint *endp = &cfg->virt_trunk->endpoints[endpno]; if (mgcp_create_bind(source_addr, &rtp_end->rtp, rtp_end->local_port) != 0) { @@ -1527,8 +1526,7 @@ mgcp_get_local_addr(local_ip_addr, conn); - return bind_rtp(endp->cfg, local_ip_addr, end, - ENDPOINT_NUMBER(endp)); + return bind_rtp(endp->cfg, local_ip_addr, end, endp); } /*! free allocated RTP and RTCP ports. diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index 8da7361..ca8b5f0 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -27,6 +27,7 @@ #include #include #include +#include static struct osmo_fd osmux_fd; @@ -204,7 +205,7 @@ for (i=0; ivirt_trunk->number_endpoints; i++) { - endp = &cfg->virt_trunk->endpoints[i]; + endp = cfg->virt_trunk->endpoints[i]; llist_for_each_entry(conn, &endp->conns, entry) { if (conn->type != MGCP_CONN_TYPE_RTP) diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 4d77a4c..1d25c45 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include @@ -40,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -53,101 +53,6 @@ #define MGCP_REQUEST(NAME, REQ, DEBUG_NAME) \ { .name = NAME, .handle_request = REQ, .debug_name = DEBUG_NAME }, -static const struct rate_ctr_desc mgcp_general_ctr_desc[] = { - /* rx_msgs = rx_msgs_retransmitted + rx_msgs_handled + rx_msgs_unhandled + err_rx_msg_parse + err_rx_no_endpoint */ - [MGCP_GENERAL_RX_MSGS_TOTAL] = {"mgcp:rx_msgs", "total number of MGCP messages received."}, - [MGCP_GENERAL_RX_MSGS_RETRANSMITTED] = {"mgcp:rx_msgs_retransmitted", "number of received retransmissions."}, - [MGCP_GENERAL_RX_MSGS_HANDLED] = {"mgcp:rx_msgs_handled", "number of handled MGCP messages."}, - [MGCP_GENERAL_RX_MSGS_UNHANDLED] = {"mgcp:rx_msgs_unhandled", "number of unhandled MGCP messages."}, - [MGCP_GENERAL_RX_FAIL_MSG_PARSE] = {"mgcp:err_rx_msg_parse", "error parsing MGCP message."}, - [MGCP_GENERAL_RX_FAIL_NO_ENDPOINT] = {"mgcp:err_rx_no_endpoint", "can't find MGCP endpoint, probably we've used all allocated endpoints."}, -}; - -const static struct rate_ctr_group_desc mgcp_general_ctr_group_desc = { - .group_name_prefix = "mgcp", - .group_description = "mgcp general statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_general_ctr_desc), - .ctr_desc = mgcp_general_ctr_desc -}; - -static const struct rate_ctr_desc mgcp_crcx_ctr_desc[] = { - [MGCP_CRCX_SUCCESS] = {"crcx:success", "CRCX command processed successfully."}, - [MGCP_CRCX_FAIL_BAD_ACTION] = {"crcx:bad_action", "bad action in CRCX command."}, - [MGCP_CRCX_FAIL_UNHANDLED_PARAM] = {"crcx:unhandled_param", "unhandled parameter in CRCX command."}, - [MGCP_CRCX_FAIL_MISSING_CALLID] = {"crcx:missing_callid", "missing CallId in CRCX command."}, - [MGCP_CRCX_FAIL_INVALID_MODE] = {"crcx:invalid_mode", "invalid connection mode in CRCX command."}, - [MGCP_CRCX_FAIL_LIMIT_EXCEEDED] = {"crcx:limit_exceeded", "limit of concurrent connections was reached."}, - [MGCP_CRCX_FAIL_UNKNOWN_CALLID] = {"crcx:unkown_callid", "unknown CallId in CRCX command."}, - [MGCP_CRCX_FAIL_ALLOC_CONN] = {"crcx:alloc_conn_fail", "connection allocation failure."}, - [MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC] = {"crcx:no_remote_conn_desc", "no opposite end specified for connection."}, - [MGCP_CRCX_FAIL_START_RTP] = {"crcx:start_rtp_failure", "failure to start RTP processing."}, - [MGCP_CRCX_FAIL_REJECTED_BY_POLICY] = {"crcx:conn_rejected", "connection rejected by policy."}, - [MGCP_CRCX_FAIL_NO_OSMUX] = {"crcx:no_osmux", "no osmux offered by peer."}, - [MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS] = {"crcx:conn_opt", "connection options invalid."}, - [MGCP_CRCX_FAIL_CODEC_NEGOTIATION] = {"crcx:codec_nego", "codec negotiation failure."}, - [MGCP_CRCX_FAIL_BIND_PORT] = {"crcx:bind_port", "port bind failure."}, -}; - -const static struct rate_ctr_group_desc mgcp_crcx_ctr_group_desc = { - .group_name_prefix = "crcx", - .group_description = "crxc statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_crcx_ctr_desc), - .ctr_desc = mgcp_crcx_ctr_desc -}; - -static const struct rate_ctr_desc mgcp_mdcx_ctr_desc[] = { - [MGCP_MDCX_SUCCESS] = {"mdcx:success", "MDCX command processed successfully."}, - [MGCP_MDCX_FAIL_WILDCARD] = {"mdcx:wildcard", "wildcard endpoint names in MDCX commands are unsupported."}, - [MGCP_MDCX_FAIL_NO_CONN] = {"mdcx:no_conn", "endpoint specified in MDCX command has no active connections."}, - [MGCP_MDCX_FAIL_INVALID_CALLID] = {"mdcx:callid", "invalid CallId specified in MDCX command."}, - [MGCP_MDCX_FAIL_INVALID_CONNID] = {"mdcx:connid", "invalid connection ID specified in MDCX command."}, - [MGCP_MDCX_FAIL_UNHANDLED_PARAM] = {"crcx:unhandled_param", "unhandled parameter in MDCX command."}, - [MGCP_MDCX_FAIL_NO_CONNID] = {"mdcx:no_connid", "no connection ID specified in MDCX command."}, - [MGCP_MDCX_FAIL_CONN_NOT_FOUND] = {"mdcx:conn_not_found", "connection specified in MDCX command does not exist."}, - [MGCP_MDCX_FAIL_INVALID_MODE] = {"mdcx:invalid_mode", "invalid connection mode in MDCX command."}, - [MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS] = {"mdcx:conn_opt", "connection options invalid."}, - [MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC] = {"mdcx:no_remote_conn_desc", "no opposite end specified for connection."}, - [MGCP_MDCX_FAIL_START_RTP] = {"mdcx:start_rtp_failure", "failure to start RTP processing."}, - [MGCP_MDCX_FAIL_REJECTED_BY_POLICY] = {"mdcx:conn_rejected", "connection rejected by policy."}, - [MGCP_MDCX_DEFERRED_BY_POLICY] = {"mdcx:conn_deferred", "connection deferred by policy."}, -}; - -const static struct rate_ctr_group_desc mgcp_mdcx_ctr_group_desc = { - .group_name_prefix = "mdcx", - .group_description = "mdcx statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_mdcx_ctr_desc), - .ctr_desc = mgcp_mdcx_ctr_desc -}; - -static const struct rate_ctr_desc mgcp_dlcx_ctr_desc[] = { - [MGCP_DLCX_SUCCESS] = {"dlcx:success", "DLCX command processed successfully."}, - [MGCP_DLCX_FAIL_WILDCARD] = {"dlcx:wildcard", "wildcard names in DLCX commands are unsupported."}, - [MGCP_DLCX_FAIL_NO_CONN] = {"dlcx:no_conn", "endpoint specified in DLCX command has no active connections."}, - [MGCP_DLCX_FAIL_INVALID_CALLID] = {"dlcx:callid", "CallId specified in DLCX command mismatches endpoint's CallId ."}, - [MGCP_DLCX_FAIL_INVALID_CONNID] = {"dlcx:connid", "connection ID specified in DLCX command does not exist on endpoint."}, - [MGCP_DLCX_FAIL_UNHANDLED_PARAM] = {"dlcx:unhandled_param", "unhandled parameter in DLCX command."}, - [MGCP_DLCX_FAIL_REJECTED_BY_POLICY] = {"dlcx:rejected", "connection deletion rejected by policy."}, - [MGCP_DLCX_DEFERRED_BY_POLICY] = {"dlcx:deferred", "connection deletion deferred by policy."}, -}; - -const static struct rate_ctr_group_desc mgcp_dlcx_ctr_group_desc = { - .group_name_prefix = "dlcx", - .group_description = "dlcx statistics", - .class_id = OSMO_STATS_CLASS_GLOBAL, - .num_ctr = ARRAY_SIZE(mgcp_dlcx_ctr_desc), - .ctr_desc = mgcp_dlcx_ctr_desc -}; - -const static struct rate_ctr_group_desc all_rtp_conn_rate_ctr_group_desc = { - .group_name_prefix = "all_rtp_conn", - .group_description = "aggregated statistics for all rtp connections", - .class_id = 1, - .num_ctr = ARRAY_SIZE(all_rtp_conn_rate_ctr_desc), - .ctr_desc = all_rtp_conn_rate_ctr_desc -}; static struct msgb *handle_audit_endpoint(struct mgcp_parse_data *data); static struct msgb *handle_create_con(struct mgcp_parse_data *data); @@ -297,9 +202,7 @@ /* NOTE: Only in the virtual trunk we allow dynamic endpoint names */ if (endp->wildcarded_req && endp->trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { - rc = msgb_printf(msg, "Z: %s%x@%s\r\n", - MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, - ENDPOINT_NUMBER(endp), endp->cfg->domain); + rc = msgb_printf(msg, "Z: %s\r\n", endp->name); if (rc < 0) return -EINVAL; } @@ -379,8 +282,7 @@ * - or a response (three numbers, space, transaction id) */ struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg) { - struct mgcp_trunk *trunk = cfg->virt_trunk; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_general_ctr_group; + struct rate_ctr_group *rate_ctrs = cfg->ratectr.mgcp_general_ctr_group; struct mgcp_parse_data pdata; int rc, i, code, handled = 0; struct msgb *resp = NULL; @@ -832,7 +734,7 @@ { struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_crcx_ctr_group; + struct rate_ctr_group *rate_ctrs = trunk->ratectr.mgcp_crcx_ctr_group; int error_code = 400; const char *local_options = NULL; const char *callid = NULL; @@ -1043,8 +945,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_CRCX, p->trans); + rc = p->cfg->policy_cb(endp, MGCP_ENDP_CRCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: LOGPCONN(_conn, DLMGCP, LOGL_NOTICE, @@ -1066,7 +967,7 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "CRCX: Creating connection: port: %u\n", conn->end.local_port); if (p->cfg->change_cb) - p->cfg->change_cb(trunk, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX); + p->cfg->change_cb(endp, MGCP_ENDP_CRCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ OSMO_ASSERT(trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); @@ -1088,9 +989,8 @@ /* MDCX command handler, processes the received command */ static struct msgb *handle_modify_con(struct mgcp_parse_data *p) { - struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_mdcx_ctr_group; + struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.mgcp_mdcx_ctr_group; int error_code = 500; int silent = 0; int have_sdp = 0; @@ -1257,8 +1157,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_MDCX, p->trans); + rc = p->cfg->policy_cb(endp, MGCP_ENDP_MDCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: LOGPCONN(conn->conn, DLMGCP, LOGL_NOTICE, @@ -1287,8 +1186,7 @@ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "MDCX: modified conn:%s\n", mgcp_conn_dump(conn->conn)); if (p->cfg->change_cb) - p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_MDCX); + p->cfg->change_cb(endp, MGCP_ENDP_MDCX); /* Send dummy packet, see also comments in mgcp_keepalive_timer_cb() */ OSMO_ASSERT(endp->trunk->keepalive_interval >= MGCP_KEEPALIVE_ONCE); @@ -1314,9 +1212,8 @@ /* DLCX command handler, processes the received command */ static struct msgb *handle_delete_con(struct mgcp_parse_data *p) { - struct mgcp_trunk *trunk = p->endp->trunk; struct mgcp_endpoint *endp = p->endp; - struct rate_ctr_group *rate_ctrs = trunk->mgcp_dlcx_ctr_group; + struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.mgcp_dlcx_ctr_group; int error_code = 400; int silent = 0; char *line; @@ -1377,8 +1274,7 @@ /* policy CB */ if (p->cfg->policy_cb) { int rc; - rc = p->cfg->policy_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_DLCX, p->trans); + rc = p->cfg->policy_cb(endp, MGCP_ENDP_DLCX, p->trans); switch (rc) { case MGCP_POLICY_REJECT: LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "DLCX: rejected by policy\n"); @@ -1442,8 +1338,7 @@ } if (p->cfg->change_cb) - p->cfg->change_cb(endp->trunk, ENDPOINT_NUMBER(endp), - MGCP_ENDP_DLCX); + p->cfg->change_cb(endp, MGCP_ENDP_DLCX); rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_SUCCESS]); if (silent) @@ -1548,7 +1443,7 @@ /* Send walk over all endpoints and send out dummy packets through * every connection present on each endpoint */ for (i = 1; i < trunk->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &trunk->endpoints[i]; + struct mgcp_endpoint *endp = trunk->endpoints[i]; llist_for_each_entry(conn, &endp->conns, entry) { if (conn->mode == MGCP_CONN_RECV_ONLY) send_dummy(endp, &conn->u.rtp); @@ -1574,66 +1469,12 @@ trunk->keepalive_interval, 0); } -static int free_rate_counter_group(struct rate_ctr_group *rate_ctr_group) -{ - rate_ctr_group_free(rate_ctr_group); - return 0; -} - -static int alloc_mgcp_rate_counters(struct mgcp_trunk *trunk, void *ctx) -{ - /* FIXME: Each new rate counter group requires a unique index. At the - * moment we generate an index using a counter, but perhaps there is - * a better way of assigning indices? */ - static unsigned int general_rate_ctr_index = 0; - static unsigned int crcx_rate_ctr_index = 0; - static unsigned int mdcx_rate_ctr_index = 0; - static unsigned int dlcx_rate_ctr_index = 0; - static unsigned int all_rtp_conn_rate_ctr_index = 0; - - if (trunk->mgcp_general_ctr_group == NULL) { - trunk->mgcp_general_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_general_ctr_group_desc, general_rate_ctr_index); - if (!trunk->mgcp_general_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_general_ctr_group, free_rate_counter_group); - general_rate_ctr_index++; - } - if (trunk->mgcp_crcx_ctr_group == NULL) { - trunk->mgcp_crcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index); - if (!trunk->mgcp_crcx_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_crcx_ctr_group, free_rate_counter_group); - crcx_rate_ctr_index++; - } - if (trunk->mgcp_mdcx_ctr_group == NULL) { - trunk->mgcp_mdcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index); - if (!trunk->mgcp_mdcx_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_mdcx_ctr_group, free_rate_counter_group); - mdcx_rate_ctr_index++; - } - if (trunk->mgcp_dlcx_ctr_group == NULL) { - trunk->mgcp_dlcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index); - if (!trunk->mgcp_dlcx_ctr_group) - return -1; - talloc_set_destructor(trunk->mgcp_dlcx_ctr_group, free_rate_counter_group); - dlcx_rate_ctr_index++; - } - if (trunk->all_rtp_conn_stats == NULL) { - trunk->all_rtp_conn_stats = rate_ctr_group_alloc(ctx, &all_rtp_conn_rate_ctr_group_desc, - all_rtp_conn_rate_ctr_index); - if (!trunk->all_rtp_conn_stats) - return -1; - talloc_set_destructor(trunk->all_rtp_conn_stats, free_rate_counter_group); - all_rtp_conn_rate_ctr_index++; - } - return 0; -} - /*! allocate configuration with default values. * (called once at startup by main function) */ struct mgcp_config *mgcp_config_alloc(void) { + /* FIXME: This is unrelated to the protocol, put this in some + * appropiate place! */ struct mgcp_config *cfg; cfg = talloc_zero(NULL, struct mgcp_config); @@ -1657,109 +1498,21 @@ cfg->get_net_downlink_format_cb = &mgcp_get_net_downlink_format_default; - INIT_LLIST_HEAD(&cfg->trunks); - - /* default trunk handling */ + /* Allocate virtual trunk */ cfg->virt_trunk = mgcp_trunk_alloc(cfg, MGCP_TRUNK_VIRTUAL, 0); if (!cfg->virt_trunk) { talloc_free(cfg); return NULL; } - /* virtual trunk is not part of the list! */ - llist_del(&cfg->virt_trunk->entry); + + /* Initalize list head for user configurable trunks */ + INIT_LLIST_HEAD(&cfg->trunks); + + mgcp_ratectr_global_alloc(cfg, &cfg->ratectr); return cfg; } -/*! allocate configuration with default values. Do not link it into global list yet! - * (called once at startup by VTY) - * \param[in] cfg mgcp configuration - * \param[in] nr trunk number - * \returns pointer to allocated trunk configuration */ -struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) -{ - struct mgcp_trunk *trunk; - - trunk = talloc_zero(cfg, struct mgcp_trunk); - if (!trunk) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate.\n"); - return NULL; - } - - trunk->cfg = cfg; - trunk->trunk_type = ttype; - trunk->trunk_nr = nr; - trunk->audio_name = talloc_strdup(trunk, "AMR/8000"); - trunk->audio_payload = 126; - trunk->audio_send_ptime = 1; - trunk->audio_send_name = 1; - trunk->vty_number_endpoints = 33; - trunk->omit_rtcp = 0; - mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); - if (alloc_mgcp_rate_counters(trunk, trunk) < 0) { - talloc_free(trunk); - return NULL; - } - llist_add_tail(&trunk->entry, &cfg->trunks); - - return trunk; -} - -/*! get trunk configuration by trunk number (index). - * \param[in] cfg mgcp configuration - * \param[in] index trunk number - * \returns pointer to trunk configuration, NULL on error */ -struct mgcp_trunk *mgcp_trunk_num(struct mgcp_config *cfg, int index) -{ - struct mgcp_trunk *trunk; - - llist_for_each_entry(trunk, &cfg->trunks, entry) - if (trunk->trunk_nr == index) - return trunk; - - return NULL; -} - -/*! allocate endpoints and set default values. - * (called once at startup by VTY) - * \param[in] trunk trunk configuration - * \returns 0 on success, -1 on failure */ -int mgcp_endpoints_allocate(struct mgcp_trunk *trunk) -{ - int i; - - trunk->endpoints = _talloc_zero_array(trunk->cfg, - sizeof(struct mgcp_endpoint), - trunk->vty_number_endpoints, - "endpoints"); - if (!trunk->endpoints) - return -1; - - for (i = 0; i < trunk->vty_number_endpoints; ++i) { - INIT_LLIST_HEAD(&trunk->endpoints[i].conns); - trunk->endpoints[i].cfg = trunk->cfg; - trunk->endpoints[i].trunk = trunk; - - switch (trunk->trunk_type) { - case MGCP_TRUNK_VIRTUAL: - trunk->endpoints[i].type = &ep_typeset.rtp; - break; - case MGCP_TRUNK_E1: - /* FIXME: Implement E1 allocation */ - LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); - break; - default: - osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", - trunk->trunk_type, __FILE__, __LINE__); - } - } - - trunk->number_endpoints = trunk->vty_number_endpoints; - alloc_mgcp_rate_counters(trunk, trunk->cfg); - - return 0; -} - static int send_agent(struct mgcp_config *cfg, const char *buf, int len) { return write(cfg->gw_fd.bfd.fd, buf, len); @@ -1790,17 +1543,16 @@ /*! Reset a single endpoint by sending RSIP message to self. * (called by VTY) - * \param[in] endp trunk endpoint - * \param[in] endpoint number + * \param[in] endp to reset * \returns 0 on success, -1 on error */ -int mgcp_send_reset_ep(struct mgcp_endpoint *endp, int endpoint) +int mgcp_send_reset_ep(struct mgcp_endpoint *endp) { char buf[MGCP_ENDPOINT_MAXLEN + 128]; int len; int rc; len = snprintf(buf, sizeof(buf), - "RSIP 39 %x@%s MGCP 1.0\r\n", endpoint, endp->cfg->domain); + "RSIP 39 %s MGCP 1.0\r\n", endp->name); if (len < 0) return -1; diff --git a/src/libosmo-mgcp/mgcp_ratectr.c b/src/libosmo-mgcp/mgcp_ratectr.c new file mode 100644 index 0000000..302786f --- /dev/null +++ b/src/libosmo-mgcp/mgcp_ratectr.c @@ -0,0 +1,204 @@ +/* A Media Gateway Control Protocol Media Gateway: RFC 3435 */ +/* rate-counter implementation */ + +/* + * (C) 2009-2012 by Holger Hans Peter Freyther + * (C) 2009-2012 by On-Waves + * (C) 2017-2020 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include + +static const struct rate_ctr_desc mgcp_general_ctr_desc[] = { + /* rx_msgs = rx_msgs_retransmitted + rx_msgs_handled + rx_msgs_unhandled + err_rx_msg_parse + err_rx_no_endpoint */ + [MGCP_GENERAL_RX_MSGS_TOTAL] = { "mgcp:rx_msgs", "total number of MGCP messages received." }, + [MGCP_GENERAL_RX_MSGS_RETRANSMITTED] = { "mgcp:rx_msgs_retransmitted", "number of received retransmissions." }, + [MGCP_GENERAL_RX_MSGS_HANDLED] = { "mgcp:rx_msgs_handled", "number of handled MGCP messages." }, + [MGCP_GENERAL_RX_MSGS_UNHANDLED] = { "mgcp:rx_msgs_unhandled", "number of unhandled MGCP messages." }, + [MGCP_GENERAL_RX_FAIL_MSG_PARSE] = { "mgcp:err_rx_msg_parse", "error parsing MGCP message." }, + [MGCP_GENERAL_RX_FAIL_NO_ENDPOINT] = + { "mgcp:err_rx_no_endpoint", "can't find MGCP endpoint, probably we've used all allocated endpoints." }, +}; + +const static struct rate_ctr_group_desc mgcp_general_ctr_group_desc = { + .group_name_prefix = "mgcp", + .group_description = "mgcp general statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_general_ctr_desc), + .ctr_desc = mgcp_general_ctr_desc +}; + +static const struct rate_ctr_desc mgcp_crcx_ctr_desc[] = { + [MGCP_CRCX_SUCCESS] = { "crcx:success", "CRCX command processed successfully." }, + [MGCP_CRCX_FAIL_BAD_ACTION] = { "crcx:bad_action", "bad action in CRCX command." }, + [MGCP_CRCX_FAIL_UNHANDLED_PARAM] = { "crcx:unhandled_param", "unhandled parameter in CRCX command." }, + [MGCP_CRCX_FAIL_MISSING_CALLID] = { "crcx:missing_callid", "missing CallId in CRCX command." }, + [MGCP_CRCX_FAIL_INVALID_MODE] = { "crcx:invalid_mode", "invalid connection mode in CRCX command." }, + [MGCP_CRCX_FAIL_LIMIT_EXCEEDED] = { "crcx:limit_exceeded", "limit of concurrent connections was reached." }, + [MGCP_CRCX_FAIL_UNKNOWN_CALLID] = { "crcx:unkown_callid", "unknown CallId in CRCX command." }, + [MGCP_CRCX_FAIL_ALLOC_CONN] = { "crcx:alloc_conn_fail", "connection allocation failure." }, + [MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC] = + { "crcx:no_remote_conn_desc", "no opposite end specified for connection." }, + [MGCP_CRCX_FAIL_START_RTP] = { "crcx:start_rtp_failure", "failure to start RTP processing." }, + [MGCP_CRCX_FAIL_REJECTED_BY_POLICY] = { "crcx:conn_rejected", "connection rejected by policy." }, + [MGCP_CRCX_FAIL_NO_OSMUX] = { "crcx:no_osmux", "no osmux offered by peer." }, + [MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS] = { "crcx:conn_opt", "connection options invalid." }, + [MGCP_CRCX_FAIL_CODEC_NEGOTIATION] = { "crcx:codec_nego", "codec negotiation failure." }, + [MGCP_CRCX_FAIL_BIND_PORT] = { "crcx:bind_port", "port bind failure." }, +}; + +const static struct rate_ctr_group_desc mgcp_crcx_ctr_group_desc = { + .group_name_prefix = "crcx", + .group_description = "crxc statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_crcx_ctr_desc), + .ctr_desc = mgcp_crcx_ctr_desc +}; + +static const struct rate_ctr_desc mgcp_mdcx_ctr_desc[] = { + [MGCP_MDCX_SUCCESS] = { "mdcx:success", "MDCX command processed successfully." }, + [MGCP_MDCX_FAIL_WILDCARD] = { "mdcx:wildcard", "wildcard endpoint names in MDCX commands are unsupported." }, + [MGCP_MDCX_FAIL_NO_CONN] = { "mdcx:no_conn", "endpoint specified in MDCX command has no active connections." }, + [MGCP_MDCX_FAIL_INVALID_CALLID] = { "mdcx:callid", "invalid CallId specified in MDCX command." }, + [MGCP_MDCX_FAIL_INVALID_CONNID] = { "mdcx:connid", "invalid connection ID specified in MDCX command." }, + [MGCP_MDCX_FAIL_UNHANDLED_PARAM] = { "crcx:unhandled_param", "unhandled parameter in MDCX command." }, + [MGCP_MDCX_FAIL_NO_CONNID] = { "mdcx:no_connid", "no connection ID specified in MDCX command." }, + [MGCP_MDCX_FAIL_CONN_NOT_FOUND] = + { "mdcx:conn_not_found", "connection specified in MDCX command does not exist." }, + [MGCP_MDCX_FAIL_INVALID_MODE] = { "mdcx:invalid_mode", "invalid connection mode in MDCX command." }, + [MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS] = { "mdcx:conn_opt", "connection options invalid." }, + [MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC] = + { "mdcx:no_remote_conn_desc", "no opposite end specified for connection." }, + [MGCP_MDCX_FAIL_START_RTP] = { "mdcx:start_rtp_failure", "failure to start RTP processing." }, + [MGCP_MDCX_FAIL_REJECTED_BY_POLICY] = { "mdcx:conn_rejected", "connection rejected by policy." }, + [MGCP_MDCX_DEFERRED_BY_POLICY] = { "mdcx:conn_deferred", "connection deferred by policy." }, +}; + +const static struct rate_ctr_group_desc mgcp_mdcx_ctr_group_desc = { + .group_name_prefix = "mdcx", + .group_description = "mdcx statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_mdcx_ctr_desc), + .ctr_desc = mgcp_mdcx_ctr_desc +}; + +static const struct rate_ctr_desc mgcp_dlcx_ctr_desc[] = { + [MGCP_DLCX_SUCCESS] = { "dlcx:success", "DLCX command processed successfully." }, + [MGCP_DLCX_FAIL_WILDCARD] = { "dlcx:wildcard", "wildcard names in DLCX commands are unsupported." }, + [MGCP_DLCX_FAIL_NO_CONN] = { "dlcx:no_conn", "endpoint specified in DLCX command has no active connections." }, + [MGCP_DLCX_FAIL_INVALID_CALLID] = + { "dlcx:callid", "CallId specified in DLCX command mismatches endpoint's CallId ." }, + [MGCP_DLCX_FAIL_INVALID_CONNID] = + { "dlcx:connid", "connection ID specified in DLCX command does not exist on endpoint." }, + [MGCP_DLCX_FAIL_UNHANDLED_PARAM] = { "dlcx:unhandled_param", "unhandled parameter in DLCX command." }, + [MGCP_DLCX_FAIL_REJECTED_BY_POLICY] = { "dlcx:rejected", "connection deletion rejected by policy." }, + [MGCP_DLCX_DEFERRED_BY_POLICY] = { "dlcx:deferred", "connection deletion deferred by policy." }, +}; + +const static struct rate_ctr_group_desc mgcp_dlcx_ctr_group_desc = { + .group_name_prefix = "dlcx", + .group_description = "dlcx statistics", + .class_id = OSMO_STATS_CLASS_GLOBAL, + .num_ctr = ARRAY_SIZE(mgcp_dlcx_ctr_desc), + .ctr_desc = mgcp_dlcx_ctr_desc +}; + +const static struct rate_ctr_group_desc all_rtp_conn_rate_ctr_group_desc = { + .group_name_prefix = "all_rtp_conn", + .group_description = "aggregated statistics for all rtp connections", + .class_id = 1, + .num_ctr = ARRAY_SIZE(all_rtp_conn_rate_ctr_desc), + .ctr_desc = all_rtp_conn_rate_ctr_desc +}; + +static int free_rate_counter_group(struct rate_ctr_group *rate_ctr_group) +{ + rate_ctr_group_free(rate_ctr_group); + return 0; +} + +/*! allocate global rate counters into a given rate counter struct + * (called once at startup) + * \param[in] ctx talloc context. + * \param[out] ratectr struct that holds the counters + * \returns 0 on success, -EINVAL on failure */ +int mgcp_ratectr_global_alloc(void *ctx, struct mgcp_ratectr_global *ratectr) +{ + /* FIXME: Each new rate counter group requires a unique index. At the + * moment we generate an index using a counter, but perhaps there is + * a better way of assigning indices? */ + static unsigned int general_rate_ctr_index = 0; + + if (ratectr->mgcp_general_ctr_group == NULL) { + ratectr->mgcp_general_ctr_group = + rate_ctr_group_alloc(ctx, &mgcp_general_ctr_group_desc, general_rate_ctr_index); + if (!ratectr->mgcp_general_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_general_ctr_group, free_rate_counter_group); + general_rate_ctr_index++; + } + return 0; +} + +/*! allocate trunk specific rate counters into a given rate counter struct + * (called once on trunk initialization) + * \param[in] ctx talloc context. + * \param[out] ratectr struct that holds the counters + * \returns 0 on success, -EINVAL on failure */ +int mgcp_ratectr_trunk_alloc(void *ctx, struct mgcp_ratectr_trunk *ratectr) +{ + /* FIXME: see comment in mgcp_ratectr_global_alloc() */ + static unsigned int crcx_rate_ctr_index = 0; + static unsigned int mdcx_rate_ctr_index = 0; + static unsigned int dlcx_rate_ctr_index = 0; + static unsigned int all_rtp_conn_rate_ctr_index = 0; + + if (ratectr->mgcp_crcx_ctr_group == NULL) { + ratectr->mgcp_crcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index); + if (!ratectr->mgcp_crcx_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_crcx_ctr_group, free_rate_counter_group); + crcx_rate_ctr_index++; + } + if (ratectr->mgcp_mdcx_ctr_group == NULL) { + ratectr->mgcp_mdcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index); + if (!ratectr->mgcp_mdcx_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_mdcx_ctr_group, free_rate_counter_group); + mdcx_rate_ctr_index++; + } + if (ratectr->mgcp_dlcx_ctr_group == NULL) { + ratectr->mgcp_dlcx_ctr_group = rate_ctr_group_alloc(ctx, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index); + if (!ratectr->mgcp_dlcx_ctr_group) + return -EINVAL; + talloc_set_destructor(ratectr->mgcp_dlcx_ctr_group, free_rate_counter_group); + dlcx_rate_ctr_index++; + } + if (ratectr->all_rtp_conn_stats == NULL) { + ratectr->all_rtp_conn_stats = rate_ctr_group_alloc(ctx, &all_rtp_conn_rate_ctr_group_desc, + all_rtp_conn_rate_ctr_index); + if (!ratectr->all_rtp_conn_stats) + return -EINVAL; + talloc_set_destructor(ratectr->all_rtp_conn_stats, free_rate_counter_group); + all_rtp_conn_rate_ctr_index++; + } + return 0; +} diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 428bde6..f80ebb8 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -358,10 +359,11 @@ break; default: if (p->endp) + /* TODO: Check spec: We used the bare endpoint number before, + * now we use the endpoint name as a whole? Is this allowed? */ LOGP(DLMGCP, LOGL_NOTICE, - "Unhandled SDP option: '%c'/%d on 0x%x\n", - line[0], line[0], - ENDPOINT_NUMBER(p->endp)); + "Unhandled SDP option: '%c'/%d on %s\n", + line[0], line[0], endp->name); else LOGP(DLMGCP, LOGL_NOTICE, "Unhandled SDP option: '%c'/%d\n", @@ -381,7 +383,7 @@ codec_param = param_by_pt(codecs[i].payload_type, fmtp_params, fmtp_used); rc = mgcp_codec_add(conn, codecs[i].payload_type, codecs[i].map_line, codec_param); if (rc < 0) - LOGP(DLMGCP, LOGL_NOTICE, "endpoint:0x%x, failed to add codec\n", ENDPOINT_NUMBER(p->endp)); + LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "failed to add codec\n"); } talloc_free(tmp_ctx); diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c new file mode 100644 index 0000000..96c5318 --- /dev/null +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -0,0 +1,183 @@ +/* Trunk handling */ + +/* + * (C) 2009-2012 by Holger Hans Peter Freyther + * (C) 2009-2012 by On-Waves + * (C) 2017-2020 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +/*! allocate trunk and add it (if required) to the trunk list + * (called once at startup by VTY) + * \param[in] cfg mgcp configuration + * \param[in] nr trunk number + * \param[in] ttype trunk type + * \returns pointer to allocated trunk, NULL on failure */ +struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) +{ + struct mgcp_trunk *trunk; + + trunk = talloc_zero(cfg, struct mgcp_trunk); + if (!trunk) { + LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate.\n"); + return NULL; + } + + trunk->cfg = cfg; + trunk->trunk_type = ttype; + trunk->trunk_nr = nr; + + trunk->audio_send_ptime = 1; + trunk->audio_send_name = 1; + trunk->vty_number_endpoints = 33; + trunk->omit_rtcp = 0; + + mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); + + /* Note: Trunk Nr.0 is reserved as "virtual trunk", + * it is not stored using a separate pointer and + * not in the trunk list. */ + if (nr > 0) + llist_add_tail(&trunk->entry, &cfg->trunks); + + mgcp_ratectr_trunk_alloc(cfg, &trunk->ratectr); + + return trunk; +} + +/*! allocate endpoints and set default values. + * (called once at startup by VTY) + * \param[in] trunk trunk configuration + * \returns 0 on success, -1 on failure */ +int mgcp_trunk_alloc_endpts(struct mgcp_trunk *trunk) +{ + int i; + char ep_name_buf[MGCP_ENDPOINT_MAXLEN]; + struct mgcp_endpoint *endp; + + /* Make sure the amount of requested endpoints does not execeed + * sane limits. The VTY already limits the possible amount, + * however miss-initalation of the struct or memory corruption + * could still lead to an excessive allocation of endpoints, so + * better stop early if that is the case. */ + OSMO_ASSERT(trunk->vty_number_endpoints < 65534); + + /* This function is called once on startup by the VTY to allocate the + * endpoints. The number of endpoints must not change througout the + * runtime of the MGW */ + OSMO_ASSERT(trunk->number_endpoints == 0); + OSMO_ASSERT(trunk->endpoints == NULL); + + /* allocate pointer array for the endpoints */ + trunk->endpoints = _talloc_zero_array(trunk->cfg, + sizeof(struct mgcp_endpoint *), trunk->vty_number_endpoints, "endpoints"); + if (!trunk->endpoints) + return -1; + + /* create endpoints */ + for (i = 0; i < trunk->vty_number_endpoints; ++i) { + switch (trunk->trunk_type) { + case MGCP_TRUNK_VIRTUAL: + snprintf(ep_name_buf, sizeof(ep_name_buf), "%s%x@%s", MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, i, + trunk->cfg->domain); + break; + case MGCP_TRUNK_E1: + /* FIXME: E1 trunk implementation is work in progress, this endpoint + * name is incomplete (subslots) */ + snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x", MGCP_ENDPOINT_PREFIX_E1_TRUNK, i); + break; + default: + osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", + trunk->trunk_type, __FILE__, __LINE__); + } + + endp = mgcp_endp_alloc(trunk, ep_name_buf); + if (!endp) { + talloc_free(trunk->endpoints); + return -1; + } + trunk->endpoints[i] = endp; + } + + /* make the endpoints we just created available to the MGW code */ + trunk->number_endpoints = trunk->vty_number_endpoints; + + return 0; +} + +/*! get trunk configuration by trunk number (index). + * \param[in] cfg mgcp configuration + * \param[in] index trunk number + * \returns pointer to trunk configuration, NULL on error */ +struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, int index) +{ + struct mgcp_trunk *trunk; + + llist_for_each_entry(trunk, &cfg->trunks, entry) + if (trunk->trunk_nr == index) + return trunk; + + return NULL; +} + +/*! Find a trunk by the trunk prefix in the endpoint name. + * \param[in] epname endpoint name with trunk prefix to look up. + * \param[in] cfg that contains the trunks where the endpoint is located. + * \returns trunk or NULL if trunk was not found. */ +struct mgcp_trunk *mgcp_trunk_by_name(const struct mgcp_config *cfg, const char *epname) +{ + size_t prefix_len; + char epname_lc[MGCP_ENDPOINT_MAXLEN]; + + osmo_str_tolower_buf(epname_lc, sizeof(epname_lc), epname); + epname = epname_lc; + + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; + if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, prefix_len) == 0) { + return cfg->virt_trunk; + } + + /* E1 trunks are not implemented yet, so we deny any request for an + * e1 trunk for now. */ + prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; + if (strncmp(epname, MGCP_ENDPOINT_PREFIX_E1_TRUNK, prefix_len) == 0) { + LOGP(DLMGCP, LOGL_ERROR, + "endpoint name \"%s\" suggests an E1 trunk, but E1 trunks are not implemented in this version of osmo-mgw!\n", epname); + return NULL; + } + + /* Earlier versions of osmo-mgw were accepting endpoint names + * without trunk prefix. This is normally not allowed, each MGCP + * request should supply an endpoint name with trunk prefix. + * However in order to stay compatible with old versions of + * osmo-bsc and osmo-msc we still accept endpoint names without + * trunk prefix and just assume that the virtual trunk should + * be selected. There is even a TTCN3 test for this, see also: + * MGCP_Test.TC_crcx_noprefix */ + if ((epname[0] >= '0' && epname[0] <= '9') || (epname[0] >= 'a' && epname[0] <= 'f')) { + LOGP(DLMGCP, LOGL_ERROR, "missing trunk prefix in endpoint name \"%s\", assuming trunk \"%s\"!\n", epname, + MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK); + return cfg->virt_trunk; + } + + LOGP(DLMGCP, LOGL_ERROR, "unable to find trunk for endpoint name \"%s\"!\n", epname); + return NULL; +} diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 7278c1c..54b139a 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -49,7 +50,7 @@ if (nr == 0) trunk = cfg->virt_trunk; else - trunk = mgcp_trunk_num(cfg, nr); + trunk = mgcp_trunk_by_num(cfg, nr); return trunk; } @@ -208,15 +209,13 @@ end->force_output_ptime, VTY_NEWLINE); } -static void dump_endpoint(struct vty *vty, struct mgcp_endpoint *endp, int epidx, +static void dump_endpoint(struct vty *vty, struct mgcp_endpoint *endp, int trunk_nr, enum mgcp_trunk_type trunk_type, int show_stats) { struct mgcp_conn *conn; - vty_out(vty, "%s trunk %d endpoint %s%.2x:%s", - trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", trunk_nr, - trunk_type == MGCP_TRUNK_VIRTUAL ? MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK : "", - epidx, VTY_NEWLINE); + vty_out(vty, "%s trunk %d endpoint %s:%s", + trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", trunk_nr, endp->name, VTY_NEWLINE); if (llist_empty(&endp->conns)) { vty_out(vty, " No active connections%s", VTY_NEWLINE); @@ -244,50 +243,84 @@ } } -static void dump_trunk(struct vty *vty, struct mgcp_trunk *cfg, int show_stats) +static void dump_ratectr_global(struct vty *vty, struct mgcp_ratectr_global *ratectr) +{ + vty_out(vty, "%s", VTY_NEWLINE); + vty_out(vty, "Rate counters (global):%s", VTY_NEWLINE); + + if (ratectr->mgcp_general_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_general_ctr_group->desc-> + group_description, VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_general_ctr_group); + } +} + +static void dump_ratectr_trunk(struct vty *vty, struct mgcp_ratectr_trunk *ratectr) +{ + vty_out(vty, "%s", VTY_NEWLINE); + vty_out(vty, "Rate counters (trunk):%s", VTY_NEWLINE); + + if (ratectr->mgcp_crcx_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_crcx_ctr_group->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_crcx_ctr_group); + } + if (ratectr->mgcp_dlcx_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_dlcx_ctr_group->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_dlcx_ctr_group); + } + if (ratectr->mgcp_mdcx_ctr_group) { + vty_out(vty, " %s:%s", + ratectr->mgcp_mdcx_ctr_group->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->mgcp_mdcx_ctr_group); + } + if (ratectr->all_rtp_conn_stats) { + vty_out(vty, " %s:%s", + ratectr->all_rtp_conn_stats->desc->group_description, + VTY_NEWLINE); + vty_out_rate_ctr_group_fmt(vty, + " %25n: %10c (%S/s %M/m %H/h %D/d) %d", + ratectr->all_rtp_conn_stats); + } +} + + +static void dump_trunk(struct vty *vty, struct mgcp_trunk *trunk, int show_stats) { int i; vty_out(vty, "%s trunk %d with %d endpoints:%s", - cfg->trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", - cfg->trunk_nr, cfg->number_endpoints - 1, VTY_NEWLINE); + trunk->trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", + trunk->trunk_nr, trunk->number_endpoints - 1, VTY_NEWLINE); - if (!cfg->endpoints) { + if (!trunk->endpoints) { vty_out(vty, "No endpoints allocated yet.%s", VTY_NEWLINE); return; } - for (i = 0; i < cfg->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &cfg->endpoints[i]; - dump_endpoint(vty, endp, i, cfg->trunk_nr, cfg->trunk_type, show_stats); - if (i < cfg->number_endpoints - 1) + for (i = 0; i < trunk->number_endpoints; ++i) { + struct mgcp_endpoint *endp = trunk->endpoints[i]; + dump_endpoint(vty, endp, trunk->trunk_nr, trunk->trunk_type, + show_stats); + if (i < trunk->number_endpoints - 1) vty_out(vty, "%s", VTY_NEWLINE); } - if (show_stats) { - vty_out(vty, "%s", VTY_NEWLINE); - vty_out(vty, "Rate counters:%s", VTY_NEWLINE); - } - if (show_stats && cfg->mgcp_general_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_general_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_general_ctr_group); - } - if (show_stats && cfg->mgcp_crcx_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_crcx_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_crcx_ctr_group); - } - if (show_stats && cfg->mgcp_dlcx_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_dlcx_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_dlcx_ctr_group); - } - if (show_stats && cfg->mgcp_mdcx_ctr_group) { - vty_out(vty, " %s:%s", cfg->mgcp_mdcx_ctr_group->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->mgcp_mdcx_ctr_group); - } - if (show_stats && cfg->all_rtp_conn_stats) { - vty_out(vty, " %s:%s", cfg->all_rtp_conn_stats->desc->group_description, VTY_NEWLINE); - vty_out_rate_ctr_group_fmt(vty, " %25n: %10c (%S/s %M/m %H/h %D/d) %d", cfg->all_rtp_conn_stats); - } + if (show_stats) + dump_ratectr_trunk(vty, &trunk->ratectr); } #define SHOW_MGCP_STR "Display information about the MGCP Media Gateway\n" @@ -304,44 +337,41 @@ dump_trunk(vty, g_cfg->virt_trunk, show_stats); llist_for_each_entry(trunk, &g_cfg->trunks, entry) - dump_trunk(vty, trunk, show_stats); + dump_trunk(vty, trunk, show_stats); if (g_cfg->osmux) vty_out(vty, "Osmux used CID: %d%s", osmux_cid_pool_count_used(), VTY_NEWLINE); + if (show_stats) + dump_ratectr_global(vty, &g_cfg->ratectr); + return CMD_SUCCESS; } static void dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk *trunk, const char *epname) { - const size_t virt_prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; - unsigned long epidx; - char *endp; - int i; + struct mgcp_endpoint *endp; - if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, virt_prefix_len) == 0) - epname += virt_prefix_len; - errno = 0; - epidx = strtoul(epname, &endp, 16); - if (epname[0] == '\0' || *endp != '\0') { - vty_out(vty, "endpoint name '%s' is not a hex number%s", epname, VTY_NEWLINE); - return; - } - if ((errno == ERANGE && epidx == ULONG_MAX) /* parsed value out of range */ - || epidx >= trunk->number_endpoints) { - vty_out(vty, "endpoint %.2lx not configured on trunk %d%s", epidx, trunk->trunk_nr, VTY_NEWLINE); - return; - } - - for (i = 0; i < trunk->number_endpoints; ++i) { - struct mgcp_endpoint *endp = &trunk->endpoints[i]; - if (i == epidx) { - dump_endpoint(vty, endp, i, trunk->trunk_nr, trunk->trunk_type, true); - break; + if (trunk) { + /* If a trunk is given, search on that specific trunk only */ + endp = mgcp_endp_by_name_trunk(NULL, epname, trunk); + if (!endp) { + vty_out(vty, "endpoint %s not configured on trunk %d%s", epname, trunk->trunk_nr, VTY_NEWLINE); + return; + } + } else { + /* If no trunk is given, search on all possible trunks */ + endp = mgcp_endp_by_name(NULL, epname, g_cfg); + if (!endp) { + vty_out(vty, "endpoint %s not configured%s", epname, VTY_NEWLINE); + return; } } + + trunk = endp->trunk; + dump_endpoint(vty, endp, trunk->trunk_nr, trunk->trunk_type, true); } DEFUN(show_mcgp_endpoint, show_mgcp_endpoint_cmd, @@ -350,12 +380,7 @@ SHOW_MGCP_STR "Display information about an endpoint\n" "The name of the endpoint\n") { - struct mgcp_trunk *trunk; - - dump_mgcp_endpoint(vty, g_cfg->virt_trunk, argv[0]); - llist_for_each_entry(trunk, &g_cfg->trunks, entry) - dump_mgcp_endpoint(vty, trunk, argv[0]); - + dump_mgcp_endpoint(vty, NULL, argv[0]); return CMD_SUCCESS; } @@ -810,7 +835,7 @@ struct mgcp_trunk *trunk; int index = atoi(argv[0]); - trunk = mgcp_trunk_num(g_cfg, index); + trunk = mgcp_trunk_by_num(g_cfg, index); if (!trunk) { trunk = mgcp_trunk_alloc(g_cfg, MGCP_TRUNK_E1, index); if (!trunk) { @@ -1138,7 +1163,7 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; + endp = trunk->endpoints[endp_no]; int loop = atoi(argv[2]); llist_for_each_entry(conn, &endp->conns, entry) { if (conn->type == MGCP_CONN_TYPE_RTP) @@ -1197,7 +1222,7 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; + endp = trunk->endpoints[endp_no]; conn_id = argv[2]; conn = mgcp_conn_get_rtp(endp, conn_id); @@ -1250,7 +1275,7 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; + endp = trunk->endpoints[endp_no]; mgcp_endp_release(endp); return CMD_SUCCESS; } @@ -1283,8 +1308,8 @@ return CMD_WARNING; } - endp = &trunk->endpoints[endp_no]; - rc = mgcp_send_reset_ep(endp, ENDPOINT_NUMBER(endp)); + endp = trunk->endpoints[endp_no]; + rc = mgcp_send_reset_ep(endp); if (rc < 0) { vty_out(vty, "Error %d sending reset.%s", rc, VTY_NEWLINE); return CMD_WARNING; @@ -1521,7 +1546,7 @@ return -1; } - if (mgcp_endpoints_allocate(g_cfg->virt_trunk) != 0) { + if (mgcp_trunk_alloc_endpts(g_cfg->virt_trunk) != 0) { LOGP(DLMGCP, LOGL_ERROR, "Failed to initialize the virtual trunk (%d endpoints)\n", g_cfg->virt_trunk->number_endpoints); @@ -1529,7 +1554,7 @@ } llist_for_each_entry(trunk, &g_cfg->trunks, entry) { - if (mgcp_endpoints_allocate(trunk) != 0) { + if (mgcp_trunk_alloc_endpts(trunk) != 0) { LOGP(DLMGCP, LOGL_ERROR, "Failed to initialize trunk %d (%d endpoints)\n", trunk->trunk_nr, trunk->number_endpoints); diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index 22f2ab8..99e2499 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -203,7 +204,7 @@ /* Walk over all endpoints and trigger a release, this will release all * endpoints, possible open connections are forcefully dropped */ for (i = 1; i < reset_trunk->number_endpoints; ++i) - mgcp_endp_release(&reset_trunk->endpoints[i]); + mgcp_endp_release(reset_trunk->endpoints[i]); } return 0; diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index fa38296..ed0fda0 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -70,7 +71,7 @@ } #define AUEP1 "AUEP 158663169 ds/e1-1/2 at mgw MGCP 1.0\r\n" -#define AUEP1_RET "200 158663169 OK\r\n" +#define AUEP1_RET "500 158663169 FAIL\r\n" #define AUEP2 "AUEP 18983213 ds/e1-2/1 at mgw MGCP 1.0\r\n" #define AUEP2_RET "500 18983213 FAIL\r\n" #define EMPTY "\r\n" @@ -81,7 +82,7 @@ #define MDCX_WRONG_EP "MDCX 18983213 ds/e1-3/1 at mgw MGCP 1.0\r\n" #define MDCX_ERR_RET "500 18983213 FAIL\r\n" #define MDCX_UNALLOCATED "MDCX 18983214 ds/e1-1/2 at mgw MGCP 1.0\r\n" -#define MDCX_RET "400 18983214 FAIL\r\n" +#define MDCX_RET "500 18983214 FAIL\r\n" #define MDCX3 \ "MDCX 18983215 1 at mgw MGCP 1.0\r\n" \ @@ -593,12 +594,22 @@ static int last_endpoint = -1; -static int mgcp_test_policy_cb(struct mgcp_trunk *cfg, int endpoint, - int state, const char *transactio_id) +static int mgcp_test_policy_cb(struct mgcp_endpoint *endp, + int state, const char *transaction_id) { - fprintf(stderr, "Policy CB got state %d on endpoint 0x%x\n", - state, endpoint); - last_endpoint = endpoint; + unsigned int i; + struct mgcp_trunk *trunk; + + fprintf(stderr, "Policy CB got state %d on endpoint %s\n", + state, endp->name); + + trunk = endp->trunk; + last_endpoint = -1; + for (i = 0; i < trunk->vty_number_endpoints; i++) { + if (strcmp(endp->name, trunk->endpoints[i]->name) == 0) + last_endpoint = i; + } + return MGCP_POLICY_CONT; } @@ -645,7 +656,7 @@ { int i; for (i = 1; i < trunk->number_endpoints; i++) - mgcp_endp_release(&trunk->endpoints[i]); + mgcp_endp_release(trunk->endpoints[i]); } #define CONN_UNMODIFIED (0x1000) @@ -758,13 +769,13 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); cfg->policy_cb = mgcp_test_policy_cb; memset(last_conn_id, 0, sizeof(last_conn_id)); trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); for (i = 0; i < ARRAY_SIZE(tests); i++) { const struct mgcp_test *t = &tests[i]; @@ -810,7 +821,7 @@ printf("Dummy packets: %d\n", dummy_packets); if (last_endpoint != -1) { - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, "1"); if (conn) { @@ -866,7 +877,7 @@ /* Check detected payload type */ if (conn && t->ptype != PTYPE_IGNORE) { OSMO_ASSERT(last_endpoint != -1); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; fprintf(stderr, "endpoint 0x%x: " "payload type %d (expected %d)\n", @@ -898,12 +909,12 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); memset(last_conn_id, 0, sizeof(last_conn_id)); trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); for (i = 0; i < ARRAY_SIZE(retransmit); i++) { const struct mgcp_test *t = &retransmit[i]; @@ -966,10 +977,10 @@ cfg->rqnt_cb = rqnt_cb; cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); inp = create_msg(CRCX, NULL); msg = mgcp_handle_message(cfg, inp); @@ -1035,6 +1046,7 @@ { int i; struct mgcp_endpoint endp; + struct mgcp_endpoint *endpoints[1]; struct mgcp_config cfg = {0}; struct mgcp_trunk trunk; @@ -1046,7 +1058,8 @@ endp.cfg = &cfg; endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; - trunk.endpoints = &endp; + trunk.endpoints = endpoints; + trunk.endpoints[0] = &endp; endp.trunk = &trunk; INIT_LLIST_HEAD(&endp.conns); @@ -1264,6 +1277,7 @@ struct mgcp_trunk trunk; struct mgcp_endpoint endp; + struct mgcp_endpoint *endpoints[1]; struct mgcp_config cfg = {0}; struct mgcp_rtp_state state; struct mgcp_rtp_end *rtp; @@ -1296,7 +1310,8 @@ endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; - trunk.endpoints = &endp; + trunk.endpoints = endpoints; + trunk.endpoints[0] = &endp; trunk.force_constant_ssrc = patch_ssrc; trunk.force_aligned_timing = patch_ts; @@ -1372,11 +1387,11 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); cfg->policy_cb = mgcp_test_policy_cb; trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); /* Allocate endpoint 1 at mgw with two codecs */ last_endpoint = -1; @@ -1388,7 +1403,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 1); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1403,7 +1418,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 2); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1423,7 +1438,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 3); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 0); @@ -1438,7 +1453,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 4); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1456,7 +1471,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 3); @@ -1467,7 +1482,7 @@ msgb_free(inp); msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 3); @@ -1497,7 +1512,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = &cfg->virt_trunk->endpoints[last_endpoint]; + endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 0); @@ -1518,9 +1533,9 @@ cfg = mgcp_config_alloc(); cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); - endp = &cfg->virt_trunk->endpoints[1]; + endp = cfg->virt_trunk->endpoints[1]; _conn = mgcp_conn_alloc(NULL, endp, MGCP_CONN_TYPE_RTP, "test-connection"); @@ -1567,12 +1582,12 @@ cfg->virt_trunk->vty_number_endpoints = 64; cfg->virt_trunk->audio_send_name = 0; - mgcp_endpoints_allocate(cfg->virt_trunk); + mgcp_trunk_alloc_endpts(cfg->virt_trunk); cfg->policy_cb = mgcp_test_policy_cb; trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); - mgcp_endpoints_allocate(trunk2); + mgcp_trunk_alloc_endpts(trunk2); inp = create_msg(CRCX, NULL); msg = mgcp_handle_message(cfg, inp); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia8cf4d6caf05a4e13f1f507dc68cbabb7e6239aa Gerrit-Change-Number: 18644 Gerrit-PatchSet: 7 Gerrit-Owner: dexter 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 Mon Jun 15 10:30:53 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 10:30:53 +0000 Subject: Change in osmo-mgw[master]: mgcp_trunk: remove audio_name and audio_payload In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18645 ) Change subject: mgcp_trunk: remove audio_name and audio_payload ...................................................................... mgcp_trunk: remove audio_name and audio_payload get rid of deprecated trunk parameters which seem to be leftovers from the old osmo-bsc_mgcp implementation. This is in particular audio_name and audio_payload in struct mgcp_trunk_config which allowed the user to "hardcode" an andio name and payload type via VTY configuration The removal of the struct members above also require a change to mgcp_codec.c. The code that is is never actively used and even causes wrong behavior when activated (set the no-transcoding flag in VTY). Since the code is removed also the unit tests also require to be changed to match the new behavior. Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Related: OS#2659 --- M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 4 files changed, 9 insertions(+), 53 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved pespin: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h index 436e39a..c230e9f 100644 --- a/include/osmocom/mgcp/mgcp_trunk.h +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -9,8 +9,6 @@ int trunk_type; char *audio_fmtp_extra; - char *audio_name; - int audio_payload; int audio_send_ptime; int audio_send_name; int audio_loop; diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index c251317..9ac5fbb 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -280,36 +280,16 @@ * Helper function for mgcp_codec_decide() */ static bool is_codec_compatible(const struct mgcp_endpoint *endp, const struct mgcp_rtp_codec *codec) { - char codec_name[64]; - /* A codec name must be set, if not, this might mean that the codec * (payload type) that was assigned is unknown to us so we must stop * here. */ if (!codec->subtype_name) return false; - /* We now extract the codec_name (letters before the /, e.g. "GSM" - * from the audio name that is stored in the trunk configuration. - * We do not compare to the full audio_name because we expect that - * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the - * audio name of the codec is set to "GSM" */ - if (sscanf(endp->trunk->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) - return false; + /* FIXME: implement meaningful checks to make sure that the given codec + * is compatible with the given endpoint */ - /* Finally we check if the subtype_name we have generated from the - * audio_name in the trunc struct patches the codec_name of the - * given codec */ - if (strcasecmp(codec_name, codec->subtype_name) == 0) - return true; - - /* FIXME: It is questinable that the method to pick a compatible - * codec can work properly. Since this useses trunk->audio_name, as - * a reference, which is set to "AMR/8000" permanently. - * trunk->audio_name must be updated by the first connection that - * has been made on an endpoint, so that the second connection - * can make a meaningful decision here */ - - return false; + return true; } /*! Decide for one suitable codec diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 54b139a..4cfe3b5 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -114,12 +114,6 @@ VTY_NEWLINE); } else vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); - if (trunk->audio_payload != -1) - vty_out(vty, " sdp audio-payload number %d%s", - trunk->audio_payload, VTY_NEWLINE); - if (trunk->audio_name) - vty_out(vty, " sdp audio-payload name %s%s", - trunk->audio_name, VTY_NEWLINE); if (trunk->audio_fmtp_extra) vty_out(vty, " sdp audio fmtp-extra %s%s", trunk->audio_fmtp_extra, VTY_NEWLINE); @@ -611,13 +605,11 @@ #define SDP_STR "SDP File related options\n" #define AUDIO_STR "Audio payload options\n" -DEFUN(cfg_mgcp_sdp_payload_number, +DEFUN_DEPRECATED(cfg_mgcp_sdp_payload_number, cfg_mgcp_sdp_payload_number_cmd, "sdp audio-payload number <0-255>", SDP_STR AUDIO_STR "Number\n" "Payload number\n") { - unsigned int payload = atoi(argv[0]); - g_cfg->virt_trunk->audio_payload = payload; return CMD_SUCCESS; } @@ -626,12 +618,11 @@ "sdp audio payload number <0-255>", SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload number\n") -DEFUN(cfg_mgcp_sdp_payload_name, +DEFUN_DEPRECATED(cfg_mgcp_sdp_payload_name, cfg_mgcp_sdp_payload_name_cmd, "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Name\n" "Payload name\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->virt_trunk->audio_name, argv[0]); return CMD_SUCCESS; } @@ -856,10 +847,6 @@ llist_for_each_entry(trunk, &g_cfg->trunks, entry) { vty_out(vty, " trunk %d%s", trunk->trunk_nr, VTY_NEWLINE); - vty_out(vty, " sdp audio-payload number %d%s", - trunk->audio_payload, VTY_NEWLINE); - vty_out(vty, " sdp audio-payload name %s%s", - trunk->audio_name, VTY_NEWLINE); vty_out(vty, " %ssdp audio-payload send-ptime%s", trunk->audio_send_ptime ? "" : "no ", VTY_NEWLINE); vty_out(vty, " %ssdp audio-payload send-name%s", @@ -920,15 +907,11 @@ return CMD_SUCCESS; } -DEFUN(cfg_trunk_payload_number, +DEFUN_DEPRECATED(cfg_trunk_payload_number, cfg_trunk_payload_number_cmd, "sdp audio-payload number <0-255>", SDP_STR AUDIO_STR "Number\n" "Payload Number\n") { - struct mgcp_trunk *trunk = vty->index; - unsigned int payload = atoi(argv[0]); - - trunk->audio_payload = payload; return CMD_SUCCESS; } @@ -936,14 +919,11 @@ "sdp audio payload number <0-255>", SDP_STR AUDIO_STR AUDIO_STR "Number\n" "Payload Number\n") -DEFUN(cfg_trunk_payload_name, +DEFUN_DEPRECATED(cfg_trunk_payload_name, cfg_trunk_payload_name_cmd, "sdp audio-payload name NAME", SDP_STR AUDIO_STR "Payload\n" "Payload Name\n") { - struct mgcp_trunk *trunk = vty->index; - - osmo_talloc_replace_string(g_cfg, &trunk->audio_name, argv[0]); return CMD_SUCCESS; } diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index ed0fda0..d0da18b 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -1458,11 +1458,9 @@ OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); - /* Allocate 5 at mgw at select GSM.. */ + /* Allocate 5 at mgw and let osmo-mgw pick a codec from the list */ last_endpoint = -1; inp = create_msg(CRCX_MULT_GSM_EXACT, NULL); - talloc_free(cfg->virt_trunk->audio_name); - cfg->virt_trunk->audio_name = "GSM/8000"; cfg->virt_trunk->no_audio_transcoding = 1; resp = mgcp_handle_message(cfg, inp); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, @@ -1474,7 +1472,7 @@ endp = cfg->virt_trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec->payload_type == 3); + OSMO_ASSERT(conn->end.codec->payload_type == 0); inp = create_msg(MDCX_NAT_DUMMY, conn_id); last_endpoint = -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia050ec3cd34b410dfe089c41b977ae3d5aed7354 Gerrit-Change-Number: 18645 Gerrit-PatchSet: 7 Gerrit-Owner: dexter 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 Mon Jun 15 10:41:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 10:41:45 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: introduce and use struct trx_dl_burst_req In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18821 ) Change subject: osmo-bts-trx: introduce and use struct trx_dl_burst_req ...................................................................... Patch Set 1: > osmo-trx does use the value, see Transceiver::addRadioVector() Great, I'll do this in a follow-up change. Thanks! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If3014e69746559963569b77561dbf7b163c68ffa Gerrit-Change-Number: 18821 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 10:41: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 Mon Jun 15 10:42:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 10:42:04 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: use osmo_store32be() in trx_if_send_burst() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18819 ) Change subject: osmo-bts-trx: use osmo_store32be() in trx_if_send_burst() ...................................................................... osmo-bts-trx: use osmo_store32be() in trx_if_send_burst() Change-Id: I5000fe61b29d796b9229f921bffcb392b1c6d189 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 4 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 61f57b9..ccbcd2f 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1136,10 +1136,7 @@ } buf[0] = ((hdr_ver & 0x0f) << 4) | tn; - buf[1] = (fn >> 24) & 0xff; - buf[2] = (fn >> 16) & 0xff; - buf[3] = (fn >> 8) & 0xff; - buf[4] = (fn >> 0) & 0xff; + osmo_store32be(fn, buf + 1); buf[5] = pwr; /* copy ubits {0,1} */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5000fe61b29d796b9229f921bffcb392b1c6d189 Gerrit-Change-Number: 18819 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 10:42:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 10:42:05 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: move logical channel handlers to separate files In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18820 ) Change subject: osmo-bts-trx: move logical channel handlers to separate files ...................................................................... osmo-bts-trx: move logical channel handlers to separate files It's easier to maintain the logical channel handlers in separate files, rather than in a huge one (scheduler_trx.c, ~2k lines). Change-Id: Ie5663fd90596b4800a4546675a323250bbb24c80 --- M src/osmo-bts-trx/Makefile.am A src/osmo-bts-trx/sched_lchan_fcch_sch.c A src/osmo-bts-trx/sched_lchan_pdtch.c A src/osmo-bts-trx/sched_lchan_rach.c A src/osmo-bts-trx/sched_lchan_tchf.c A src/osmo-bts-trx/sched_lchan_tchh.c A src/osmo-bts-trx/sched_lchan_xcch.c A src/osmo-bts-trx/sched_utils.h M src/osmo-bts-trx/scheduler_trx.c 9 files changed, 1,816 insertions(+), 1,562 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/Makefile.am b/src/osmo-bts-trx/Makefile.am index b2d9b19..ae69000 100644 --- a/src/osmo-bts-trx/Makefile.am +++ b/src/osmo-bts-trx/Makefile.am @@ -28,6 +28,7 @@ $(NULL) noinst_HEADERS = \ + sched_utils.h \ trx_if.h \ l1_if.h \ loops.h \ @@ -40,6 +41,12 @@ trx_if.c \ l1_if.c \ scheduler_trx.c \ + sched_lchan_fcch_sch.c \ + sched_lchan_rach.c \ + sched_lchan_xcch.c \ + sched_lchan_pdtch.c \ + sched_lchan_tchf.c \ + sched_lchan_tchh.c \ trx_vty.c \ loops.c \ $(NULL) diff --git a/src/osmo-bts-trx/sched_lchan_fcch_sch.c b/src/osmo-bts-trx/sched_lchan_fcch_sch.c new file mode 100644 index 0000000..63dd468 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_fcch_sch.c @@ -0,0 +1,94 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 + +/* obtain a to-be-transmitted FCCH (frequency correction channel) burst */ +ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting FCCH\n"); + + if (nbits) + *nbits = GSM_BURST_LEN; + + /* BURST BYPASS */ + + return (ubit_t *) _sched_fcch_burst; +} + +/* obtain a to-be-transmitted SCH (synchronization channel) burst */ +ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + static ubit_t bits[GSM_BURST_LEN], burst[78]; + uint8_t sb_info[4]; + struct gsm_time t; + uint8_t t3p, bsic; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting SCH\n"); + + /* BURST BYPASS */ + + /* create SB info from GSM time and BSIC */ + gsm_fn2gsmtime(&t, fn); + t3p = t.t3 / 10; + bsic = l1t->trx->bts->bsic; + sb_info[0] = + ((bsic & 0x3f) << 2) | + ((t.t1 & 0x600) >> 9); + sb_info[1] = + ((t.t1 & 0x1fe) >> 1); + sb_info[2] = + ((t.t1 & 0x001) << 7) | + ((t.t2 & 0x1f) << 2) | + ((t3p & 0x6) >> 1); + sb_info[3] = + (t3p & 0x1); + + /* encode bursts */ + gsm0503_sch_encode(burst, sb_info); + + /* compose burst */ + memset(bits, 0, 3); + memcpy(bits + 3, burst, 39); + memcpy(bits + 42, _sched_sch_train, 64); + memcpy(bits + 106, burst + 39, 39); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c new file mode 100644 index 0000000..8b39797 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -0,0 +1,249 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 + +/* Maximum size of a EGPRS message in bytes */ +#define EGPRS_0503_MAX_BYTES 155 + +/*! \brief a single PDTCH burst was received by the PHY, process it */ +int rx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint32_t *first_fn = &chan_state->ul_first_fn; + uint8_t *mask = &chan_state->ul_mask; + float *rssi_sum = &chan_state->rssi_sum; + uint8_t *rssi_num = &chan_state->rssi_num; + int32_t *toa256_sum = &chan_state->toa256_sum; + uint8_t *toa_num = &chan_state->toa_num; + int32_t *ci_cb_sum = &chan_state->ci_cb_sum; + uint8_t *ci_cb_num = &chan_state->ci_cb_num; + uint8_t l2[EGPRS_0503_MAX_BYTES]; + int n_errors = 0; + int n_bursts_bits = 0; + int n_bits_total = 0; + int16_t lqual_cb; + uint16_t ber10k; + int rc; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received PDTCH bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, + GSM0503_EGPRS_BURSTS_NBITS); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst */ + if (bid == 0) { + memset(*bursts_p, 0, GSM0503_EGPRS_BURSTS_NBITS); + *mask = 0x0; + *first_fn = bi->fn; + *rssi_sum = 0; + *rssi_num = 0; + *toa256_sum = 0; + *toa_num = 0; + *ci_cb_sum = 0; + *ci_cb_num = 0; + } + + /* update mask + rssi */ + *mask |= (1 << bid); + *rssi_sum += bi->rssi; + (*rssi_num)++; + *toa256_sum += bi->toa256; + (*toa_num)++; + + /* C/I: Carrier-to-Interference ratio (in centiBels) */ + if (bi->flags & TRX_BI_F_CI_CB) { + *ci_cb_sum += bi->ci_cb; + (*ci_cb_num)++; + } + + /* copy burst to buffer of 4 bursts */ + if (bi->burst_len == EGPRS_BURST_LEN) { + burst = *bursts_p + bid * 348; + memcpy(burst, bi->burst + 9, 174); + memcpy(burst + 174, bi->burst + 261, 174); + n_bursts_bits = GSM0503_EGPRS_BURSTS_NBITS; + } else { + burst = *bursts_p + bid * 116; + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + n_bursts_bits = GSM0503_GPRS_BURSTS_NBITS; + } + + /* wait until complete set of bursts */ + if (bid != 3) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0xf) != 0xf) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received incomplete frame (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + } + *mask = 0x0; + + /* + * Attempt to decode EGPRS bursts first. For 8-PSK EGPRS this is all we + * do. Attempt GPRS decoding on EGPRS failure. If the burst is GPRS, + * then we incur decoding overhead of 31 bits on the Type 3 EGPRS + * header, which is tolerable. + */ + rc = gsm0503_pdtch_egprs_decode(l2, *bursts_p, n_bursts_bits, + NULL, &n_errors, &n_bits_total); + + if ((bi->burst_len == GSM_BURST_LEN) && (rc < 0)) { + rc = gsm0503_pdtch_decode(l2, *bursts_p, NULL, + &n_errors, &n_bits_total); + } + + if (rc <= 0) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received bad PDTCH (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + return 0; + } + + lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; + ber10k = compute_ber10k(n_bits_total, n_errors); + return _sched_compose_ph_data_ind(l1t, bi->tn, + *first_fn, chan, l2, rc, + *rssi_sum / *rssi_num, + *toa256_sum / *toa_num, + lqual_cb, ber10k, + PRES_INFO_BOTH); +} + +/* obtain a to-be-transmitted PDTCH (packet data) burst */ +ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[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; + static ubit_t bits[EGPRS_BURST_LEN]; + int rc = 0; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + /* get mac block from queue */ + msg = _sched_dequeue_prim(l1t, tn, fn, chan); + if (msg) + goto got_msg; + + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + +no_msg: + /* free burst memory */ + if (*bursts_p) { + talloc_free(*bursts_p); + *bursts_p = NULL; + } + return NULL; + +got_msg: + /* BURST BYPASS */ + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, + GSM0503_EGPRS_BURSTS_NBITS); + if (!*bursts_p) + return NULL; + } + + /* encode bursts */ + rc = gsm0503_pdtch_egprs_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); + if (rc < 0) + rc = gsm0503_pdtch_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); + + /* check validity of message */ + if (rc < 0) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim invalid length, please FIX! " + "(len=%ld)\n", (long)(msg->tail - msg->l2h)); + /* free message */ + msgb_free(msg); + goto no_msg; + } else if (rc == GSM0503_EGPRS_BURSTS_NBITS) { + *burst_type = TRX_BURST_8PSK; + } else { + *burst_type = TRX_BURST_GMSK; + } + + /* free message */ + msgb_free(msg); + +send_burst: + /* compose burst */ + if (*burst_type == TRX_BURST_8PSK) { + burst = *bursts_p + bid * 348; + memset(bits, 1, 9); + memcpy(bits + 9, burst, 174); + memcpy(bits + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); + memcpy(bits + 261, burst + 174, 174); + memset(bits + 435, 1, 9); + + if (nbits) + *nbits = EGPRS_BURST_LEN; + } else { + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + } + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_rach.c b/src/osmo-bts-trx/sched_lchan_rach.c new file mode 100644 index 0000000..fa50f14 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_rach.c @@ -0,0 +1,212 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 by Harald Welte + * (C) 2019 by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +/* 3GPP TS 05.02, section 5.2.7 */ +#define RACH_EXT_TAIL_LEN 8 +#define RACH_SYNCH_SEQ_LEN 41 + +enum rach_synch_seq_t { + RACH_SYNCH_SEQ_UNKNOWN = -1, + RACH_SYNCH_SEQ_TS0, /* GSM, GMSK (default) */ + RACH_SYNCH_SEQ_TS1, /* EGPRS, 8-PSK */ + RACH_SYNCH_SEQ_TS2, /* EGPRS, GMSK */ + RACH_SYNCH_SEQ_NUM +}; + +static struct value_string rach_synch_seq_names[] = { + { RACH_SYNCH_SEQ_UNKNOWN, "UNKNOWN" }, + { RACH_SYNCH_SEQ_TS0, "TS0: GSM, GMSK" }, + { RACH_SYNCH_SEQ_TS1, "TS1: EGPRS, 8-PSK" }, + { RACH_SYNCH_SEQ_TS2, "TS2: EGPRS, GMSK" }, + { 0, NULL }, +}; + +static enum rach_synch_seq_t rach_get_synch_seq(sbit_t *bits, int *best_score) +{ + sbit_t *synch_seq_burst = bits + RACH_EXT_TAIL_LEN; + enum rach_synch_seq_t seq = RACH_SYNCH_SEQ_TS0; + int score[RACH_SYNCH_SEQ_NUM] = { 0 }; + int max_score = INT_MIN; + int i, j; + + /* 3GPP TS 05.02, section 5.2.7 "Access burst (AB)", synch. sequence bits */ + static const char synch_seq_ref[RACH_SYNCH_SEQ_NUM][RACH_SYNCH_SEQ_LEN] = { + [RACH_SYNCH_SEQ_TS0] = "01001011011111111001100110101010001111000", + [RACH_SYNCH_SEQ_TS1] = "01010100111110001000011000101111001001101", + [RACH_SYNCH_SEQ_TS2] = "11101111001001110101011000001101101110111", + }; + + /* Get a multiplier for j-th bit of i-th synch. sequence */ +#define RACH_SYNCH_SEQ_MULT \ + (synch_seq_ref[i][j] == '1' ? -1 : 1) + + /* For each synch. sequence, count the bit match score. Since we deal with + * soft-bits (-127...127), we sum the absolute values of matching ones, + * and subtract the absolute values of different ones, so the resulting + * score is more accurate than it could be with hard-bits. */ + for (i = 0; i < RACH_SYNCH_SEQ_NUM; i++) { + for (j = 0; j < RACH_SYNCH_SEQ_LEN; j++) + score[i] += RACH_SYNCH_SEQ_MULT * synch_seq_burst[j]; + + /* Keep the maximum value updated */ + if (score[i] > max_score) { + max_score = score[i]; + seq = i; + } + } + + /* Calculate an approximate level of our confidence */ + if (best_score != NULL) + *best_score = max_score; + + /* At least 1/3 of a synch. sequence shall match */ + if (max_score < (127 * RACH_SYNCH_SEQ_LEN / 3)) + return RACH_SYNCH_SEQ_UNKNOWN; + + return seq; +} + +int rx_rach_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct osmo_phsap_prim l1sap; + int n_errors = 0; + int n_bits_total = 0; + uint16_t ra11; + uint8_t ra; + int rc; + + /* TSC (Training Sequence Code) is an optional parameter of the UL burst + * indication. We need this information in order to decide whether an + * Access Burst is 11-bit encoded or not (see OS#1854). If this information + * is absent, we try to correlate the received synch. sequence with the + * known ones (3GPP TS 05.02, section 5.2.7), and fall-back to the default + * TS0 if it fails. */ + enum rach_synch_seq_t synch_seq = RACH_SYNCH_SEQ_TS0; + int best_score = 127 * RACH_SYNCH_SEQ_LEN; + + /* If logical channel is not either of RACH, PDTCH or PTCCH, this is a + * handover Access Burst, which is always encoded as 8-bit and shall + * contain the generic training sequence (TS0). */ + if (chan == TRXC_RACH || chan == TRXC_PDTCH || chan == TRXC_PTCCH) { + if (bi->flags & TRX_BI_F_TS_INFO) + synch_seq = (enum rach_synch_seq_t) bi->tsc; + else + synch_seq = rach_get_synch_seq((sbit_t *) bi->burst, &best_score); + } + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received%s RACH (%s): rssi=%d toa256=%d", + (chan != TRXC_RACH) ? " handover" : "", + get_value_string(rach_synch_seq_names, synch_seq), + bi->rssi, bi->toa256); + if (bi->flags & TRX_BI_F_CI_CB) + LOGPC(DL1P, LOGL_DEBUG, " C/I=%d cB", bi->ci_cb); + else + LOGPC(DL1P, LOGL_DEBUG, " match=%.1f%%", + best_score * 100.0 / (127 * RACH_SYNCH_SEQ_LEN)); + LOGPC(DL1P, LOGL_DEBUG, "\n"); + + /* Compose a new L1SAP primitive */ + memset(&l1sap, 0x00, sizeof(l1sap)); + osmo_prim_init(&l1sap.oph, SAP_GSM_PH, PRIM_PH_RACH, PRIM_OP_INDICATION, NULL); + l1sap.u.rach_ind.chan_nr = trx_chan_desc[chan].chan_nr | bi->tn; + l1sap.u.rach_ind.acc_delay = (bi->toa256 >= 0) ? bi->toa256 / 256 : 0; + l1sap.u.rach_ind.acc_delay_256bits = bi->toa256; + l1sap.u.rach_ind.rssi = bi->rssi; + l1sap.u.rach_ind.fn = bi->fn; + + /* Link quality is defined by C/I (Carrier-to-Interference ratio), + * which has optional presence. If it's absent, report the + * minimum acceptable value to pass L1SAP checks. */ + if (bi->flags & TRX_BI_F_CI_CB) + l1sap.u.rach_ind.lqual_cb = bi->ci_cb; + else + l1sap.u.rach_ind.lqual_cb = l1t->trx->bts->min_qual_rach; + + /* Decode RACH depending on its synch. sequence */ + switch (synch_seq) { + case RACH_SYNCH_SEQ_TS1: + case RACH_SYNCH_SEQ_TS2: + rc = gsm0503_rach_ext_decode_ber(&ra11, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, + l1t->trx->bts->bsic, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received bad Access Burst\n"); + return 0; + } + + if (synch_seq == RACH_SYNCH_SEQ_TS1) + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_1; + else + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_2; + + l1sap.u.rach_ind.is_11bit = 1; + l1sap.u.rach_ind.ra = ra11; + break; + + case RACH_SYNCH_SEQ_TS0: + default: + /* Fall-back to the default TS0 if needed */ + if (synch_seq != RACH_SYNCH_SEQ_TS0) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Falling-back to the default TS0\n"); + synch_seq = RACH_SYNCH_SEQ_TS0; + } + + rc = gsm0503_rach_decode_ber(&ra, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, + l1t->trx->bts->bsic, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received bad Access Burst\n"); + return 0; + } + + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0; + l1sap.u.rach_ind.is_11bit = 0; + l1sap.u.rach_ind.ra = ra; + break; + } + + l1sap.u.rach_ind.ber10k = compute_ber10k(n_bits_total, n_errors); + + /* forward primitive */ + l1sap_up(l1t->trx, &l1sap); + + return 0; +} diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c new file mode 100644 index 0000000..fb11f45 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -0,0 +1,570 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 +#include + +/*! \brief a single TCH/F burst was received by the PHY, process it */ +int rx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint8_t *mask = &chan_state->ul_mask; + uint8_t rsl_cmode = chan_state->rsl_cmode; + uint8_t tch_mode = chan_state->tch_mode; + uint8_t tch_data[128]; /* just to be safe */ + int rc, amr = 0; + int n_errors = 0; + int n_bits_total = 0; + bool bfi_flag = false; + struct gsm_lchan *lchan = + get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); + unsigned int fn_begin; + uint16_t ber10k; + uint8_t is_sub = 0; + uint8_t ft; + + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) + return rx_rach_fn(l1t, chan, bid, bi); + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received TCH/F, bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 928); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst */ + if (bid == 0) { + memset(*bursts_p + 464, 0, 464); + *mask = 0x0; + } + + /* update mask */ + *mask |= (1 << bid); + + /* copy burst to end of buffer of 8 bursts */ + burst = *bursts_p + bid * 116 + 464; + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 116); + + /* wait until complete set of bursts */ + if (bid != 3) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0xf) != 0xf) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received incomplete frame (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + } + *mask = 0x0; + + /* decode + * also shift buffer by 4 bursts for interleaving */ + switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 + : tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR */ + rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 0, &n_errors, &n_bits_total); + if (rc >= 0) + lchan_set_marker(osmo_fr_check_sid(tch_data, rc), lchan); /* DTXu */ + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 1, &n_errors, &n_bits_total); + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + /* the first FN 0,8,17 defines that CMI is included in frame, + * the first FN 4,13,21 defines that CMR is included in frame. + * NOTE: A frame ends 7 FN after start. + */ + + /* The AFS_ONSET frame itself does not result into an RTP frame + * since it only contains a recognition pattern that marks the + * end of the DTX interval. To mark the end of the DTX interval + * in the RTP stream as well, the voice frame after the + * AFS_ONSET frame is used. */ + if (chan_state->amr_last_dtx == AFS_ONSET) + lchan_set_marker(false, lchan); + + /* we store tch_data + 2 header bytes, the amr variable set to + * 2 will allow us to skip the first 2 bytes in case we did + * receive an FACCH frame instead of a voice frame (we do not + * know this before we actually decode the frame) */ + amr = 2; + rc = gsm0503_tch_afs_decode_dtx(tch_data + amr, *bursts_p, + (((bi->fn + 26 - 7) % 26) >> 2) & 1, chan_state->codec, + chan_state->codecs, &chan_state->ul_ft, + &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); + + /* Tag all frames that are not regular AMR voice frames as + * SUB-Frames */ + if (chan_state->amr_last_dtx != AMR_OTHER) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received AMR SID frame: %s\n", + gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); + is_sub = 1; + } + + /* The occurrence of the following frames indicates that we + * are either at the beginning or in the middle of a talk + * spurt. We update the SID status accordingly, but we do + * not want the marker to be set, since this must only + * happen when the talk spurt is over (see above) */ + switch (chan_state->amr_last_dtx) { + case AFS_SID_FIRST: + case AFS_SID_UPDATE: + case AFS_SID_UPDATE_CN: + lchan_set_marker(true, lchan); + lchan->rtp_tx_marker = false; + break; + } + + if (rc) + trx_loop_amr_input(l1t, + trx_chan_desc[chan].chan_nr | bi->tn, chan_state, + n_errors, n_bits_total); + /* only good speech frames get rtp header */ + if (rc != GSM_MACBLOCK_LEN && rc >= 4) { + if (chan_state->amr_last_dtx == AMR_OTHER) { + ft = chan_state->codec[chan_state->ul_cmr]; + } else { + /* SID frames will always get Frame Type Index 8 (AMR_SID) */ + ft = AMR_SID; + } + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->ul_cmr], + ft, AMR_GOOD); + } + + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", + tch_mode); + return -EINVAL; + } + memcpy(*bursts_p, *bursts_p + 464, 464); + + /* Check if the frame is bad */ + if (rc < 0) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + bfi_flag = true; + } else if (rc < 4) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u) with invalid codec mode %d\n", + bi->fn % l1ts->mf_period, l1ts->mf_period, rc); + bfi_flag = true; + } + + if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) + osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); + + ber10k = compute_ber10k(n_bits_total, n_errors); + if (bfi_flag) + goto bfi; + + /* FACCH */ + if (rc == GSM_MACBLOCK_LEN) { + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_F); + _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, + tch_data + amr, GSM_MACBLOCK_LEN, + /* FIXME: AVG RSSI and ToA256 */ + bi->rssi, bi->toa256, + 0 /* FIXME: AVG C/I */, + ber10k, PRES_INFO_UNKNOWN); +bfi: + if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { + /* indicate bad frame */ + if (lchan->tch.dtx.ul_sid) { + /* DTXu: pause in progress. Push empty payload to upper layers */ + rc = 0; + goto compose_l1sap; + } + + /* If there is an ECU active on this channel, use its output */ + if (lchan->ecu_state) { + rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); + if (rc >= 0) /* Otherwise we send a BFI */ + goto compose_l1sap; + } + + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR */ + memset(tch_data, 0, GSM_FR_BYTES); + tch_data[0] = 0xd0; + rc = GSM_FR_BYTES; + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + memset(tch_data, 0, GSM_EFR_BYTES); + tch_data[0] = 0xc0; + rc = GSM_EFR_BYTES; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->dl_cmr], + chan_state->codec[chan_state->dl_ft], + AMR_BAD); + if (rc < 2) { + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "Failed to encode AMR_BAD frame (rc=%d), " + "not sending BFI\n", rc); + return -EINVAL; + } + memset(tch_data + 2, 0, rc - 2); + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", tch_mode); + return -EINVAL; + } + } + } + + if (rsl_cmode != RSL_CMOD_SPD_SPEECH) + return 0; + + /* TCH or BFI */ +compose_l1sap: + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_F); + return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, + tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); +} + +/* common section for generation of TCH bursts (TCH/H and TCH/F). + * FIXME: this function is over-complicated, refactor / get rid of it. */ +void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, + struct msgb **_msg_tch, struct msgb **_msg_facch) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct msgb *msg1, *msg2, *msg_tch = NULL, *msg_facch = NULL; + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + uint8_t rsl_cmode = chan_state->rsl_cmode; + uint8_t tch_mode = chan_state->tch_mode; + struct osmo_phsap_prim *l1sap; + int32_t *toa256_sum = &chan_state->toa256_sum; + uint8_t *toa_num = &chan_state->toa_num; + int16_t toa256; + + /* handle loss detection of received TCH frames */ + if (rsl_cmode == RSL_CMOD_SPD_SPEECH + && ++(chan_state->lost_frames) > 5) { + uint8_t tch_data[GSM_FR_BYTES]; + int len; + + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, + "Missing TCH bursts detected, sending BFI\n"); + + /* indicate bad frame */ + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR / HR */ + if (chan != TRXC_TCHF) { /* HR */ + tch_data[0] = 0x70; /* F = 0, FT = 111 */ + memset(tch_data + 1, 0, 14); + len = 15; + break; + } + memset(tch_data, 0, GSM_FR_BYTES); + len = GSM_FR_BYTES; + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + if (chan != TRXC_TCHF) + goto inval_mode1; + memset(tch_data, 0, GSM_EFR_BYTES); + len = GSM_EFR_BYTES; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + len = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->dl_cmr], + chan_state->codec[chan_state->dl_ft], AMR_BAD); + if (len < 2) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, + "Failed to encode AMR_BAD frame (rc=%d), " + "not sending BFI\n", len); + return; + } + memset(tch_data + 2, 0, len - 2); + break; + default: +inval_mode1: + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); + len = 0; + } + + if (len) { + if (*toa_num == 0) + toa256 = 0; + else + toa256 = *toa256_sum / *toa_num; + + /* Note: RSSI is set to 0 to indicate to the higher + * layers that this is a faked tch_ind */ + _sched_compose_tch_ind(l1t, tn, fn, chan, tch_data, len, toa256, 10000, 0, 0); + } + } + + /* get frame and unlink from queue */ + msg1 = _sched_dequeue_prim(l1t, tn, fn, chan); + msg2 = _sched_dequeue_prim(l1t, tn, fn, chan); + if (msg1) { + l1sap = msgb_l1sap_prim(msg1); + if (l1sap->oph.primitive == PRIM_TCH) { + msg_tch = msg1; + if (msg2) { + l1sap = msgb_l1sap_prim(msg2); + if (l1sap->oph.primitive == PRIM_TCH) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, + "TCH twice, please FIX!\n"); + msgb_free(msg2); + } else + msg_facch = msg2; + } + } else { + msg_facch = msg1; + if (msg2) { + l1sap = msgb_l1sap_prim(msg2); + if (l1sap->oph.primitive != PRIM_TCH) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, + "FACCH twice, please FIX!\n"); + msgb_free(msg2); + } else + msg_tch = msg2; + } + } + } else if (msg2) { + l1sap = msgb_l1sap_prim(msg2); + if (l1sap->oph.primitive == PRIM_TCH) + msg_tch = msg2; + else + msg_facch = msg2; + } + + /* check validity of message */ + if (msg_facch && msgb_l2len(msg_facch) != GSM_MACBLOCK_LEN) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " + "(len=%d)\n", msgb_l2len(msg_facch)); + /* free message */ + msgb_free(msg_facch); + msg_facch = NULL; + } + + /* check validity of message, get AMR ft and cmr */ + if (!msg_facch && msg_tch) { + int len; + uint8_t cmr_codec; + int cmr, ft, i; + enum osmo_amr_type ft_codec; + enum osmo_amr_quality bfi; + int8_t sti, cmi; + + if (rsl_cmode != RSL_CMOD_SPD_SPEECH) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Dropping speech frame, " + "because we are not in speech mode\n"); + goto free_bad_msg; + } + + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* FR / HR */ + if (chan != TRXC_TCHF) /* HR */ + len = 15; + else + len = GSM_FR_BYTES; + break; + case GSM48_CMODE_SPEECH_EFR: /* EFR */ + if (chan != TRXC_TCHF) + goto inval_mode2; + len = GSM_EFR_BYTES; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + len = osmo_amr_rtp_dec(msg_tch->l2h, msgb_l2len(msg_tch), + &cmr_codec, &cmi, &ft_codec, + &bfi, &sti); + cmr = -1; + ft = -1; + for (i = 0; i < chan_state->codecs; i++) { + if (chan_state->codec[i] == cmr_codec) + cmr = i; + if (chan_state->codec[i] == ft_codec) + ft = i; + } + if (cmr >= 0) { /* new request */ + chan_state->dl_cmr = cmr; + /* disable AMR loop */ + trx_loop_amr_set(chan_state, 0); + } else { + /* enable AMR loop */ + trx_loop_amr_set(chan_state, 1); + } + if (ft < 0) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, + "Codec (FT = %d) of RTP frame not in list\n", ft_codec); + goto free_bad_msg; + } + if (fn_is_codec_mode_request(fn) && chan_state->dl_ft != ft) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Codec (FT = %d) " + " of RTP cannot be changed now, but in next frame\n", ft_codec); + goto free_bad_msg; + } + chan_state->dl_ft = ft; + if (bfi == AMR_BAD) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, + "Transmitting 'bad AMR frame'\n"); + goto free_bad_msg; + } + break; + default: +inval_mode2: + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); + goto free_bad_msg; + } + if (len < 0) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send invalid AMR payload\n"); + goto free_bad_msg; + } + if (msgb_l2len(msg_tch) != len) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send payload with " + "invalid length! (expecting %d, received %d)\n", + len, msgb_l2len(msg_tch)); +free_bad_msg: + /* free message */ + msgb_free(msg_tch); + msg_tch = NULL; + goto send_frame; + } + } + +send_frame: + *_msg_tch = msg_tch; + *_msg_facch = msg_facch; +} + +/* obtain a to-be-transmitted TCH/F (Full Traffic Channel) burst */ +ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct msgb *msg_tch = NULL, *msg_facch = NULL; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + uint8_t tch_mode = chan_state->tch_mode; + ubit_t *burst, **bursts_p = &chan_state->dl_bursts; + static ubit_t bits[GSM_BURST_LEN]; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + + /* BURST BYPASS */ + + /* allocate burst memory, if not already, + * otherwise shift buffer by 4 bursts for interleaving */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 928); + if (!*bursts_p) + return NULL; + } else { + memcpy(*bursts_p, *bursts_p + 464, 464); + memset(*bursts_p + 464, 0, 464); + } + + /* no message at all */ + if (!msg_tch && !msg_facch) { + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + goto send_burst; + } + + /* encode bursts (prioritize FACCH) */ + if (msg_facch) + gsm0503_tch_fr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch), + 1); + else if (tch_mode == GSM48_CMODE_SPEECH_AMR) + /* the first FN 4,13,21 defines that CMI is included in frame, + * the first FN 0,8,17 defines that CMR is included in frame. + */ + gsm0503_tch_afs_encode(*bursts_p, msg_tch->l2h + 2, + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + chan_state->codec, chan_state->codecs, + chan_state->dl_ft, + chan_state->dl_cmr); + else + gsm0503_tch_fr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch), 1); + + /* free message */ + if (msg_tch) + msgb_free(msg_tch); + if (msg_facch) + msgb_free(msg_facch); + +send_burst: + /* compose burst */ + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c new file mode 100644 index 0000000..1895038 --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -0,0 +1,408 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 +#include + +/*! \brief a single TCH/H burst was received by the PHY, process it */ +int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint8_t *mask = &chan_state->ul_mask; + uint8_t rsl_cmode = chan_state->rsl_cmode; + uint8_t tch_mode = chan_state->tch_mode; + uint8_t tch_data[128]; /* just to be safe */ + int rc, amr = 0; + int n_errors = 0; + int n_bits_total = 0; + bool bfi_flag = false; + struct gsm_lchan *lchan = + get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); + /* Note on FN-10: If we are at FN 10, we decoded an even aligned + * TCH/FACCH frame, because our burst buffer carries 6 bursts. + * Even FN ending at: 10,11,19,20,2,3 + */ + int fn_is_odd = (((bi->fn + 26 - 10) % 26) >> 2) & 1; + unsigned int fn_begin; + uint16_t ber10k; + uint8_t is_sub = 0; + uint8_t ft; + + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) + return rx_rach_fn(l1t, chan, bid, bi); + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received TCH/H, bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 696); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst */ + if (bid == 0) { + memset(*bursts_p + 464, 0, 232); + *mask = 0x0; + } + + /* update mask */ + *mask |= (1 << bid); + + /* copy burst to end of buffer of 6 bursts */ + burst = *bursts_p + bid * 116 + 464; + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 116); + + /* wait until complete set of bursts */ + if (bid != 1) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0x3) != 0x3) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received incomplete frame (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + } + *mask = 0x0; + + /* skip second of two TCH frames of FACCH was received */ + if (chan_state->ul_ongoing_facch) { + chan_state->ul_ongoing_facch = 0; + memcpy(*bursts_p, *bursts_p + 232, 232); + memcpy(*bursts_p + 232, *bursts_p + 464, 232); + ber10k = 0; + goto bfi; + } + + /* decode + * also shift buffer by 4 bursts for interleaving */ + switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 + : tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* HR or signalling */ + /* Note on FN-10: If we are at FN 10, we decoded an even aligned + * TCH/FACCH frame, because our burst buffer carries 6 bursts. + * Even FN ending at: 10,11,19,20,2,3 + */ + rc = gsm0503_tch_hr_decode(tch_data, *bursts_p, + fn_is_odd, &n_errors, &n_bits_total); + if (rc >= 0) /* DTXu */ + lchan_set_marker(osmo_hr_check_sid(tch_data, rc), lchan); + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + /* the first FN 0,8,17 or 1,9,18 defines that CMI is included + * in frame, the first FN 4,13,21 or 5,14,22 defines that CMR + * is included in frame. + */ + + /* See comment in function rx_tchf_fn() */ + switch (chan_state->amr_last_dtx) { + case AHS_ONSET: + case AHS_SID_FIRST_INH: + case AHS_SID_UPDATE_INH: + lchan_set_marker(false, lchan); + break; + } + + /* See comment in function rx_tchf_fn() */ + amr = 2; + rc = gsm0503_tch_ahs_decode_dtx(tch_data + amr, *bursts_p, + fn_is_odd, fn_is_odd, chan_state->codec, + chan_state->codecs, &chan_state->ul_ft, + &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); + + /* Tag all frames that are not regular AMR voice frames + as SUB-Frames */ + if (chan_state->amr_last_dtx != AMR_OTHER) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received AMR SID frame: %s\n", + gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); + is_sub = 1; + } + + /* See comment in function rx_tchf_fn() */ + switch (chan_state->amr_last_dtx) { + case AHS_SID_FIRST_P1: + case AHS_SID_FIRST_P2: + case AHS_SID_UPDATE: + case AHS_SID_UPDATE_CN: + lchan_set_marker(true, lchan); + lchan->rtp_tx_marker = false; + break; + } + + if (rc) + trx_loop_amr_input(l1t, + trx_chan_desc[chan].chan_nr | bi->tn, chan_state, + n_errors, n_bits_total); + + /* only good speech frames get rtp header */ + if (rc != GSM_MACBLOCK_LEN && rc >= 4) { + if (chan_state->amr_last_dtx == AMR_OTHER) { + ft = chan_state->codec[chan_state->ul_cmr]; + } else { + /* SID frames will always get Frame Type Index 8 (AMR_SID) */ + ft = AMR_SID; + } + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->ul_cmr], + ft, AMR_GOOD); + } + + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", + tch_mode); + return -EINVAL; + } + memcpy(*bursts_p, *bursts_p + 232, 232); + memcpy(*bursts_p + 232, *bursts_p + 464, 232); + ber10k = compute_ber10k(n_bits_total, n_errors); + + + /* Check if the frame is bad */ + if (rc < 0) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + bfi_flag = true; + } else if (rc < 4) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u) with invalid codec mode %d\n", + bi->fn % l1ts->mf_period, l1ts->mf_period, rc); + bfi_flag = true; + } + + if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) + osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); + + if (bfi_flag) + goto bfi; + + /* FACCH */ + if (rc == GSM_MACBLOCK_LEN) { + chan_state->ul_ongoing_facch = 1; + uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); + if (lchan->nr == 0) + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H0); + else + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H1); + _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, + tch_data + amr, GSM_MACBLOCK_LEN, + /* FIXME: AVG both RSSI and ToA */ + bi->rssi, bi->toa256, + 0 /* FIXME: AVG C/I */, + ber10k, PRES_INFO_UNKNOWN); +bfi: + /* FIXME: a FACCH/H frame replaces two speech frames, + * so we actually need to send two bad frame indications! */ + if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { + /* indicate bad frame */ + if (lchan->tch.dtx.ul_sid) { + /* DTXu: pause in progress. Push empty payload to upper layers */ + rc = 0; + goto compose_l1sap; + } + + /* If there is an ECU active on this channel, use its output */ + if (lchan->ecu_state) { + rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); + if (rc >= 0) /* Otherwise we send a BFI */ + goto compose_l1sap; + } + + switch (tch_mode) { + case GSM48_CMODE_SPEECH_V1: /* HR */ + tch_data[0] = 0x70; /* F = 0, FT = 111 */ + memset(tch_data + 1, 0, 14); + rc = 15; + break; + case GSM48_CMODE_SPEECH_AMR: /* AMR */ + rc = osmo_amr_rtp_enc(tch_data, + chan_state->codec[chan_state->dl_cmr], + chan_state->codec[chan_state->dl_ft], + AMR_BAD); + if (rc < 2) { + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "Failed to encode AMR_BAD frame (rc=%d), " + "not sending BFI\n", rc); + return -EINVAL; + } + memset(tch_data + 2, 0, rc - 2); + break; + default: + LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, + "TCH mode %u invalid, please fix!\n", tch_mode); + return -EINVAL; + } + } + } + + if (rsl_cmode != RSL_CMOD_SPD_SPEECH) + return 0; + +compose_l1sap: + /* TCH or BFI */ + /* Note on FN 19 or 20: If we received the last burst of a frame, + * it actually starts at FN 8 or 9. A burst starting there, overlaps + * with the slot 12, so an extra FN must be subtracted to get correct + * start of frame. + */ + if (lchan->nr == 0) + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H0); + else + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H1); + return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, + tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); +} + +/* common section for generation of TCH bursts (TCH/H and TCH/F). + * FIXME: this function is over-complicated, refactor / get rid of it. */ +extern void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, + struct msgb **_msg_tch, struct msgb **_msg_facch); + +/* obtain a to-be-transmitted TCH/H (Half Traffic Channel) burst */ +ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct msgb *msg_tch = NULL, *msg_facch = NULL; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + uint8_t tch_mode = chan_state->tch_mode; + ubit_t *burst, **bursts_p = &chan_state->dl_bursts; + static ubit_t bits[GSM_BURST_LEN]; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + /* get TCH and/or FACCH */ + tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + + /* check for FACCH alignment */ + if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " + "even frames, please fix RTS!\n"); + msgb_free(msg_facch); + msg_facch = NULL; + } + + /* BURST BYPASS */ + + /* allocate burst memory, if not already, + * otherwise shift buffer by 2 bursts for interleaving */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 696); + if (!*bursts_p) + return NULL; + } else { + memcpy(*bursts_p, *bursts_p + 232, 232); + if (chan_state->dl_ongoing_facch) { + memcpy(*bursts_p + 232, *bursts_p + 464, 232); + memset(*bursts_p + 464, 0, 232); + } else { + memset(*bursts_p + 232, 0, 232); + } + } + + /* no message at all */ + if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + goto send_burst; + } + + /* encode bursts (prioritize FACCH) */ + if (msg_facch) { + gsm0503_tch_hr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch)); + chan_state->dl_ongoing_facch = 1; /* first of two TCH frames */ + } else if (chan_state->dl_ongoing_facch) /* second of two TCH frames */ + chan_state->dl_ongoing_facch = 0; /* we are done with FACCH */ + else if (tch_mode == GSM48_CMODE_SPEECH_AMR) + /* the first FN 4,13,21 or 5,14,22 defines that CMI is included + * in frame, the first FN 0,8,17 or 1,9,18 defines that CMR is + * included in frame. */ + gsm0503_tch_ahs_encode(*bursts_p, msg_tch->l2h + 2, + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + chan_state->codec, chan_state->codecs, + chan_state->dl_ft, + chan_state->dl_cmr); + else + gsm0503_tch_hr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch)); + + /* free message */ + if (msg_tch) + msgb_free(msg_tch); + if (msg_facch) + msgb_free(msg_facch); + +send_burst: + /* compose burst */ + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c new file mode 100644 index 0000000..a16553f --- /dev/null +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -0,0 +1,234 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015-2017 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 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 + +/*! \brief a single (SDCCH/SACCH) burst was received by the PHY, process it */ +int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, const struct trx_ul_burst_ind *bi) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); + struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + sbit_t *burst, **bursts_p = &chan_state->ul_bursts; + uint32_t *first_fn = &chan_state->ul_first_fn; + uint8_t *mask = &chan_state->ul_mask; + float *rssi_sum = &chan_state->rssi_sum; + uint8_t *rssi_num = &chan_state->rssi_num; + int32_t *toa256_sum = &chan_state->toa256_sum; + uint8_t *toa_num = &chan_state->toa_num; + int32_t *ci_cb_sum = &chan_state->ci_cb_sum; + uint8_t *ci_cb_num = &chan_state->ci_cb_num; + uint8_t l2[GSM_MACBLOCK_LEN], l2_len; + int n_errors = 0; + int n_bits_total = 0; + int16_t lqual_cb; + uint16_t ber10k; + int rc; + + /* If handover RACH detection is turned on, treat this burst as an Access Burst. + * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ + if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) + return rx_rach_fn(l1t, chan, bid, bi); + + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Received Data, bid=%u\n", bid); + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 464); + if (!*bursts_p) + return -ENOMEM; + } + + /* clear burst & store frame number of first burst */ + if (bid == 0) { + memset(*bursts_p, 0, 464); + *mask = 0x0; + *first_fn = bi->fn; + *rssi_sum = 0; + *rssi_num = 0; + *toa256_sum = 0; + *toa_num = 0; + *ci_cb_sum = 0; + *ci_cb_num = 0; + } + + /* update mask + RSSI */ + *mask |= (1 << bid); + *rssi_sum += bi->rssi; + (*rssi_num)++; + *toa256_sum += bi->toa256; + (*toa_num)++; + + /* C/I: Carrier-to-Interference ratio (in centiBels) */ + if (bi->flags & TRX_BI_F_CI_CB) { + *ci_cb_sum += bi->ci_cb; + (*ci_cb_num)++; + } + + /* Copy burst to buffer of 4 bursts. If the burst indication contains + * no data, ensure that the buffer does not stay uninitialized */ + burst = *bursts_p + bid * 116; + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 58 * 2); + + /* wait until complete set of bursts */ + if (bid != 3) + return 0; + + /* check for complete set of bursts */ + if ((*mask & 0xf) != 0xf) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received incomplete data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + + /* we require first burst to have correct FN */ + if (!(*mask & 0x1)) { + *mask = 0x0; + return 0; + } + } + *mask = 0x0; + + /* decode */ + rc = gsm0503_xcch_decode(l2, *bursts_p, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, + "Received bad data (%u/%u)\n", + bi->fn % l1ts->mf_period, l1ts->mf_period); + l2_len = 0; + } else + l2_len = GSM_MACBLOCK_LEN; + + lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; + ber10k = compute_ber10k(n_bits_total, n_errors); + return _sched_compose_ph_data_ind(l1t, bi->tn, *first_fn, + chan, l2, l2_len, + *rssi_sum / *rssi_num, + *toa256_sum / *toa_num, + lqual_cb, ber10k, + PRES_INFO_UNKNOWN); +} + +/* obtain a to-be-transmitted xCCH (e.g SACCH or SDCCH) burst */ +ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, + enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +{ + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct msgb *msg = NULL; /* make GCC happy */ + ubit_t *burst, **bursts_p = &l1ts->chan_state[chan].dl_bursts; + static ubit_t bits[GSM_BURST_LEN]; + + /* send burst, if we already got a frame */ + if (bid > 0) { + if (!*bursts_p) + return NULL; + goto send_burst; + } + + /* get mac block from queue */ + msg = _sched_dequeue_prim(l1t, tn, fn, chan); + if (msg) + goto got_msg; + + LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + +no_msg: + /* free burst memory */ + if (*bursts_p) { + talloc_free(*bursts_p); + *bursts_p = NULL; + } + return NULL; + +got_msg: + /* check validity of message */ + if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { + LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " + "(len=%d)\n", msgb_l2len(msg)); + /* free message */ + msgb_free(msg); + goto no_msg; + } + + /* BURST BYPASS */ + + /* handle loss detection of SACCH */ + if (L1SAP_IS_LINK_SACCH(trx_chan_desc[chan].link_id)) { + /* count and send BFI */ + if (++(l1ts->chan_state[chan].lost_frames) > 1) { + /* TODO: Should we pass old TOA here? Otherwise we risk + * unnecessary decreasing TA */ + + /* Note: RSSI is set to 0 to indicate to the higher + * layers that this is a faked ph_data_ind */ + _sched_compose_ph_data_ind(l1t, tn, 0, chan, NULL, 0, + 0, 0, 0, 10000, + PRES_INFO_INVALID); + } + } + + /* allocate burst memory, if not already */ + if (!*bursts_p) { + *bursts_p = talloc_zero_size(tall_bts_ctx, 464); + if (!*bursts_p) + return NULL; + } + + /* encode bursts */ + gsm0503_xcch_encode(*bursts_p, msg->l2h); + + /* free message */ + msgb_free(msg); + +send_burst: + /* compose burst */ + burst = *bursts_p + bid * 116; + memset(bits, 0, 3); + memcpy(bits + 3, burst, 58); + memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(bits + 87, burst + 58, 58); + memset(bits + 145, 0, 3); + + if (nbits) + *nbits = GSM_BURST_LEN; + + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + + return bits; +} diff --git a/src/osmo-bts-trx/sched_utils.h b/src/osmo-bts-trx/sched_utils.h new file mode 100644 index 0000000..4a1aaf5 --- /dev/null +++ b/src/osmo-bts-trx/sched_utils.h @@ -0,0 +1,42 @@ +/* Auxiliary scheduler utilities. + * + * (C) 2017 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 General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include + +extern void *tall_bts_ctx; + +/* Compute the bit error rate in 1/10000 units */ +static inline uint16_t compute_ber10k(int n_bits_total, int n_errors) +{ + if (n_bits_total == 0) + return 10000; + else + return 10000 * n_errors / n_bits_total; +} + +/* determine if the FN is transmitting a CMR (1) or not (0) */ +static inline int fn_is_codec_mode_request(uint32_t fn) +{ + return (((fn + 4) % 26) >> 2) & 1; +} diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 97b590d..4fb0e23 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -32,12 +32,8 @@ #include #include #include -#include -#include #include #include -#include -#include #include @@ -45,33 +41,11 @@ #include #include #include -#include #include #include -#include #include "l1_if.h" #include "trx_if.h" -#include "loops.h" - -extern void *tall_bts_ctx; - -/* Maximum size of a EGPRS message in bytes */ -#define EGPRS_0503_MAX_BYTES 155 - - -/* Compute the bit error rate in 1/10000 units */ -static inline uint16_t compute_ber10k(int n_bits_total, int n_errors) -{ - if (n_bits_total == 0) - return 10000; - else - return 10000 * n_errors / n_bits_total; -} - -/* - * TX on downlink - */ /* an IDLE burst returns nothing. on C0 it is replaced by dummy burst */ ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, @@ -85,1542 +59,6 @@ return NULL; } -/* obtain a to-be-transmitted FCCH (frequency correction channel) burst */ -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting FCCH\n"); - - if (nbits) - *nbits = GSM_BURST_LEN; - - /* BURST BYPASS */ - - return (ubit_t *) _sched_fcch_burst; -} - -/* obtain a to-be-transmitted SCH (synchronization channel) burst */ -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - static ubit_t bits[GSM_BURST_LEN], burst[78]; - uint8_t sb_info[4]; - struct gsm_time t; - uint8_t t3p, bsic; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting SCH\n"); - - /* BURST BYPASS */ - - /* create SB info from GSM time and BSIC */ - gsm_fn2gsmtime(&t, fn); - t3p = t.t3 / 10; - bsic = l1t->trx->bts->bsic; - sb_info[0] = - ((bsic & 0x3f) << 2) | - ((t.t1 & 0x600) >> 9); - sb_info[1] = - ((t.t1 & 0x1fe) >> 1); - sb_info[2] = - ((t.t1 & 0x001) << 7) | - ((t.t2 & 0x1f) << 2) | - ((t3p & 0x6) >> 1); - sb_info[3] = - (t3p & 0x1); - - /* encode bursts */ - gsm0503_sch_encode(burst, sb_info); - - /* compose burst */ - memset(bits, 0, 3); - memcpy(bits + 3, burst, 39); - memcpy(bits + 42, _sched_sch_train, 64); - memcpy(bits + 106, burst + 39, 39); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - return bits; -} - -/* obtain a to-be-transmitted data (SACCH/SDCCH) burst */ -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; - struct msgb *msg = NULL; /* make GCC happy */ - ubit_t *burst, **bursts_p = &l1ts->chan_state[chan].dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); - if (msg) - goto got_msg; - - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); - -no_msg: - /* free burst memory */ - if (*bursts_p) { - talloc_free(*bursts_p); - *bursts_p = NULL; - } - return NULL; - -got_msg: - /* check validity of message */ - if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " - "(len=%d)\n", msgb_l2len(msg)); - /* free message */ - msgb_free(msg); - goto no_msg; - } - - /* BURST BYPASS */ - - /* handle loss detection of SACCH */ - if (L1SAP_IS_LINK_SACCH(trx_chan_desc[chan].link_id)) { - /* count and send BFI */ - if (++(l1ts->chan_state[chan].lost_frames) > 1) { - /* TODO: Should we pass old TOA here? Otherwise we risk - * unnecessary decreasing TA */ - - /* Note: RSSI is set to 0 to indicate to the higher - * layers that this is a faked ph_data_ind */ - _sched_compose_ph_data_ind(l1t, tn, 0, chan, NULL, 0, - 0, 0, 0, 10000, - PRES_INFO_INVALID); - } - } - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 464); - if (!*bursts_p) - return NULL; - } - - /* encode bursts */ - gsm0503_xcch_encode(*bursts_p, msg->l2h); - - /* free message */ - msgb_free(msg); - -send_burst: - /* compose burst */ - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - -/* obtain a to-be-transmitted PDTCH (packet data) burst */ -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[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; - static ubit_t bits[EGPRS_BURST_LEN]; - int rc = 0; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); - if (msg) - goto got_msg; - - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); - -no_msg: - /* free burst memory */ - if (*bursts_p) { - talloc_free(*bursts_p); - *bursts_p = NULL; - } - return NULL; - -got_msg: - /* BURST BYPASS */ - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, - GSM0503_EGPRS_BURSTS_NBITS); - if (!*bursts_p) - return NULL; - } - - /* encode bursts */ - rc = gsm0503_pdtch_egprs_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); - if (rc < 0) - rc = gsm0503_pdtch_encode(*bursts_p, msg->l2h, msg->tail - msg->l2h); - - /* check validity of message */ - if (rc < 0) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim invalid length, please FIX! " - "(len=%ld)\n", (long)(msg->tail - msg->l2h)); - /* free message */ - msgb_free(msg); - goto no_msg; - } else if (rc == GSM0503_EGPRS_BURSTS_NBITS) { - *burst_type = TRX_BURST_8PSK; - } else { - *burst_type = TRX_BURST_GMSK; - } - - /* free message */ - msgb_free(msg); - -send_burst: - /* compose burst */ - if (*burst_type == TRX_BURST_8PSK) { - burst = *bursts_p + bid * 348; - memset(bits, 1, 9); - memcpy(bits + 9, burst, 174); - memcpy(bits + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); - memcpy(bits + 261, burst + 174, 174); - memset(bits + 435, 1, 9); - - if (nbits) - *nbits = EGPRS_BURST_LEN; - } else { - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - } - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - -/* determine if the FN is transmitting a CMR (1) or not (0) */ -static inline int fn_is_codec_mode_request(uint32_t fn) -{ - return (((fn + 4) % 26) >> 2) & 1; -} - -/* common section for generation of TCH bursts (TCH/H and TCH/F) */ -static void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, struct msgb **_msg_tch, - struct msgb **_msg_facch) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct msgb *msg1, *msg2, *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - uint8_t rsl_cmode = chan_state->rsl_cmode; - uint8_t tch_mode = chan_state->tch_mode; - struct osmo_phsap_prim *l1sap; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int16_t toa256; - - /* handle loss detection of received TCH frames */ - if (rsl_cmode == RSL_CMOD_SPD_SPEECH - && ++(chan_state->lost_frames) > 5) { - uint8_t tch_data[GSM_FR_BYTES]; - int len; - - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, - "Missing TCH bursts detected, sending BFI\n"); - - /* indicate bad frame */ - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR / HR */ - if (chan != TRXC_TCHF) { /* HR */ - tch_data[0] = 0x70; /* F = 0, FT = 111 */ - memset(tch_data + 1, 0, 14); - len = 15; - break; - } - memset(tch_data, 0, GSM_FR_BYTES); - len = GSM_FR_BYTES; - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - if (chan != TRXC_TCHF) - goto inval_mode1; - memset(tch_data, 0, GSM_EFR_BYTES); - len = GSM_EFR_BYTES; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - len = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->dl_cmr], - chan_state->codec[chan_state->dl_ft], AMR_BAD); - if (len < 2) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, - "Failed to encode AMR_BAD frame (rc=%d), " - "not sending BFI\n", len); - return; - } - memset(tch_data + 2, 0, len - 2); - break; - default: -inval_mode1: - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); - len = 0; - } - - if (len) { - if (*toa_num == 0) - toa256 = 0; - else - toa256 = *toa256_sum / *toa_num; - - /* Note: RSSI is set to 0 to indicate to the higher - * layers that this is a faked tch_ind */ - _sched_compose_tch_ind(l1t, tn, fn, chan, tch_data, len, toa256, 10000, 0, 0); - } - } - - /* get frame and unlink from queue */ - msg1 = _sched_dequeue_prim(l1t, tn, fn, chan); - msg2 = _sched_dequeue_prim(l1t, tn, fn, chan); - if (msg1) { - l1sap = msgb_l1sap_prim(msg1); - if (l1sap->oph.primitive == PRIM_TCH) { - msg_tch = msg1; - if (msg2) { - l1sap = msgb_l1sap_prim(msg2); - if (l1sap->oph.primitive == PRIM_TCH) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, - "TCH twice, please FIX!\n"); - msgb_free(msg2); - } else - msg_facch = msg2; - } - } else { - msg_facch = msg1; - if (msg2) { - l1sap = msgb_l1sap_prim(msg2); - if (l1sap->oph.primitive != PRIM_TCH) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, - "FACCH twice, please FIX!\n"); - msgb_free(msg2); - } else - msg_tch = msg2; - } - } - } else if (msg2) { - l1sap = msgb_l1sap_prim(msg2); - if (l1sap->oph.primitive == PRIM_TCH) - msg_tch = msg2; - else - msg_facch = msg2; - } - - /* check validity of message */ - if (msg_facch && msgb_l2len(msg_facch) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " - "(len=%d)\n", msgb_l2len(msg_facch)); - /* free message */ - msgb_free(msg_facch); - msg_facch = NULL; - } - - /* check validity of message, get AMR ft and cmr */ - if (!msg_facch && msg_tch) { - int len; - uint8_t cmr_codec; - int cmr, ft, i; - enum osmo_amr_type ft_codec; - enum osmo_amr_quality bfi; - int8_t sti, cmi; - - if (rsl_cmode != RSL_CMOD_SPD_SPEECH) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Dropping speech frame, " - "because we are not in speech mode\n"); - goto free_bad_msg; - } - - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR / HR */ - if (chan != TRXC_TCHF) /* HR */ - len = 15; - else - len = GSM_FR_BYTES; - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - if (chan != TRXC_TCHF) - goto inval_mode2; - len = GSM_EFR_BYTES; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - len = osmo_amr_rtp_dec(msg_tch->l2h, msgb_l2len(msg_tch), - &cmr_codec, &cmi, &ft_codec, - &bfi, &sti); - cmr = -1; - ft = -1; - for (i = 0; i < chan_state->codecs; i++) { - if (chan_state->codec[i] == cmr_codec) - cmr = i; - if (chan_state->codec[i] == ft_codec) - ft = i; - } - if (cmr >= 0) { /* new request */ - chan_state->dl_cmr = cmr; - /* disable AMR loop */ - trx_loop_amr_set(chan_state, 0); - } else { - /* enable AMR loop */ - trx_loop_amr_set(chan_state, 1); - } - if (ft < 0) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, - "Codec (FT = %d) of RTP frame not in list\n", ft_codec); - goto free_bad_msg; - } - if (fn_is_codec_mode_request(fn) && chan_state->dl_ft != ft) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Codec (FT = %d) " - " of RTP cannot be changed now, but in next frame\n", ft_codec); - goto free_bad_msg; - } - chan_state->dl_ft = ft; - if (bfi == AMR_BAD) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, - "Transmitting 'bad AMR frame'\n"); - goto free_bad_msg; - } - break; - default: -inval_mode2: - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "TCH mode invalid, please fix!\n"); - goto free_bad_msg; - } - if (len < 0) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send invalid AMR payload\n"); - goto free_bad_msg; - } - if (msgb_l2len(msg_tch) != len) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot send payload with " - "invalid length! (expecting %d, received %d)\n", - len, msgb_l2len(msg_tch)); -free_bad_msg: - /* free message */ - msgb_free(msg_tch); - msg_tch = NULL; - goto send_frame; - } - } - -send_frame: - *_msg_tch = msg_tch; - *_msg_facch = msg_facch; -} - -/* obtain a to-be-transmitted TCH/F (Full Traffic Channel) burst */ -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - uint8_t tch_mode = chan_state->tch_mode; - ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); - - /* BURST BYPASS */ - - /* allocate burst memory, if not already, - * otherwise shift buffer by 4 bursts for interleaving */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 928); - if (!*bursts_p) - return NULL; - } else { - memcpy(*bursts_p, *bursts_p + 464, 464); - memset(*bursts_p + 464, 0, 464); - } - - /* no message at all */ - if (!msg_tch && !msg_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); - goto send_burst; - } - - /* encode bursts (prioritize FACCH) */ - if (msg_facch) - gsm0503_tch_fr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch), - 1); - else if (tch_mode == GSM48_CMODE_SPEECH_AMR) - /* the first FN 4,13,21 defines that CMI is included in frame, - * the first FN 0,8,17 defines that CMR is included in frame. - */ - gsm0503_tch_afs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), - chan_state->codec, chan_state->codecs, - chan_state->dl_ft, - chan_state->dl_cmr); - else - gsm0503_tch_fr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch), 1); - - /* free message */ - if (msg_tch) - msgb_free(msg_tch); - if (msg_facch) - msgb_free(msg_facch); - -send_burst: - /* compose burst */ - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - -/* obtain a to-be-transmitted TCH/H (Half Traffic Channel) burst */ -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) -{ - struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - uint8_t tch_mode = chan_state->tch_mode; - ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; - - /* send burst, if we already got a frame */ - if (bid > 0) { - if (!*bursts_p) - return NULL; - goto send_burst; - } - - /* get TCH and/or FACCH */ - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); - - /* check for FACCH alignment */ - if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " - "even frames, please fix RTS!\n"); - msgb_free(msg_facch); - msg_facch = NULL; - } - - /* BURST BYPASS */ - - /* allocate burst memory, if not already, - * otherwise shift buffer by 2 bursts for interleaving */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 696); - if (!*bursts_p) - return NULL; - } else { - memcpy(*bursts_p, *bursts_p + 232, 232); - if (chan_state->dl_ongoing_facch) { - memcpy(*bursts_p + 232, *bursts_p + 464, 232); - memset(*bursts_p + 464, 0, 232); - } else { - memset(*bursts_p + 232, 0, 232); - } - } - - /* no message at all */ - if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); - goto send_burst; - } - - /* encode bursts (prioritize FACCH) */ - if (msg_facch) { - gsm0503_tch_hr_encode(*bursts_p, msg_facch->l2h, msgb_l2len(msg_facch)); - chan_state->dl_ongoing_facch = 1; /* first of two TCH frames */ - } else if (chan_state->dl_ongoing_facch) /* second of two TCH frames */ - chan_state->dl_ongoing_facch = 0; /* we are done with FACCH */ - else if (tch_mode == GSM48_CMODE_SPEECH_AMR) - /* the first FN 4,13,21 or 5,14,22 defines that CMI is included - * in frame, the first FN 0,8,17 or 1,9,18 defines that CMR is - * included in frame. */ - gsm0503_tch_ahs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), - chan_state->codec, chan_state->codecs, - chan_state->dl_ft, - chan_state->dl_cmr); - else - gsm0503_tch_hr_encode(*bursts_p, msg_tch->l2h, msgb_l2len(msg_tch)); - - /* free message */ - if (msg_tch) - msgb_free(msg_tch); - if (msg_facch) - msgb_free(msg_facch); - -send_burst: - /* compose burst */ - burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); - - if (nbits) - *nbits = GSM_BURST_LEN; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); - - return bits; -} - - -/* - * RX on uplink (indication to upper layer) - */ - -/* 3GPP TS 05.02, section 5.2.7 */ -#define RACH_EXT_TAIL_LEN 8 -#define RACH_SYNCH_SEQ_LEN 41 - -enum rach_synch_seq_t { - RACH_SYNCH_SEQ_UNKNOWN = -1, - RACH_SYNCH_SEQ_TS0, /* GSM, GMSK (default) */ - RACH_SYNCH_SEQ_TS1, /* EGPRS, 8-PSK */ - RACH_SYNCH_SEQ_TS2, /* EGPRS, GMSK */ - RACH_SYNCH_SEQ_NUM -}; - -static struct value_string rach_synch_seq_names[] = { - { RACH_SYNCH_SEQ_UNKNOWN, "UNKNOWN" }, - { RACH_SYNCH_SEQ_TS0, "TS0: GSM, GMSK" }, - { RACH_SYNCH_SEQ_TS1, "TS1: EGPRS, 8-PSK" }, - { RACH_SYNCH_SEQ_TS2, "TS2: EGPRS, GMSK" }, - { 0, NULL }, -}; - -static enum rach_synch_seq_t rach_get_synch_seq(sbit_t *bits, int *best_score) -{ - sbit_t *synch_seq_burst = bits + RACH_EXT_TAIL_LEN; - enum rach_synch_seq_t seq = RACH_SYNCH_SEQ_TS0; - int score[RACH_SYNCH_SEQ_NUM] = { 0 }; - int max_score = INT_MIN; - int i, j; - - /* 3GPP TS 05.02, section 5.2.7 "Access burst (AB)", synch. sequence bits */ - static const char synch_seq_ref[RACH_SYNCH_SEQ_NUM][RACH_SYNCH_SEQ_LEN] = { - [RACH_SYNCH_SEQ_TS0] = "01001011011111111001100110101010001111000", - [RACH_SYNCH_SEQ_TS1] = "01010100111110001000011000101111001001101", - [RACH_SYNCH_SEQ_TS2] = "11101111001001110101011000001101101110111", - }; - - /* Get a multiplier for j-th bit of i-th synch. sequence */ -#define RACH_SYNCH_SEQ_MULT \ - (synch_seq_ref[i][j] == '1' ? -1 : 1) - - /* For each synch. sequence, count the bit match score. Since we deal with - * soft-bits (-127...127), we sum the absolute values of matching ones, - * and subtract the absolute values of different ones, so the resulting - * score is more accurate than it could be with hard-bits. */ - for (i = 0; i < RACH_SYNCH_SEQ_NUM; i++) { - for (j = 0; j < RACH_SYNCH_SEQ_LEN; j++) - score[i] += RACH_SYNCH_SEQ_MULT * synch_seq_burst[j]; - - /* Keep the maximum value updated */ - if (score[i] > max_score) { - max_score = score[i]; - seq = i; - } - } - - /* Calculate an approximate level of our confidence */ - if (best_score != NULL) - *best_score = max_score; - - /* At least 1/3 of a synch. sequence shall match */ - if (max_score < (127 * RACH_SYNCH_SEQ_LEN / 3)) - return RACH_SYNCH_SEQ_UNKNOWN; - - return seq; -} - -int rx_rach_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct osmo_phsap_prim l1sap; - int n_errors = 0; - int n_bits_total = 0; - uint16_t ra11; - uint8_t ra; - int rc; - - /* TSC (Training Sequence Code) is an optional parameter of the UL burst - * indication. We need this information in order to decide whether an - * Access Burst is 11-bit encoded or not (see OS#1854). If this information - * is absent, we try to correlate the received synch. sequence with the - * known ones (3GPP TS 05.02, section 5.2.7), and fall-back to the default - * TS0 if it fails. */ - enum rach_synch_seq_t synch_seq = RACH_SYNCH_SEQ_TS0; - int best_score = 127 * RACH_SYNCH_SEQ_LEN; - - /* If logical channel is not either of RACH, PDTCH or PTCCH, this is a - * handover Access Burst, which is always encoded as 8-bit and shall - * contain the generic training sequence (TS0). */ - if (chan == TRXC_RACH || chan == TRXC_PDTCH || chan == TRXC_PTCCH) { - if (bi->flags & TRX_BI_F_TS_INFO) - synch_seq = (enum rach_synch_seq_t) bi->tsc; - else - synch_seq = rach_get_synch_seq((sbit_t *) bi->burst, &best_score); - } - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received%s RACH (%s): rssi=%d toa256=%d", - (chan != TRXC_RACH) ? " handover" : "", - get_value_string(rach_synch_seq_names, synch_seq), - bi->rssi, bi->toa256); - if (bi->flags & TRX_BI_F_CI_CB) - LOGPC(DL1P, LOGL_DEBUG, " C/I=%d cB", bi->ci_cb); - else - LOGPC(DL1P, LOGL_DEBUG, " match=%.1f%%", - best_score * 100.0 / (127 * RACH_SYNCH_SEQ_LEN)); - LOGPC(DL1P, LOGL_DEBUG, "\n"); - - /* Compose a new L1SAP primitive */ - memset(&l1sap, 0x00, sizeof(l1sap)); - osmo_prim_init(&l1sap.oph, SAP_GSM_PH, PRIM_PH_RACH, PRIM_OP_INDICATION, NULL); - l1sap.u.rach_ind.chan_nr = trx_chan_desc[chan].chan_nr | bi->tn; - l1sap.u.rach_ind.acc_delay = (bi->toa256 >= 0) ? bi->toa256 / 256 : 0; - l1sap.u.rach_ind.acc_delay_256bits = bi->toa256; - l1sap.u.rach_ind.rssi = bi->rssi; - l1sap.u.rach_ind.fn = bi->fn; - - /* Link quality is defined by C/I (Carrier-to-Interference ratio), - * which has optional presence. If it's absent, report the - * minimum acceptable value to pass L1SAP checks. */ - if (bi->flags & TRX_BI_F_CI_CB) - l1sap.u.rach_ind.lqual_cb = bi->ci_cb; - else - l1sap.u.rach_ind.lqual_cb = l1t->trx->bts->min_qual_rach; - - /* Decode RACH depending on its synch. sequence */ - switch (synch_seq) { - case RACH_SYNCH_SEQ_TS1: - case RACH_SYNCH_SEQ_TS2: - rc = gsm0503_rach_ext_decode_ber(&ra11, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, - l1t->trx->bts->bsic, &n_errors, &n_bits_total); - if (rc) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received bad Access Burst\n"); - return 0; - } - - if (synch_seq == RACH_SYNCH_SEQ_TS1) - l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_1; - else - l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_2; - - l1sap.u.rach_ind.is_11bit = 1; - l1sap.u.rach_ind.ra = ra11; - break; - - case RACH_SYNCH_SEQ_TS0: - default: - /* Fall-back to the default TS0 if needed */ - if (synch_seq != RACH_SYNCH_SEQ_TS0) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Falling-back to the default TS0\n"); - synch_seq = RACH_SYNCH_SEQ_TS0; - } - - rc = gsm0503_rach_decode_ber(&ra, bi->burst + RACH_EXT_TAIL_LEN + RACH_SYNCH_SEQ_LEN, - l1t->trx->bts->bsic, &n_errors, &n_bits_total); - if (rc) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received bad Access Burst\n"); - return 0; - } - - l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0; - l1sap.u.rach_ind.is_11bit = 0; - l1sap.u.rach_ind.ra = ra; - break; - } - - l1sap.u.rach_ind.ber10k = compute_ber10k(n_bits_total, n_errors); - - /* forward primitive */ - l1sap_up(l1t->trx, &l1sap); - - return 0; -} - -/*! \brief a single (SDCCH/SACCH) burst was received by the PHY, process it */ -int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint32_t *first_fn = &chan_state->ul_first_fn; - uint8_t *mask = &chan_state->ul_mask; - float *rssi_sum = &chan_state->rssi_sum; - uint8_t *rssi_num = &chan_state->rssi_num; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int32_t *ci_cb_sum = &chan_state->ci_cb_sum; - uint8_t *ci_cb_num = &chan_state->ci_cb_num; - uint8_t l2[GSM_MACBLOCK_LEN], l2_len; - int n_errors = 0; - int n_bits_total = 0; - int16_t lqual_cb; - uint16_t ber10k; - int rc; - - /* If handover RACH detection is turned on, treat this burst as an Access Burst. - * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ - if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) - return rx_rach_fn(l1t, chan, bid, bi); - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received Data, bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 464); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst & store frame number of first burst */ - if (bid == 0) { - memset(*bursts_p, 0, 464); - *mask = 0x0; - *first_fn = bi->fn; - *rssi_sum = 0; - *rssi_num = 0; - *toa256_sum = 0; - *toa_num = 0; - *ci_cb_sum = 0; - *ci_cb_num = 0; - } - - /* update mask + RSSI */ - *mask |= (1 << bid); - *rssi_sum += bi->rssi; - (*rssi_num)++; - *toa256_sum += bi->toa256; - (*toa_num)++; - - /* C/I: Carrier-to-Interference ratio (in centiBels) */ - if (bi->flags & TRX_BI_F_CI_CB) { - *ci_cb_sum += bi->ci_cb; - (*ci_cb_num)++; - } - - /* Copy burst to buffer of 4 bursts. If the burst indication contains - * no data, ensure that the buffer does not stay uninitialized */ - burst = *bursts_p + bid * 116; - if (bi->burst_len > 0) { - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - } else - memset(burst, 0, 58 * 2); - - /* wait until complete set of bursts */ - if (bid != 3) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0xf) != 0xf) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received incomplete data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - - /* we require first burst to have correct FN */ - if (!(*mask & 0x1)) { - *mask = 0x0; - return 0; - } - } - *mask = 0x0; - - /* decode */ - rc = gsm0503_xcch_decode(l2, *bursts_p, &n_errors, &n_bits_total); - if (rc) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - l2_len = 0; - } else - l2_len = GSM_MACBLOCK_LEN; - - lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; - ber10k = compute_ber10k(n_bits_total, n_errors); - return _sched_compose_ph_data_ind(l1t, bi->tn, *first_fn, - chan, l2, l2_len, - *rssi_sum / *rssi_num, - *toa256_sum / *toa_num, - lqual_cb, ber10k, - PRES_INFO_UNKNOWN); -} - -/*! \brief a single PDTCH burst was received by the PHY, process it */ -int rx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint32_t *first_fn = &chan_state->ul_first_fn; - uint8_t *mask = &chan_state->ul_mask; - float *rssi_sum = &chan_state->rssi_sum; - uint8_t *rssi_num = &chan_state->rssi_num; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int32_t *ci_cb_sum = &chan_state->ci_cb_sum; - uint8_t *ci_cb_num = &chan_state->ci_cb_num; - uint8_t l2[EGPRS_0503_MAX_BYTES]; - int n_errors = 0; - int n_bursts_bits = 0; - int n_bits_total = 0; - int16_t lqual_cb; - uint16_t ber10k; - int rc; - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received PDTCH bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, - GSM0503_EGPRS_BURSTS_NBITS); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst */ - if (bid == 0) { - memset(*bursts_p, 0, GSM0503_EGPRS_BURSTS_NBITS); - *mask = 0x0; - *first_fn = bi->fn; - *rssi_sum = 0; - *rssi_num = 0; - *toa256_sum = 0; - *toa_num = 0; - *ci_cb_sum = 0; - *ci_cb_num = 0; - } - - /* update mask + rssi */ - *mask |= (1 << bid); - *rssi_sum += bi->rssi; - (*rssi_num)++; - *toa256_sum += bi->toa256; - (*toa_num)++; - - /* C/I: Carrier-to-Interference ratio (in centiBels) */ - if (bi->flags & TRX_BI_F_CI_CB) { - *ci_cb_sum += bi->ci_cb; - (*ci_cb_num)++; - } - - /* copy burst to buffer of 4 bursts */ - if (bi->burst_len == EGPRS_BURST_LEN) { - burst = *bursts_p + bid * 348; - memcpy(burst, bi->burst + 9, 174); - memcpy(burst + 174, bi->burst + 261, 174); - n_bursts_bits = GSM0503_EGPRS_BURSTS_NBITS; - } else { - burst = *bursts_p + bid * 116; - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - n_bursts_bits = GSM0503_GPRS_BURSTS_NBITS; - } - - /* wait until complete set of bursts */ - if (bid != 3) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0xf) != 0xf) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received incomplete frame (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - } - *mask = 0x0; - - /* - * Attempt to decode EGPRS bursts first. For 8-PSK EGPRS this is all we - * do. Attempt GPRS decoding on EGPRS failure. If the burst is GPRS, - * then we incur decoding overhead of 31 bits on the Type 3 EGPRS - * header, which is tolerable. - */ - rc = gsm0503_pdtch_egprs_decode(l2, *bursts_p, n_bursts_bits, - NULL, &n_errors, &n_bits_total); - - if ((bi->burst_len == GSM_BURST_LEN) && (rc < 0)) { - rc = gsm0503_pdtch_decode(l2, *bursts_p, NULL, - &n_errors, &n_bits_total); - } - - if (rc <= 0) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received bad PDTCH (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - return 0; - } - - lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; - ber10k = compute_ber10k(n_bits_total, n_errors); - return _sched_compose_ph_data_ind(l1t, bi->tn, - *first_fn, chan, l2, rc, - *rssi_sum / *rssi_num, - *toa256_sum / *toa_num, - lqual_cb, ber10k, - PRES_INFO_BOTH); -} - -/*! \brief a single TCH/F burst was received by the PHY, process it */ -int rx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint8_t *mask = &chan_state->ul_mask; - uint8_t rsl_cmode = chan_state->rsl_cmode; - uint8_t tch_mode = chan_state->tch_mode; - uint8_t tch_data[128]; /* just to be safe */ - int rc, amr = 0; - int n_errors = 0; - int n_bits_total = 0; - bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); - unsigned int fn_begin; - uint16_t ber10k; - uint8_t is_sub = 0; - uint8_t ft; - - /* If handover RACH detection is turned on, treat this burst as an Access Burst. - * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ - if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) - return rx_rach_fn(l1t, chan, bid, bi); - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received TCH/F, bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 928); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst */ - if (bid == 0) { - memset(*bursts_p + 464, 0, 464); - *mask = 0x0; - } - - /* update mask */ - *mask |= (1 << bid); - - /* copy burst to end of buffer of 8 bursts */ - burst = *bursts_p + bid * 116 + 464; - if (bi->burst_len > 0) { - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - } else - memset(burst, 0, 116); - - /* wait until complete set of bursts */ - if (bid != 3) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0xf) != 0xf) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received incomplete frame (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - } - *mask = 0x0; - - /* decode - * also shift buffer by 4 bursts for interleaving */ - switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 - : tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR */ - rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 0, &n_errors, &n_bits_total); - if (rc >= 0) - lchan_set_marker(osmo_fr_check_sid(tch_data, rc), lchan); /* DTXu */ - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 1, &n_errors, &n_bits_total); - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - /* the first FN 0,8,17 defines that CMI is included in frame, - * the first FN 4,13,21 defines that CMR is included in frame. - * NOTE: A frame ends 7 FN after start. - */ - - /* The AFS_ONSET frame itself does not result into an RTP frame - * since it only contains a recognition pattern that marks the - * end of the DTX interval. To mark the end of the DTX interval - * in the RTP stream as well, the voice frame after the - * AFS_ONSET frame is used. */ - if (chan_state->amr_last_dtx == AFS_ONSET) - lchan_set_marker(false, lchan); - - /* we store tch_data + 2 header bytes, the amr variable set to - * 2 will allow us to skip the first 2 bytes in case we did - * receive an FACCH frame instead of a voice frame (we do not - * know this before we actually decode the frame) */ - amr = 2; - rc = gsm0503_tch_afs_decode_dtx(tch_data + amr, *bursts_p, - (((bi->fn + 26 - 7) % 26) >> 2) & 1, chan_state->codec, - chan_state->codecs, &chan_state->ul_ft, - &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); - - /* Tag all frames that are not regular AMR voice frames as - * SUB-Frames */ - if (chan_state->amr_last_dtx != AMR_OTHER) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received AMR SID frame: %s\n", - gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); - is_sub = 1; - } - - /* The occurrence of the following frames indicates that we - * are either at the beginning or in the middle of a talk - * spurt. We update the SID status accordingly, but we do - * not want the marker to be set, since this must only - * happen when the talk spurt is over (see above) */ - switch (chan_state->amr_last_dtx) { - case AFS_SID_FIRST: - case AFS_SID_UPDATE: - case AFS_SID_UPDATE_CN: - lchan_set_marker(true, lchan); - lchan->rtp_tx_marker = false; - break; - } - - if (rc) - trx_loop_amr_input(l1t, - trx_chan_desc[chan].chan_nr | bi->tn, chan_state, - n_errors, n_bits_total); - /* only good speech frames get rtp header */ - if (rc != GSM_MACBLOCK_LEN && rc >= 4) { - if (chan_state->amr_last_dtx == AMR_OTHER) { - ft = chan_state->codec[chan_state->ul_cmr]; - } else { - /* SID frames will always get Frame Type Index 8 (AMR_SID) */ - ft = AMR_SID; - } - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->ul_cmr], - ft, AMR_GOOD); - } - - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", - tch_mode); - return -EINVAL; - } - memcpy(*bursts_p, *bursts_p + 464, 464); - - /* Check if the frame is bad */ - if (rc < 0) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - bfi_flag = true; - } else if (rc < 4) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u) with invalid codec mode %d\n", - bi->fn % l1ts->mf_period, l1ts->mf_period, rc); - bfi_flag = true; - } - - if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) - osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); - - ber10k = compute_ber10k(n_bits_total, n_errors); - if (bfi_flag) - goto bfi; - - /* FACCH */ - if (rc == GSM_MACBLOCK_LEN) { - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_F); - _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, - tch_data + amr, GSM_MACBLOCK_LEN, - /* FIXME: AVG RSSI and ToA256 */ - bi->rssi, bi->toa256, - 0 /* FIXME: AVG C/I */, - ber10k, PRES_INFO_UNKNOWN); -bfi: - if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { - /* indicate bad frame */ - if (lchan->tch.dtx.ul_sid) { - /* DTXu: pause in progress. Push empty payload to upper layers */ - rc = 0; - goto compose_l1sap; - } - - /* If there is an ECU active on this channel, use its output */ - if (lchan->ecu_state) { - rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); - if (rc >= 0) /* Otherwise we send a BFI */ - goto compose_l1sap; - } - - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* FR */ - memset(tch_data, 0, GSM_FR_BYTES); - tch_data[0] = 0xd0; - rc = GSM_FR_BYTES; - break; - case GSM48_CMODE_SPEECH_EFR: /* EFR */ - memset(tch_data, 0, GSM_EFR_BYTES); - tch_data[0] = 0xc0; - rc = GSM_EFR_BYTES; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->dl_cmr], - chan_state->codec[chan_state->dl_ft], - AMR_BAD); - if (rc < 2) { - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "Failed to encode AMR_BAD frame (rc=%d), " - "not sending BFI\n", rc); - return -EINVAL; - } - memset(tch_data + 2, 0, rc - 2); - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", tch_mode); - return -EINVAL; - } - } - } - - if (rsl_cmode != RSL_CMOD_SPD_SPEECH) - return 0; - - /* TCH or BFI */ -compose_l1sap: - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_F); - return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, - tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); -} - -/*! \brief a single TCH/H burst was received by the PHY, process it */ -int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, - uint8_t bid, const struct trx_ul_burst_ind *bi) -{ - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); - struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; - sbit_t *burst, **bursts_p = &chan_state->ul_bursts; - uint8_t *mask = &chan_state->ul_mask; - uint8_t rsl_cmode = chan_state->rsl_cmode; - uint8_t tch_mode = chan_state->tch_mode; - uint8_t tch_data[128]; /* just to be safe */ - int rc, amr = 0; - int n_errors = 0; - int n_bits_total = 0; - bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); - /* Note on FN-10: If we are at FN 10, we decoded an even aligned - * TCH/FACCH frame, because our burst buffer carries 6 bursts. - * Even FN ending at: 10,11,19,20,2,3 - */ - int fn_is_odd = (((bi->fn + 26 - 10) % 26) >> 2) & 1; - unsigned int fn_begin; - uint16_t ber10k; - uint8_t is_sub = 0; - uint8_t ft; - - /* If handover RACH detection is turned on, treat this burst as an Access Burst. - * Handle NOPE.ind as usually to ensure proper Uplink measurement reporting. */ - if (chan_state->ho_rach_detect == 1 && ~bi->flags & TRX_BI_F_NOPE_IND) - return rx_rach_fn(l1t, chan, bid, bi); - - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received TCH/H, bid=%u\n", bid); - - /* allocate burst memory, if not already */ - if (!*bursts_p) { - *bursts_p = talloc_zero_size(tall_bts_ctx, 696); - if (!*bursts_p) - return -ENOMEM; - } - - /* clear burst */ - if (bid == 0) { - memset(*bursts_p + 464, 0, 232); - *mask = 0x0; - } - - /* update mask */ - *mask |= (1 << bid); - - /* copy burst to end of buffer of 6 bursts */ - burst = *bursts_p + bid * 116 + 464; - if (bi->burst_len > 0) { - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); - } else - memset(burst, 0, 116); - - /* wait until complete set of bursts */ - if (bid != 1) - return 0; - - /* check for complete set of bursts */ - if ((*mask & 0x3) != 0x3) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received incomplete frame (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - } - *mask = 0x0; - - /* skip second of two TCH frames of FACCH was received */ - if (chan_state->ul_ongoing_facch) { - chan_state->ul_ongoing_facch = 0; - memcpy(*bursts_p, *bursts_p + 232, 232); - memcpy(*bursts_p + 232, *bursts_p + 464, 232); - ber10k = 0; - goto bfi; - } - - /* decode - * also shift buffer by 4 bursts for interleaving */ - switch ((rsl_cmode != RSL_CMOD_SPD_SPEECH) ? GSM48_CMODE_SPEECH_V1 - : tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* HR or signalling */ - /* Note on FN-10: If we are at FN 10, we decoded an even aligned - * TCH/FACCH frame, because our burst buffer carries 6 bursts. - * Even FN ending at: 10,11,19,20,2,3 - */ - rc = gsm0503_tch_hr_decode(tch_data, *bursts_p, - fn_is_odd, &n_errors, &n_bits_total); - if (rc >= 0) /* DTXu */ - lchan_set_marker(osmo_hr_check_sid(tch_data, rc), lchan); - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - /* the first FN 0,8,17 or 1,9,18 defines that CMI is included - * in frame, the first FN 4,13,21 or 5,14,22 defines that CMR - * is included in frame. - */ - - /* See comment in function rx_tchf_fn() */ - switch (chan_state->amr_last_dtx) { - case AHS_ONSET: - case AHS_SID_FIRST_INH: - case AHS_SID_UPDATE_INH: - lchan_set_marker(false, lchan); - break; - } - - /* See comment in function rx_tchf_fn() */ - amr = 2; - rc = gsm0503_tch_ahs_decode_dtx(tch_data + amr, *bursts_p, - fn_is_odd, fn_is_odd, chan_state->codec, - chan_state->codecs, &chan_state->ul_ft, - &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); - - /* Tag all frames that are not regular AMR voice frames - as SUB-Frames */ - if (chan_state->amr_last_dtx != AMR_OTHER) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, - "Received AMR SID frame: %s\n", - gsm0503_amr_dtx_frame_name(chan_state->amr_last_dtx)); - is_sub = 1; - } - - /* See comment in function rx_tchf_fn() */ - switch (chan_state->amr_last_dtx) { - case AHS_SID_FIRST_P1: - case AHS_SID_FIRST_P2: - case AHS_SID_UPDATE: - case AHS_SID_UPDATE_CN: - lchan_set_marker(true, lchan); - lchan->rtp_tx_marker = false; - break; - } - - if (rc) - trx_loop_amr_input(l1t, - trx_chan_desc[chan].chan_nr | bi->tn, chan_state, - n_errors, n_bits_total); - - /* only good speech frames get rtp header */ - if (rc != GSM_MACBLOCK_LEN && rc >= 4) { - if (chan_state->amr_last_dtx == AMR_OTHER) { - ft = chan_state->codec[chan_state->ul_cmr]; - } else { - /* SID frames will always get Frame Type Index 8 (AMR_SID) */ - ft = AMR_SID; - } - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->ul_cmr], - ft, AMR_GOOD); - } - - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", - tch_mode); - return -EINVAL; - } - memcpy(*bursts_p, *bursts_p + 232, 232); - memcpy(*bursts_p + 232, *bursts_p + 464, 232); - ber10k = compute_ber10k(n_bits_total, n_errors); - - - /* Check if the frame is bad */ - if (rc < 0) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u)\n", - bi->fn % l1ts->mf_period, l1ts->mf_period); - bfi_flag = true; - } else if (rc < 4) { - LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, - "Received bad data (%u/%u) with invalid codec mode %d\n", - bi->fn % l1ts->mf_period, l1ts->mf_period, rc); - bfi_flag = true; - } - - if (rc != GSM_MACBLOCK_LEN && lchan->ecu_state) - osmo_ecu_frame_in(lchan->ecu_state, bfi_flag, tch_data, rc); - - if (bfi_flag) - goto bfi; - - /* FACCH */ - if (rc == GSM_MACBLOCK_LEN) { - chan_state->ul_ongoing_facch = 1; - uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); - if (lchan->nr == 0) - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H0); - else - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H1); - _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, - tch_data + amr, GSM_MACBLOCK_LEN, - /* FIXME: AVG both RSSI and ToA */ - bi->rssi, bi->toa256, - 0 /* FIXME: AVG C/I */, - ber10k, PRES_INFO_UNKNOWN); -bfi: - /* FIXME: a FACCH/H frame replaces two speech frames, - * so we actually need to send two bad frame indications! */ - if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { - /* indicate bad frame */ - if (lchan->tch.dtx.ul_sid) { - /* DTXu: pause in progress. Push empty payload to upper layers */ - rc = 0; - goto compose_l1sap; - } - - /* If there is an ECU active on this channel, use its output */ - if (lchan->ecu_state) { - rc = osmo_ecu_frame_out(lchan->ecu_state, tch_data); - if (rc >= 0) /* Otherwise we send a BFI */ - goto compose_l1sap; - } - - switch (tch_mode) { - case GSM48_CMODE_SPEECH_V1: /* HR */ - tch_data[0] = 0x70; /* F = 0, FT = 111 */ - memset(tch_data + 1, 0, 14); - rc = 15; - break; - case GSM48_CMODE_SPEECH_AMR: /* AMR */ - rc = osmo_amr_rtp_enc(tch_data, - chan_state->codec[chan_state->dl_cmr], - chan_state->codec[chan_state->dl_ft], - AMR_BAD); - if (rc < 2) { - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "Failed to encode AMR_BAD frame (rc=%d), " - "not sending BFI\n", rc); - return -EINVAL; - } - memset(tch_data + 2, 0, rc - 2); - break; - default: - LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, - "TCH mode %u invalid, please fix!\n", tch_mode); - return -EINVAL; - } - } - } - - if (rsl_cmode != RSL_CMOD_SPD_SPEECH) - return 0; - -compose_l1sap: - /* TCH or BFI */ - /* Note on FN 19 or 20: If we received the last burst of a frame, - * it actually starts at FN 8 or 9. A burst starting there, overlaps - * with the slot 12, so an extra FN must be subtracted to get correct - * start of frame. - */ - if (lchan->nr == 0) - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H0); - else - fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H1); - return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, - tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); -} - /* schedule all frames of all TRX for given FN */ static int trx_sched_fn(struct gsm_bts *bts, uint32_t fn) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie5663fd90596b4800a4546675a323250bbb24c80 Gerrit-Change-Number: 18820 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 Jun 15 10:42:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 10:42:05 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: introduce and use struct trx_dl_burst_req In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18821 ) Change subject: osmo-bts-trx: introduce and use struct trx_dl_burst_req ...................................................................... osmo-bts-trx: introduce and use struct trx_dl_burst_req This change is similar to what we did for Uplink bursts: - group all Downlink burst parameters into a single structure, - allocate it once and pass a pointer to lchan handlers, - pass a pointer to trx_if_send_burst(). Given that the structure is allocated and (zero-)initialized in trx_sched_fn(), we can get rid of some memset() calls in lchan handlers and thus improve the overall performance a bit. Change-Id: If3014e69746559963569b77561dbf7b163c68ffa --- M include/osmo-bts/scheduler.h M include/osmo-bts/scheduler_backend.h M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_fcch_sch.c M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_lchan_xcch.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h M src/osmo-bts-virtual/scheduler_virtbts.c 12 files changed, 214 insertions(+), 241 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index 74102f3..a7bc6c7 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -250,6 +250,17 @@ size_t burst_len; }; +/*! DL burst request with the corresponding meta info */ +struct trx_dl_burst_req { + uint32_t fn; /*!< TDMA frame number */ + uint8_t tn; /*!< TDMA timeslot number */ + uint8_t att; /*!< Tx power attenuation */ + + /*! Burst hard-bits buffer */ + ubit_t burst[EGPRS_BURST_LEN]; + size_t burst_len; +}; + /*! Handle an UL burst received by PHY */ int trx_sched_ul_burst(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi); diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h index cfbe7f2..be23c47 100644 --- a/include/osmo-bts/scheduler_backend.h +++ b/include/osmo-bts/scheduler_backend.h @@ -9,9 +9,8 @@ typedef int trx_sched_rts_func(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, enum trx_chan_type chan); -typedef ubit_t *trx_sched_dl_func(struct l1sched_trx *l1t, uint8_t tn, - uint32_t fn, enum trx_chan_type chan, - uint8_t bid, uint16_t *nbits); +typedef int trx_sched_dl_func(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); typedef int trx_sched_ul_func(struct l1sched_trx *l1t, enum trx_chan_type chan, uint8_t bid, const struct trx_ul_burst_ind *bi); @@ -56,20 +55,21 @@ int16_t ta_offs_256bits, uint16_t ber10k, float rssi, uint8_t is_sub); -ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits); +int tx_idle_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_fcch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_sch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); +int tx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br); + int rx_rach_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, uint8_t bid, const struct trx_ul_burst_ind *bi); int rx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, @@ -81,7 +81,6 @@ int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, uint8_t bid, const struct trx_ul_burst_ind *bi); -const ubit_t *_sched_dl_burst(struct l1sched_trx *l1t, uint8_t tn, - uint32_t fn, uint16_t *nbits); +void _sched_dl_burst(struct l1sched_trx *l1t, struct trx_dl_burst_req *br); int _sched_rts(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn); void _sched_act_rach_det(struct l1sched_trx *l1t, uint8_t tn, uint8_t ss, int activate); diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 021a4cd..ed6c623 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1154,23 +1154,21 @@ } /* process downlink burst */ -const ubit_t *_sched_dl_burst(struct l1sched_trx *l1t, uint8_t tn, - uint32_t fn, uint16_t *nbits) +void _sched_dl_burst(struct l1sched_trx *l1t, struct trx_dl_burst_req *br) { - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); struct l1sched_chan_state *l1cs; const struct trx_sched_frame *frame; uint8_t offset, period, bid; trx_sched_dl_func *func; enum trx_chan_type chan; - ubit_t *bits = NULL; if (!l1ts->mf_index) goto no_data; /* get frame from multiframe */ period = l1ts->mf_period; - offset = fn % period; + offset = br->fn % period; frame = l1ts->mf_frames + offset; chan = frame->dl_chan; @@ -1180,42 +1178,37 @@ l1cs = &l1ts->chan_state[chan]; /* check if channel is active */ - if (!TRX_CHAN_IS_ACTIVE(l1cs, chan)) { - if (nbits) - *nbits = GSM_BURST_LEN; + if (!TRX_CHAN_IS_ACTIVE(l1cs, chan)) goto no_data; - } /* get burst from function */ - bits = func(l1t, tn, fn, chan, bid, nbits); + if (func(l1t, chan, bid, br) != 0) + goto no_data; /* encrypt */ - if (bits && l1cs->dl_encr_algo) { + if (br->burst_len && l1cs->dl_encr_algo) { ubit_t ks[114]; int i; - osmo_a5(l1cs->dl_encr_algo, l1cs->dl_encr_key, fn, ks, NULL); + osmo_a5(l1cs->dl_encr_algo, l1cs->dl_encr_key, br->fn, ks, NULL); for (i = 0; i < 57; i++) { - bits[i + 3] ^= ks[i]; - bits[i + 88] ^= ks[i + 57]; + br->burst[i + 3] ^= ks[i]; + br->burst[i + 88] ^= ks[i + 57]; } } no_data: /* in case of C0, we need a dummy burst to maintain RF power */ - if (bits == NULL && l1t->trx == l1t->trx->bts->c0) { + if (!br->burst_len && l1t->trx == l1t->trx->bts->c0) { #if 0 if (chan != TRXC_IDLE) // hack LOGP(DL1C, LOGL_DEBUG, "No burst data for %s fn=%u ts=%u " "burst=%d on C0, so filling with dummy burst\n", trx_chan_desc[chan].name, fn, tn, bid); #endif - bits = (ubit_t *) dummy_burst; - if (nbits) - *nbits = ARRAY_SIZE(dummy_burst); + memcpy(br->burst, dummy_burst, ARRAY_SIZE(dummy_burst)); + br->burst_len = ARRAY_SIZE(dummy_burst); } - - return bits; } #define TDMA_FN_SUM(a, b) \ diff --git a/src/osmo-bts-trx/sched_lchan_fcch_sch.c b/src/osmo-bts-trx/sched_lchan_fcch_sch.c index 63dd468..bc03f81 100644 --- a/src/osmo-bts-trx/sched_lchan_fcch_sch.c +++ b/src/osmo-bts-trx/sched_lchan_fcch_sch.c @@ -35,34 +35,32 @@ #include /* obtain a to-be-transmitted FCCH (frequency correction channel) burst */ -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_fcch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting FCCH\n"); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting FCCH\n"); - if (nbits) - *nbits = GSM_BURST_LEN; + memcpy(br->burst, _sched_fcch_burst, GSM_BURST_LEN); + br->burst_len = GSM_BURST_LEN; - /* BURST BYPASS */ - - return (ubit_t *) _sched_fcch_burst; + return 0; } /* obtain a to-be-transmitted SCH (synchronization channel) burst */ -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_sch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - static ubit_t bits[GSM_BURST_LEN], burst[78]; + ubit_t burst[78]; uint8_t sb_info[4]; struct gsm_time t; uint8_t t3p, bsic; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting SCH\n"); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting SCH\n"); /* BURST BYPASS */ /* create SB info from GSM time and BSIC */ - gsm_fn2gsmtime(&t, fn); + gsm_fn2gsmtime(&t, br->fn); t3p = t.t3 / 10; bsic = l1t->trx->bts->bsic; sb_info[0] = @@ -81,14 +79,11 @@ gsm0503_sch_encode(burst, sb_info); /* compose burst */ - memset(bits, 0, 3); - memcpy(bits + 3, burst, 39); - memcpy(bits + 42, _sched_sch_train, 64); - memcpy(bits + 106, burst + 39, 39); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 39); + memcpy(br->burst + 42, _sched_sch_train, 64); + memcpy(br->burst + 106, burst + 39, 39); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index 8b39797..259d336 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -154,30 +154,29 @@ } /* obtain a to-be-transmitted PDTCH (packet data) burst */ -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + 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; - static ubit_t bits[EGPRS_BURST_LEN]; int rc = 0; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (msg) goto got_msg; - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No prim for transmit.\n"); no_msg: /* free burst memory */ @@ -185,7 +184,7 @@ talloc_free(*bursts_p); *bursts_p = NULL; } - return NULL; + return -ENODEV; got_msg: /* BURST BYPASS */ @@ -195,7 +194,7 @@ *bursts_p = talloc_zero_size(tall_bts_ctx, GSM0503_EGPRS_BURSTS_NBITS); if (!*bursts_p) - return NULL; + return -ENOMEM; } /* encode bursts */ @@ -205,7 +204,7 @@ /* check validity of message */ if (rc < 0) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim invalid length, please FIX! " + LOGL1S(DL1P, LOGL_FATAL, l1t, br->tn, chan, br->fn, "Prim invalid length, please FIX! " "(len=%ld)\n", (long)(msg->tail - msg->l2h)); /* free message */ msgb_free(msg); @@ -223,27 +222,23 @@ /* compose burst */ if (*burst_type == TRX_BURST_8PSK) { burst = *bursts_p + bid * 348; - memset(bits, 1, 9); - memcpy(bits + 9, burst, 174); - memcpy(bits + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); - memcpy(bits + 261, burst + 174, 174); - memset(bits + 435, 1, 9); + memset(br->burst, 1, 9); + memcpy(br->burst + 9, burst, 174); + memcpy(br->burst + 183, _sched_egprs_tsc[gsm_ts_tsc(ts)], 78); + memcpy(br->burst + 261, burst + 174, 174); + memset(br->burst + 435, 1, 9); - if (nbits) - *nbits = EGPRS_BURST_LEN; + br->burst_len = EGPRS_BURST_LEN; } else { burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; } - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index fb11f45..80115a9 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -491,25 +491,24 @@ } /* obtain a to-be-transmitted TCH/F (Full Traffic Channel) burst */ -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[br->tn]; struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; uint8_t tch_mode = chan_state->tch_mode; ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch); /* BURST BYPASS */ @@ -518,7 +517,7 @@ if (!*bursts_p) { *bursts_p = talloc_zero_size(tall_bts_ctx, 928); if (!*bursts_p) - return NULL; + return -ENOMEM; } else { memcpy(*bursts_p, *bursts_p + 464, 464); memset(*bursts_p + 464, 0, 464); @@ -526,7 +525,7 @@ /* no message at all */ if (!msg_tch && !msg_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No TCH or FACCH prim for transmit.\n"); goto send_burst; } @@ -539,7 +538,7 @@ * the first FN 0,8,17 defines that CMR is included in frame. */ gsm0503_tch_afs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); @@ -555,16 +554,13 @@ send_burst: /* compose burst */ burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 1895038..8adaec3 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -313,30 +313,29 @@ struct msgb **_msg_tch, struct msgb **_msg_facch); /* obtain a to-be-transmitted TCH/H (Half Traffic Channel) burst */ -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + struct gsm_bts_trx_ts *ts = &l1t->trx->ts[br->tn]; struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; uint8_t tch_mode = chan_state->tch_mode; ubit_t *burst, **bursts_p = &chan_state->dl_bursts; - static ubit_t bits[GSM_BURST_LEN]; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } /* get TCH and/or FACCH */ - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch); /* check for FACCH alignment */ - if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " + if (msg_facch && ((((br->fn + 4) % 26) >> 2) & 1)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, br->tn, chan, br->fn, "Cannot transmit FACCH starting on " "even frames, please fix RTS!\n"); msgb_free(msg_facch); msg_facch = NULL; @@ -349,7 +348,7 @@ if (!*bursts_p) { *bursts_p = talloc_zero_size(tall_bts_ctx, 696); if (!*bursts_p) - return NULL; + return -ENOMEM; } else { memcpy(*bursts_p, *bursts_p + 232, 232); if (chan_state->dl_ongoing_facch) { @@ -362,7 +361,7 @@ /* no message at all */ if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No TCH or FACCH prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No TCH or FACCH prim for transmit.\n"); goto send_burst; } @@ -377,7 +376,7 @@ * in frame, the first FN 0,8,17 or 1,9,18 defines that CMR is * included in frame. */ gsm0503_tch_ahs_encode(*bursts_p, msg_tch->l2h + 2, - msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(fn), + msgb_l2len(msg_tch) - 2, fn_is_codec_mode_request(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); @@ -393,16 +392,13 @@ send_burst: /* compose burst */ burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c index a16553f..e2670d8 100644 --- a/src/osmo-bts-trx/sched_lchan_xcch.c +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -145,28 +145,27 @@ } /* obtain a to-be-transmitted xCCH (e.g SACCH or SDCCH) burst */ -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); - struct gsm_bts_trx_ts *ts = &l1t->trx->ts[tn]; + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); + 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; - static ubit_t bits[GSM_BURST_LEN]; /* send burst, if we already got a frame */ if (bid > 0) { if (!*bursts_p) - return NULL; + return 0; goto send_burst; } /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (msg) goto got_msg; - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "No prim for transmit.\n"); + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "No prim for transmit.\n"); no_msg: /* free burst memory */ @@ -174,12 +173,12 @@ talloc_free(*bursts_p); *bursts_p = NULL; } - return NULL; + return -ENODEV; got_msg: /* check validity of message */ if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! " + LOGL1S(DL1P, LOGL_FATAL, l1t, br->tn, chan, br->fn, "Prim not 23 bytes, please FIX! " "(len=%d)\n", msgb_l2len(msg)); /* free message */ msgb_free(msg); @@ -197,7 +196,7 @@ /* Note: RSSI is set to 0 to indicate to the higher * layers that this is a faked ph_data_ind */ - _sched_compose_ph_data_ind(l1t, tn, 0, chan, NULL, 0, + _sched_compose_ph_data_ind(l1t, br->tn, 0, chan, NULL, 0, 0, 0, 0, 10000, PRES_INFO_INVALID); } @@ -207,7 +206,7 @@ if (!*bursts_p) { *bursts_p = talloc_zero_size(tall_bts_ctx, 464); if (!*bursts_p) - return NULL; + return -ENOMEM; } /* encode bursts */ @@ -219,16 +218,13 @@ send_burst: /* compose burst */ burst = *bursts_p + bid * 116; - memset(bits, 0, 3); - memcpy(bits + 3, burst, 58); - memcpy(bits + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); - memcpy(bits + 87, burst + 58, 58); - memset(bits + 145, 0, 3); + memcpy(br->burst + 3, burst, 58); + memcpy(br->burst + 61, _sched_tsc[gsm_ts_tsc(ts)], 26); + memcpy(br->burst + 87, burst + 58, 58); - if (nbits) - *nbits = GSM_BURST_LEN; + br->burst_len = GSM_BURST_LEN; - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting burst=%u.\n", bid); + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting burst=%u.\n", bid); - return bits; + return 0; } diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 4fb0e23..6996593 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -48,25 +48,19 @@ #include "trx_if.h" /* an IDLE burst returns nothing. on C0 it is replaced by dummy burst */ -ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_idle_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Transmitting IDLE\n"); - - if (nbits) - *nbits = GSM_BURST_LEN; - - return NULL; + LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting IDLE\n"); + return 0; } /* schedule all frames of all TRX for given FN */ static int trx_sched_fn(struct gsm_bts *bts, uint32_t fn) { + struct trx_dl_burst_req br; struct gsm_bts_trx *trx; uint8_t tn; - const ubit_t *bits; - uint8_t gain; - uint16_t nbits = 0; /* send time indication */ l1if_mph_time_ind(bts, fn); @@ -91,15 +85,21 @@ /* ready-to-send */ _sched_rts(l1t, tn, (fn + plink->u.osmotrx.rts_advance) % GSM_HYPERFRAME); + + /* TODO: Tx attenuation is always 0? */ + br = (struct trx_dl_burst_req) { + .fn = fn, .tn = tn, + .att = 0, + }; + /* get burst for FN */ - bits = _sched_dl_burst(l1t, tn, fn, &nbits); - if (!bits) { + _sched_dl_burst(l1t, &br); + if (br.burst_len == 0) { /* if no bits, send no burst */ continue; - } else - gain = 0; - if (nbits) - trx_if_send_burst(l1h, tn, fn, gain, bits, nbits); + } + + trx_if_send_burst(l1h, &br); } } diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index ccbcd2f..1953f71 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1101,27 +1101,23 @@ /*! Send burst data for given FN/timeslot to TRX * \param[inout] l1h TRX Layer1 handle referring to TX - * \param[in] tn Timeslot Number (0..7) - * \param[in] fn GSM Frame Number - * \param[in] pwr Transmit Power to use - * \param[in] bits Unpacked bits to be transmitted - * \param[in] nbits Number of \a bits + * \param[in] br Downlink burst request structure * \returns 0 on success; negative on error */ -int trx_if_send_burst(struct trx_l1h *l1h, uint8_t tn, uint32_t fn, uint8_t pwr, - const ubit_t *bits, uint16_t nbits) +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 buf[TRX_DATA_MSG_MAX_LEN]; - if ((nbits != GSM_BURST_LEN) && (nbits != EGPRS_BURST_LEN)) { - LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Tx burst length %u invalid\n", nbits); + 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); return -1; } LOGPPHI(l1h->phy_inst, DTRX, LOGL_DEBUG, - "Tx burst (hdr_ver=%u): tn=%u fn=%u pwr=%u\n", - hdr_ver, tn, fn, pwr); + "Tx burst (hdr_ver=%u): tn=%u fn=%u att=%u\n", + hdr_ver, br->tn, br->fn, br->att); switch (hdr_ver) { case 0: @@ -1135,16 +1131,16 @@ return -ENOTSUP; } - buf[0] = ((hdr_ver & 0x0f) << 4) | tn; - osmo_store32be(fn, buf + 1); - buf[5] = pwr; + buf[0] = ((hdr_ver & 0x0f) << 4) | br->tn; + osmo_store32be(br->fn, buf + 1); + buf[5] = br->att; /* copy ubits {0,1} */ - memcpy(buf + 6, bits, nbits); + 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, buf, nbits + 6, 0); + snd_len = send(l1h->trx_ofd_data.fd, buf, br->burst_len + 6, 0); if (snd_len <= 0) { strerror_r(errno, (char *)buf, sizeof(buf)); LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 34335f8..16b6c76 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -1,6 +1,7 @@ #ifndef TRX_IF_H #define TRX_IF_H +struct trx_dl_burst_req; struct trx_l1h; struct trx_ctrl_msg { @@ -33,8 +34,7 @@ int trx_if_cmd_txtune(struct trx_l1h *l1h, uint16_t arfcn); int trx_if_cmd_handover(struct trx_l1h *l1h, uint8_t tn, uint8_t ss); int trx_if_cmd_nohandover(struct trx_l1h *l1h, uint8_t tn, uint8_t ss); -int trx_if_send_burst(struct trx_l1h *l1h, uint8_t tn, uint32_t fn, uint8_t pwr, - const ubit_t *bits, uint16_t nbits); +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 */ diff --git a/src/osmo-bts-virtual/scheduler_virtbts.c b/src/osmo-bts-virtual/scheduler_virtbts.c index eabd23b..d3fdf1a 100644 --- a/src/osmo-bts-virtual/scheduler_virtbts.c +++ b/src/osmo-bts-virtual/scheduler_virtbts.c @@ -173,72 +173,72 @@ */ /* an IDLE burst returns nothing. on C0 it is replaced by dummy burst */ -ubit_t *tx_idle_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_idle_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - return NULL; + return 0; } -ubit_t *tx_fcch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_fcch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - return NULL; + return 0; } -ubit_t *tx_sch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_sch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { - return NULL; + return 0; } -ubit_t *tx_data_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_data_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg; if (bid > 0) - return NULL; + return 0; /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (!msg) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - return NULL; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } /* check validity of message */ if (msgb_l2len(msg) != GSM_MACBLOCK_LEN) { - LOGL1S(DL1P, LOGL_FATAL, l1t, tn, chan, fn, "Prim not 23 bytes, please FIX! (len=%d)\n", + LOGL1S(DL1P, LOGL_FATAL, l1t, br->tn, chan, br->fn, "Prim not 23 bytes, please FIX! (len=%d)\n", msgb_l2len(msg)); /* free message */ msgb_free(msg); - return NULL; + return -EINVAL; } /* transmit the msg received on dl from bsc to layer1 (virt Um) */ - tx_to_virt_um(l1t, tn, fn, chan, msg); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg); - return NULL; + return 0; } -ubit_t *tx_pdtch_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_pdtch_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg = NULL; /* make GCC happy */ if (bid > 0) - return NULL; + return 0; /* get mac block from queue */ - msg = _sched_dequeue_prim(l1t, tn, fn, chan); + msg = _sched_dequeue_prim(l1t, br->tn, br->fn, chan); if (!msg) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - return NULL; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } - tx_to_virt_um(l1t, tn, fn, chan, msg); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg); - return NULL; + return 0; } static void tx_tch_common(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, @@ -418,53 +418,51 @@ *_msg_facch = msg_facch; } -ubit_t *tx_tchf_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; if (bid > 0) - return NULL; + return 0; - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch, - (((fn + 4) % 26) >> 2) & 1); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch, + (((br->fn + 4) % 26) >> 2) & 1); /* no message at all */ if (!msg_tch && !msg_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - goto send_burst; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } if (msg_facch) { - tx_to_virt_um(l1t, tn, fn, chan, msg_facch); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg_facch); msgb_free(msg_tch); } else if (msg_tch) - tx_to_virt_um_voice_frame(l1t, tn, fn, chan, msg_tch); + tx_to_virt_um_voice_frame(l1t, br->tn, br->fn, chan, msg_tch); -send_burst: - - return NULL; + return 0; } -ubit_t *tx_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, - enum trx_chan_type chan, uint8_t bid, uint16_t *nbits) +int tx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, + uint8_t bid, struct trx_dl_burst_req *br) { struct msgb *msg_tch = NULL, *msg_facch = NULL; - struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); + struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, br->tn); struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; //uint8_t tch_mode = chan_state->tch_mode; /* send burst, if we already got a frame */ if (bid > 0) - return NULL; + return 0; /* get TCH and/or FACCH */ - tx_tch_common(l1t, tn, fn, chan, bid, &msg_tch, &msg_facch, - (((fn + 4) % 26) >> 2) & 1); + tx_tch_common(l1t, br->tn, br->fn, chan, bid, &msg_tch, &msg_facch, + (((br->fn + 4) % 26) >> 2) & 1); /* check for FACCH alignment */ - if (msg_facch && ((((fn + 4) % 26) >> 2) & 1)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Cannot transmit FACCH starting on " + if (msg_facch && ((((br->fn + 4) % 26) >> 2) & 1)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, br->tn, chan, br->fn, "Cannot transmit FACCH starting on " "even frames, please fix RTS!\n"); msgb_free(msg_facch); msg_facch = NULL; @@ -472,18 +470,17 @@ /* no message at all */ if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { - LOGL1S(DL1P, LOGL_INFO, l1t, tn, chan, fn, "has not been served !! No prim\n"); - goto send_burst; + LOGL1S(DL1P, LOGL_INFO, l1t, br->tn, chan, br->fn, "has not been served !! No prim\n"); + return -ENODEV; } if (msg_facch) { - tx_to_virt_um(l1t, tn, fn, chan, msg_facch); + tx_to_virt_um(l1t, br->tn, br->fn, chan, msg_facch); msgb_free(msg_tch); } else if (msg_tch) - tx_to_virt_um_voice_frame(l1t, tn, fn, chan, msg_tch); + tx_to_virt_um_voice_frame(l1t, br->tn, br->fn, chan, msg_tch); -send_burst: - return NULL; + return 0; } @@ -550,11 +547,10 @@ llist_for_each_entry(trx, &bts->trx_list, list) { struct phy_instance *pinst = trx_phy_instance(trx); struct l1sched_trx *l1t = &pinst->u.virt.sched; - int tn; - uint16_t nbits; + struct trx_dl_burst_req br = { .fn = fn }; /* do for each of the 8 timeslots */ - for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { + for (br.tn = 0; br.tn < ARRAY_SIZE(l1t->ts); br.tn++) { /* Generate RTS indication to higher layers */ /* This will basically do 2 things (check l1_if:bts_model_l1sap_down): * 1) Get pending messages from layer 2 (from the lapdm queue) @@ -562,13 +558,13 @@ * --> Handle and process non-transparent RSL-Messages (activate channel, ) * --> Forward transparent RSL-DATA-Messages to the ms by appending them to * the l1-dl-queue */ - _sched_rts(l1t, tn, (fn + RTS_ADVANCE) % GSM_HYPERFRAME); + _sched_rts(l1t, br.tn, (fn + RTS_ADVANCE) % GSM_HYPERFRAME); /* schedule transmit backend functions */ /* Process data in the l1-dlqueue and forward it * to MS */ /* the returned bits are not used here, the routines called will directly forward their * bits to the virt Um */ - _sched_dl_burst(l1t, tn, fn, &nbits); + _sched_dl_burst(l1t, &br); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If3014e69746559963569b77561dbf7b163c68ffa Gerrit-Change-Number: 18821 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 Jun 15 11:28:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 11:28:03 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: Aff test to verify junit xml report References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 ) Change subject: selftest: Aff test to verify junit xml report ...................................................................... selftest: Aff test to verify junit xml report Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd --- A selftest/report_test/_prep.py A selftest/report_test/main.conf A selftest/report_test/report_test.err A selftest/report_test/report_test.ok A selftest/report_test/report_test.py A selftest/report_test/resources.conf M src/osmo_gsm_tester/core/suite.py 7 files changed, 208 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/25/18825/1 diff --git a/selftest/report_test/_prep.py b/selftest/report_test/_prep.py new file mode 120000 index 0000000..9cea3fe --- /dev/null +++ b/selftest/report_test/_prep.py @@ -0,0 +1 @@ +../_prep.py \ No newline at end of file diff --git a/selftest/report_test/main.conf b/selftest/report_test/main.conf new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/report_test/main.conf diff --git a/selftest/report_test/report_test.err b/selftest/report_test/report_test.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/report_test/report_test.err diff --git a/selftest/report_test/report_test.ok b/selftest/report_test/report_test.ok new file mode 100644 index 0000000..6e62244 --- /dev/null +++ b/selftest/report_test/report_test.ok @@ -0,0 +1,79 @@ +cnf ResourcesPool: DBG: Found main configuration file in /home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/main.conf which is /home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/main.conf +cnf ResourcesPool: DBG: MAIN CONFIG: +{'default_suites_conf_path': '/home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/default-suites.conf', + 'defaults_conf_path': '/home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/defaults.conf', + 'resource_conf_path': '/home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/resources.conf', + 'scenarios_dir': ['/home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/scenarios'], + 'state_dir': '/var/tmp/osmo-gsm-tester/state', + 'suites_dir': ['/home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/suites'], + 'trial_dir': '/home/pespin/dev/sysmocom/git/osmo-gsm-tester/selftest/report_test/trial'} +tst suiteA: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteA?{combining_scenarios='config'}] +tst suiteB: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteB?{combining_scenarios='config'}] +tst suiteC: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] +tst suiteD: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteD?{combining_scenarios='config'}] + + + + test log file not available + + + yay this is a test-applied stdout + + + + + + + + + test log file not available + + + could not run + test log file not available + + + could not run + test log file not available + + + + + + + + + + test log file not available + + + test log file not available + + + + test log file not available + + + + + + + + + fake_fail_message + system stderr fake content + test log file not available + + + test log file not available + + + + + + + diff --git a/selftest/report_test/report_test.py b/selftest/report_test/report_test.py new file mode 100755 index 0000000..c19e78c --- /dev/null +++ b/selftest/report_test/report_test.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 +import _prep + +from osmo_gsm_tester.core import report +from osmo_gsm_tester.core import log +from osmo_gsm_tester.core import util +from osmo_gsm_tester.core import test +from osmo_gsm_tester.core import suite +from osmo_gsm_tester.core import config + +import os +import sys +import shutil +import re +import xml.etree.ElementTree as etree +import xml.etree.ElementTree as et + +class FakeTrial(log.Origin): + def __init__(self): + super().__init__(log.C_TST, 'trial') + self.dir = util.Dir(example_trial_dir) + self._run_dir = None + self.suites = [] + + def get_all_inst_hash_info(self): + return { 'foobar/potato': '1234', 'orange': 'abcd' } + + def get_run_dir(self): + if self._run_dir is not None: + return self._run_dir + self._run_dir = util.Dir(self.dir.new_child('test_run')) + self._run_dir.mkdir() + return self._run_dir + +class FakeSuiteDefinition(log.Origin): + def __init__(self, name, num_tests): + super().__init__(log.C_TST, name) + self.test_basenames = [name + '-' + str(tid) for tid in range(num_tests) ] + self.conf = {} + self.suite_dir = util.Dir(example_trial_dir).new_child('suitedef' + name) + + +def fake_run_test(test_obj, status, duration, sysout=None): + test_obj.status = status + test_obj.duration = duration + if sysout is not None: + test_obj.set_report_stdout(sysout) + if status == test.Test.FAIL: + test_obj.fail_type = 'fake_fail_type' + test_obj.fail_message = 'fake_fail_message' + test_obj.fail_tb = 'system stderr fake content' + +def fake_run_suite(suite_obj, duration): + suite_obj.duration = duration + suite_obj.determine_status() + +config.override_conf = os.path.join(os.path.dirname(sys.argv[0]), 'main.conf') + +example_trial_dir = os.path.join('test_trial_tmp') + +trial = FakeTrial() + +# Suite passes with 2 tests passing +s_def = FakeSuiteDefinition('suiteA', 2) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.PASS, 30) +fake_run_test(s.tests[1], test.Test.PASS, 10, 'yay this is a test-applied stdout') +#fake_run_test(suiteA.tests[0], test.Test.UNKNOWN, 20) +fake_run_suite(s, 50) + +# Suite passes first test but next ones are not ececuted +s_def = FakeSuiteDefinition('suiteB', 3) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.PASS, 10) +fake_run_suite(s, 20) + +# Suite passes one test selected, others are skipped +s_def = FakeSuiteDefinition('suiteC', 3) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +s.tests[0].set_skip() +fake_run_test(s.tests[1], test.Test.PASS, 10) +s.tests[2].set_skip() +fake_run_suite(s, 12) + +# Suite fails due to one of its tests failing +s_def = FakeSuiteDefinition('suiteD', 2) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.FAIL, 12) +fake_run_test(s.tests[1], test.Test.PASS, 10) +fake_run_suite(s, 20) + + +def indent(elem, level=0): + i = "\n" + level*" " + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + " " + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + +element = report.trial_to_junit(trial) +indent(element) +et.dump(element) + +#deleting generated tmp trial dir: +shutil.rmtree(example_trial_dir, ignore_errors=True) + +# vim: expandtab tabstop=4 shiftwidth=4 diff --git a/selftest/report_test/resources.conf b/selftest/report_test/resources.conf new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/report_test/resources.conf diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index 938471c..a1d068e 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -189,18 +189,21 @@ util.import_path_remove(suite_libdir) self.duration = time.time() - self.start_timestamp - passed, skipped, failed, errors = self.count_test_results() - # if no tests ran, count it as failure - if passed and not failed and not errors: - self.status = SuiteRun.PASS - else: - self.status = SuiteRun.FAIL + self.determine_status() log.large_separator(self._trial.name(), self.name(), self.status, sublevel=2, space_above=False) def passed(self): return self.status == SuiteRun.PASS + def determine_status(self): + passed, skipped, failed, errors = self.count_test_results() + # if no tests ran, count it as failure + if passed and not failed and not errors: + self.status = SuiteRun.PASS + else: + self.status = SuiteRun.FAIL + def count_test_results(self): passed = 0 skipped = 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 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: I8cad02abe776cc00b513113dbaf3c948ea7956cd Gerrit-Change-Number: 18825 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 Jun 15 11:28:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 11:28:18 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: Add test to verify junit xml report In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 ) Change subject: selftest: Add test to verify junit xml report ...................................................................... selftest: Add test to verify junit xml report Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd --- A selftest/report_test/_prep.py A selftest/report_test/main.conf A selftest/report_test/report_test.err A selftest/report_test/report_test.ok A selftest/report_test/report_test.py A selftest/report_test/resources.conf M src/osmo_gsm_tester/core/suite.py 7 files changed, 208 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/25/18825/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 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: I8cad02abe776cc00b513113dbaf3c948ea7956cd Gerrit-Change-Number: 18825 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 Jun 15 12:02:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 12:02:01 +0000 Subject: Change in osmo-gsm-tester[master]: config: Allow empty config files References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 ) Change subject: config: Allow empty config files ...................................................................... config: Allow empty config files Change-Id: Ic010e06220421df00405c5b6f5ad2e83514b6dcd --- M src/osmo_gsm_tester/core/config.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/26/18826/1 diff --git a/src/osmo_gsm_tester/core/config.py b/src/osmo_gsm_tester/core/config.py index 398e8ba..ecec8e3 100644 --- a/src/osmo_gsm_tester/core/config.py +++ b/src/osmo_gsm_tester/core/config.py @@ -195,7 +195,7 @@ with open(path, 'r') as f: config = yaml.safe_load(f) config = _standardize(config) - if validation_schema: + if config and validation_schema: schema.validate(config, validation_schema) return config -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 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: Ic010e06220421df00405c5b6f5ad2e83514b6dcd Gerrit-Change-Number: 18826 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 Jun 15 12:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 12:02:02 +0000 Subject: Change in osmo-gsm-tester[master]: fixup References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18827 ) Change subject: fixup ...................................................................... fixup Change-Id: I2273ad35644cac83ef427ebc98d6a802f35dbddd --- M src/osmo_gsm_tester/core/config.py M src/osmo_gsm_tester/core/resource.py 2 files changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/27/18827/1 diff --git a/src/osmo_gsm_tester/core/config.py b/src/osmo_gsm_tester/core/config.py index ecec8e3..a8860d3 100644 --- a/src/osmo_gsm_tester/core/config.py +++ b/src/osmo_gsm_tester/core/config.py @@ -137,6 +137,8 @@ global MAIN_CONFIG if MAIN_CONFIG is None: cfg = read(_get_main_config_path(), MAIN_CONFIG_SCHEMA) + if cfg is None: + cfg = {} MAIN_CONFIG = { CFG_STATE_DIR: DF_CFG_STATE_DIR, CFG_SUITES_DIR: DF_CFG_SUITES_DIR, diff --git a/src/osmo_gsm_tester/core/resource.py b/src/osmo_gsm_tester/core/resource.py index af05a51..62bba07 100644 --- a/src/osmo_gsm_tester/core/resource.py +++ b/src/osmo_gsm_tester/core/resource.py @@ -54,7 +54,7 @@ self.read_conf() def read_conf(self): - self.all_resources = Resources(config.read(self.config_path, schema.get_resources_schema())) + self.all_resources = Resources(config.read(self.config_path, schema.get_resources_schema()) or {}) self.all_resources.set_hashes() def reserve(self, origin, want, modifiers): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18827 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: I2273ad35644cac83ef427ebc98d6a802f35dbddd Gerrit-Change-Number: 18827 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 Jun 15 13:06:59 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 13:06:59 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 to look at the new patch set (#3). Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... epc: refactor run_wait() method and rename to prepare_proc() this refactor no longer enforces blocking operation of the process. Instead it returns the process object to the caller who can now run either proc.launch() for non-blocking operation or proc.launch_sync() for blocking mode. The non-block mode allos doing other stuff in the background, for example controlling the rfemu while running a ping. Change-Id: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 --- M src/osmo_gsm_tester/obj/epc.py 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/89/18789/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 13:07:00 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 13:07:00 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 ) Change subject: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 ...................................................................... amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 use more realistic values for QCI 1 and 2 bearers to prepare QoS operation Change-Id: Ibfffde9ecccd473f22e816bd47e197fbe24b0ded --- M src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl 1 file changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/28/18828/1 diff --git a/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl index a200063..38281b5 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl @@ -7,7 +7,7 @@ qci: 1, /* UM - real time (RTP for VOIP) */ pdcp_config: { discardTimer: 100, /* in ms, 0 means infinity */ - pdcp_SN_Size: 7, + pdcp_SN_Size: 12, /* ROHC header compression */ /* headerCompression: { @@ -30,9 +30,9 @@ logical_channel_config: { /* Note: SRB1 has priority 1, SRB2 has priority 3. We start from 4 for priority 0.5 and increase the value */ - priority: 7, - prioritisedBitRate: 0, /* in kb/s, -1 means infinity */ - bucketSizeDuration: 100, /* in ms */ + priority: 4, + prioritisedBitRate: 256, /* in kb/s, -1 means infinity */ + bucketSizeDuration: 1000, /* in ms */ logicalChannelGroup: 1, logicalChannelSR_Mask: false, logicalChannelSR_Prohibit: false, @@ -54,9 +54,9 @@ }, }, logical_channel_config: { - priority: 9, - prioritisedBitRate: 0, /* in kb/s, -1 means infinity */ - bucketSizeDuration: 100, /* in ms */ + priority: 5, + prioritisedBitRate: 128, /* in kb/s, -1 means infinity */ + bucketSizeDuration: 1000, /* in ms */ logicalChannelGroup: 1, logicalChannelSR_Mask: false, logicalChannelSR_Prohibit: false, @@ -300,7 +300,7 @@ }, logical_channel_config: { priority: 15, - prioritisedBitRate: 8, /* in kb/s, -1 means infinity */ + prioritisedBitRate: -1, /* in kb/s, -1 means infinity */ bucketSizeDuration: 100, /* in ms */ logicalChannelGroup: 3, logicalChannelSR_Mask: false, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 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: Ibfffde9ecccd473f22e816bd47e197fbe24b0ded Gerrit-Change-Number: 18828 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 13:20:48 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 13:20:48 +0000 Subject: Change in libosmo-sccp[master]: sccp_user_find: optimize: search PC only for valid PC arg In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 ) Change subject: sccp_user_find: optimize: search PC only for valid PC arg ...................................................................... sccp_user_find: optimize: search PC only for valid PC arg Though, since in current practice, not many users exist, and all incoming messages have a valid PC, this is unlikely to have any noticeable effect. Change-Id: I3533a01e29b97bebe4b8f1f6965444519b3bacfe --- M src/sccp_user.c 1 file changed, 6 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/sccp_user.c b/src/sccp_user.c index a36ac93..d8a7357 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -50,10 +50,12 @@ { struct osmo_sccp_user *scu; - /* First try to find match for PC + SSN */ - llist_for_each_entry(scu, &inst->users, list) { - if (osmo_ss7_pc_is_valid(scu->pc) && scu->pc == pc && scu->ssn == ssn) - return scu; + if (osmo_ss7_pc_is_valid(pc)) { + /* First try to find match for PC + SSN */ + llist_for_each_entry(scu, &inst->users, list) { + if (osmo_ss7_pc_is_valid(scu->pc) && scu->pc == pc && scu->ssn == ssn) + return scu; + } } /* Then try to match on SSN only */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I3533a01e29b97bebe4b8f1f6965444519b3bacfe Gerrit-Change-Number: 18503 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 Mon Jun 15 13:29:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 13:29:03 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 to look at the new patch set (#6). Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... log: add MSC number to bsc_subscr_conn_fsm id Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/18768/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 15 13:37:20 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 13:37:20 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee779a49e374_e962b0071b305f01769726@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 793s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 793s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 793s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 793s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 794s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 794s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 794s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 795s] [1935/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 795s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 795s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 795s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 795s] ../src/udm/context.c: In function ?udm_ue_add?: [ 795s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 795s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 795s] ~~^ [ 795s] %d [ 795s] cc1: some warnings being treated as errors [ 796s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 796s] ninja: build stopped: subcommand failed. [ 796s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1 [ 796s] make: *** [debian/rules:11: binary] Error 1 [ 796s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 796s] ### VM INTERACTION START ### [ 799s] [ 771.731666] sysrq: SysRq : Power Off [ 799s] [ 771.733847] reboot: Power down [ 799s] ### VM INTERACTION END ### [ 799s] [ 799s] armbuild01 failed "build open5gs_1.2.5.20200615.dsc" at Mon Jun 15 13:37:17 UTC 2020. [ 799s] -- 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 Jun 15 13:41:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:41:22 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... Patch Set 3: You missed updating sysmocom/suites/4g/rrc_idle_mt_ping.py -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 13:41:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 13:41:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:41:25 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... Patch Set 3: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 13: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 Mon Jun 15 13:41:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:41:45 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 ) Change subject: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 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: Ibfffde9ecccd473f22e816bd47e197fbe24b0ded Gerrit-Change-Number: 18828 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 15 Jun 2020 13:41: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 Jun 15 13:41:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 13:41:52 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix length indicator in Set Channel Attributes References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18829 ) Change subject: abis_nm: fix length indicator in Set Channel Attributes ...................................................................... abis_nm: fix length indicator in Set Channel Attributes Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Related: OS#4545 --- M src/osmo-bsc/abis_nm.c 1 file changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/29/18829/1 diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index d503f2a..b6d1ec5 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -1998,14 +1998,11 @@ struct abis_om_fom_hdr *foh; uint8_t zero = 0x00; struct msgb *msg = nm_msgb_alloc(); - uint8_t len = 2 + 2; const char *reason = NULL; - if (bts->type == GSM_BTS_TYPE_BS11) - len += 4 + 2 + 2 + 3; - + /* NOTE: message length will be set later, see down below */ oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE); - foh = fill_om_fom_hdr(oh, len, NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, bts->bts_nr, + foh = fill_om_fom_hdr(oh, 0, NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, bts->bts_nr, ts->trx->nr, ts->nr); DEBUGPFOH(DNM, foh, "Set Chan Attr %s\n", gsm_ts_name(ts)); @@ -2061,6 +2058,10 @@ if (bts->type == GSM_BTS_TYPE_BS11) msgb_tlv_put(msg, 0x59, 1, &zero); + msg->l2h = (uint8_t *) oh; + msg->l3h = (uint8_t *) foh; + oh->length = msgb_l3len(msg); + DEBUGPFOH(DNM, foh, "%s(): sending %s\n", __func__, msgb_hexdump(msg)); return abis_nm_sendmsg(bts, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Gerrit-Change-Number: 18829 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 Jun 15 13:42:36 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 13:42:36 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... Patch Set 3: > Patch Set 3: > > You missed updating sysmocom/suites/4g/rrc_idle_mt_ping.py true, shall I use the same commit or different one? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 15 Jun 2020 13:42: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 Mon Jun 15 13:51:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:51:06 +0000 Subject: Change in osmo-gsm-tester[master]: config: Allow empty config files In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 to look at the new patch set (#2). Change subject: config: Allow empty config files ...................................................................... config: Allow empty config files Change-Id: Ic010e06220421df00405c5b6f5ad2e83514b6dcd --- M src/osmo_gsm_tester/core/config.py M src/osmo_gsm_tester/core/resource.py 2 files changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/26/18826/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 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: Ic010e06220421df00405c5b6f5ad2e83514b6dcd Gerrit-Change-Number: 18826 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 Jun 15 13:51:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:51:06 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: Add test to verify junit xml report In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 to look at the new patch set (#4). Change subject: selftest: Add test to verify junit xml report ...................................................................... selftest: Add test to verify junit xml report Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd --- A selftest/report_test/_prep.py A selftest/report_test/main.conf A selftest/report_test/report_test.err A selftest/report_test/report_test.ok A selftest/report_test/report_test.py A selftest/report_test/resources.conf M src/osmo_gsm_tester/core/suite.py 7 files changed, 210 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/25/18825/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 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: I8cad02abe776cc00b513113dbaf3c948ea7956cd Gerrit-Change-Number: 18825 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 Mon Jun 15 13:51:31 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 15 Jun 2020 13:51:31 +0000 Subject: Change in osmo-trx[master]: prbs tool: add missing talloc lib References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18830 ) Change subject: prbs tool: add missing talloc lib ...................................................................... prbs tool: add missing talloc lib Change-Id: Ica87cc796978528f1b33002420b582d6e4773349 --- M utils/Makefile.am 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/30/18830/1 diff --git a/utils/Makefile.am b/utils/Makefile.am index bac9a7f..3cb5b56 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -6,4 +6,4 @@ noinst_PROGRAMS = osmo-prbs-tool osmo_prbs_tool_SOURCES = prbs-tool.c -osmo_prbs_tool_LDADD = $(LIBOSMOCODING_LIBS) +osmo_prbs_tool_LDADD = $(LIBOSMOCODING_LIBS) -ltalloc -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ica87cc796978528f1b33002420b582d6e4773349 Gerrit-Change-Number: 18830 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 13:53:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:53:12 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix length indicator in Set Channel Attributes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18829 ) Change subject: abis_nm: fix length indicator in Set Channel Attributes ...................................................................... Patch Set 1: Some description on why is it wrong would be great -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Gerrit-Change-Number: 18829 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 13:53:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 13:53:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:53:25 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... Patch Set 3: Same one please -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 15 Jun 2020 13:53:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 13:56:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:56:01 +0000 Subject: Change in osmo-trx[master]: prbs tool: add missing talloc lib In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18830 ) Change subject: prbs tool: add missing talloc lib ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/18830/1/utils/Makefile.am File utils/Makefile.am: https://gerrit.osmocom.org/c/osmo-trx/+/18830/1/utils/Makefile.am at 9 PS1, Line 9: osmo_prbs_tool_LDADD = $(LIBOSMOCODING_LIBS) -ltalloc The main problem here is that it's not including LIBOSMOCORE, but I see lots of headers osmocom/core in prbs-tool.c: #include #include #include #include #include prbs-tool is not using talloc directly afaict: $ grep -c talloc ./utils/prbs-tool.c 0 Maybe there's an extra issue with libosmocoding requiring talloc but not having it in its pkgconfig file? -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ica87cc796978528f1b33002420b582d6e4773349 Gerrit-Change-Number: 18830 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-CC: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 13:56:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 13:56:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 13:56:05 +0000 Subject: Change in osmo-trx[master]: prbs tool: add missing talloc lib In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18830 ) Change subject: prbs tool: add missing talloc lib ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ica87cc796978528f1b33002420b582d6e4773349 Gerrit-Change-Number: 18830 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 15 Jun 2020 13:56:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:03:06 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 15 Jun 2020 14:03:06 +0000 Subject: Change in osmo-bsc[master]: debug: log about matching Paging Response to earlier Paging In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18769 ) Change subject: debug: log about matching Paging Response to earlier Paging ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I277d3236686dd5a5a21113ef2ddfd29341190086 Gerrit-Change-Number: 18769 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:03: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 Jun 15 14:03:11 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 15 Jun 2020 14:03:11 +0000 Subject: Change in osmo-trx[master]: prbs tool: add missing talloc lib In-Reply-To: References: Message-ID: Hoernchen has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18830 ) Change subject: prbs tool: add missing talloc lib ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ica87cc796978528f1b33002420b582d6e4773349 Gerrit-Change-Number: 18830 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:08:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:08:03 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Prepend underscor to internal method In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18824 ) Change subject: testenv: Prepend underscor to internal method ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18824 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: I2297f4b44d6f0c88409ab6982de4e3640a6a48b2 Gerrit-Change-Number: 18824 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:08:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:08:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:08:05 +0000 Subject: Change in osmo-gsm-tester[master]: config: Allow empty config files In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 ) Change subject: config: Allow empty config files ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 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: Ic010e06220421df00405c5b6f5ad2e83514b6dcd Gerrit-Change-Number: 18826 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:08:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:08:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:08:09 +0000 Subject: Change in osmo-gsm-tester[master]: testenv: Prepend underscor to internal method In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18824 ) Change subject: testenv: Prepend underscor to internal method ...................................................................... testenv: Prepend underscor to internal method Change-Id: I2297f4b44d6f0c88409ab6982de4e3640a6a48b2 --- M src/osmo_gsm_tester/testenv.py 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py index 77d844a..ea71df9 100644 --- a/src/osmo_gsm_tester/testenv.py +++ b/src/osmo_gsm_tester/testenv.py @@ -56,7 +56,7 @@ self.objects_to_clean_up = None MainLoop.register_poll_func(self.poll) if self._test.timeout is not None: # aimed at firing once - MainLoop.register_poll_func(self.timeout_expired, timestep=self._test.timeout) + MainLoop.register_poll_func(self._timeout_expired, timestep=self._test.timeout) def test(self): return self._test @@ -122,9 +122,9 @@ except Exception: log_module.log_exn() - def timeout_expired(self): + def _timeout_expired(self): # Avoid timeout being called several times: - MainLoop.unregister_poll_func(self.timeout_expired) + MainLoop.unregister_poll_func(self._timeout_expired) raise log_module.Error('Test Timeout triggered: %d seconds elapsed' % self._test.elapsed_time()) def poll(self): @@ -146,7 +146,7 @@ self.objects_cleanup() self.suite_run.reserved_resources.put_all() MainLoop.unregister_poll_func(self.poll) - MainLoop.unregister_poll_func(self.timeout_expired) + MainLoop.unregister_poll_func(self._timeout_expired) self.test_import_modules_cleanup() self.set_overlay_template_dir(None) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18824 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: I2297f4b44d6f0c88409ab6982de4e3640a6a48b2 Gerrit-Change-Number: 18824 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 Jun 15 14:08:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:08:09 +0000 Subject: Change in osmo-gsm-tester[master]: config: Allow empty config files In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 ) Change subject: config: Allow empty config files ...................................................................... config: Allow empty config files Change-Id: Ic010e06220421df00405c5b6f5ad2e83514b6dcd --- M src/osmo_gsm_tester/core/config.py M src/osmo_gsm_tester/core/resource.py 2 files changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/core/config.py b/src/osmo_gsm_tester/core/config.py index 398e8ba..a8860d3 100644 --- a/src/osmo_gsm_tester/core/config.py +++ b/src/osmo_gsm_tester/core/config.py @@ -137,6 +137,8 @@ global MAIN_CONFIG if MAIN_CONFIG is None: cfg = read(_get_main_config_path(), MAIN_CONFIG_SCHEMA) + if cfg is None: + cfg = {} MAIN_CONFIG = { CFG_STATE_DIR: DF_CFG_STATE_DIR, CFG_SUITES_DIR: DF_CFG_SUITES_DIR, @@ -195,7 +197,7 @@ with open(path, 'r') as f: config = yaml.safe_load(f) config = _standardize(config) - if validation_schema: + if config and validation_schema: schema.validate(config, validation_schema) return config diff --git a/src/osmo_gsm_tester/core/resource.py b/src/osmo_gsm_tester/core/resource.py index af05a51..62bba07 100644 --- a/src/osmo_gsm_tester/core/resource.py +++ b/src/osmo_gsm_tester/core/resource.py @@ -54,7 +54,7 @@ self.read_conf() def read_conf(self): - self.all_resources = Resources(config.read(self.config_path, schema.get_resources_schema())) + self.all_resources = Resources(config.read(self.config_path, schema.get_resources_schema()) or {}) self.all_resources.set_hashes() def reserve(self, origin, want, modifiers): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18826 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: Ic010e06220421df00405c5b6f5ad2e83514b6dcd Gerrit-Change-Number: 18826 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:08:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:08:20 +0000 Subject: Change in osmo-gsm-tester[master]: fixup In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18827 ) Change subject: fixup ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18827 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: I2273ad35644cac83ef427ebc98d6a802f35dbddd Gerrit-Change-Number: 18827 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:10:10 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 14:10:10 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: Hello pespin, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 to look at the new patch set (#12). Change subject: trunk: get rid of virt_trunk pointer ...................................................................... trunk: get rid of virt_trunk pointer The virtual trunk is a pre-configured trunk that always exists. It is kept separate from the trunk list using a separate pointer. This makes thinks unecessarly complicated. Lets organize the trunk in the trunk list like any other trunk, except that we automatically create it on startup and assign it always the trunk id number 0. Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 7 files changed, 155 insertions(+), 105 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/90/18590/12 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:10:10 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 14:10:10 +0000 Subject: Change in osmo-mgw[master]: endp: move endpoint name generation into mgcp_endp.c In-Reply-To: References: Message-ID: Hello neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 to look at the new patch set (#2). Change subject: endp: move endpoint name generation into mgcp_endp.c ...................................................................... endp: move endpoint name generation into mgcp_endp.c When the trunk allocates its endpoints by using mgcp_endp_alloc() ist passes the name for each endpoint as a parameter. In order to generate the name endpoint specific knowlege is required. This process can be simplified, since all what mgcp_trunk_alloc_endpts() does is calling mgcp_endp_alloc() in a loop in order to generate a consecuitve series of endpoints. The endpoint names are generated from the index of the for loop. When we just pass the index instead of the endpoint name to mgcp_endp_alloc(), then we can greatly simplify the code since all the knowledge about the name generation can go into mgcp_endp.c. The endpoint will name itsself by the trunk properties and the index number we pass with the allocator function. Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Related: OS#2659 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_trunk.c 3 files changed, 18 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/54/18754/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Gerrit-Change-Number: 18754 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:10:10 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 14:10:10 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: Hello neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 to look at the new patch set (#5). Change subject: endp: add name generator function for E1 endpoints ...................................................................... endp: add name generator function for E1 endpoints Currently the endpoint name that is generated for an E1 endpoint is not correct. Let's add an endpoint name generator function that derives a full endpoint name for a given E1 index Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Related: OS#2547 --- A include/osmocom/mgcp_client/mgcp_common.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 139 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:10:10 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 14:10:10 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: Hello neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 to look at the new patch set (#3). Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:10:12 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 14:10:12 +0000 Subject: Change in osmo-mgw[master]: cosmetic: remove excess space References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18831 ) Change subject: cosmetic: remove excess space ...................................................................... cosmetic: remove excess space Change-Id: I3620efea2f809fb822c5b8f0a68036066dc6aa95 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/18831/1 diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 07cfd9f..6490ea9 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -148,7 +148,7 @@ prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, prefix_len) == 0) { - return mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); + return mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); } /* E1 trunks are not implemented yet, so we deny any request for an -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3620efea2f809fb822c5b8f0a68036066dc6aa95 Gerrit-Change-Number: 18831 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 Jun 15 14:10:40 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 15 Jun 2020 14:10:40 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18779 ) Change subject: mscpool: add user manual chapter ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18779/4/doc/manuals/chapters/mscpool.adoc File doc/manuals/chapters/mscpool.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/18779/4/doc/manuals/chapters/mscpool.adoc at 196 PS4, Line 196: new subscribes in OsmoBSC. This can be achieved in the telnet VTY by: subscribers -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:10:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:11:47 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 15 Jun 2020 14:11:47 +0000 Subject: Change in osmo-bsc[master]: vty: add 'mscpool roundrobin next' for ttcn3 tests In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18767 ) Change subject: vty: add 'mscpool roundrobin next' for ttcn3 tests ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c Gerrit-Change-Number: 18767 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:11:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:13:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:13:28 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: Add test to verify junit xml report In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 to look at the new patch set (#5). Change subject: selftest: Add test to verify junit xml report ...................................................................... selftest: Add test to verify junit xml report Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd --- A selftest/report_test/_prep.py A selftest/report_test/expected_junit_output.xml A selftest/report_test/main.conf A selftest/report_test/report_test.err A selftest/report_test/report_test.ok A selftest/report_test/report_test.py A selftest/report_test/resources.conf M src/osmo_gsm_tester/core/suite.py 8 files changed, 222 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/25/18825/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 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: I8cad02abe776cc00b513113dbaf3c948ea7956cd Gerrit-Change-Number: 18825 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:17:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:17:47 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/3/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/3/src/libosmo-mgcp/mgcp_trunk.c at 143 PS3, Line 143: trunk_nr = strtol(epname+prefix_len, NULL, 10); If you are looking for an unsigned int, then simply use strtoul(). Bear in mind checking for successfullnes in this function is a bit tricky. Have a look at how it is checked in mgcp_parse_audio_port_pt() to get an idea on how to handle it. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:17: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 Mon Jun 15 14:18:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:18:37 +0000 Subject: Change in osmo-mgw[master]: endp: move endpoint name generation into mgcp_endp.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18754 ) Change subject: endp: move endpoint name generation into mgcp_endp.c ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Gerrit-Change-Number: 18754 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:18:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:18:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:18:52 +0000 Subject: Change in osmo-mgw[master]: cosmetic: remove excess space In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18831 ) Change subject: cosmetic: remove excess space ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3620efea2f809fb822c5b8f0a68036066dc6aa95 Gerrit-Change-Number: 18831 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 14:18: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 Jun 15 14:22:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:22:44 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: Add test to verify junit xml report In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 to look at the new patch set (#6). Change subject: selftest: Add test to verify junit xml report ...................................................................... selftest: Add test to verify junit xml report Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd --- A selftest/report_test/_prep.py A selftest/report_test/expected_junit_output.xml A selftest/report_test/main.conf A selftest/report_test/report_test.err A selftest/report_test/report_test.ok A selftest/report_test/report_test.ok.ign A selftest/report_test/report_test.py A selftest/report_test/resources.conf M src/osmo_gsm_tester/core/suite.py 9 files changed, 225 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/25/18825/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 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: I8cad02abe776cc00b513113dbaf3c948ea7956cd Gerrit-Change-Number: 18825 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 15 14:37:55 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 14:37:55 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee787d43d945_e962b0071b305f017845dd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 628s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 629s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 629s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 629s] [1931/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 629s] [1932/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 629s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 629s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 630s] [1935/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 630s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 630s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 630s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 630s] ../src/udm/context.c: In function ?udm_ue_add?: [ 630s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 630s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 630s] ~~^ [ 630s] %d [ 630s] cc1: some warnings being treated as errors [ 631s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 631s] ninja: build stopped: subcommand failed. [ 631s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1 [ 631s] make: *** [debian/rules:11: binary] Error 1 [ 631s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 631s] ### VM INTERACTION START ### [ 634s] [ 603.376215] sysrq: SysRq : Power Off [ 634s] [ 603.378323] reboot: Power down [ 634s] ### VM INTERACTION END ### [ 634s] [ 634s] armbuild04 failed "build open5gs_1.2.5.20200615.dsc" at Mon Jun 15 14:37:48 UTC 2020. [ 634s] -- 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 Jun 15 14:46:21 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 14:46:21 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 to look at the new patch set (#4). Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... epc: refactor run_wait() method and rename to prepare_proc() this refactor no longer enforces blocking operation of the process. Instead it returns the process object to the caller who can now run either proc.launch() for non-blocking operation or proc.launch_sync() for blocking mode. The non-block mode allos doing other stuff in the background, for example controlling the rfemu while running a ping. Change-Id: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 --- M src/osmo_gsm_tester/obj/epc.py M sysmocom/suites/4g/rrc_idle_mt_ping.py 2 files changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/89/18789/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 14:50:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:50:55 +0000 Subject: Change in osmo-gsm-tester[master]: Add per-test KPI support References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18832 ) Change subject: Add per-test KPI support ...................................................................... Add per-test KPI support tests can now use 'tenv.test().set_kpis(some_dict)' to set any kind of data as KPIs, which will be presented in the junit report. The representation of KPIs in the xml file doesn't follow the junit format, mainly because it has no support for per-test properties. Change-Id: I00e976f65a202e82d440bf33708f06c8ce2643e2 --- M selftest/report_test/expected_junit_output.xml M selftest/report_test/report_test.ok M selftest/report_test/report_test.py M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/test.py 5 files changed, 98 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/32/18832/1 diff --git a/selftest/report_test/expected_junit_output.xml b/selftest/report_test/expected_junit_output.xml index 5de0edf..9f6185c 100644 --- a/selftest/report_test/expected_junit_output.xml +++ b/selftest/report_test/expected_junit_output.xml @@ -1,4 +1,4 @@ - + test log file not available @@ -59,4 +59,34 @@ - + + + fake_fail_message + system stderr fake content + + + + + + + + + + + + + + test log file not available + + + + + + test log file not available + + + + + + + \ No newline at end of file diff --git a/selftest/report_test/report_test.ok b/selftest/report_test/report_test.ok index 87092ea..442d343 100644 --- a/selftest/report_test/report_test.ok +++ b/selftest/report_test/report_test.ok @@ -15,3 +15,5 @@ tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] tst suiteD: DBG: {combining='config'} tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteD?{combining_scenarios='config'}] +tst suiteE: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteE?{combining_scenarios='config'}] diff --git a/selftest/report_test/report_test.py b/selftest/report_test/report_test.py index 57e3a89..5888bf3 100755 --- a/selftest/report_test/report_test.py +++ b/selftest/report_test/report_test.py @@ -39,11 +39,13 @@ self.suite_dir = util.Dir(example_trial_dir).new_child('suitedef' + name) -def fake_run_test(test_obj, status, duration, sysout=None): +def fake_run_test(test_obj, status, duration, sysout=None, kpis=None): test_obj.status = status test_obj.duration = duration if sysout is not None: test_obj.set_report_stdout(sysout) + if kpis is not None: + test_obj.set_kpis(kpis) if status == test.Test.FAIL: test_obj.fail_type = 'fake_fail_type' test_obj.fail_message = 'fake_fail_message' @@ -92,6 +94,14 @@ fake_run_test(s.tests[1], test.Test.PASS, 10) fake_run_suite(s, 20) +# Test adding KPIs +s_def = FakeSuiteDefinition('suiteE', 2) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.FAIL, 12, kpis={'ueA': {'kpiA': 30, 'kpiB': 'foobar', 'yet-another-level': {'foo': 'bar'}}, 'enbD': {'foobar-boolean': True }, 'somekpi': 'someval'}) +fake_run_test(s.tests[1], test.Test.PASS, 10, kpis={'abcd': 'abcdval'}) +fake_run_suite(s, 20) + element = report.trial_to_junit(trial) def indent(elem, level=0): @@ -126,6 +136,9 @@ with open(exp_path, 'r') as f: exp = f.read().rstrip() udiff(exp, got, exp_path) + # Uncomment to update exp_path: + #with open(exp_path, 'w') as f: + # f.write(got) #deleting generated tmp trial dir: shutil.rmtree(example_trial_dir, ignore_errors=True) diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index 5014bf5..d2c68c5 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -53,6 +53,46 @@ prop.set('name', 'ref:' + key) prop.set('value', val) +def dict_to_junit(parent, d): + for key, val in d.items(): + if isinstance(val, dict): + node = et.SubElement(parent, 'kpi_node') + node.set('name', key) + dict_to_junit(node, val) + continue + if isinstance(val, (tuple, list)): + node = et.SubElement(parent, 'kpi_node') + node.set('name', key) + list_to_junit(node, val) + continue + # scalar: + node = et.SubElement(parent, 'property') + node.set('name', key) + node.set('value', str(val)) + +def list_to_junit(parent, li): + for i in range(len(li)): + if isinstance(li[i], dict): + node = et.SubElement(parent, 'kpi_node') + node.set('name', str(i)) + dict_to_junit(node, li[i]) + continue + if isinstance(val, (tuple, list)): + node = et.SubElement(parent, 'kpi_node') + node.set('name', str(i)) + list_to_junit(node, li[i]) + continue + # scalar: + node = et.SubElement(parent, 'property') + node.set('name', str(i)) + node.set('value', str(li[i])) + +def kpis_to_junit(parent, kpis): + if not kpis: + return + assert isinstance(kpis, dict) + knode = et.SubElement(parent, 'kpis') + dict_to_junit(knode, kpis) def trial_to_junit_write(trial, junit_path): elements = et.ElementTree(element=trial_to_junit(trial)) @@ -118,6 +158,7 @@ elif t.status != test.Test.PASS: error = et.SubElement(testcase, 'error') error.text = 'could not run' + kpis_to_junit(testcase, t.kpis()) sout = et.SubElement(testcase, 'system-out') sout.text = escape_xml_invalid_characters(t.report_stdout()) return testcase diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index c6d88e6..dfbd169 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -49,6 +49,7 @@ self.fail_message = None self.log_targets = [] self._report_stdout = None + self._kpis = None self.timeout = int(config_test_specific['timeout']) if 'timeout' in config_test_specific else None def module_name(self): @@ -139,6 +140,14 @@ def config_test_specific(self): return self._config_test_specific + def set_kpis(self, kpis): + if not isinstance(kpis, dict): + raise log.Error('Expected dictionary in toplevel kpis') + self._kpis = kpis + + def kpis(self): + return self._kpis + def set_report_stdout(self, text): 'Overwrite stdout text stored in report from inside a test' self._report_stdout = text -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18832 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: I00e976f65a202e82d440bf33708f06c8ce2643e2 Gerrit-Change-Number: 18832 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 Jun 15 14:54:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 14:54:38 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 15 Jun 2020 14:54:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:05:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:05:08 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18833 ) Change subject: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state ...................................................................... osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state This change simplifies access to generic logical channel state (struct gsm_lchan) from osmo-bts-trx specific state (struct l1sched_chan_state), so there is no need to look it up using get_lchan_by_chan_nr() on receipt of each Uplink burst. Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 4 files changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/33/18833/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index a7bc6c7..f5f346e 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -71,6 +71,11 @@ /* States each channel on a multiframe */ struct l1sched_chan_state { + /* Pointer to the associated logical channel state from gsm_data_shared. + * Initialized during channel activation, thus may be NULL for inactive + * or auto-active channels. Always check before dereferencing! */ + struct gsm_lchan *lchan; + /* scheduler */ bool active; /* Channel is active */ ubit_t *dl_bursts; /* burst buffer for TX */ diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ed6c623..b79c83d 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1000,6 +1000,11 @@ else chan_state->ho_rach_detect = 0; chan_state->active = active; + + if (active) { + chan_state->lchan = get_lchan_by_chan_nr(l1t->trx, chan_nr); + OSMO_ASSERT(chan_state->lchan != NULL); + } } } diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 80115a9..d289620 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -50,6 +50,7 @@ { struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + struct gsm_lchan *lchan = chan_state->lchan; sbit_t *burst, **bursts_p = &chan_state->ul_bursts; uint8_t *mask = &chan_state->ul_mask; uint8_t rsl_cmode = chan_state->rsl_cmode; @@ -59,8 +60,6 @@ int n_errors = 0; int n_bits_total = 0; bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); unsigned int fn_begin; uint16_t ber10k; uint8_t is_sub = 0; diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 8adaec3..0281342 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -50,6 +50,7 @@ { struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + struct gsm_lchan *lchan = chan_state->lchan; sbit_t *burst, **bursts_p = &chan_state->ul_bursts; uint8_t *mask = &chan_state->ul_mask; uint8_t rsl_cmode = chan_state->rsl_cmode; @@ -59,8 +60,6 @@ int n_errors = 0; int n_bits_total = 0; bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); /* Note on FN-10: If we are at FN 10, we decoded an even aligned * TCH/FACCH frame, because our burst buffer carries 6 bursts. * Even FN ending at: 10,11,19,20,2,3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 Gerrit-Change-Number: 18833 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 Jun 15 15:05:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:05:08 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: include BS Power reduction in Downlink bursts References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18834 ) Change subject: osmo-bts-trx: include BS Power reduction in Downlink bursts ...................................................................... osmo-bts-trx: include BS Power reduction in Downlink bursts For those osmo-bts-trx specific logical channels with a generic logical channel state associated, let's finally apply the BS Power reduction (attenuation) value that was received from the BSC. Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 --- M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c 2 files changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/18834/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index b79c83d..ac9085d 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1190,6 +1190,10 @@ if (func(l1t, chan, bid, br) != 0) goto no_data; + /* BS Power reduction (2 dB steps) per logical channel */ + if (l1cs->lchan != NULL) + br->att = l1cs->lchan->bs_power * 2; + /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { ubit_t ks[114]; diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 6996593..d4a38b6 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -86,10 +86,9 @@ _sched_rts(l1t, tn, (fn + plink->u.osmotrx.rts_advance) % GSM_HYPERFRAME); - /* TODO: Tx attenuation is always 0? */ + /* All other parameters to be set by _sched_dl_burst() */ br = (struct trx_dl_burst_req) { .fn = fn, .tn = tn, - .att = 0, }; /* get burst for FN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 Gerrit-Change-Number: 18834 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 Jun 15 15:05:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:05:09 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18835 ) Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... A-bis/RSL: refactor handling of BS Power IE (power reduction) According to 3GPP TS 08.58, section 9.3.4, BS Power IE indicates the transmission power attenuation on a particular channel: +--------------+---------+-----------------+ | Reserved (3) | FPC (1) | Power level (4) | +--------------+---------+-----------------+ so let's change handling of this IE as follows: - s/bs_power/bs_power_red/g, so it reflects 'reduction'; - get rid of ms_power_ctrl.bts_tx_pwr, it's always 0 anyway; - fix rsl_tx_meas_res(): use lchan->bs_power_red; - always check if FPC (Fast Power Control) flag is set; - we don't support it, so reject messages containing it; - fix rsl_rx_chan_activ(): properly apply the bitmask. Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f --- M include/osmo-bts/gsm_data_shared.h M src/common/rsl.c M src/common/tx_power.c M src/common/vty.c 4 files changed, 26 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/18835/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 7cfbfeb..c3dba3c 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -193,8 +193,6 @@ uint8_t flags; /* RSL measurement result number, 0 at lchan_act */ uint8_t res_nr; - /* current Tx power level of the BTS */ - uint8_t bts_tx_pwr; /* number of measurements stored in array below */ uint8_t num_ul_meas; struct bts_ul_meas uplink[MAX_NUM_UL_MEAS]; @@ -267,8 +265,9 @@ uint8_t max; bool fixed; } ms_power_ctrl; - /* Power levels for BTS */ - uint8_t bs_power; + + /* BTS power reduction (2 dB steps) */ + uint8_t bs_power_red; struct msgb *pending_rel_ind_msg; diff --git a/src/common/rsl.c b/src/common/rsl.c index f057a89..b9c9695 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1001,7 +1001,7 @@ lchan->tch_mode = 0; memset(&lchan->encr, 0, sizeof(lchan->encr)); memset(&lchan->ho, 0, sizeof(lchan->ho)); - lchan->bs_power = 0; + lchan->bs_power_red = 0; memset(&lchan->ms_power_ctrl, 0, sizeof(lchan->ms_power_ctrl)); lchan->rqd_ta = 0; copy_sacch_si_to_lchan(lchan); @@ -1146,8 +1146,15 @@ } /* 9.3.4 BS Power */ - if (TLVP_PRES_LEN(&tp, RSL_IE_BS_POWER, 1)) - lchan->bs_power = *TLVP_VAL(&tp, RSL_IE_BS_POWER); + if (TLVP_PRES_LEN(&tp, RSL_IE_BS_POWER, 1)) { + if (*TLVP_VAL(&tp, RSL_IE_BS_POWER) & (1 << 4)) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Fast Power Control is not supported\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_SERV_OPT_UNIMPL); + } + + lchan->bs_power_red = *TLVP_VAL(&tp, RSL_IE_BS_POWER) & 0x0f; + } + /* 9.3.13 MS Power */ if (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1)) { lchan->ms_power_ctrl.max = *TLVP_VAL(&tp, RSL_IE_MS_POWER) & 0x1F; @@ -1664,21 +1671,13 @@ return 0; } -/* See TS 48.058 Section 9.3.4 */ -static int bs_power_attenuation_dB(uint8_t bs_power) -{ - /* the lower nibble contains the number of 2dB steps that the BS power is reduced compared - * to its nominal transmit power */ - return - ((bs_power & 0xF) *2); -} - /* 8.4.16 BS POWER CONTROL */ static int rsl_rx_bs_pwr_ctrl(struct msgb *msg) { struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; struct tlv_parsed tp; - uint8_t new_bs_power; + uint8_t old_bs_power_red; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1686,12 +1685,16 @@ if (!TLVP_PRES_LEN(&tp, RSL_IE_BS_POWER, 1)) return rsl_tx_error_report(msg->trx, RSL_ERR_MAND_IE_ERROR, &dch->chan_nr, NULL, msg); - new_bs_power = *TLVP_VAL(&tp, RSL_IE_BS_POWER); + if (*TLVP_VAL(&tp, RSL_IE_BS_POWER) & (1 << 4)) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Fast Power Control is not supported\n"); + return rsl_tx_error_report(msg->trx, RSL_ERR_SERV_OPT_UNIMPL, &dch->chan_nr, NULL, msg); + } + + old_bs_power_red = lchan->bs_power_red; + lchan->bs_power_red = *TLVP_VAL(&tp, RSL_IE_BS_POWER) & 0x0f; LOGPLCHAN(lchan, DRSL, LOGL_INFO, "BS POWER CONTROL Attenuation %d -> %d dB\n", - bs_power_attenuation_dB(lchan->bs_power), bs_power_attenuation_dB(new_bs_power)); - - lchan->bs_power = new_bs_power; + old_bs_power_red * 2, lchan->bs_power_red * 2); /* 9.3.31 MS Power Parameters (O) */ if (TLVP_PRESENT(&tp, RSL_IE_BS_POWER_PARAM)) { @@ -2896,7 +2899,7 @@ msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; } - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->meas.bts_tx_pwr); + msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_red); if (lchan->meas.flags & LC_UL_M_F_L1_VALID) { msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, 2, lchan->meas.l1_info); lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; diff --git a/src/common/tx_power.c b/src/common/tx_power.c index e418cec..de741f5 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -67,7 +67,7 @@ } int get_p_target_mdBm_lchan(struct gsm_lchan *lchan) { - return get_p_target_mdBm(lchan->ts->trx, lchan->bs_power); + return get_p_target_mdBm(lchan->ts->trx, lchan->bs_power_red); } /* calculate the actual total output power required, taking into account the @@ -133,7 +133,7 @@ } int get_p_trxout_target_mdBm_lchan(struct gsm_lchan *lchan) { - return get_p_trxout_target_mdBm(lchan->ts->trx, lchan->bs_power); + return get_p_trxout_target_mdBm(lchan->ts->trx, lchan->bs_power_red); } diff --git a/src/common/vty.c b/src/common/vty.c index 3dfd387..058ff30 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1183,7 +1183,7 @@ VTY_NEWLINE); vty_out(vty, " BS Power: %d dBm, MS Power: %u dBm%s", lchan->ts->trx->nominal_power - lchan->ts->trx->max_power_red - - lchan->bs_power*2, + - lchan->bs_power_red * 2, ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), VTY_NEWLINE); vty_out(vty, " Channel Mode / Codec: %s%s", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 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 Jun 15 15:05:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:05:09 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: fix logging: do not print A-bis MO name twice References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18836 ) Change subject: A-bis/OML: fix logging: do not print A-bis MO name twice ...................................................................... A-bis/OML: fix logging: do not print A-bis MO name twice LOGPFOH() itself prepends A-bis MO name to the logging message. Change-Id: I513efeb441a69e9eee1ad7bbd8cb0b552b7195eb --- M src/common/oml.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/36/18836/1 diff --git a/src/common/oml.c b/src/common/oml.c index 5610ab1..28fa066 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -937,8 +937,8 @@ /* If there is no TSC specified, use the BCC */ ts->tsc = BSIC2BCC(bts->bsic); } - LOGPFOH(DOML, LOGL_INFO, foh, "%s SET CHAN ATTR (TSC=%u pchan=%s)\n", - gsm_abis_mo_name(&ts->mo), ts->tsc, gsm_pchan_name(ts->pchan)); + LOGPFOH(DOML, LOGL_INFO, foh, "SET CHAN ATTR (TSC=%u pchan=%s)\n", + ts->tsc, gsm_pchan_name(ts->pchan)); /* call into BTS driver to apply new attributes to hardware */ return bts_model_apply_oml(bts, msg, tp_merged, NM_OC_CHANNEL, ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I513efeb441a69e9eee1ad7bbd8cb0b552b7195eb Gerrit-Change-Number: 18836 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 Jun 15 15:05:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:05:10 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18837 ) Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... A-bis/OML: handle hopping params in Set Channel Attributes Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Related: OS#4546 --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c M src/common/oml.c 3 files changed, 41 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/37/18837/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index c3dba3c..b6a0db7 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -315,15 +315,11 @@ struct { /* Parameters below are configured by VTY */ - int enabled; + bool enabled; uint8_t maio; uint8_t hsn; - struct bitvec arfcns; - uint8_t arfcns_data[1024/8]; - /* This is the pre-computed MA for channel assignments */ - struct bitvec ma; - uint8_t ma_len; /* part of ma_data that is used */ - uint8_t ma_data[8]; /* 10.5.2.21: max 8 bytes value part */ + uint16_t ma[64]; + uint8_t ma_len; } hopping; struct gsm_lchan lchan[TS_MAX_LCHAN]; diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index c680001..3ca51ae 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -209,11 +209,6 @@ gsm_mo_init(&ts->mo, bts, NM_OC_CHANNEL, bts->nr, trx->nr, ts->nr); - ts->hopping.arfcns.data_len = sizeof(ts->hopping.arfcns_data); - ts->hopping.arfcns.data = ts->hopping.arfcns_data; - ts->hopping.ma.data_len = sizeof(ts->hopping.ma_data); - ts->hopping.ma.data = ts->hopping.ma_data; - for (l = 0; l < TS_MAX_LCHAN; l++) { struct gsm_lchan *lchan; char *name; diff --git a/src/common/oml.c b/src/common/oml.c index 28fa066..ea90c30 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -872,7 +872,7 @@ struct abis_om_fom_hdr *foh = msgb_l3(msg); struct gsm_bts *bts = ts->trx->bts; struct tlv_parsed tp, *tp_merged; - int rc; + int rc, i; DEBUGPFOH(DOML, foh, "Rx SET CHAN ATTR\n"); @@ -883,11 +883,39 @@ return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT); } - /* 9.4.21 HSN... */ - /* 9.4.27 MAIO */ + /* Check frequency hopping parameters (HSN, MAIO, ARFCN list) */ if (TLVP_PRESENT(&tp, NM_ATT_HSN) || TLVP_PRESENT(&tp, NM_ATT_MAIO)) { - LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: Frequency hopping not supported.\n"); - return oml_fom_ack_nack(msg, NM_NACK_SPEC_IMPL_NOTSUPP); + if (!osmo_bts_has_feature(bts->features, BTS_FEAT_HOPPING)) { + LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: Frequency hopping not supported.\n"); + return oml_fom_ack_nack(msg, NM_NACK_SPEC_IMPL_NOTSUPP); + } + + if (!TLVP_PRES_LEN(&tp, NM_ATT_HSN, 1) || !TLVP_PRES_LEN(&tp, NM_ATT_MAIO, 1)) { + LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: HSN and/or MAIO is missing: " + "hsn=%u, maio=%u\n", TLVP_LEN(&tp, NM_ATT_HSN), TLVP_LEN(&tp, NM_ATT_MAIO)); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } + + if (!TLVP_PRES_LEN(&tp, NM_ATT_ARFCN_LIST, 2)) { /* At least one ARFCN */ + LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: ARFCN list is missing\n"); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } + + if (TLVP_LEN(&tp, NM_ATT_ARFCN_LIST) > sizeof(ts->hopping.ma)) { + LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: ARFCN list is too long\n"); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } else if (TLVP_LEN(&tp, NM_ATT_ARFCN_LIST) % 2 != 0) { + LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: ARFCN list has odd length\n"); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } + + ts->hopping.enabled = true; + ts->hopping.hsn = *TLVP_VAL(&tp, NM_ATT_HSN); + ts->hopping.maio = *TLVP_VAL(&tp, NM_ATT_MAIO); + + ts->hopping.ma_len = TLVP_LEN(&tp, NM_ATT_ARFCN_LIST) / 2; + for (i = 0; i < ts->hopping.ma_len; i++) + ts->hopping.ma[i] = osmo_load16be(TLVP_VAL(&tp, NM_ATT_ARFCN_LIST) + i * 2); } /* 9.4.52 Starting Time */ @@ -928,8 +956,6 @@ } } - /* 9.4.5 ARFCN List */ - /* 9.4.60 TSC */ if (TLVP_PRES_LEN(&tp, NM_ATT_TSC, 1)) { ts->tsc = *TLVP_VAL(&tp, NM_ATT_TSC); @@ -937,8 +963,12 @@ /* If there is no TSC specified, use the BCC */ ts->tsc = BSIC2BCC(bts->bsic); } - LOGPFOH(DOML, LOGL_INFO, foh, "SET CHAN ATTR (TSC=%u pchan=%s)\n", + LOGPFOH(DOML, LOGL_INFO, foh, "SET CHAN ATTR (TSC=%u pchan=%s", ts->tsc, gsm_pchan_name(ts->pchan)); + if (ts->hopping.enabled) + LOGPC(DOML, LOGL_INFO, " hsn=%u maio=%u ma_len=%u", + ts->hopping.hsn, ts->hopping.maio, ts->hopping.ma_len); + LOGPC(DOML, LOGL_INFO, ")\n"); /* call into BTS driver to apply new attributes to hardware */ return bts_model_apply_oml(bts, msg, tp_merged, NM_OC_CHANNEL, ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 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 Jun 15 15:06:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:06:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18833 ) Change subject: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18833/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18833/1/src/common/scheduler.c at 1005 PS1, Line 1005: chan_state->lchan = get_lchan_by_chan_nr(l1t->trx, chan_nr); I se chan_state->lchan never set to NULL explicitly. Are you sure that's fine? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 Gerrit-Change-Number: 18833 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-CC: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:06: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 Mon Jun 15 15:08:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:08:30 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: include BS Power reduction in Downlink bursts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18834 ) Change subject: osmo-bts-trx: include BS Power reduction in Downlink bursts ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18834/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18834/1/src/common/scheduler.c at 1194 PS1, Line 1194: if (l1cs->lchan != NULL) is it expected to be NULL at some point? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 Gerrit-Change-Number: 18834 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:08:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:09:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:09:14 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18833 ) Change subject: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18833/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18833/1/src/common/scheduler.c at 1005 PS1, Line 1005: chan_state->lchan = get_lchan_by_chan_nr(l1t->trx, chan_nr); > I se chan_state->lchan never set to NULL explicitly. [?] We're using talloc_zero() everywhere, so it's set to NULL implicitly. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 Gerrit-Change-Number: 18833 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:09:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:09:33 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 15:09:33 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: increase extra timeout to 30s In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 ) Change subject: iperf3: increase extra timeout to 30s ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 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: I80b732a060356aa98882ff0e8b5debaf623ba0fb Gerrit-Change-Number: 18800 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 15 Jun 2020 15: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 Mon Jun 15 15:09:37 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 15:09:37 +0000 Subject: Change in osmo-gsm-tester[master]: epc: refactor run_wait() method and rename to prepare_proc() In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 ) Change subject: epc: refactor run_wait() method and rename to prepare_proc() ...................................................................... epc: refactor run_wait() method and rename to prepare_proc() this refactor no longer enforces blocking operation of the process. Instead it returns the process object to the caller who can now run either proc.launch() for non-blocking operation or proc.launch_sync() for blocking mode. The non-block mode allos doing other stuff in the background, for example controlling the rfemu while running a ping. Change-Id: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 --- M src/osmo_gsm_tester/obj/epc.py M sysmocom/suites/4g/rrc_idle_mt_ping.py 2 files changed, 6 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/obj/epc.py b/src/osmo_gsm_tester/obj/epc.py index dfeba74..6f056fc 100644 --- a/src/osmo_gsm_tester/obj/epc.py +++ b/src/osmo_gsm_tester/obj/epc.py @@ -76,13 +76,14 @@ return epc_class(testenv, run_node) - def run_wait(self, name, popen_args): - ''' Execute process on EPC node, useful for MT traffic ''' + def prepare_process(self, name, popen_args): + ''' Prepare and return a process to run on EPC node. + Caller calls either launch() or launch_sync() + for non-blocking or blocking operation respectively ''' if self._run_node.is_local(): proc = process.Process(name, self.run_dir, popen_args) else: proc = self.rem_host.RemoteProcess(name, popen_args) - proc.launch_sync() return proc ################### diff --git a/sysmocom/suites/4g/rrc_idle_mt_ping.py b/sysmocom/suites/4g/rrc_idle_mt_ping.py index fb3c32c..dcabe21 100755 --- a/sysmocom/suites/4g/rrc_idle_mt_ping.py +++ b/sysmocom/suites/4g/rrc_idle_mt_ping.py @@ -27,7 +27,8 @@ sleep(5) # Generate MO traffic, send single ping -proc = epc.run_wait('ping', ('ping', '-c', '1', ue.get_assigned_addr())) +proc = epc.prepare_process('ping', ('ping', '-c', '1', ue.get_assigned_addr())) +proc.launch_sync() output = proc.get_stdout() # Check paging received -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18789 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: Ia6372e55a8829f722e40db537d9dfd63a94d1be9 Gerrit-Change-Number: 18789 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:09:37 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 15:09:37 +0000 Subject: Change in osmo-gsm-tester[master]: enb_amarisoft: fix typo In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18790 ) Change subject: enb_amarisoft: fix typo ...................................................................... enb_amarisoft: fix typo Change-Id: Ie898da5eae10af96c2bca6c2413bdff4a5160e9f --- M src/osmo_gsm_tester/obj/enb_amarisoft.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index f6f2cb0..8b4ecae 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -223,7 +223,7 @@ if cell_list is None or len(cell_list) < cell + 1: raise log.Error('cell_list attribute or subitem not found!') rfemu_cfg = cell_list[cell].get('dl_rfemu', None) - if rfemu_cfg is None: # craft amarisfot by default: + if rfemu_cfg is None: # craft amarisoft by default: rfemu_cfg = {'type': 'amarisoftctl', 'addr': self.addr(), 'ports': [9001] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18790 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: Ie898da5eae10af96c2bca6c2413bdff4a5160e9f Gerrit-Change-Number: 18790 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:09:38 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 15:09:38 +0000 Subject: Change in osmo-gsm-tester[master]: rfemu: add max attenuation getter In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18791 ) Change subject: rfemu: add max attenuation getter ...................................................................... rfemu: add max attenuation getter this allows to query the maximum channel attenuation from within a test case Change-Id: I35f7cb188790c59bbf2450f78c663fbc9440e406 --- M src/osmo_gsm_tester/obj/rfemu.py M src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py M src/osmo_gsm_tester/obj/rfemu_minicircuits.py 3 files changed, 11 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/obj/rfemu.py b/src/osmo_gsm_tester/obj/rfemu.py index b2add6b..ac34ee1 100644 --- a/src/osmo_gsm_tester/obj/rfemu.py +++ b/src/osmo_gsm_tester/obj/rfemu.py @@ -39,6 +39,11 @@ """Set attenuation in dB on the configured channel""" pass + @abstractmethod + def get_max_attenuation(self): + """Get maximum channel attenuation""" + pass + def get_instance_by_type(rfemu_type, rfemu_opt): """Allocate a RFemulation child class based on type. Opts are passed to the newly created object.""" if rfemu_type == 'amarisoftctl': diff --git a/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py b/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py index 6ef25bb..17aa43a 100644 --- a/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py +++ b/src/osmo_gsm_tester/obj/rfemu_amarisoftctrl.py @@ -59,5 +59,7 @@ result = self.ws.recv() self.dbg('Received CTRL msg: "%s"' % result) + def get_max_attenuation(self): + return 200 # maximum cell_gain value in Amarisoft # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/rfemu_minicircuits.py b/src/osmo_gsm_tester/obj/rfemu_minicircuits.py index eea3a0e..6214040 100644 --- a/src/osmo_gsm_tester/obj/rfemu_minicircuits.py +++ b/src/osmo_gsm_tester/obj/rfemu_minicircuits.py @@ -64,4 +64,8 @@ self.dbg('Received response: "%s"' % data_str) if data_str != '1': raise log.Error('Mini-circuits attenuation device returned failure! %s' & data_str) + + def get_max_attenuation(self): + return 95 # Maximum value of the Mini-Circuits RC4DAT-6G-95 + # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18791 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: I35f7cb188790c59bbf2450f78c663fbc9440e406 Gerrit-Change-Number: 18791 Gerrit-PatchSet: 5 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:09:39 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 15:09:39 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: increase extra timeout to 30s In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 ) Change subject: iperf3: increase extra timeout to 30s ...................................................................... iperf3: increase extra timeout to 30s 10s was too short and has still caused tests to fail because they were stopped just before the iperf finished. 30s seems to be enought and has passed multiple times so far Change-Id: I80b732a060356aa98882ff0e8b5debaf623ba0fb --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved srs_andre: Verified diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index ee62159..13fd455 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -250,7 +250,7 @@ proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) else: proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) - proc.set_default_wait_timeout(time_sec + 10) # leave 10 extra sec for remote run, ctrl conn establishment, etc. + proc.set_default_wait_timeout(time_sec + 30) # leave 30 extra sec for remote run, ctrl conn establishment, etc. return proc def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18800 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: I80b732a060356aa98882ff0e8b5debaf623ba0fb Gerrit-Change-Number: 18800 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:09:52 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 15:09:52 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 ) Change subject: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 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: Ibfffde9ecccd473f22e816bd47e197fbe24b0ded Gerrit-Change-Number: 18828 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Mon, 15 Jun 2020 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 Mon Jun 15 15:09:56 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 15:09:56 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 ) Change subject: amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 ...................................................................... amarisoft_drb.cfg.tmpl: adjust default values for QCI 1 and 2 use more realistic values for QCI 1 and 2 bearers to prepare QoS operation Change-Id: Ibfffde9ecccd473f22e816bd47e197fbe24b0ded --- M src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl 1 file changed, 8 insertions(+), 8 deletions(-) Approvals: pespin: Looks good to me, approved srs_andre: Verified diff --git a/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl index a200063..38281b5 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_drb.cfg.tmpl @@ -7,7 +7,7 @@ qci: 1, /* UM - real time (RTP for VOIP) */ pdcp_config: { discardTimer: 100, /* in ms, 0 means infinity */ - pdcp_SN_Size: 7, + pdcp_SN_Size: 12, /* ROHC header compression */ /* headerCompression: { @@ -30,9 +30,9 @@ logical_channel_config: { /* Note: SRB1 has priority 1, SRB2 has priority 3. We start from 4 for priority 0.5 and increase the value */ - priority: 7, - prioritisedBitRate: 0, /* in kb/s, -1 means infinity */ - bucketSizeDuration: 100, /* in ms */ + priority: 4, + prioritisedBitRate: 256, /* in kb/s, -1 means infinity */ + bucketSizeDuration: 1000, /* in ms */ logicalChannelGroup: 1, logicalChannelSR_Mask: false, logicalChannelSR_Prohibit: false, @@ -54,9 +54,9 @@ }, }, logical_channel_config: { - priority: 9, - prioritisedBitRate: 0, /* in kb/s, -1 means infinity */ - bucketSizeDuration: 100, /* in ms */ + priority: 5, + prioritisedBitRate: 128, /* in kb/s, -1 means infinity */ + bucketSizeDuration: 1000, /* in ms */ logicalChannelGroup: 1, logicalChannelSR_Mask: false, logicalChannelSR_Prohibit: false, @@ -300,7 +300,7 @@ }, logical_channel_config: { priority: 15, - prioritisedBitRate: 8, /* in kb/s, -1 means infinity */ + prioritisedBitRate: -1, /* in kb/s, -1 means infinity */ bucketSizeDuration: 100, /* in ms */ logicalChannelGroup: 3, logicalChannelSR_Mask: false, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18828 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: Ibfffde9ecccd473f22e816bd47e197fbe24b0ded Gerrit-Change-Number: 18828 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:10:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:10:44 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: include BS Power reduction in Downlink bursts In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18834 ) Change subject: osmo-bts-trx: include BS Power reduction in Downlink bursts ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18834/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18834/1/src/common/scheduler.c at 1194 PS1, Line 1194: if (l1cs->lchan != NULL) > is it expected to be NULL at some point? Yes, see https://gerrit.osmocom.org/c/osmo-bts/+/18833/1/include/osmo-bts/scheduler.h#74. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 Gerrit-Change-Number: 18834 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:10: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 Mon Jun 15 15:12:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:12:59 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18835 ) Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/include/osmo-bts/gsm_data_shared.h at 269 PS1, Line 269: /* BTS power reduction (2 dB steps) */ I think it makes more sense to keep it in dB internally, like we do for all other power, pwr reduction/attenuations. https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/src/common/tx_power.c File src/common/tx_power.c: https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/src/common/tx_power.c at 116 PS1, Line 116: int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie) here too: bs_power_red_ie. BTW, current name may be wrong too, as in it says "ie" meaning it's 2db step, but not sure if this code is actually expecting 1dB unit instead 2db step. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:12: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 Mon Jun 15 15:13:16 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 15:13:16 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: Hello neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 to look at the new patch set (#6). Change subject: endp: add name generator function for E1 endpoints ...................................................................... endp: add name generator function for E1 endpoints Currently the endpoint name that is generated for an E1 endpoint is not correct. Let's add an endpoint name generator function that derives a full endpoint name for a given E1 index Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Related: OS#2547 --- M src/libosmo-mgcp/mgcp_endp.c 1 file changed, 38 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:13:16 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 15 Jun 2020 15:13:16 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: Hello neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 to look at the new patch set (#4). Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:13:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:13:17 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: fix logging: do not print A-bis MO name twice In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18836 ) Change subject: A-bis/OML: fix logging: do not print A-bis MO name twice ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I513efeb441a69e9eee1ad7bbd8cb0b552b7195eb Gerrit-Change-Number: 18836 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:13: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 Jun 15 15:16:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:16:29 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18837 ) Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18837/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/c/osmo-bts/+/18837/1/src/common/oml.c at 889 PS1, Line 889: LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: Frequency hopping not supported.\n"); NOTICE? ERROR better. Same below. https://gerrit.osmocom.org/c/osmo-bts/+/18837/1/src/common/oml.c at 916 PS1, Line 916: ts->hopping.ma_len = TLVP_LEN(&tp, NM_ATT_ARFCN_LIST) / 2; probably using sizeof(int16_t) here and below instead of "2" makes it easier to understand why is that there (because they are 16bit values). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:16:29 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:17:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:17:09 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18833 ) Change subject: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state ...................................................................... Patch Set 1: Code-Review+1 Ok just wanted to make sure we simply talloc it once and then reuse it over different lchans over time. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 Gerrit-Change-Number: 18833 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:17: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 Jun 15 15:17:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:17:40 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: include BS Power reduction in Downlink bursts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18834 ) Change subject: osmo-bts-trx: include BS Power reduction in Downlink bursts ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 Gerrit-Change-Number: 18834 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 15 Jun 2020 15:17: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 Jun 15 15:31:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:31:37 +0000 Subject: Change in osmo-gsm-tester[master]: srs: Convert additional_args attr to list to allow combining differen... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18838 ) Change subject: srs: Convert additional_args attr to list to allow combining different params ...................................................................... srs: Convert additional_args attr to list to allow combining different params Change-Id: I4b371332cd6fbe11b98c85c79a6f8fdcc776a57b --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M sysmocom/scenarios/mod-enb-args at .conf M sysmocom/scenarios/mod-modem-args at .conf 5 files changed, 12 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/38/18838/1 diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index b221cb9..4a151d7 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -34,7 +34,7 @@ 'rx_gain': schema.UINT, 'rf_dev_type': schema.STR, 'rf_dev_args': schema.STR, - 'additional_args': schema.STR, + 'additional_args[]': schema.STR, 'enable_measurements': schema.BOOL_STR, 'a1_report_type': schema.STR, 'a1_report_value': schema.INT, diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 9dc8113..1b23172 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -176,7 +176,9 @@ self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false')) config.overlay(values, dict(enb={'enable_pcap': self.enable_pcap})) - self._additional_args = values['enb'].get('additional_args', '').split() + self._additional_args = [] + for add_args in values['enb'].get('additional_args', []): + self._additional_args += add_args.split() # We need to set some specific variables programatically here to match IP addresses: if self._conf.get('rf_dev_type') == 'zmq': diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 3aa6b0a..6241685 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -35,7 +35,7 @@ 'rf_dev_type': schema.STR, 'rf_dev_args': schema.STR, 'num_carriers': schema.UINT, - 'additional_args': schema.STR, + 'additional_args[]': schema.STR, 'airplane_t_on_ms': schema.INT, 'airplane_t_off_ms': schema.INT, 'tx_gain': schema.UINT, @@ -231,6 +231,9 @@ config.overlay(values, dict(ue={'enable_pcap': self.enable_pcap})) self._additional_args = values['ue'].get('additional_args', '').split() + for add_args in values['ue'].get('additional_args', []): + self._additional_args += add_args.split() + self.num_carriers = int(values['ue'].get('num_carriers', 1)) diff --git a/sysmocom/scenarios/mod-enb-args at .conf b/sysmocom/scenarios/mod-enb-args at .conf index a758d01..3e09a99 100644 --- a/sysmocom/scenarios/mod-enb-args at .conf +++ b/sysmocom/scenarios/mod-enb-args at .conf @@ -1,3 +1,4 @@ modifiers: enb: - - additional_args: ${param1} + - additional_args: + - ${param1} diff --git a/sysmocom/scenarios/mod-modem-args at .conf b/sysmocom/scenarios/mod-modem-args at .conf index dde7796..2ec0834 100644 --- a/sysmocom/scenarios/mod-modem-args at .conf +++ b/sysmocom/scenarios/mod-modem-args at .conf @@ -1,3 +1,4 @@ modifiers: modem: - - additional_args: ${param1} + - additional_args: + - ${param1} -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18838 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: I4b371332cd6fbe11b98c85c79a6f8fdcc776a57b Gerrit-Change-Number: 18838 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 Jun 15 15:42:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:42:41 +0000 Subject: Change in osmo-gsm-tester[master]: srs: Convert additional_args attr to list to allow combining differen... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18838 ) Change subject: srs: Convert additional_args attr to list to allow combining different params ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18838 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: I4b371332cd6fbe11b98c85c79a6f8fdcc776a57b Gerrit-Change-Number: 18838 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:42: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 Jun 15 15:42:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:42:44 +0000 Subject: Change in osmo-gsm-tester[master]: srs: Convert additional_args attr to list to allow combining differen... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18838 ) Change subject: srs: Convert additional_args attr to list to allow combining different params ...................................................................... srs: Convert additional_args attr to list to allow combining different params Change-Id: I4b371332cd6fbe11b98c85c79a6f8fdcc776a57b --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M sysmocom/scenarios/mod-enb-args at .conf M sysmocom/scenarios/mod-modem-args at .conf 5 files changed, 12 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index b221cb9..4a151d7 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -34,7 +34,7 @@ 'rx_gain': schema.UINT, 'rf_dev_type': schema.STR, 'rf_dev_args': schema.STR, - 'additional_args': schema.STR, + 'additional_args[]': schema.STR, 'enable_measurements': schema.BOOL_STR, 'a1_report_type': schema.STR, 'a1_report_value': schema.INT, diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 9dc8113..1b23172 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -176,7 +176,9 @@ self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false')) config.overlay(values, dict(enb={'enable_pcap': self.enable_pcap})) - self._additional_args = values['enb'].get('additional_args', '').split() + self._additional_args = [] + for add_args in values['enb'].get('additional_args', []): + self._additional_args += add_args.split() # We need to set some specific variables programatically here to match IP addresses: if self._conf.get('rf_dev_type') == 'zmq': diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 3aa6b0a..6241685 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -35,7 +35,7 @@ 'rf_dev_type': schema.STR, 'rf_dev_args': schema.STR, 'num_carriers': schema.UINT, - 'additional_args': schema.STR, + 'additional_args[]': schema.STR, 'airplane_t_on_ms': schema.INT, 'airplane_t_off_ms': schema.INT, 'tx_gain': schema.UINT, @@ -231,6 +231,9 @@ config.overlay(values, dict(ue={'enable_pcap': self.enable_pcap})) self._additional_args = values['ue'].get('additional_args', '').split() + for add_args in values['ue'].get('additional_args', []): + self._additional_args += add_args.split() + self.num_carriers = int(values['ue'].get('num_carriers', 1)) diff --git a/sysmocom/scenarios/mod-enb-args at .conf b/sysmocom/scenarios/mod-enb-args at .conf index a758d01..3e09a99 100644 --- a/sysmocom/scenarios/mod-enb-args at .conf +++ b/sysmocom/scenarios/mod-enb-args at .conf @@ -1,3 +1,4 @@ modifiers: enb: - - additional_args: ${param1} + - additional_args: + - ${param1} diff --git a/sysmocom/scenarios/mod-modem-args at .conf b/sysmocom/scenarios/mod-modem-args at .conf index dde7796..2ec0834 100644 --- a/sysmocom/scenarios/mod-modem-args at .conf +++ b/sysmocom/scenarios/mod-modem-args at .conf @@ -1,3 +1,4 @@ modifiers: modem: - - additional_args: ${param1} + - additional_args: + - ${param1} -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18838 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: I4b371332cd6fbe11b98c85c79a6f8fdcc776a57b Gerrit-Change-Number: 18838 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 Jun 15 15:42:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:42:53 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: Add test to verify junit xml report In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 ) Change subject: selftest: Add test to verify junit xml report ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 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: I8cad02abe776cc00b513113dbaf3c948ea7956cd Gerrit-Change-Number: 18825 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:42: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 Jun 15 15:42:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:42:55 +0000 Subject: Change in osmo-gsm-tester[master]: Add per-test KPI support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18832 ) Change subject: Add per-test KPI support ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18832 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: I00e976f65a202e82d440bf33708f06c8ce2643e2 Gerrit-Change-Number: 18832 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:42: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 Jun 15 15:42:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:42:58 +0000 Subject: Change in osmo-gsm-tester[master]: selftest: Add test to verify junit xml report In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 ) Change subject: selftest: Add test to verify junit xml report ...................................................................... selftest: Add test to verify junit xml report Change-Id: I8cad02abe776cc00b513113dbaf3c948ea7956cd --- A selftest/report_test/_prep.py A selftest/report_test/expected_junit_output.xml A selftest/report_test/main.conf A selftest/report_test/report_test.err A selftest/report_test/report_test.ok A selftest/report_test/report_test.ok.ign A selftest/report_test/report_test.py A selftest/report_test/resources.conf M src/osmo_gsm_tester/core/suite.py 9 files changed, 225 insertions(+), 6 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/selftest/report_test/_prep.py b/selftest/report_test/_prep.py new file mode 120000 index 0000000..9cea3fe --- /dev/null +++ b/selftest/report_test/_prep.py @@ -0,0 +1 @@ +../_prep.py \ No newline at end of file diff --git a/selftest/report_test/expected_junit_output.xml b/selftest/report_test/expected_junit_output.xml new file mode 100644 index 0000000..5de0edf --- /dev/null +++ b/selftest/report_test/expected_junit_output.xml @@ -0,0 +1,62 @@ + + + + test log file not available + + + yay this is a test-applied stdout + + + + + + + + + test log file not available + + + could not run + test log file not available + + + could not run + test log file not available + + + + + + + + + + test log file not available + + + test log file not available + + + + test log file not available + + + + + + + + + fake_fail_message + system stderr fake content + test log file not available + + + test log file not available + + + + + + + diff --git a/selftest/report_test/main.conf b/selftest/report_test/main.conf new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/report_test/main.conf diff --git a/selftest/report_test/report_test.err b/selftest/report_test/report_test.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/report_test/report_test.err diff --git a/selftest/report_test/report_test.ok b/selftest/report_test/report_test.ok new file mode 100644 index 0000000..87092ea --- /dev/null +++ b/selftest/report_test/report_test.ok @@ -0,0 +1,17 @@ +cnf ResourcesPool: DBG: Found main configuration file in [PATH]/selftest/report_test/main.conf which is [PATH]/selftest/report_test/main.conf +cnf ResourcesPool: DBG: MAIN CONFIG: +{'default_suites_conf_path': '[PATH]/selftest/report_test/default-suites.conf', + 'defaults_conf_path': '[PATH]/selftest/report_test/defaults.conf', + 'resource_conf_path': '[PATH]/selftest/report_test/resources.conf', + 'scenarios_dir': ['[PATH]/selftest/report_test/scenarios'], + 'state_dir': '/var/tmp/osmo-gsm-tester/state', + 'suites_dir': ['[PATH]/selftest/report_test/suites'], + 'trial_dir': '[PATH]/selftest/report_test/trial'} +tst suiteA: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteA?{combining_scenarios='config'}] +tst suiteB: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteB?{combining_scenarios='config'}] +tst suiteC: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] +tst suiteD: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteD?{combining_scenarios='config'}] diff --git a/selftest/report_test/report_test.ok.ign b/selftest/report_test/report_test.ok.ign new file mode 100644 index 0000000..dcda3b6 --- /dev/null +++ b/selftest/report_test/report_test.ok.ign @@ -0,0 +1,3 @@ +/[^ ]*/selftest/ [PATH]/selftest/ +\.py:[0-9]* .py:[LINENR] +\([0-9.]+ sec\) (N.N sec) diff --git a/selftest/report_test/report_test.py b/selftest/report_test/report_test.py new file mode 100755 index 0000000..57e3a89 --- /dev/null +++ b/selftest/report_test/report_test.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python3 +import _prep + +from osmo_gsm_tester.core import report +from osmo_gsm_tester.core import log +from osmo_gsm_tester.core import util +from osmo_gsm_tester.core import test +from osmo_gsm_tester.core import suite +from osmo_gsm_tester.core import config + +import os +import sys +import shutil +import difflib +import xml.etree.ElementTree as et + +class FakeTrial(log.Origin): + def __init__(self): + super().__init__(log.C_TST, 'trial') + self.dir = util.Dir(example_trial_dir) + self._run_dir = None + self.suites = [] + + def get_all_inst_hash_info(self): + return { 'foobar/potato': '1234', 'orange': 'abcd' } + + def get_run_dir(self): + if self._run_dir is not None: + return self._run_dir + self._run_dir = util.Dir(self.dir.new_child('test_run')) + self._run_dir.mkdir() + return self._run_dir + +class FakeSuiteDefinition(log.Origin): + def __init__(self, name, num_tests): + super().__init__(log.C_TST, name) + self.test_basenames = [name + '-' + str(tid) for tid in range(num_tests) ] + self.conf = {} + self.suite_dir = util.Dir(example_trial_dir).new_child('suitedef' + name) + + +def fake_run_test(test_obj, status, duration, sysout=None): + test_obj.status = status + test_obj.duration = duration + if sysout is not None: + test_obj.set_report_stdout(sysout) + if status == test.Test.FAIL: + test_obj.fail_type = 'fake_fail_type' + test_obj.fail_message = 'fake_fail_message' + test_obj.fail_tb = 'system stderr fake content' + +def fake_run_suite(suite_obj, duration): + suite_obj.duration = duration + suite_obj.determine_status() + +config.override_conf = os.path.join(os.path.dirname(sys.argv[0]), 'main.conf') + +example_trial_dir = os.path.join('test_trial_tmp') + +trial = FakeTrial() + +# Suite passes with 2 tests passing +s_def = FakeSuiteDefinition('suiteA', 2) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.PASS, 30) +fake_run_test(s.tests[1], test.Test.PASS, 10, 'yay this is a test-applied stdout') +#fake_run_test(suiteA.tests[0], test.Test.UNKNOWN, 20) +fake_run_suite(s, 50) + +# Suite passes first test but next ones are not ececuted +s_def = FakeSuiteDefinition('suiteB', 3) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.PASS, 10) +fake_run_suite(s, 20) + +# Suite passes one test selected, others are skipped +s_def = FakeSuiteDefinition('suiteC', 3) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +s.tests[0].set_skip() +fake_run_test(s.tests[1], test.Test.PASS, 10) +s.tests[2].set_skip() +fake_run_suite(s, 12) + +# Suite fails due to one of its tests failing +s_def = FakeSuiteDefinition('suiteD', 2) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.FAIL, 12) +fake_run_test(s.tests[1], test.Test.PASS, 10) +fake_run_suite(s, 20) + +element = report.trial_to_junit(trial) + +def indent(elem, level=0): + i = "\n" + level*" " + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + " " + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + +def udiff(expect, got, expect_path): + expect = expect.splitlines(1) + got = got.splitlines(1) + for line in difflib.unified_diff(expect, got, + fromfile=expect_path, tofile='got'): + sys.stderr.write(line) + if not line.endswith('\n'): + sys.stderr.write('[no-newline]\n') + +indent(element) +#canonicalize() is only available in python3.8+, and we need it to have reliable string output: +if hasattr(et, 'canonicalize'): + got = et.canonicalize(et.tostring(element)).rstrip() + exp_path = os.path.join(os.path.dirname(sys.argv[0]), 'expected_junit_output.xml') + with open(exp_path, 'r') as f: + exp = f.read().rstrip() + udiff(exp, got, exp_path) + +#deleting generated tmp trial dir: +shutil.rmtree(example_trial_dir, ignore_errors=True) + +# vim: expandtab tabstop=4 shiftwidth=4 diff --git a/selftest/report_test/resources.conf b/selftest/report_test/resources.conf new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/selftest/report_test/resources.conf diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py index 938471c..a1d068e 100644 --- a/src/osmo_gsm_tester/core/suite.py +++ b/src/osmo_gsm_tester/core/suite.py @@ -189,18 +189,21 @@ util.import_path_remove(suite_libdir) self.duration = time.time() - self.start_timestamp - passed, skipped, failed, errors = self.count_test_results() - # if no tests ran, count it as failure - if passed and not failed and not errors: - self.status = SuiteRun.PASS - else: - self.status = SuiteRun.FAIL + self.determine_status() log.large_separator(self._trial.name(), self.name(), self.status, sublevel=2, space_above=False) def passed(self): return self.status == SuiteRun.PASS + def determine_status(self): + passed, skipped, failed, errors = self.count_test_results() + # if no tests ran, count it as failure + if passed and not failed and not errors: + self.status = SuiteRun.PASS + else: + self.status = SuiteRun.FAIL + def count_test_results(self): passed = 0 skipped = 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18825 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: I8cad02abe776cc00b513113dbaf3c948ea7956cd Gerrit-Change-Number: 18825 Gerrit-PatchSet: 7 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 Jun 15 15:42:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:42:59 +0000 Subject: Change in osmo-gsm-tester[master]: Add per-test KPI support In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18832 ) Change subject: Add per-test KPI support ...................................................................... Add per-test KPI support tests can now use 'tenv.test().set_kpis(some_dict)' to set any kind of data as KPIs, which will be presented in the junit report. The representation of KPIs in the xml file doesn't follow the junit format, mainly because it has no support for per-test properties. Change-Id: I00e976f65a202e82d440bf33708f06c8ce2643e2 --- M selftest/report_test/expected_junit_output.xml M selftest/report_test/report_test.ok M selftest/report_test/report_test.py M src/osmo_gsm_tester/core/report.py M src/osmo_gsm_tester/core/test.py 5 files changed, 98 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/selftest/report_test/expected_junit_output.xml b/selftest/report_test/expected_junit_output.xml index 5de0edf..9f6185c 100644 --- a/selftest/report_test/expected_junit_output.xml +++ b/selftest/report_test/expected_junit_output.xml @@ -1,4 +1,4 @@ - + test log file not available @@ -59,4 +59,34 @@ - + + + fake_fail_message + system stderr fake content + + + + + + + + + + + + + + test log file not available + + + + + + test log file not available + + + + + + + \ No newline at end of file diff --git a/selftest/report_test/report_test.ok b/selftest/report_test/report_test.ok index 87092ea..442d343 100644 --- a/selftest/report_test/report_test.ok +++ b/selftest/report_test/report_test.ok @@ -15,3 +15,5 @@ tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteC?{combining_scenarios='config'}] tst suiteD: DBG: {combining='config'} tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteD?{combining_scenarios='config'}] +tst suiteE: DBG: {combining='config'} +tst {combining_scenarios='config'}: DBG: {definition_conf={}} [suiteE?{combining_scenarios='config'}] diff --git a/selftest/report_test/report_test.py b/selftest/report_test/report_test.py index 57e3a89..5888bf3 100755 --- a/selftest/report_test/report_test.py +++ b/selftest/report_test/report_test.py @@ -39,11 +39,13 @@ self.suite_dir = util.Dir(example_trial_dir).new_child('suitedef' + name) -def fake_run_test(test_obj, status, duration, sysout=None): +def fake_run_test(test_obj, status, duration, sysout=None, kpis=None): test_obj.status = status test_obj.duration = duration if sysout is not None: test_obj.set_report_stdout(sysout) + if kpis is not None: + test_obj.set_kpis(kpis) if status == test.Test.FAIL: test_obj.fail_type = 'fake_fail_type' test_obj.fail_message = 'fake_fail_message' @@ -92,6 +94,14 @@ fake_run_test(s.tests[1], test.Test.PASS, 10) fake_run_suite(s, 20) +# Test adding KPIs +s_def = FakeSuiteDefinition('suiteE', 2) +s = suite.SuiteRun(trial, s_def.name(), s_def) +trial.suites.append(s) +fake_run_test(s.tests[0], test.Test.FAIL, 12, kpis={'ueA': {'kpiA': 30, 'kpiB': 'foobar', 'yet-another-level': {'foo': 'bar'}}, 'enbD': {'foobar-boolean': True }, 'somekpi': 'someval'}) +fake_run_test(s.tests[1], test.Test.PASS, 10, kpis={'abcd': 'abcdval'}) +fake_run_suite(s, 20) + element = report.trial_to_junit(trial) def indent(elem, level=0): @@ -126,6 +136,9 @@ with open(exp_path, 'r') as f: exp = f.read().rstrip() udiff(exp, got, exp_path) + # Uncomment to update exp_path: + #with open(exp_path, 'w') as f: + # f.write(got) #deleting generated tmp trial dir: shutil.rmtree(example_trial_dir, ignore_errors=True) diff --git a/src/osmo_gsm_tester/core/report.py b/src/osmo_gsm_tester/core/report.py index 5014bf5..d2c68c5 100644 --- a/src/osmo_gsm_tester/core/report.py +++ b/src/osmo_gsm_tester/core/report.py @@ -53,6 +53,46 @@ prop.set('name', 'ref:' + key) prop.set('value', val) +def dict_to_junit(parent, d): + for key, val in d.items(): + if isinstance(val, dict): + node = et.SubElement(parent, 'kpi_node') + node.set('name', key) + dict_to_junit(node, val) + continue + if isinstance(val, (tuple, list)): + node = et.SubElement(parent, 'kpi_node') + node.set('name', key) + list_to_junit(node, val) + continue + # scalar: + node = et.SubElement(parent, 'property') + node.set('name', key) + node.set('value', str(val)) + +def list_to_junit(parent, li): + for i in range(len(li)): + if isinstance(li[i], dict): + node = et.SubElement(parent, 'kpi_node') + node.set('name', str(i)) + dict_to_junit(node, li[i]) + continue + if isinstance(val, (tuple, list)): + node = et.SubElement(parent, 'kpi_node') + node.set('name', str(i)) + list_to_junit(node, li[i]) + continue + # scalar: + node = et.SubElement(parent, 'property') + node.set('name', str(i)) + node.set('value', str(li[i])) + +def kpis_to_junit(parent, kpis): + if not kpis: + return + assert isinstance(kpis, dict) + knode = et.SubElement(parent, 'kpis') + dict_to_junit(knode, kpis) def trial_to_junit_write(trial, junit_path): elements = et.ElementTree(element=trial_to_junit(trial)) @@ -118,6 +158,7 @@ elif t.status != test.Test.PASS: error = et.SubElement(testcase, 'error') error.text = 'could not run' + kpis_to_junit(testcase, t.kpis()) sout = et.SubElement(testcase, 'system-out') sout.text = escape_xml_invalid_characters(t.report_stdout()) return testcase diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index c6d88e6..dfbd169 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -49,6 +49,7 @@ self.fail_message = None self.log_targets = [] self._report_stdout = None + self._kpis = None self.timeout = int(config_test_specific['timeout']) if 'timeout' in config_test_specific else None def module_name(self): @@ -139,6 +140,14 @@ def config_test_specific(self): return self._config_test_specific + def set_kpis(self, kpis): + if not isinstance(kpis, dict): + raise log.Error('Expected dictionary in toplevel kpis') + self._kpis = kpis + + def kpis(self): + return self._kpis + def set_report_stdout(self, text): 'Overwrite stdout text stored in report from inside a test' self._report_stdout = text -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18832 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: I00e976f65a202e82d440bf33708f06c8ce2643e2 Gerrit-Change-Number: 18832 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:52:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:52:51 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18835 ) Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/include/osmo-bts/gsm_data_shared.h File include/osmo-bts/gsm_data_shared.h: https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/include/osmo-bts/gsm_data_shared.h at 269 PS1, Line 269: /* BTS power reduction (2 dB steps) */ > I think it makes more sense to keep it in dB internally, like we do for all other power, pwr reducti [?] ACK. https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/src/common/tx_power.c File src/common/tx_power.c: https://gerrit.osmocom.org/c/osmo-bts/+/18835/1/src/common/tx_power.c at 116 PS1, Line 116: int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie) I'll change it in the next patch set. > but not sure if this code is actually expecting 1dB unit instead 2db step. The code does * 2, so it's correct. I'll change it too. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:52: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 Mon Jun 15 15:55:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:55:03 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) 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/+/18835 to look at the new patch set (#2). Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... A-bis/RSL: refactor handling of BS Power IE (power reduction) According to 3GPP TS 08.58, section 9.3.4, BS Power IE indicates the transmission power attenuation on a particular channel: +--------------+---------+-----------------+ | Reserved (3) | FPC (1) | Power level (4) | +--------------+---------+-----------------+ so let's change handling of this IE as follows: - s/bs_power/bs_power_red/g, so it reflects 'reduction'; - store power attenuation value in dB, not in 2 db steps; - get rid of ms_power_ctrl.bts_tx_pwr, it's always 0 anyway; - fix rsl_tx_meas_res(): use lchan->bs_power_red; - always check if FPC (Fast Power Control) flag is set; - we don't support it, so reject messages containing it; - fix rsl_rx_chan_activ(): properly apply the bitmask. Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f --- M include/osmo-bts/gsm_data_shared.h M include/osmo-bts/tx_power.h M src/common/rsl.c M src/common/scheduler.c M src/common/tx_power.c M src/common/vty.c M tests/tx_power/tx_power_test.c 7 files changed, 50 insertions(+), 43 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/18835/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:55:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:55:03 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes 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/+/18837 to look at the new patch set (#2). Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... A-bis/OML: handle hopping params in Set Channel Attributes Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Related: OS#4546 --- M include/osmo-bts/gsm_data_shared.h M src/common/gsm_data_shared.c M src/common/oml.c 3 files changed, 41 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/37/18837/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 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 Mon Jun 15 15:57:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:57:13 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18835 ) Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:57:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 15:58:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 15:58:06 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18837 ) Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18837/2/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/c/osmo-bts/+/18837/2/src/common/oml.c at 918 PS2, Line 918: ts->hopping.ma[i] = osmo_load16be(TLVP_VAL(&tp, NM_ATT_ARFCN_LIST) + i * 2); here too: sizeof(uint16_t) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 15:58: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 Mon Jun 15 15:59:59 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 15:59:59 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix length indicator in Set Channel Attributes 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/+/18829 to look at the new patch set (#2). Change subject: abis_nm: fix length indicator in Set Channel Attributes ...................................................................... abis_nm: fix length indicator in Set Channel Attributes This message may contain optional IEs (HSN, MAIO, ARFCN list), so we cannot know the final length in advance. Let's set both msg->{l2h,l3h} pointers and use msgb_l3len() to get the length. Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Related: OS#4545 --- M src/osmo-bsc/abis_nm.c 1 file changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/29/18829/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Gerrit-Change-Number: 18829 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 Mon Jun 15 16:04:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 16:04:10 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix length indicator in Set Channel Attributes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18829 ) Change subject: abis_nm: fix length indicator in Set Channel Attributes ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18829/2/src/osmo-bsc/abis_nm.c File src/osmo-bsc/abis_nm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18829/2/src/osmo-bsc/abis_nm.c at 2061 PS2, Line 2061: msg->l2h = (uint8_t *) oh; Not sure if this l2h is needed, but ok. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Gerrit-Change-Number: 18829 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 16:04:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 16:19:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 16:19:29 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Refactor iperf3cli popen arg list generation References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 ) Change subject: iperf3: Refactor iperf3cli popen arg list generation ...................................................................... iperf3: Refactor iperf3cli popen arg list generation Change-Id: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934 --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 14 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/39/18839/1 diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index 13fd455..d79ff98 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -246,14 +246,24 @@ self.log_copied = False self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE) + + popen_args = ('iperf3', '-c', self.server.addr(), + '-p', str(self.server.port()), '-J', + '-t', str(time_sec)) + if dir == IPerf3Client.DIR_DL: + popen_args += ('-R',) + elif dir == IPerf3Client.DIR_BI: + popen_args += ('--bidir',) + if proto == IPerf3Client.PROTO_UDP: + popen_args += ('-u', '-b', str(bitrate)) if self.runs_locally(): - proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_locally(netns, popen_args) else: - proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_remotely(netns, popen_args) proc.set_default_wait_timeout(time_sec + 30) # leave 30 extra sec for remote run, ctrl conn establishment, etc. return proc - def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate): + def prepare_test_proc_remotely(self, netns, popen_args): self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr()) remote_prefix_dir = util.Dir(IPerf3Client.REMOTE_DIR) @@ -262,17 +272,8 @@ self.rem_host.recreate_remote_dir(remote_run_dir) - popen_args = ('iperf3', '-c', self.server.addr(), - '-p', str(self.server.port()), '-J', - '-t', str(time_sec)) if self.logfile_supported: popen_args += ('--logfile', self.remote_log_file,) - if dir == IPerf3Client.DIR_DL: - popen_args += ('-R',) - elif dir == IPerf3Client.DIR_BI: - popen_args += ('--bidir',) - if use_udp: - popen_args += ('-u', '-b', str(bitrate)) if netns: self.process = self.rem_host.RemoteNetNSProcess(self.name(), netns, popen_args, env={}) @@ -280,21 +281,12 @@ self.process = self.rem_host.RemoteProcess(self.name(), popen_args, env={}) return self.process - def prepare_test_proc_locally(self, dir, netns, time_sec, use_udp): + def prepare_test_proc_locally(self, netns, popen_args): pcap_recorder.PcapRecorder(self.testenv, self.run_dir.new_dir('pcap'), None, 'host %s and port not 22' % self.server.addr(), netns) - popen_args = ('iperf3', '-c', self.server.addr(), - '-p', str(self.server.port()), '-J', - '-t', str(time_sec)) if self.logfile_supported: popen_args += ('--logfile', os.path.abspath(self.log_file),) - if dir == IPerf3Client.DIR_DL: - popen_args += ('-R',) - elif dir == IPerf3Client.DIR_BI: - popen_args += ('--bidir',) - if use_udp: - popen_args += ('-u', '-b', '0') if netns: self.process = process.NetNSProcess(self.name(), self.run_dir, netns, popen_args, env={}) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 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: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934 Gerrit-Change-Number: 18839 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 Jun 15 16:19:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 16:19:29 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Add support for setting TOS References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18840 ) Change subject: iperf3: Add support for setting TOS ...................................................................... iperf3: Add support for setting TOS Change-Id: I3ccc249ad1c9598c606303c52eff6823f45afa7b --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/40/18840/1 diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index d79ff98..4ccbf42 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -219,7 +219,7 @@ locally = not self._run_node or self._run_node.is_local() return locally - def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None, bitrate=0): + def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None, bitrate=0, tos=None): values = config.get_defaults('iperf3cli') config.overlay(values, self.testenv.suite().config().get('iperf3cli', {})) @@ -256,6 +256,9 @@ popen_args += ('--bidir',) if proto == IPerf3Client.PROTO_UDP: popen_args += ('-u', '-b', str(bitrate)) + if tos is not None: + popen_args += ('-S', str(tos)) + if self.runs_locally(): proc = self.prepare_test_proc_locally(netns, popen_args) else: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18840 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: I3ccc249ad1c9598c606303c52eff6823f45afa7b Gerrit-Change-Number: 18840 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 15 17:43:25 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 17:43:25 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ee7b34b59271_e962b0071b305f01832672@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 904s] | | #define LT_OBJDIR ".libs/" [ 904s] | | /* end confdefs.h. */ [ 904s] | | [ 904s] | | /* Override any GCC internal prototype to avoid an error. [ 904s] | | Use char because int might match the return type of a GCC [ 904s] | | builtin and then its argument prototype would still apply. */ [ 904s] | | #ifdef __cplusplus [ 904s] | | extern "C" [ 904s] | | #endif [ 904s] | | char sctp_send (); [ 904s] | | int [ 904s] | | main () [ 904s] | | { [ 904s] | | return sctp_send (); [ 904s] | | ; [ 904s] | | return 0; [ 904s] | | } [ 904s] | configure:13334: gcc -o conftest -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro conftest.c -lsctp >&5 [ 904s] | configure:13334: $? = 0 [ 904s] | configure:13351: result: -lsctp [ 904s] | configure:13414: checking for LIBSMPP34 [ 904s] | configure:13421: $PKG_CONFIG --exists --print-errors "libsmpp34 >= 1.14.0" [ 904s] | configure:13424: $? = 0 [ 906s] | configure:13438: $PKG_CONFIG --exist[ 862.454416] sysrq: SysRq : Power Off [ 906s] [ 862.456844] reboot: Power down [ 906s] ### VM INTERACTION END ### [ 906s] [ 906s] armbuild19 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 17:43:17 UTC 2020. [ 906s] -- 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 Jun 15 18:45:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 18:45:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 ) Change subject: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long ...................................................................... library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long Unlike the RSL_IE_MS_Power, where power_level is 5 bit long, in the RSL_IE_BS_Power it's 4 bit long. Fix this. Change-Id: Ic0cb2275ef585754b9ae5e3d8077ca652afd9365 --- M bts/BTS_Tests.ttcn M library/RSL_Types.ttcn 2 files changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/18841/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index b098fc6..f98419d 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1697,7 +1697,7 @@ boolean toa256_enabled, MeasElemFS meas_ul, int16_t timing_offset_256syms, - uint5_t bs_power_level, + uint4_t bs_power_level, uint5_t ms_power_level, uint8_t ms_actual_ta } @@ -2129,7 +2129,7 @@ f_trxc_fake_toffs256(g_pars.l1_pars.timing_offset_256syms); } - var uint5_t pwr_var := 1; + var uint4_t pwr_var := 1; var template (value) RSL_IE_BS_Power bs_power := ts_RSL_IE_BS_Power(pwr_var); var template (value) RSL_IE pwr := t_RSL_IE(RSL_IE_BS_POWER, RSL_IE_Body:{bs_power := bs_power}); @@ -2152,7 +2152,7 @@ f_trxc_fake_toffs256(g_pars.l1_pars.timing_offset_256syms); } - var uint5_t pwr_var := 1; + var uint4_t pwr_var := 1; var template (value) RSL_IE_BS_Power bs_power := ts_RSL_IE_BS_Power(pwr_var); f_est_dchan(); diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index 77b4e79..af01c5d 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -386,15 +386,15 @@ coding_alg_rate := alg } - /* 9.3.4 */ + /* 9.3.4 BS Power IE */ type record RSL_IE_BS_Power { - uint1_t reserved, + uint2_t reserved, boolean epc, boolean fpc, - uint5_t power_level + uint4_t power_level } - template (value) RSL_IE_BS_Power ts_RSL_IE_BS_Power(uint5_t power_level, + template (value) RSL_IE_BS_Power ts_RSL_IE_BS_Power(uint4_t power_level, boolean epc := false, boolean fpc := false) := { reserved := 0, epc := epc, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic0cb2275ef585754b9ae5e3d8077ca652afd9365 Gerrit-Change-Number: 18841 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 Jun 15 18:45:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 18:45:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results: TC_rsl_bs_pwr_static_{ass, power_control} pass now References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 ) Change subject: bts/expected-results: TC_rsl_bs_pwr_static_{ass,power_control} pass now ...................................................................... bts/expected-results: TC_rsl_bs_pwr_static_{ass,power_control} pass now Change I16cc50dfca102030380a06e16c234d5f6698f38f fixes them both. Change-Id: I2e8db76be78fffcc8418096670ad3cf5174856f8 --- M bts/expected-results.xml 1 file changed, 2 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/18842/1 diff --git a/bts/expected-results.xml b/bts/expected-results.xml index a03e16b..fa86f8a 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -51,18 +51,8 @@ - - "BTS_Tests.ttcn:MASKED : Received wrong BS power level in MEAS RES { msg_disc := { msg_group := RSL_MDISC_DCHAN (4), transparent := false }, msg_type := RSL_MT_MEAS_RES (40), ies := { { iei := RSL_IE_CHAN_NR (1), body := { chan_nr := { u := { ch0 := RSL_CHAN_NR_Bm_ACCH (1) }, tn := 1 } } }, { iei := RSL_IE_MEAS_RES_NR (27), body := { meas_res_nr := 0 } }, { iei := RSL_IE_UPLINK_MEAS (25), body := { uplink_meas := { len := 3, rfu := '0'B, dtx_d := false, rxlev_f_u := 10, reserved1 := '00'B, rxlev_s_u := 10, reserved2 := '00'B, rxq_f_u := 0, rxq_s_u := 0, supp_meas_info := omit } } }, { iei := RSL_IE_BS_POWER (4), body := { bs_power := { reserved := 0, epc := false, fpc := false, power_level := 0 } } }, { iei := RSL_IE_L1_INFO (10), body := { l1_info := { ms_power_lvl := 7, fpc := false, reserved := 0, actual_ta := 0 } } }, { iei := RSL_IE_L3_INFO (11), body := { l3_info := { len := 18, payload := '0615363601C0000000000000000000000000'O } } }, { iei := RSL_IE_MS_TIMING_OFFSET (37), body := { ms_timing_offset := 65 } } } }" - BTS_Tests.ttcn:MASKED BTS_Tests control part - BTS_Tests.ttcn:MASKED TC_rsl_bs_pwr_static_ass testcase - - - - "BTS_Tests.ttcn:MASKED : Received wrong BS power level in MEAS RES { msg_disc := { msg_group := RSL_MDISC_DCHAN (4), transparent := false }, msg_type := RSL_MT_MEAS_RES (40), ies := { { iei := RSL_IE_CHAN_NR (1), body := { chan_nr := { u := { ch0 := RSL_CHAN_NR_Bm_ACCH (1) }, tn := 1 } } }, { iei := RSL_IE_MEAS_RES_NR (27), body := { meas_res_nr := 0 } }, { iei := RSL_IE_UPLINK_MEAS (25), body := { uplink_meas := { len := 3, rfu := '0'B, dtx_d := false, rxlev_f_u := 10, reserved1 := '00'B, rxlev_s_u := 10, reserved2 := '00'B, rxq_f_u := 0, rxq_s_u := 0, supp_meas_info := omit } } }, { iei := RSL_IE_BS_POWER (4), body := { bs_power := { reserved := 0, epc := false, fpc := false, power_level := 0 } } }, { iei := RSL_IE_L1_INFO (10), body := { l1_info := { ms_power_lvl := 7, fpc := false, reserved := 0, actual_ta := 0 } } }, { iei := RSL_IE_L3_INFO (11), body := { l3_info := { len := 18, payload := '0615363601C0000000000000000000000000'O } } }, { iei := RSL_IE_MS_TIMING_OFFSET (37), body := { ms_timing_offset := 65 } } } }" - BTS_Tests.ttcn:MASKED BTS_Tests control part - BTS_Tests.ttcn:MASKED TC_rsl_bs_pwr_static_power_control testcase - - + + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e8db76be78fffcc8418096670ad3cf5174856f8 Gerrit-Change-Number: 18842 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 Jun 15 18:45:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 15 Jun 2020 18:45:34 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18835 ) Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... Patch Set 2: Verified+1 Makes both BTS_Tests.TC_rsl_bs_pwr_static_ass and BTS_Tests.TC_rsl_bs_pwr_static_power_control pass. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 18:45: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 Jun 15 19:57:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 19:57:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 ) Change subject: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic0cb2275ef585754b9ae5e3d8077ca652afd9365 Gerrit-Change-Number: 18841 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 19:57: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 Jun 15 19:57:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 15 Jun 2020 19:57:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results: TC_rsl_bs_pwr_static_{ass, power_control} pass now In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 ) Change subject: bts/expected-results: TC_rsl_bs_pwr_static_{ass,power_control} pass now ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e8db76be78fffcc8418096670ad3cf5174856f8 Gerrit-Change-Number: 18842 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 15 Jun 2020 19:57:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 20:13:54 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Mon, 15 Jun 2020 20:13:54 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: fix additional_args init References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18843 ) Change subject: ms_srs: fix additional_args init ...................................................................... ms_srs: fix additional_args init regressions after porting to list. init to new empty list Change-Id: I06f370462934ca35f3aa13bbfcd9e5fc3df91895 --- M src/osmo_gsm_tester/obj/ms_srs.py 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/43/18843/1 diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 6241685..cf2e166 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -230,11 +230,10 @@ self.enable_pcap = util.str2bool(values['ue'].get('enable_pcap', 'false')) config.overlay(values, dict(ue={'enable_pcap': self.enable_pcap})) - self._additional_args = values['ue'].get('additional_args', '').split() + self._additional_args = [] for add_args in values['ue'].get('additional_args', []): self._additional_args += add_args.split() - self.num_carriers = int(values['ue'].get('num_carriers', 1)) # We need to set some specific variables programatically here to match IP addresses: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18843 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: I06f370462934ca35f3aa13bbfcd9e5fc3df91895 Gerrit-Change-Number: 18843 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 20:41:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 15 Jun 2020 20:41:43 +0000 Subject: Change in libosmo-abis[master]: WIP: trau_frame: New API 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/+/18249 to look at the new patch set (#6). Change subject: WIP: trau_frame: New API ...................................................................... WIP: trau_frame: New API The old TRAU frame code in src/trau_frame.c (which is for some strange reason part of libosmo-abis, and not libosmo-trau!) was introduced more than a decade ago for the needs of bs11_abis AKA OpenBSC aka OsmoNITB. It is too constrained to implement TRAU frame parsing in a generic way, including: * no way to add support for 8k sub-slots * no way to handle CRC bits or UFI (i.e. no AMR) * no real API design, it was just ripped out from OsmoNITB and moved into a library (even the wrong one) For those reasons, let's introduce a new API for TRAU frame encoding/decoding - one that supports all the relevant use cases. This is marked WIP until the part handling T-bits is properly implemented. Change-Id: I5cf42e6c445d9224be18503cebc7584b3beba08c --- M include/Makefile.am A include/osmocom/trau/trau_frame.h M src/Makefile.am A src/trau/trau_frame.c 4 files changed, 1,473 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/49/18249/6 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18249 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I5cf42e6c445d9224be18503cebc7584b3beba08c Gerrit-Change-Number: 18249 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 Mon Jun 15 20:41:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 15 Jun 2020 20:41:43 +0000 Subject: Change in libosmo-abis[master]: WIP: Add new TRAU frame sync code In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-abis/+/18250 to look at the new patch set (#7). Change subject: WIP: Add new TRAU frame sync code ...................................................................... WIP: Add new TRAU frame sync code This code is able to detect and sync against a variety of TRAU frame sync patterns. Focus is so far on those patterns present on 16k sub-slots, but 8k sub-slots are expected to be supported soon, too. A new codebase for this is required as the old OsmoNITB code had conflated a 16k sub-slot multiplexer with TRAU frame synchronization, so there was no way to separate those two parts and hence no way to support 8k sub-slots. Change-Id: Ia6fe6228b0b8b9a27999f37ce1115ed5558881ea --- M include/Makefile.am A include/osmocom/trau/trau_sync.h M src/Makefile.am A src/trau/trau_sync.c A src/trau/ubit_buf.h M tests/Makefile.am M tests/testsuite.at A tests/trau_sync/trau_sync_test.c A tests/trau_sync/trau_sync_test.err A tests/trau_sync/trau_sync_test.ok 10 files changed, 704 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/50/18250/7 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ia6fe6228b0b8b9a27999f37ce1115ed5558881ea Gerrit-Change-Number: 18250 Gerrit-PatchSet: 7 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 Mon Jun 15 20:41:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 15 Jun 2020 20:41:43 +0000 Subject: Change in libosmo-abis[master]: WIP: TRAU frame RTP conversion 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/+/18382 to look at the new patch set (#5). Change subject: WIP: TRAU frame RTP conversion ...................................................................... WIP: TRAU frame RTP conversion This adds code that converts codec frames between (decoded) TRAU format and RTP payload format. The FR + EFR functions have been lifted from OsmoNITB. Change-Id: I7f6993cce2b95318203043e2e14952e581941b79 --- M include/Makefile.am A include/osmocom/trau/trau_rtp.h M src/Makefile.am A src/trau/trau_rtp_conv.c 4 files changed, 516 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/82/18382/5 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I7f6993cce2b95318203043e2e14952e581941b79 Gerrit-Change-Number: 18382 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 15 21:34:34 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 21:34:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee7e974eb0d7_e962b0071b305f01881828@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 1431s] | #define HAVE_STDLIB_H 1 [ 1431s] | #define HAVE_STRING_H 1 [ 1431s] | #define HAVE_MEMORY_H 1 [ 1431s] | #define HAVE_STRINGS_H 1 [ 1431s] | #define HAVE_INTTYPES_H 1 [ 1431s] | #define HAVE_STDINT_H 1 [ 1431s] | #define HAVE_UNISTD_H 1 [ 1431s] | #define HAVE_DLFCN_H 1 [ 1431s] | #define LT_OBJDIR ".libs/" [ 1431s] | #define HAVE_LIBSCTP 1 [ 1431s] | #define BUILD_SMPP 1 [ 1431s] | #define BUILD_IU 1 [ 1431s] | #define STDC_HEADERS 1 [ 1431s] | #define HAVE_DBI_DBD_H 1 [ 1431s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 1431s] | [ 1431s] | configure: exit 0 [ 1431s] [ 1431s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 1431s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 1431s] make: *** [debian/rules:45: build] Error 2 [ 1431s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 1432s] ### VM INTERACTION START ### [ 1436s] [ 1398.033257] sysrq: SysRq : Power Off [ 1436s] [ 1398.058874] reboot: Power down [ 1438s] ### VM INTERACTION END ### [ 1438s] [ 1438s] obs-arm-5 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 21:34:22 UTC 2020. [ 1438s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 15 21:52:45 2020 From: admin at opensuse.org (OBS Notification) Date: Mon, 15 Jun 2020 21:52:45 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee7edb92d8df_e962b0071b305f018856b0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 921s] | #define HAVE_STDLIB_H 1 [ 921s] | #define HAVE_STRING_H 1 [ 921s] | #define HAVE_MEMORY_H 1 [ 921s] | #define HAVE_STRINGS_H 1 [ 921s] | #define HAVE_INTTYPES_H 1 [ 921s] | #define HAVE_STDINT_H 1 [ 921s] | #define HAVE_UNISTD_H 1 [ 921s] | #define HAVE_DLFCN_H 1 [ 921s] | #define LT_OBJDIR ".libs/" [ 921s] | #define HAVE_LIBSCTP 1 [ 921s] | #define BUILD_SMPP 1 [ 921s] | #define BUILD_IU 1 [ 921s] | #define STDC_HEADERS 1 [ 921s] | #define HAVE_DBI_DBD_H 1 [ 921s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 921s] | [ 921s] | configure: exit 0 [ 921s] [ 921s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 921s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 921s] make: *** [debian/rules:45: build] Error 2 [ 921s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 921s] ### VM INTERACTION START ### [ 924s] [ 902.942201] sysrq: SysRq : Power Off [ 924s] [ 902.951940] reboot: Power down [ 925s] ### VM INTERACTION END ### [ 925s] [ 925s] armbuild22 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Mon Jun 15 21:52:43 UTC 2020. [ 925s] -- 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 Jun 15 22:41:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:41:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: skip MSC pooling tests in SCCPlite References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18844 ) Change subject: bsc: skip MSC pooling tests in SCCPlite ...................................................................... bsc: skip MSC pooling tests in SCCPlite Change-Id: Ie0b393d26feb56738e2f5ef213a8a922bb5e90a7 --- M bsc/BSC_Tests.ttcn 1 file changed, 16 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/44/18844/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 9d48d62..fe55e59 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -5132,16 +5132,22 @@ execute( TC_assignment_verify_ms_power_params_ie() ); /* MSC pooling */ - execute( TC_mscpool_L3Compl_on_1_msc() ); - execute( TC_mscpool_L3Complete_by_imsi_round_robin() ); - execute( TC_mscpool_LU_by_tmsi_null_nri_0_round_robin() ); - execute( TC_mscpool_LU_by_tmsi_null_nri_1_round_robin() ); - execute( TC_mscpool_L3Complete_by_tmsi_unassigned_nri_round_robin() ); - execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_msc_not_connected_round_robin() ); - execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_1() ); - execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_2() ); - execute( TC_mscpool_paging_and_response_imsi() ); - execute( TC_mscpool_paging_and_response_tmsi() ); + /* FIXME: in SCCPlite, indicating how many MSCs should be connected does currently not work. Since + * RESET->RESET-ACK is unconditionally negotiated for all configured MSCs, they always all appear as connected + * to osmo-bsc. The MSC pooling tests however require disconnecting selected MSCs, and hence don't work out as + * intended on SCCPlite. So for now, run these only for SCCP/M3UA. */ + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { + execute( TC_mscpool_L3Compl_on_1_msc() ); + execute( TC_mscpool_L3Complete_by_imsi_round_robin() ); + execute( TC_mscpool_LU_by_tmsi_null_nri_0_round_robin() ); + execute( TC_mscpool_LU_by_tmsi_null_nri_1_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_unassigned_nri_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_msc_not_connected_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_1() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_2() ); + execute( TC_mscpool_paging_and_response_imsi() ); + execute( TC_mscpool_paging_and_response_tmsi() ); + } /* at bottom as they might crash OsmoBSC before OS#3182 is fixed */ execute( TC_early_conn_fail() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0b393d26feb56738e2f5ef213a8a922bb5e90a7 Gerrit-Change-Number: 18844 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 Jun 15 22:41:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:41:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: drop unused function f_bssap_wait_for_reset() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18845 ) Change subject: RAN_Emulation: drop unused function f_bssap_wait_for_reset() ...................................................................... RAN_Emulation: drop unused function f_bssap_wait_for_reset() Change-Id: I9ecf4fdeaee8e5437427564ef860c9053ffa4241 --- M library/RAN_Emulation.ttcnpp 1 file changed, 0 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/45/18845/1 diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index 5450706..a400dcd 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -518,28 +518,6 @@ return g_ran_ops.unitdata_cb.apply(bssap); } -private function f_bssap_wait_for_reset() runs on RAN_Emulation_CT { - var BSSAP_N_UNITDATA_ind ud_ind; - timer T := 20.0; - var boolean append_osmux_support := append_osmux_ie(); - - T.start; - alt { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset(append_osmux_support))) -> value ud_ind { - BSSAP.send(ts_BSSAP_UNITDATA_req(ud_ind.callingAddress, ud_ind.calledAddress, - ts_BSSMAP_ResetAck(append_osmux_support))); - } - [] as_reset_ack(append_osmux_support); - [] BSSAP.receive { - repeat; - } - [] T.timeout { - setverdict(fail, "Timeout waiting for BSSAP RESET"); - mtc.stop; - } - } -} - function f_bssap_reset(SCCP_PAR_Address peer, SCCP_PAR_Address own) runs on RAN_Emulation_CT { timer T := 5.0; var boolean append_osmux_support := append_osmux_ie(); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf4fdeaee8e5437427564ef860c9053ffa4241 Gerrit-Change-Number: 18845 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 Jun 15 22:41:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:41:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow individual T_guard timeout via f_init() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18846 ) Change subject: bsc: allow individual T_guard timeout via f_init() ...................................................................... bsc: allow individual T_guard timeout via f_init() The TC_ho_neighbor_config_* tests sometimes take longer than 30 seconds, because they run multiple handovers. Since they don't have access to the Test_CT, they cannot restart the T_guard. The simplest solution is to choose a longer T_guard timeout for those tests specifically, by adding an argument to f_init(). (A longer timeout for those tests is following in another patch.) Why f_init()? Assigning a different default value to T_guard seems to not be possible, but a different timeout value can be passed to T_guard.start(), which happens in f_init(). Change-Id: I14918f6a44d6fa1bd5c3e133757ebdbe32813b33 --- M bsc/BSC_Tests.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/18846/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 302edfe..b84f1ca 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -104,7 +104,7 @@ /*Configure T(tiar) over VTY, seconds */ var integer g_bsc_sccp_timer_iar := 15 * 60; - /* global test case guard timer */ + /* global test case guard timer (actual timeout value is set in f_init()) */ timer T_guard := 30.0; } @@ -384,7 +384,7 @@ * \param nr_msc Number of virtual MSCs to bring up to connect to osmo-bsc. */ function f_init(integer nr_bts := NUM_BTS, boolean handler_mode := false, boolean allow_osmux := false, - integer nr_msc := 1) runs on test_CT { + integer nr_msc := 1, float guard_timeout := 30.0) runs on test_CT { var integer bssap_idx; var integer i; @@ -393,7 +393,7 @@ } g_initialized := true; - T_guard.start; + T_guard.start(guard_timeout); activate(as_Tguard()); f_init_vty("VirtMSC"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I14918f6a44d6fa1bd5c3e133757ebdbe32813b33 Gerrit-Change-Number: 18846 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 Jun 15 22:41:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:41:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: set longer T_guard for TC_ho_neighbor_config tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18847 ) Change subject: bsc: set longer T_guard for TC_ho_neighbor_config tests ...................................................................... bsc: set longer T_guard for TC_ho_neighbor_config tests They perform several handover runs and tend to timeout prematurely on my machine. Change-Id: I9d641c9b5d5a6f2c2edbc2c782f33872cf7a483f --- M bsc/BSC_Tests.ttcn 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/47/18847/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index b84f1ca..876213b 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3988,28 +3988,28 @@ testcase TC_ho_neighbor_config_1() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 60.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_1)); vc_conn.done; } testcase TC_ho_neighbor_config_2() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_2)); vc_conn.done; } testcase TC_ho_neighbor_config_3() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_3)); vc_conn.done; } testcase TC_ho_neighbor_config_4() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_4)); vc_conn.done; @@ -4030,7 +4030,7 @@ } testcase TC_ho_neighbor_config_7() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_7)); vc_conn.done; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9d641c9b5d5a6f2c2edbc2c782f33872cf7a483f Gerrit-Change-Number: 18847 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 Jun 15 22:41:46 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:41:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: only respond to RESET with correct PC References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18848 ) Change subject: RAN_Emulation: only respond to RESET with correct PC ...................................................................... RAN_Emulation: only respond to RESET with correct PC While trying to add multiple MSCs on SCCPlite, I noticed that the MSC emulation responds to RESET regardless of the PC. Only respond when the point-codes match the configured ones. Change-Id: Ia1f94c4fc99ca18196f3fd5c5efe26b7309df499 --- M library/RAN_Emulation.ttcnpp 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/48/18848/1 diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index a400dcd..7032607 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -790,16 +790,16 @@ var RANAP_N_UNITDATA_ind rud_ind; #endif #ifdef RAN_EMULATION_BSSAP - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset(append_osmux_support))) -> value ud_ind { - log("Respoding to inbound RESET with RESET-ACK"); + [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(g_ran_ops.sccp_addr_local, g_ran_ops.sccp_addr_peer, tr_BSSMAP_Reset(append_osmux_support))) -> value ud_ind { + log("Respoding to inbound RESET from ", g_ran_ops.sccp_addr_peer, " to ", g_ran_ops.sccp_addr_local, " with RESET-ACK"); BSSAP.send(ts_BSSAP_UNITDATA_req(ud_ind.callingAddress, ud_ind.calledAddress, ts_BSSMAP_ResetAck(append_osmux_support))); repeat; } #endif #ifdef RAN_EMULATION_RANAP - [] RANAP.receive(tr_RANAP_UNITDATA_ind(?, ?, tr_RANAP_Reset)) -> value rud_ind { - log("Respoding to inbound IuRESET with IuRESET-ACK"); + [] RANAP.receive(tr_RANAP_UNITDATA_ind(g_ran_ops.sccp_addr_local, g_ran_ops.sccp_addr_peer, tr_RANAP_Reset)) -> value rud_ind { + log("Respoding to inbound IuRESET from ", g_ran_ops.sccp_addr_peer, " to ", g_ran_ops.sccp_addr_local, " with IuRESET-ACK"); var CN_DomainIndicator dom; dom := rud_ind.userData.initiatingMessage.value_.Reset.protocolIEs[1].value_.cN_DomainIndicator; RANAP.send(ts_RANAP_UNITDATA_req(rud_ind.callingAddress, rud_ind.calledAddress, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia1f94c4fc99ca18196f3fd5c5efe26b7309df499 Gerrit-Change-Number: 18848 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 Jun 15 22:50:59 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:50:59 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18849 ) Change subject: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs ...................................................................... BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs Forgot to also adjust the SCCPlite structure in previous commit c7b52048e63ac014bdb1e78b4883cc75da55428f, which broke SCCPlite testing. Change-Id: I923e398ccd4bdd31c8325de1a850fe4c3236db79 --- M ttcn3-bsc-test/sccplite/BSC_Tests.cfg 1 file changed, 11 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/49/18849/1 diff --git a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg index 6b72eec..5e0485c 100644 --- a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg +++ b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg @@ -13,15 +13,17 @@ BSC_Tests.mp_test_ip := "172.18.12.203"; BSC_Tests.mp_enable_osmux_test := true; BSC_Tests.mp_bssap_cfg := { - transport := BSSAP_TRANSPORT_SCCPlite_SERVER, - sccp_service_type := "mtp3_itu", - sctp_addr := { 5000, "172.18.12.203", -1, "" }, - own_pc := 185, - own_ssn := 254, - peer_pc := 187, - peer_ssn := 254, - sio := '83'O, - rctx := 0 + { + transport := BSSAP_TRANSPORT_SCCPlite_SERVER, + sccp_service_type := "mtp3_itu", + sctp_addr := { 5000, "172.18.12.203", -1, "" }, + own_pc := 185, /* 0.23.1 first MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 0 + } }; [MAIN_CONTROLLER] -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I923e398ccd4bdd31c8325de1a850fe4c3236db79 Gerrit-Change-Number: 18849 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 Jun 15 22:50:59 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:50:59 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust handover config References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18850 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust handover config ...................................................................... bsc.cfg: SCCPlite = AoIP: adjust handover config Adjust the SCCPlite osmo-bsc.cfg according to changes applied in osmo-bsc.cfg, which were obviously forgotten to also apply to the SCCPlite test runs. These handover config changes should fix the TC_ho_* tests in ttcn3-bsc-sccplite. Change-Id: I9694863b2db6be6384d1d6ffb35fc477fe774d02 --- M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/50/18850/1 diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index 806ec69..eb627fe 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -69,7 +69,7 @@ encryption a5 0 1 3 neci 1 paging any use tch 0 - handover 0 + handover 1 handover window rxlev averaging 10 handover window rxqual averaging 1 handover window rxlev neighbor averaging 10 @@ -104,8 +104,6 @@ neighbor-list add arfcn 200 si5 neighbor-list add arfcn 10 si5 neighbor-list add arfcn 20 - # remote-BSS neighbor: - neighbor lac 99 arfcn 123 bsic any codec-support fr hr efr amr gprs mode gprs gprs routing area 0 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9694863b2db6be6384d1d6ffb35fc477fe774d02 Gerrit-Change-Number: 18850 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 Jun 15 22:51:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:51:00 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust si2quater config References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18851 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust si2quater config ...................................................................... bsc.cfg: SCCPlite = AoIP: adjust si2quater config Adjust the SCCPlite osmo-bsc.cfg according to changes applied in osmo-bsc.cfg, which were obviously forgotten to also apply to the SCCPlite test runs. Make the SI2quater config reflect that of the AoIP osmo-bsc.cfg. Change-Id: I4dbabcc28309424a336d2a052a067484d17663ac --- M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/51/18851/1 diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index eb627fe..0441492 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -137,6 +137,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -226,6 +227,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -315,6 +317,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4dbabcc28309424a336d2a052a067484d17663ac Gerrit-Change-Number: 18851 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 Jun 15 22:51:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:51:00 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust logging config References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18852 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust logging config ...................................................................... bsc.cfg: SCCPlite = AoIP: adjust logging config Adjust the SCCPlite osmo-bsc.cfg according to changes applied in osmo-bsc.cfg, which were obviously forgotten to also apply to the SCCPlite test runs. Do the same logging in both SCCPlite and AoIP osmo-bsc.cfg. Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 --- M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 1 file changed, 4 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/52/18852/1 diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index 0441492..0f5b520 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -13,21 +13,10 @@ 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 - logging level rsl notice - logging level nm info - logging level pag notice - logging level meas notice - logging level msc notice - logging level ho notice - logging level ref notice - logging level ctrl notice - logging level filter debug - logging level pcu debug - logging level lglobal notice + logging print category-hex 0 + logging print file basename last + logging print level 1 + logging level set-all debug logging level llapd notice logging level linp notice logging level lmux notice -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 Gerrit-Change-Number: 18852 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 Jun 15 22:51:29 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:51:29 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18849 ) Change subject: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs ...................................................................... Patch Set 1: Code-Review+2 quick merge to fix test suite breakage -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I923e398ccd4bdd31c8325de1a850fe4c3236db79 Gerrit-Change-Number: 18849 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 15 Jun 2020 22:51: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 Jun 15 22:52:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:52:03 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18849 ) Change subject: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I923e398ccd4bdd31c8325de1a850fe4c3236db79 Gerrit-Change-Number: 18849 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 15 Jun 2020 22:52:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 15 22:52:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 15 Jun 2020 22:52:10 +0000 Subject: Change in docker-playground[master]: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18849 ) Change subject: BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs ...................................................................... BSC_Tests.cfg for SCCPlite: adjust cfg for multiple MSCs Forgot to also adjust the SCCPlite structure in previous commit c7b52048e63ac014bdb1e78b4883cc75da55428f, which broke SCCPlite testing. Change-Id: I923e398ccd4bdd31c8325de1a850fe4c3236db79 --- M ttcn3-bsc-test/sccplite/BSC_Tests.cfg 1 file changed, 11 insertions(+), 9 deletions(-) Approvals: neels: Looks good to me, approved; Verified diff --git a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg index 6b72eec..5e0485c 100644 --- a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg +++ b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg @@ -13,15 +13,17 @@ BSC_Tests.mp_test_ip := "172.18.12.203"; BSC_Tests.mp_enable_osmux_test := true; BSC_Tests.mp_bssap_cfg := { - transport := BSSAP_TRANSPORT_SCCPlite_SERVER, - sccp_service_type := "mtp3_itu", - sctp_addr := { 5000, "172.18.12.203", -1, "" }, - own_pc := 185, - own_ssn := 254, - peer_pc := 187, - peer_ssn := 254, - sio := '83'O, - rctx := 0 + { + transport := BSSAP_TRANSPORT_SCCPlite_SERVER, + sccp_service_type := "mtp3_itu", + sctp_addr := { 5000, "172.18.12.203", -1, "" }, + own_pc := 185, /* 0.23.1 first MSC emulation */ + own_ssn := 254, + peer_pc := 187, /* 0.23.3 osmo-bsc */ + peer_ssn := 254, + sio := '83'O, + rctx := 0 + } }; [MAIN_CONTROLLER] -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I923e398ccd4bdd31c8325de1a850fe4c3236db79 Gerrit-Change-Number: 18849 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jun 16 01:34:51 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 01:34:51 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee821c436f7e_e962b0071b305f01918897@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 187s] [1939/2112] rm -f src/pcrf/libpcrf.a && gcc-ar csrD src/pcrf/libpcrf.a 'src/pcrf/pcrf at sta/pcrf-init.c.o' 'src/pcrf/pcrf at sta/pcrf-context.c.o' 'src/pcrf/pcrf at sta/pcrf-fd-path.c.o' 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' 'src/pcrf/pcrf at sta/pcrf-rx-path.c.o' [ 187s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 187s] FAILED: src/udm/udm at sta/context.c.o [ 187s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 187s] ../src/udm/context.c: In function ?udm_ue_add?: [ 187s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 187s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 187s] ~~^ [ 187s] %d [ 187s] cc1: some warnings being treated as errors [ 187s] [1941/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 187s] [1942/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 187s] [1943/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/init.c.o' -MF 'src/udm/udm at sta/init.c.o.d' -o 'src/udm/udm at sta/init.c.o' -c ../src/udm/init.c [ 187s] [1944/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 187s] [1945/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/ue-sm.c.o' -MF 'src/udm/udm at sta/ue-sm.c.o.d' -o 'src/udm/udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 187s] [1946/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -lidn -ldl -lsctp -lgcrypt -lgnutls -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 187s] [1947/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/udm-sm.c.o' -MF 'src/udm/udm at sta/udm-sm.c.o.d' -o 'src/udm/udm at sta/udm-sm.c.o' -c ../src/udm/udm-sm.c [ 187s] ninja: build stopped: subcommand failed. [ 187s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 187s] debian/rules:11: recipe for target 'binary' failed [ 187s] make: *** [binary] Error 1 [ 187s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 187s] ### VM INTERACTION START ### [ 190s] [ 181.863306] sysrq: SysRq : Power Off [ 190s] [ 181.878037] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] lamb20 failed "build open5gs_1.2.5.20200616.dsc" at Tue Jun 16 01:34:48 UTC 2020. [ 190s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 01:35:08 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 01:35:08 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee821deb334d_e962b0071b305f0191906@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: sing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 237s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 237s] [1925/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 237s] [1926/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 237s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 237s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 237s] ../src/udm/context.c: In function ?udm_ue_add?: [ 237s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 237s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 237s] ~~^ [ 237s] %d [ 237s] cc1: some warnings being treated as errors [ 237s] [1927/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 237s] [1928/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 238s] [1929/2112] cc -Isrc/udr/src at udr@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/src at udr@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/src at udr@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/src at udr@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 238s] [1930/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 238s] [1931/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/init.c.o' -MF 'src/udr/src at udr@@udr at sta/init.c.o.d' -o 'src/udr/src at udr@@udr at sta/init.c.o' -c ../src/udr/init.c [ 238s] [1932/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 238s] [1933/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 238s] ninja: build stopped: subcommand failed. [ 238s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 238s] make: *** [debian/rules:11: binary] Error 1 [ 238s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 238s] ### VM INTERACTION START ### [ 241s] [ 230.765439] sysrq: SysRq : Power Off [ 241s] [ 230.774459] reboot: Power down [ 241s] ### VM INTERACTION END ### [ 241s] [ 241s] lamb11 failed "build open5gs_1.2.5.20200616.dsc" at Tue Jun 16 01:35:06 UTC 2020. [ 241s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 01:40:32 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 01:40:32 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee82329148f1_e962b0071b305f019197ee@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 165s] [1925/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 165s] [1926/2112] rm -f src/pcrf/libpcrf.a && gcc-ar csrD src/pcrf/libpcrf.a 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-init.c.o' 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-context.c.o' 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-fd-path.c.o' 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-rx-path.c.o' [ 165s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 165s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 165s] [1929/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 165s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 165s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 165s] ../src/udm/context.c: In function ?udm_ue_add?: [ 165s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 165s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 165s] ~~^ [ 165s] %d [ 165s] cc1: some warnings being treated as errors [ 165s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 165s] [1931/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 165s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 165s] [1933/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/9bf4e44@@open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/pcrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 165s] [1934/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 165s] ninja: build stopped: subcommand failed. [ 165s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j6 -v returned exit code 1 [ 165s] make: *** [debian/rules:11: binary] Error 1 [ 165s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 165s] ### VM INTERACTION START ### [ 168s] [ 159.236560] sysrq: SysRq : Power Off [ 168s] [ 159.239679] reboot: Power down [ 169s] ### VM INTERACTION END ### [ 169s] [ 169s] sheep86 failed "build open5gs_1.2.5.20200616.dsc" at Tue Jun 16 01:40:15 UTC 2020. [ 169s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 01:57:58 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 01:57:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5ee827412c849_e962b0071b305f01922619@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/aarch64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 358s] | [ 358s] | configure: exit 0 [ 358s] [ 358s] # -*- compilation -*- [ 358s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 358s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 358s] --- experr 2020-06-16 01:57:40.240000000 +0000 [ 358s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 01:57:40.280000000 +0000 [ 358s] @@ -1790,7 +1790,7 @@ [ 358s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 358s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 358s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 358s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 358s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 358s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 358s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 358s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 358s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 358s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 358s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 358s] make: *** [debian/rules:45: build] Error 2 [ 358s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 358s] ### VM INTERACTION START ### [ 360s] [ 346.039583] sysrq: Power Off [ 360s] [ 346.040531] reboot: Power down [ 361s] ### VM INTERACTION END ### [ 361s] [ 361s] obs-arm-9 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 01:57:44 UTC 2020. [ 361s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:05:32 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:05:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5ee829081e601_e962b0071b305f019255d2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 320s] [ 320s] # -*- compilation -*- [ 320s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 320s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 320s] --- experr 2020-06-16 02:05:24.520000000 +0000 [ 320s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 02:05:24.560000000 +0000 [ 320s] @@ -1790,7 +1790,7 @@ [ 320s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 320s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 320s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 320s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 320s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 320s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 320s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 320s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 320s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 320s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 320s] make[1]: *** [override_dh_auto_test] Error 1 [ 320s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 320s] debian/rules:45: recipe for target 'build' failed [ 320s] make: *** [build] Error 2 [ 320s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 320s] ### VM INTERACTION START ### [ 323s] [ 310.552415] sysrq: Power Off [ 323s] [ 310.553597] reboot: Power down [ 324s] ### VM INTERACTION END ### [ 324s] [ 324s] obs-arm-9 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:05:29 UTC 2020. [ 324s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:12:19 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:12:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5ee82a8e8e62d_e962b0071b305f019270c1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 386s] | #define HAVE_MEMORY_H 1 [ 386s] | #define HAVE_STRINGS_H 1 [ 386s] | #define HAVE_INTTYPES_H 1 [ 386s] | #define HAVE_STDINT_H 1 [ 386s] | #define HAVE_UNISTD_H 1 [ 386s] | #define HAVE_DLFCN_H 1 [ 386s] | #define LT_OBJDIR ".libs/" [ 386s] | #define HAVE_LIBSCTP 1 [ 386s] | #define BUILD_SMPP 1 [ 386s] | #define BUILD_IU 1 [ 386s] | #define STDC_HEADERS 1 [ 386s] | #define HAVE_DBI_DBD_H 1 [ 386s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 386s] | [ 386s] | configure: exit 0 [ 386s] [ 386s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 386s] make[1]: *** [override_dh_auto_test] Error 1 [ 386s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 386s] debian/rules:45: recipe for target 'build' failed [ 386s] make: *** [build] Error 2 [ 386s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 386s] ### VM INTERACTION START ### [ 387s] Powering off. [ 388s] [ 376.746088] reboot: Power down [ 388s] ### VM INTERACTION END ### [ 388s] [ 388s] cumulus2 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:12:08 UTC 2020. [ 388s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:16:54 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:16:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5ee82b99771ea_e962b0071b305f01928285@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 412s] [ 412s] # -*- compilation -*- [ 412s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 412s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 412s] --- experr 2020-06-16 02:16:43.796000000 +0000 [ 412s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 02:16:43.832000000 +0000 [ 412s] @@ -1790,7 +1790,7 @@ [ 412s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 412s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 412s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 412s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 412s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 412s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 412s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 412s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 412s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 412s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 412s] make[1]: *** [override_dh_auto_test] Error 1 [ 412s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 412s] debian/rules:45: recipe for target 'build' failed [ 412s] make: *** [build] Error 2 [ 412s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 412s] ### VM INTERACTION START ### [ 415s] [ 403.470988] sysrq: SysRq : Power Off [ 415s] [ 403.481575] reboot: Power down [ 415s] ### VM INTERACTION END ### [ 415s] [ 415s] lamb21 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:16:48 UTC 2020. [ 415s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:18:54 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:18:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee82c10b7476_e962b0071b305f0192877c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.10/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 553s] | [ 553s] | configure: exit 0 [ 553s] [ 553s] # -*- compilation -*- [ 553s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 553s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 553s] --- experr 2020-06-16 02:18:43.424363195 +0000 [ 553s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 02:18:43.436363195 +0000 [ 553s] @@ -1790,7 +1790,7 @@ [ 553s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 553s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 553s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 553s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 553s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 553s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 553s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 553s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 553s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 553s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 553s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 553s] make: *** [debian/rules:45: build] Error 2 [ 553s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 553s] ### VM INTERACTION START ### [ 556s] [ 545.153446] sysrq: SysRq : Power Off [ 556s] [ 545.157075] reboot: Power down [ 556s] ### VM INTERACTION END ### [ 556s] [ 556s] build78 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:18:48 UTC 2020. [ 556s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:21:45 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:21:45 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5ee82cc833585_e962b0071b305f019292e8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 233s] [ 233s] # -*- compilation -*- [ 233s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 233s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 233s] --- experr 2020-06-16 02:21:26.457489727 +0000 [ 233s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 02:21:26.485489726 +0000 [ 233s] @@ -1790,7 +1790,7 @@ [ 233s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 233s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 233s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 233s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 233s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 233s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 233s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 233s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 233s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 233s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 233s] make[1]: *** [override_dh_auto_test] Error 1 [ 233s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 233s] debian/rules:45: recipe for target 'build' failed [ 233s] make: *** [build] Error 2 [ 233s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 233s] ### VM INTERACTION START ### [ 235s] [ 226.046391] sysrq: SysRq : Power Off [ 235s] [ 226.047969] reboot: Power down [ 235s] ### VM INTERACTION END ### [ 235s] [ 235s] build76 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:21:30 UTC 2020. [ 235s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:24:54 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:24:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee82d7a92548_e962b0071b305f01929983@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 389s] | [ 389s] | configure: exit 0 [ 389s] [ 389s] # -*- compilation -*- [ 389s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 389s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 389s] --- experr 2020-06-16 02:24:38.656000000 +0000 [ 389s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 02:24:38.680000000 +0000 [ 389s] @@ -1790,7 +1790,7 @@ [ 389s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 389s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 389s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 389s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 389s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 389s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 389s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 389s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 389s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 389s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 389s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 389s] make: *** [debian/rules:45: build] Error 2 [ 389s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 389s] ### VM INTERACTION START ### [ 392s] [ 379.157748] sysrq: SysRq : Power Off [ 392s] [ 379.163401] reboot: Power down [ 392s] ### VM INTERACTION END ### [ 392s] [ 392s] lamb74 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:24:42 UTC 2020. [ 392s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:25:11 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:25:11 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee82d9545b36_e962b0071b305f0193028f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 412s] | #define HAVE_MEMORY_H 1 [ 412s] | #define HAVE_STRINGS_H 1 [ 412s] | #define HAVE_INTTYPES_H 1 [ 412s] | #define HAVE_STDINT_H 1 [ 412s] | #define HAVE_UNISTD_H 1 [ 412s] | #define HAVE_DLFCN_H 1 [ 412s] | #define LT_OBJDIR ".libs/" [ 412s] | #define HAVE_LIBSCTP 1 [ 412s] | #define BUILD_SMPP 1 [ 412s] | #define BUILD_IU 1 [ 412s] | #define STDC_HEADERS 1 [ 412s] | #define HAVE_DBI_DBD_H 1 [ 412s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 412s] | [ 412s] | configure: exit 0 [ 412s] [ 412s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 412s] make[1]: *** [override_dh_auto_test] Error 1 [ 412s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 412s] debian/rules:45: recipe for target 'build' failed [ 412s] make: *** [build] Error 2 [ 412s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 412s] ### VM INTERACTION START ### [ 415s] [ 398.863687] sysrq: SysRq : Power Off [ 415s] [ 398.868333] reboot: Power down [ 415s] ### VM INTERACTION END ### [ 415s] [ 415s] cloud131 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:25:06 UTC 2020. [ 415s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:35:32 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:35:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5ee8300aeb5a9_e962b0071b305f019323f4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_19.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_19.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 466s] | [ 466s] | configure: exit 0 [ 466s] [ 466s] # -*- compilation -*- [ 466s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 466s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 466s] --- experr 2020-06-16 02:35:18.680000000 +0000 [ 466s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 02:35:18.700000000 +0000 [ 466s] @@ -1790,7 +1790,7 @@ [ 466s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 466s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 466s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 466s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 466s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 466s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 466s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 466s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 466s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 466s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 466s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 466s] make: *** [debian/rules:45: build] Error 2 [ 466s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 467s] ### VM INTERACTION START ### [ 470s] [ 455.844927] sysrq: SysRq : Power Off [ 470s] [ 455.852343] reboot: Power down [ 470s] ### VM INTERACTION END ### [ 470s] [ 470s] lamb13 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:35:24 UTC 2020. [ 470s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:45:11 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:45:11 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.10/x86_64 In-Reply-To: References: Message-ID: <5ee832495e16b_e962b0071b305f01934218@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 297s] | #define HAVE_STDLIB_H 1 [ 297s] | #define HAVE_STRING_H 1 [ 297s] | #define HAVE_MEMORY_H 1 [ 297s] | #define HAVE_STRINGS_H 1 [ 297s] | #define HAVE_INTTYPES_H 1 [ 297s] | #define HAVE_STDINT_H 1 [ 297s] | #define HAVE_UNISTD_H 1 [ 297s] | #define HAVE_DLFCN_H 1 [ 297s] | #define LT_OBJDIR ".libs/" [ 297s] | #define HAVE_LIBSCTP 1 [ 297s] | #define BUILD_SMPP 1 [ 297s] | #define BUILD_IU 1 [ 297s] | #define STDC_HEADERS 1 [ 297s] | #define HAVE_DBI_DBD_H 1 [ 297s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 297s] | [ 297s] | configure: exit 0 [ 297s] [ 297s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 297s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 297s] make: *** [debian/rules:45: build] Error 2 [ 297s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 297s] ### VM INTERACTION START ### [ 300s] [ 290.861557] sysrq: SysRq : Power Off [ 300s] [ 290.864923] reboot: Power down [ 300s] ### VM INTERACTION END ### [ 300s] [ 300s] build80 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:44:54 UTC 2020. [ 300s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:45:11 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:45:11 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5ee8324a66ff2_e962b0071b305f01934364@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 268s] | #define HAVE_MEMORY_H 1 [ 268s] | #define HAVE_STRINGS_H 1 [ 268s] | #define HAVE_INTTYPES_H 1 [ 268s] | #define HAVE_STDINT_H 1 [ 268s] | #define HAVE_UNISTD_H 1 [ 268s] | #define HAVE_DLFCN_H 1 [ 268s] | #define LT_OBJDIR ".libs/" [ 268s] | #define HAVE_LIBSCTP 1 [ 268s] | #define BUILD_SMPP 1 [ 268s] | #define BUILD_IU 1 [ 268s] | #define STDC_HEADERS 1 [ 268s] | #define HAVE_DBI_DBD_H 1 [ 268s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 268s] | [ 268s] | configure: exit 0 [ 268s] [ 268s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 268s] make[1]: *** [override_dh_auto_test] Error 1 [ 268s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 268s] debian/rules:45: recipe for target 'build' failed [ 268s] make: *** [build] Error 2 [ 268s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 268s] ### VM INTERACTION START ### [ 271s] [ 260.905322] sysrq: SysRq : Power Off [ 271s] [ 260.912186] reboot: Power down [ 271s] ### VM INTERACTION END ### [ 271s] [ 271s] lamb72 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:45:01 UTC 2020. [ 271s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:46:36 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:46:36 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5ee832a0e4446_e962b0071b305f019348f5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 133s] # -*- compilation -*- [ 133s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 133s] ./testsuite.at:45: $abs_top_builddi[ 127.068116] serial8250: too much work for irq4 [ 133s] r/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 133s] --- experr 2020-06-16 02:46:30.892000000 +0000 [ 133s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 02:46:30.908000000 +0000 [ 133s] @@ -1790,7 +1790,7 @@ [ 133s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 133s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 133s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 133s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 133s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 133s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 133s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 133s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 133s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 133s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 133s] make[1]: *** [override_dh_auto_test] Error 1 [ 133s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 133s] debian/rules:45: recipe for target 'build' failed [ 133s] make: *** [build] Error 2 [ 133s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 133s] ### VM INTERACTION START ### [ 134s] Powering off. [ 134s] [ 128.140899] reboot: Power down [ 134s] ### VM INTERACTION END ### [ 134s] [ 134s] goat17 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:46:33 UTC 2020. [ 134s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 02:52:02 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 02:52:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5ee833e95a179_e962b0071b305f01937145@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 469s] | #define HAVE_MEMORY_H 1 [ 469s] | #define HAVE_STRINGS_H 1 [ 469s] | #define HAVE_INTTYPES_H 1 [ 469s] | #define HAVE_STDINT_H 1 [ 469s] | #define HAVE_UNISTD_H 1 [ 469s] | #define HAVE_DLFCN_H 1 [ 469s] | #define LT_OBJDIR ".libs/" [ 469s] | #define HAVE_LIBSCTP 1 [ 469s] | #define BUILD_SMPP 1 [ 469s] | #define BUILD_IU 1 [ 469s] | #define STDC_HEADERS 1 [ 469s] | #define HAVE_DBI_DBD_H 1 [ 469s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 469s] | [ 469s] | configure: exit 0 [ 469s] [ 469s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 469s] make[1]: *** [override_dh_auto_test] Error 1 [ 469s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 469s] debian/rules:45: recipe for target 'build' failed [ 469s] make: *** [build] Error 2 [ 469s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 469s] ### VM INTERACTION START ### [ 472s] [ 450.621505] sysrq: SysRq : Power Off [ 472s] [ 450.630383] reboot: Power down [ 472s] ### VM INTERACTION END ### [ 472s] [ 472s] lamb54 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 02:51:46 UTC 2020. [ 472s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 03:09:49 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 03:09:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5ee8380870fa1_e962b0071b305f019421d4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 439s] | configure: exit 0 [ 439s] [ 439s] # -*- compilation -*- [ 439s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 439s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 439s] --- experr 2020-06-16 03:09:26.476000000 +0000 [ 439s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 03:09:26.504000000 +0000 [ 439s] @@ -1790,7 +1790,7 @@ [ 439s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 439s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 439s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 439s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 439s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 439s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 439s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 439s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 439s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 439s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 439s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 439s] make: ***[ 421.608031] serial8250: too much work for irq4 [ 439s] [debian/rules:45: build] Error 2 [ 439s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 439s] ### VM INTERACTION START ### [ 442s] [ 424.749263] sysrq: SysRq : Power Off [ 442s] [ 424.753681] reboot: Power down [ 442s] ### VM INTERACTION END ### [ 442s] [ 442s] lamb05 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 03:09:32 UTC 2020. [ 442s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 03:10:58 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 03:10:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5ee8385c84bd5_e962b0071b305f0194262f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 326s] [ 326s] # -*- compilation -*- [ 326s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 326s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 326s] --- experr 2020-06-16 03:10:41.200000000 +0000 [ 326s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 03:10:41.224000000 +0000 [ 326s] @@ -1790,7 +1790,7 @@ [ 326s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 326s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 326s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 326s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 326s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 326s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 326s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 326s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 326s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 326s] debian/rules:63: recipe for target 'override_dh_auto_test' failed [ 326s] make[1]: *** [override_dh_auto_test] Error 1 [ 326s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 326s] debian/rules:45: recipe for target 'build' failed [ 326s] make: *** [build] Error 2 [ 326s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 326s] ### VM INTERACTION START ### [ 330s] [ 318.575773] sysrq: SysRq : Power Off [ 330s] [ 318.582904] reboot: Power down [ 330s] ### VM INTERACTION END ### [ 330s] [ 330s] lamb71 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 03:10:45 UTC 2020. [ 330s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 03:11:16 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 03:11:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5ee83863ebf23_e962b0071b305f01942938@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 295s] | #define HAVE_STDLIB_H 1 [ 295s] | #define HAVE_STRING_H 1 [ 295s] | #define HAVE_MEMORY_H 1 [ 295s] | #define HAVE_STRINGS_H 1 [ 295s] | #define HAVE_INTTYPES_H 1 [ 295s] | #define HAVE_STDINT_H 1 [ 295s] | #define HAVE_UNISTD_H 1 [ 295s] | #define HAVE_DLFCN_H 1 [ 295s] | #define LT_OBJDIR ".libs/" [ 295s] | #define HAVE_LIBSCTP 1 [ 295s] | #define BUILD_SMPP 1 [ 295s] | #define BUILD_IU 1 [ 295s] | #define STDC_HEADERS 1 [ 295s] | #define HAVE_DBI_DBD_H 1 [ 295s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 295s] | [ 295s] | configure: exit 0 [ 295s] [ 295s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 295s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 295s] make: *** [debian/rules:45: build] Error 2 [ 295s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 295s] ### VM INTERACTION START ### [ 298s] [ 288.887053] sysrq: SysRq : Power Off [ 298s] [ 288.895479] reboot: Power down [ 298s] ### VM INTERACTION END ### [ 298s] [ 298s] sheep82 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 03:11:10 UTC 2020. [ 298s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 03:20:06 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 03:20:06 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ee83a7a48a3d_e962b0071b305f019457a3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 987s] | [ 987s] | configure: exit 0 [ 987s] [ 987s] # -*- compilation -*- [ 987s] 6. testsuite.at:41: testing msc_vlr_test_gsm_ciph ... [ 987s] ./testsuite.at:45: $abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph [ 987s] --- experr 2020-06-16 03:20:01.427935071 +0000 [ 987s] +++ /usr/src/packages/BUILD/tests/testsuite.dir/at-groups/6/stderr 2020-06-16 03:20:01.459935071 +0000 [ 987s] @@ -1790,7 +1790,7 @@ [ 987s] DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA [ 987s] DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP [ 987s] DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL [ 987s] -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F [ 987s] +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: unknown [ 987s] DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 [ 987s] DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 [ 987s] DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV [ 987s] 6. testsuite.at:41: 6. msc_vlr_test_gsm_ciph (testsuite.at:41): FAILED (testsuite.at:45) [ 987s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 987s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 987s] make: *** [debian/rules:45: build] Error 2 [ 987s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 987s] ### VM INTERACTION START ### [ 988s] Powering off. [ 988s] [ 930.410392] reboot: Power down [ 988s] ### VM INTERACTION END ### [ 988s] [ 988s] cloud112 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 03:20:05 UTC 2020. [ 988s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 16 03:59:15 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 03:59:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5ee8439f7cbef_e962b0071b305f019649e9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 520s] | #define HAVE_STDLIB_H 1 [ 520s] | #define HAVE_STRING_H 1 [ 520s] | #define HAVE_MEMORY_H 1 [ 520s] | #define HAVE_STRINGS_H 1 [ 520s] | #define HAVE_INTTYPES_H 1 [ 520s] | #define HAVE_STDINT_H 1 [ 520s] | #define HAVE_UNISTD_H 1 [ 520s] | #define HAVE_DLFCN_H 1 [ 520s] | #define LT_OBJDIR ".libs/" [ 520s] | #define HAVE_LIBSCTP 1 [ 520s] | #define BUILD_SMPP 1 [ 520s] | #define BUILD_IU 1 [ 520s] | #define STDC_HEADERS 1 [ 520s] | #define HAVE_DBI_DBD_H 1 [ 520s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 520s] | [ 520s] | configure: exit 0 [ 520s] [ 520s] make[1]: *** [debian/rules:63: override_dh_auto_test] Error 1 [ 520s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 520s] make: *** [debian/rules:45: build] Error 2 [ 520s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 520s] ### VM INTERACTION START ### [ 521s] Powering off. [ 521s] [ 506.316741] reboot: Power down [ 521s] ### VM INTERACTION END ### [ 521s] [ 521s] lamb10 failed "build osmo-msc_1.6.1.40.5c38c.dsc" at Tue Jun 16 03:59:05 UTC 2020. [ 521s] -- 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 Jun 16 07:14:24 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 07:14:24 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust handover config In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18850 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust handover config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9694863b2db6be6384d1d6ffb35fc477fe774d02 Gerrit-Change-Number: 18850 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 16 Jun 2020 07:14: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 Jun 16 07:16:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 07:16:11 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust si2quater config In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18851 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust si2quater config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4dbabcc28309424a336d2a052a067484d17663ac Gerrit-Change-Number: 18851 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 16 Jun 2020 07: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 Tue Jun 16 07:21:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 07:21:14 +0000 Subject: Change in libosmocore[master]: Revert "add osmo_mobile_identity API" References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18853 ) Change subject: Revert "add osmo_mobile_identity API" ...................................................................... Revert "add osmo_mobile_identity API" This reverts commit d1ceca9d48eb3d8b212f386a1ebb35d8fc612297, as it introduces regressions in both osmo-msc and osmo-nitb which have been causing failing builds for several days now. Change-Id: I4bd958d0cd2ab4b0c4725e6d114f4404d725fcf7 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gsm/gsm0808.c M src/gsm/gsm29118.c M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 13 files changed, 150 insertions(+), 1,165 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/18853/1 diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 8619120..e637786 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -55,7 +55,6 @@ uint8_t osmo_char2bcd(char c); int osmo_bcd2str(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex); -int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex); int osmo_hexparse(const char *str, uint8_t *b, int max_len); diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h index 81f6028..7c68b1d 100644 --- a/include/osmocom/gsm/gsm48.h +++ b/include/osmocom/gsm/gsm48.h @@ -4,12 +4,10 @@ #include -#include #include #include #include -#include #include #include @@ -50,55 +48,16 @@ void gsm48_generate_lai2(struct gsm48_loc_area_id *lai48, const struct osmo_location_area_id *lai); #define GSM48_MID_MAX_SIZE 11 -int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) - OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" - " *l = osmo_mobile_identity_encode_msgb(...)"); -int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) - OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" - " *l = osmo_mobile_identity_encode_msgb(...)"); -uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) - OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" - " *l = osmo_mobile_identity_encode_msgb(...)"); +int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi); +int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi); +uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type); +/* Convert Mobile Identity (10.5.1.4) to string */ +int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len); const char *gsm48_mi_type_name(uint8_t mi); -/* Convert encoded Mobile Identity (10.5.1.4) to string */ -int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_decode()"); -const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_c()"); -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_buf()"); -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_c()"); - -/*! Decoded representation of a Mobile Identity (3GPP TS 24.008 10.5.1.4). - * See osmo_mobile_identity_decode() and osmo_mobile_identity_from_l3(). */ -struct osmo_mobile_identity { - /*! A GSM_MI_TYPE_* constant (like GSM_MI_TYPE_IMSI). */ - uint8_t type; - /*! Decoded Mobile Identity digits or TMSI value. IMSI, IMEI and IMEISV as digits like - * "12345678", and TMSI is represented as raw uint32_t. */ - union { - /*! type == GSM_MI_TYPE_IMSI. */ - char imsi[GSM23003_IMSI_MAX_DIGITS + 1]; - /*! type == GSM_MI_TYPE_IMEI. */ - char imei[GSM23003_IMEI_NUM_DIGITS + 1]; - /*! type == GSM_MI_TYPE_IMEISV. */ - char imeisv[GSM23003_IMEISV_NUM_DIGITS + 1]; - /*! TMSI / P-TMSI / M-TMSI integer value if type == GSM_MI_TYPE_TMSI. */ - uint32_t tmsi; - }; -}; - -int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi); -char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi); -int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b); -int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, - bool allow_hex); -int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex); -int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits); -int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex); -int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex); +const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len); +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len); +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len); /* Parse Routeing Area Identifier */ void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 2784d0a..38794c2 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1170,20 +1170,19 @@ /* IMSI */ if (dup->imsi && strlen(dup->imsi)) { - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, dup->imsi); - msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { - if (log_check_level(DBSSGP, LOGL_NOTICE)) { - char strbuf[64]; - osmo_mobile_identity_to_str_buf(strbuf, sizeof(strbuf), &mi); - LOGP(DBSSGP, LOGL_ERROR, - "NSEI=%u/BVCI=%u Cannot encode Mobile Identity %s\n", - nsei, bvci, strbuf); - } - msgb_free(msg); - return -EINVAL; - } + uint8_t mi[GSM48_MID_MAX_SIZE]; +/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, + * but somehow gcc (8.2) is not smart enough to figure this out and claims that + * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to + * mi[131], which is wrong */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" + int imsi_len = gsm48_generate_mid_from_imsi(mi, dup->imsi); + OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); + if (imsi_len > 2) + msgb_tvlv_push(msg, BSSGP_IE_IMSI, + imsi_len-2, mi+2); +#pragma GCC diagnostic pop } /* DRX parameters */ @@ -1228,8 +1227,12 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t drx_params = osmo_htons(pinfo->drx_params); + uint8_t mi[GSM48_MID_MAX_SIZE]; + int imsi_len = gsm48_generate_mid_from_imsi(mi, pinfo->imsi); struct gsm48_ra_id ra; - struct osmo_mobile_identity mi; + + if (imsi_len < 2) + return -EINVAL; msgb_nsei(msg) = nsei; msgb_bvci(msg) = ns_bvci; @@ -1238,23 +1241,16 @@ bgph->pdu_type = BSSGP_PDUT_PAGING_PS; else bgph->pdu_type = BSSGP_PDUT_PAGING_CS; - /* IMSI */ - mi = (struct osmo_mobile_identity){ .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); - msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { - if (log_check_level(DBSSGP, LOGL_NOTICE)) { - char strbuf[64]; - osmo_mobile_identity_to_str_buf(strbuf, sizeof(strbuf), &mi); - LOGP(DBSSGP, LOGL_ERROR, - "NSEI=%u/BVCI=%u Cannot encode Mobile Identity %s\n", - nsei, ns_bvci, strbuf); - } - msgb_free(msg); - return -EINVAL; - } - +/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, + * but somehow gcc (8.2) is not smart enough to figure this out and claims that + * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to + * mi[131], which is wrong */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" + OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); + msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); +#pragma GCC diagnostic pop /* DRX Parameters */ msgb_tvlv_put(msg, BSSGP_IE_DRX_PARAMS, 2, (uint8_t *) &drx_params); diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 9e9cefc..5c9d11c 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -178,17 +178,22 @@ const char *imsi) { struct msgb *msg = common_tx_radio_status(bctx); - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); + uint8_t mi[GSM48_MID_MAX_SIZE]; + int imsi_len = gsm48_generate_mid_from_imsi(mi, imsi); if (!msg) return -ENOMEM; - - msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { - msgb_free(msg); - return -EINVAL; - } +/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, + * but somehow gcc (8.2) is not smart enough to figure this out and claims that + * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to + * mi[131], which is wrong */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" + OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); + /* strip the MI type and length values (2 bytes) */ + if (imsi_len > 2) + msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); +#pragma GCC diagnostic pop LOGPC(DBSSGP, LOGL_NOTICE, "IMSI=%s ", imsi); return common_tx_radio_status2(msg, cause); @@ -481,7 +486,6 @@ struct tlv_parsed tp; uint8_t ra[6]; int rc, data_len; - struct osmo_mobile_identity mi; memset(ra, 0, sizeof(ra)); @@ -506,11 +510,9 @@ goto err_mand_ie; if (!pinfo->imsi) pinfo->imsi = talloc_zero_size(pinfo, GSM_IMSI_LENGTH); - if (osmo_mobile_identity_decode(&mi, TLVP_VAL(&tp, BSSGP_IE_IMSI), TLVP_LEN(&tp, BSSGP_IE_IMSI), false)) - goto err_mand_ie; - if (mi.type != GSM_MI_TYPE_IMSI) - goto err_mand_ie; - osmo_talloc_replace_string(pinfo, &pinfo->imsi, mi.imsi); + gsm48_mi_to_string(pinfo->imsi, GSM_IMSI_LENGTH, + TLVP_VAL(&tp, BSSGP_IE_IMSI), + TLVP_LEN(&tp, BSSGP_IE_IMSI)); /* DRX Parameters */ if (!TLVP_PRESENT(&tp, BSSGP_IE_DRX_PARAMS)) diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 6560d4b..9fdf379 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -730,10 +730,9 @@ const uint8_t *chan_needed) { struct msgb *msg; - struct osmo_mobile_identity mi; + uint8_t mid_buf[GSM48_MI_SIZE + 2]; + int mid_len; uint32_t tmsi_sw; - uint8_t *l; - int rc; /* Mandatory elements! */ OSMO_ASSERT(imsi); @@ -751,15 +750,8 @@ msgb_v_put(msg, BSS_MAP_MSG_PAGING); /* mandatory IMSI 3.2.2.6 */ - mi = (struct osmo_mobile_identity){ .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); - l = msgb_tl_put(msg, GSM0808_IE_IMSI); - rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - if (rc <= 0) { - msgb_free(msg); - return NULL; - } - *l = rc; + mid_len = gsm48_generate_mid_from_imsi(mid_buf, imsi); + msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); /* TMSI 3.2.2.7 */ if (tmsi) { @@ -975,17 +967,9 @@ /* IMSI 3.2.2.6 */ if (params->imsi) { - uint8_t *l; - int rc; - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, params->imsi); - l = msgb_tl_put(msg, GSM0808_IE_IMSI); - rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - if (rc <= 0) { - msgb_free(msg); - return NULL; - } - *l = rc; + uint8_t mid_buf[GSM48_MI_SIZE + 2]; + int mid_len = gsm48_generate_mid_from_imsi(mid_buf, params->imsi); + msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); } if (params->aoip_transport_layer) diff --git a/src/gsm/gsm29118.c b/src/gsm/gsm29118.c index 5c72b4d..2c02b2f 100644 --- a/src/gsm/gsm29118.c +++ b/src/gsm/gsm29118.c @@ -219,14 +219,12 @@ /* Encode IMSI from string representation and append to SGSaAP msg */ static void msgb_sgsap_imsi_put(struct msgb *msg, const char *imsi) { - int rc; - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - uint8_t *l; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); - l = msgb_tl_put(msg, SGSAP_IE_IMSI); - rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - /* This function fails to do error handling, so in case of error, leave the len == 0. */ - *l = rc > 0? rc : 0; + uint8_t buf[16]; + uint8_t len; + /* encoding is just like TS 04.08 */ + len = gsm48_generate_mid_from_imsi(buf, imsi); + /* skip first two bytes (tag+length) so we can use msgb_tlv_put */ + msgb_tlv_put(msg, SGSAP_IE_IMSI, len - 2, buf + 2); } /* Encode LAI from struct representation and append to SGSaAP msg */ diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 11bd361..8d0998b 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -45,7 +45,6 @@ #include #include #include -#include /*! \addtogroup gsm0408 * @{ @@ -459,500 +458,70 @@ return get_value_string(mi_type_names, mi); } -/*! Deprecated, see osmo_mobile_identity instead. - * Return a human readable representation of a Mobile Identity in caller-provided buffer. +/*! Return a human readable representation of a Mobile Identity in caller-provided buffer. * \param[out] buf caller-provided output buffer * \param[in] buf_len size of buf in bytes * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return buf */ -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi_data, uint8_t mi_len) +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) { - struct osmo_mobile_identity mi; - if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true)) { + uint8_t mi_type; + uint32_t tmsi; + char mi_string[GSM48_MI_SIZE]; + + mi_type = (mi && mi_len) ? (mi[0] & GSM_MI_TYPE_MASK) : GSM_MI_TYPE_NONE; + + switch (mi_type) { + case GSM_MI_TYPE_TMSI: + /* Table 10.5.4.3, reverse generate_mid_from_tmsi */ + if (mi_len == GSM48_TMSI_LEN && mi[0] == (0xf0 | GSM_MI_TYPE_TMSI)) { + tmsi = osmo_load32be(&mi[1]); + snprintf(buf, buf_len, "TMSI-0x%08" PRIX32, tmsi); + } else { + snprintf(buf, buf_len, "TMSI-invalid"); + } + return buf; + + case GSM_MI_TYPE_IMSI: + case GSM_MI_TYPE_IMEI: + case GSM_MI_TYPE_IMEISV: + osmo_bcd2str(mi_string, sizeof(mi_string), mi, 1, (mi_len * 2) - (mi[0] & GSM_MI_ODD ? 0 : 1), true); + snprintf(buf, buf_len, "%s-%s", gsm48_mi_type_name(mi_type), mi_string); + return buf; + + default: snprintf(buf, buf_len, "unknown"); return buf; } - osmo_mobile_identity_to_str_buf(buf, buf_len, &mi); - return buf; } -/*! Deprecated, see osmo_mobile_identity instead. - * Return a human readable representation of a Mobile Identity in static buffer. +/*! Return a human readable representation of a Mobile Identity in static buffer. * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid"... */ -const char *osmo_mi_name(const uint8_t *mi_data, uint8_t mi_len) +const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) { static __thread char mi_name[10 + GSM48_MI_SIZE + 1]; - struct osmo_mobile_identity mi; - if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true) == 0) - osmo_mobile_identity_to_str_buf(mi_name, sizeof(mi_name), &mi); - else - snprintf(mi_name, sizeof(mi_name), "unknown"); - return mi_name; + return osmo_mi_name_buf(mi_name, sizeof(mi_name), mi, mi_len); } -/*! Deprecated, see osmo_mobile_identity instead. - * Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. +/*! Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. * \param[in] ctx talloc context from which to allocate output buffer * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid" in a * dynamically-allocated output buffer. */ -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi_data, uint8_t mi_len) +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) { - struct osmo_mobile_identity mi; - if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true)) - return talloc_strdup((void*)ctx, "unknown"); - return osmo_mobile_identity_to_str_c((void*)ctx, &mi); -} - -/*! Extract Mobile Identity from encoded bytes (3GPP TS 24.008 10.5.1.4). - * - * On failure (negative return value), mi->type == GSM_MI_TYPE_NONE, mi->string[] is all-zero and mi->tmsi == - * GSM_RESERVED_TMSI. - * - * On success, mi->type reflects the decoded Mobile Identity type (GSM_MI_TYPE_IMSI, GSM_MI_TYPE_TMSI, GSM_MI_TYPE_IMEI - * or GSM_MI_TYPE_IMEISV). - * - * On success, mi->string always contains a human readable representation of the Mobile Identity digits: IMSI, IMEI and - * IMEISV as digits like "12345678", and TMSI as "0x" and 8 hexadecimal digits like "0x1234abcd". - * - * mi->tmsi contains the uint32_t TMSI value iff the extracted Mobile Identity was a TMSI, or GSM_RESERVED_TMSI - * otherwise. - * - * \param[out] mi Return buffer for decoded Mobile Identity. - * \param[in] mi_data The encoded Mobile Identity octets. - * \param[in] mi_len Number of octets in mi_data. - * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. - * \returns 0 on success, negative on error: -EBADMSG = invalid length indication or invalid data, - * -EINVAL = unknown Mobile Identity type. - */ -int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, - bool allow_hex) -{ - int rc; - int nibbles_len; - char *str; - size_t str_size; - - if (!mi_data || mi_len < 1) - return -EBADMSG; - - nibbles_len = (mi_len - 1) * 2 + ((mi_data[0] & GSM_MI_ODD) ? 1 : 0); - - *mi = (struct osmo_mobile_identity){ - .type = mi_data[0] & GSM_MI_TYPE_MASK, - }; - - /* First do length checks */ - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - mi->tmsi = GSM_RESERVED_TMSI; - if (nibbles_len != (GSM23003_TMSI_NUM_BYTES * 2)) { - rc = -EBADMSG; - goto return_error; - } - break; - - case GSM_MI_TYPE_IMSI: - if (nibbles_len < GSM23003_IMSI_MIN_DIGITS || nibbles_len > GSM23003_IMSI_MAX_DIGITS) { - rc = -EBADMSG; - goto return_error; - } - str = mi->imsi; - str_size = sizeof(mi->imsi); - break; - - case GSM_MI_TYPE_IMEI: - if (nibbles_len != GSM23003_IMEI_NUM_DIGITS && nibbles_len != GSM23003_IMEI_NUM_DIGITS_NO_CHK) { - rc = -EBADMSG; - goto return_error; - } - str = mi->imei; - str_size = sizeof(mi->imei); - break; - - case GSM_MI_TYPE_IMEISV: - if (nibbles_len != GSM23003_IMEISV_NUM_DIGITS) { - rc = -EBADMSG; - goto return_error; - } - str = mi->imeisv; - str_size = sizeof(mi->imeisv); - break; - - default: - rc = -EINVAL; - goto return_error; - } - - /* Decode BCD digits */ - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - /* MI is a 32bit integer TMSI. Length has been checked above. */ - if ((mi_data[0] & 0xf0) != 0xf0) { - /* A TMSI always has the first nibble == 0xf */ - rc = -EBADMSG; - goto return_error; - } - mi->tmsi = osmo_load32be(&mi_data[1]); - return 0; - - case GSM_MI_TYPE_IMSI: - case GSM_MI_TYPE_IMEI: - case GSM_MI_TYPE_IMEISV: - /* If the length is even, the last nibble (higher nibble of last octet) must be 0xf */ - if (!(mi_data[0] & GSM_MI_ODD) - && ((mi_data[mi_len - 1] & 0xf0) != 0xf0)) { - rc = -EBADMSG; - goto return_error; - } - rc = osmo_bcd2str(str, str_size, mi_data, 1, 1 + nibbles_len, allow_hex); - /* rc checked below */ - break; - - default: - /* Already handled above, but as future bug paranoia: */ - rc = -EINVAL; - goto return_error; - } - - /* check mi->str printing rc */ - if (rc < 1 || rc >= str_size) { - rc = -EBADMSG; - goto return_error; - } - return 0; - -return_error: - *mi = (struct osmo_mobile_identity){ - .type = GSM_MI_TYPE_NONE, - }; - return rc; -} - -/*! Return the number of encoded Mobile Identity octets, without actually encoding. - * Useful to write tag-length header before encoding the MI. - * \param[in] mi Mobile Identity. - * \param[out] mi_digits If not NULL, store the number of nibbles of used MI data (i.e. strlen(mi->string) or 8 for a TMSI). - * \return octets that osmo_mobile_identity_encode_msgb() will write for this mi. - */ -int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits) -{ - int mi_nibbles; - if (!mi) - return -EINVAL; - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - mi_nibbles = GSM23003_TMSI_NUM_BYTES * 2; - break; - case GSM_MI_TYPE_IMSI: - mi_nibbles = strlen(mi->imsi); - if (mi_nibbles < GSM23003_IMSI_MIN_DIGITS - || mi_nibbles > GSM23003_IMSI_MAX_DIGITS) - return -EINVAL; - break; - case GSM_MI_TYPE_IMEI: - mi_nibbles = strlen(mi->imei); - if (mi_nibbles < GSM23003_IMEI_NUM_DIGITS_NO_CHK - || mi_nibbles > GSM23003_IMEI_NUM_DIGITS) - return -EINVAL; - break; - case GSM_MI_TYPE_IMEISV: - mi_nibbles = strlen(mi->imeisv); - if (mi_nibbles != GSM23003_IMEISV_NUM_DIGITS) - return -EINVAL; - break; - default: - return -ENOTSUP; - } - - if (mi_digits) - *mi_digits = mi_nibbles; - - /* one type nibble, plus the MI nibbles, plus a filler nibble to complete the last octet: - * mi_octets = ceil((float)(mi_nibbles + 1) / 2) - */ - return (mi_nibbles + 2) / 2; -} - -/*! Encode Mobile Identity from uint32_t (TMSI) or digits string (all others) (3GPP TS 24.008 10.5.1.4). - * - * \param[out] buf Return buffer for encoded Mobile Identity. - * \param[in] buflen sizeof(buf). - * \param[in] mi Mobile identity to encode. - * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. - * \returns Amount of bytes written to buf, or negative on error. - */ -int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex) -{ - int rc; - int nibbles_len; - int mi_octets; - const char *mi_str; - - if (!buf || !buflen) - return -EIO; - - mi_octets = osmo_mobile_identity_encoded_len(mi, &nibbles_len); - if (mi_octets < 0) - return mi_octets; - if (mi_octets > buflen) - return -ENOSPC; - - buf[0] = (mi->type & GSM_MI_TYPE_MASK) | ((nibbles_len & 1) ? GSM_MI_ODD : 0); - - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - buf[0] |= 0xf0; - osmo_store32be(mi->tmsi, &buf[1]); - return mi_octets; - - case GSM_MI_TYPE_IMSI: - mi_str = mi->imsi; - break; - case GSM_MI_TYPE_IMEI: - mi_str = mi->imei; - break; - case GSM_MI_TYPE_IMEISV: - mi_str = mi->imeisv; - break; - default: - return -ENOTSUP; - } - rc = osmo_str2bcd(buf, buflen, mi_str, 1, -1, allow_hex); - if (rc != mi_octets) - return -EINVAL; - return mi_octets; -} - -/*! Encode Mobile Identity type and BCD digits, appended to a msgb. - * Example to add a GSM48_IE_MOBILE_ID IEI with tag and length to a msgb: - * - * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, .tmsi = random_tmsi, }; - * uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); - * int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - * if (rc < 0) - * goto error; - * *l = rc; - * - * Example to add a BSSGP_IE_IMSI with tag and variable-size length, where the - * length needs to be known at the time of writing the IE tag-length header: - * - * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - * OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); - * msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - * if (osmo_mobile_identity_encode_msgb(msg, &mi, false) < 0) - * goto error; - */ -int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex) -{ - int rc = osmo_mobile_identity_encode_buf(msg->tail, msgb_tailroom(msg), mi, allow_hex); - if (rc < 0) - return rc; - msgb_put(msg, rc); - return rc; -} - -/*! Extract Mobile Identity from a Complete Layer 3 message. - * - * Determine the Mobile Identity data and call osmo_mobile_identity_decode() to return a decoded struct - * osmo_mobile_identity. - * - * \param[out] mi Return buffer for decoded Mobile Identity. - * \param[in] msg The Complete Layer 3 message to extract from (LU, CM Service Req or Paging Resp). - * \returns 0 on success, negative on error: return codes as defined in osmo_mobile_identity_decode(), or - * -ENOTSUP = not a Complete Layer 3 message, - */ -int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex) -{ - const struct gsm48_hdr *gh; - int8_t pdisc = 0; - uint8_t mtype = 0; - const struct gsm48_loc_upd_req *lu; - const uint8_t *cm2_buf; - uint8_t cm2_len; - const uint8_t *mi_start; - const struct gsm48_pag_resp *paging_response; - const uint8_t *mi_data; - uint8_t mi_len; - const struct gsm48_imsi_detach_ind *idi; - - *mi = (struct osmo_mobile_identity){ - .type = GSM_MI_TYPE_NONE, - .tmsi = GSM_RESERVED_TMSI, - }; - - if (msgb_l3len(msg) < sizeof(*gh)) - return -EBADMSG; - - gh = msgb_l3(msg); - pdisc = gsm48_hdr_pdisc(gh); - mtype = gsm48_hdr_msg_type(gh); - - switch (pdisc) { - case GSM48_PDISC_MM: - - switch (mtype) { - case GSM48_MT_MM_LOC_UPD_REQUEST: - /* First make sure that lu-> can be dereferenced */ - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) - return -EBADMSG; - - /* Now we know there is enough msgb data to read a lu->mi_len, so also check that */ - lu = (struct gsm48_loc_upd_req*)gh->data; - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu) + lu->mi_len) - return -EBADMSG; - mi_data = lu->mi; - mi_len = lu->mi_len; - goto got_mi; - - case GSM48_MT_MM_CM_SERV_REQ: - case GSM48_MT_MM_CM_REEST_REQ: - /* Unfortunately in Phase1 the Classmark2 length is variable, so we cannot - * just use gsm48_service_request struct, and need to parse it manually. */ - if (msgb_l3len(msg) < sizeof(*gh) + 2) - return -EBADMSG; - - cm2_len = gh->data[1]; - cm2_buf = gh->data + 2; - goto got_cm2; - - case GSM48_MT_MM_IMSI_DETACH_IND: - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*idi)) - return -EBADMSG; - idi = (struct gsm48_imsi_detach_ind*) gh->data; - mi_data = idi->mi; - mi_len = idi->mi_len; - goto got_mi; - - case GSM48_MT_MM_ID_RESP: - if (msgb_l3len(msg) < sizeof(*gh) + 2) - return -EBADMSG; - mi_data = gh->data+1; - mi_len = gh->data[0]; - goto got_mi; - - default: - break; - } - break; - - case GSM48_PDISC_RR: - - switch (mtype) { - case GSM48_MT_RR_PAG_RESP: - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*paging_response)) - return -EBADMSG; - paging_response = (struct gsm48_pag_resp*)gh->data; - cm2_len = paging_response->cm2_len; - cm2_buf = (uint8_t*)&paging_response->cm2; - goto got_cm2; - - default: - break; - } - break; - } - - return -ENOTSUP; - -got_cm2: - /* MI (Mobile Identity) LV follows the Classmark2 */ - - /* There must be at least a mi_len byte after the CM2 */ - if (cm2_buf + cm2_len + 1 > msg->tail) - return -EBADMSG; - - mi_start = cm2_buf + cm2_len; - mi_len = mi_start[0]; - mi_data = mi_start + 1; - -got_mi: - /* mi_data points at the start of the Mobile Identity coding of mi_len bytes */ - if (mi_data + mi_len > msg->tail) - return -EBADMSG; - - return osmo_mobile_identity_decode(mi, mi_data, mi_len, allow_hex); -} - -/*! Return a human readable representation of a struct osmo_mobile_identity. - * Write a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". - * \param[out] buf String buffer to write to. - * \param[in] buflen sizeof(buf). - * \param[in] mi Decoded Mobile Identity data. - * \return the strlen() of the string written when buflen is sufficiently large, like snprintf(). - */ -int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi) -{ - struct osmo_strbuf sb = { .buf = buf, .len = buflen }; - if (!mi) - return snprintf(buf, buflen, "NULL"); - OSMO_STRBUF_PRINTF(sb, "%s", gsm48_mi_type_name(mi->type)); - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - OSMO_STRBUF_PRINTF(sb, "-0x%08" PRIX32, mi->tmsi); - break; - case GSM_MI_TYPE_IMSI: - OSMO_STRBUF_PRINTF(sb, "-%s", mi->imsi); - break; - case GSM_MI_TYPE_IMEI: - OSMO_STRBUF_PRINTF(sb, "-%s", mi->imei); - break; - case GSM_MI_TYPE_IMEISV: - OSMO_STRBUF_PRINTF(sb, "-%s", mi->imeisv); - break; - default: - break; - } - return sb.chars_needed; -} - -/*! Like osmo_mobile_identity_to_str_buf(), but return the string in a talloc buffer. - * \param[in] ctx Talloc context to allocate from. - * \param[in] mi Decoded Mobile Identity data. - * \return a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". - */ -char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi) -{ - OSMO_NAME_C_IMPL(ctx, 32, "ERROR", osmo_mobile_identity_to_str_buf, mi) -} - -/*! Compare two osmo_mobile_identity structs, returning typical cmp() result. - * \param[in] a Left side osmo_mobile_identity. - * \param[in] b Right side osmo_mobile_identity. - * \returns 0 if both are equal, -1 if a < b, 1 if a > b. - */ -int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b) -{ - int cmp; - if (a == b) - return 0; - if (!a) - return -1; - if (!b) - return 1; - cmp = OSMO_CMP(a->type, b->type); - if (cmp) - return cmp; - switch (a->type) { - case GSM_MI_TYPE_TMSI: - return OSMO_CMP(a->tmsi, b->tmsi); - case GSM_MI_TYPE_IMSI: - return strncmp(a->imsi, b->imsi, sizeof(a->imsi)); - case GSM_MI_TYPE_IMEI: - return strncmp(a->imei, b->imei, sizeof(a->imei)); - case GSM_MI_TYPE_IMEISV: - return strncmp(a->imeisv, b->imeisv, sizeof(a->imeisv)); - default: - /* No known type, but both have the same type. */ - return 0; - } + size_t buf_len = 10 + GSM48_MI_SIZE + 1; + char *mi_name = talloc_size(ctx, buf_len); + if (!mi_name) + return NULL; + return osmo_mi_name_buf(mi_name, buf_len, mi, mi_len); } /*! Checks is particular message is cipherable in A/Gb mode according to @@ -1107,76 +676,64 @@ } } -static int legacy_compat_generate_mid(uint8_t *buf, const struct osmo_mobile_identity *mi) -{ - int rc; - buf[0] = GSM48_IE_MOBILE_ID; - rc = osmo_mobile_identity_encode_buf(buf + 2, GSM48_MID_MAX_SIZE - 2, mi, false); - if (rc <= 0) - return 0; - OSMO_ASSERT(rc <= 9); - buf[1] = rc; - return 2 + rc; -} - -/*! Deprecated, see osmo_mobile_identity instead. - * Generate TS 04.08 Mobile ID from TMSI +/*! Generate TS 04.08 Mobile ID from TMSI * \param[out] buf Caller-provided output buffer (7 bytes) * \param[in] tmsi TMSI to be encoded * \returns number of byes encoded (always 7) */ int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) { - struct osmo_mobile_identity mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = tmsi, - }; - return legacy_compat_generate_mid(buf, &mi); + uint32_t tmsi_be = osmo_htonl(tmsi); + + buf[0] = GSM48_IE_MOBILE_ID; + buf[1] = GSM48_TMSI_LEN; + buf[2] = 0xf0 | GSM_MI_TYPE_TMSI; + memcpy(&buf[3], &tmsi_be, sizeof(tmsi_be)); + + return 7; } -/*! Deprecated, see osmo_mobile_identity instead. - * Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string +/*! Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string * \param[out] buf Caller-provided output buffer of at least GSM48_MID_MAX_SIZE bytes * \param[in] id Identity to be encoded * \param[in] mi_type Type of identity (e.g. GSM_MI_TYPE_IMSI, IMEI, IMEISV) * \returns number of bytes used in \a buf */ uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) { - struct osmo_mobile_identity mi = { .type = mi_type }; - switch (mi_type) { - case GSM_MI_TYPE_TMSI: - mi.tmsi = strtoul(id, NULL, 10); - break; - case GSM_MI_TYPE_IMSI: - OSMO_STRLCPY_ARRAY(mi.imsi, id); - break; - case GSM_MI_TYPE_IMEI: - OSMO_STRLCPY_ARRAY(mi.imei, id); - break; - case GSM_MI_TYPE_IMEISV: - OSMO_STRLCPY_ARRAY(mi.imeisv, id); - break; - default: - return 0; + uint8_t length = strnlen(id, 16), i, off = 0, odd = (length & 1) == 1; + /* maximum length == 16 (IMEISV) */ + + buf[0] = GSM48_IE_MOBILE_ID; + buf[2] = osmo_char2bcd(id[0]) << 4 | (mi_type & GSM_MI_TYPE_MASK) | (odd << 3); + + /* if the length is even we will fill half of the last octet */ + buf[1] = (length + (odd ? 1 : 2)) >> 1; + /* buf[1] maximum = 18/2 = 9 */ + OSMO_ASSERT(buf[1] <= 9); + + for (i = 1; i < buf[1]; ++i) { + uint8_t upper, lower = osmo_char2bcd(id[++off]); + if (!odd && off + 1 == length) + upper = 0x0f; + else + upper = osmo_char2bcd(id[++off]) & 0x0f; + + buf[2 + i] = (upper << 4) | lower; } - return legacy_compat_generate_mid(buf, &mi); + + /* maximum return value: 2 + 9 = 11 */ + return 2 + buf[1]; } -/*! Deprecated, see osmo_mobile_identity instead. - * Generate TS 04.08 Mobile ID from IMSI +/*! Generate TS 04.08 Mobile ID from IMSI * \param[out] buf Caller-provided output buffer * \param[in] imsi IMSI to be encoded * \returns number of bytes used in \a buf */ int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) { - struct osmo_mobile_identity mi = { - .type = GSM_MI_TYPE_IMSI, - }; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); - return legacy_compat_generate_mid(buf, &mi); + return gsm48_generate_mid(buf, imsi, GSM_MI_TYPE_IMSI); } -/*! Deprecated, see osmo_mobile_identity instead. - * Convert TS 04.08 Mobile Identity (10.5.1.4) to string. +/*! Convert TS 04.08 Mobile Identity (10.5.1.4) to string. * This function does not validate the Mobile Identity digits, i.e. digits > 9 are returned as 'A'-'F'. * \param[out] string Caller-provided buffer for output * \param[in] str_len Length of \a string in bytes diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 742cec3..ac9aeb2 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -363,14 +363,6 @@ gsm48_generate_mid_from_imsi; gsm48_generate_mid_from_tmsi; gsm48_mi_to_string; -osmo_mobile_identity_to_str_buf; -osmo_mobile_identity_to_str_c; -osmo_mobile_identity_cmp; -osmo_mobile_identity_decode; -osmo_mobile_identity_decode_from_l3; -osmo_mobile_identity_encoded_len; -osmo_mobile_identity_encode_buf; -osmo_mobile_identity_encode_msgb; gsm48_mm_att_tlvdef; gsm48_number_of_paging_subchannels; gsm48_parse_ra; diff --git a/src/utils.c b/src/utils.c index 3c4a8c9..18e105f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -175,65 +175,6 @@ return OSMO_MAX(0, end_nibble - start_nibble); } -/*! Convert string to BCD. - * The given nibble offsets are interpreted in BCD order, i.e. nibble 0 is bcd[0] & 0x0f, nibble 1 is bcd[0] & 0xf0, nibble - * 3 is bcd[1] & 0x0f, etc.. - * \param[out] dst Output BCD buffer. - * \param[in] dst_size sizeof() the output string buffer. - * \param[in] digits String containing decimal or hexadecimal digits in upper or lower case. - * \param[in] start_nibble Offset to start from, in nibbles, typically 1 to skip the first (MI type) nibble. - * \param[in] end_nibble Negative to write all digits found in str, followed by 0xf nibbles to fill any started octet. - * If >= 0, stop before this offset in nibbles, e.g. to get default behavior, pass - * start_nibble + strlen(str) + ((start_nibble + strlen(str)) & 1? 1 : 0) + 1. - * \param[in] allow_hex If false, return error if there are hexadecimal digits (A-F). If true, write those to - * BCD. - * \returns The buffer size in octets that is used to place all bcd digits (including the skipped nibbles - * from 'start_nibble' and rounded up to full octets); -EINVAL on invalid digits; - * -ENOMEM if dst is NULL, if dst_size is too small to contain all nibbles, or if start_nibble is negative. - */ -int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex) -{ - const char *digit = digits; - int nibble_i; - - if (!dst || !dst_size || start_nibble < 0) - return -ENOMEM; - - if (end_nibble < 0) { - end_nibble = start_nibble + strlen(digits); - /* If the last octet is not complete, add another filler nibble */ - if (end_nibble & 1) - end_nibble++; - } - if ((end_nibble / 2) > dst_size) - return -ENOMEM; - - for (nibble_i = start_nibble; nibble_i < end_nibble; nibble_i++) { - uint8_t nibble = 0xf; - int octet = nibble_i >> 1; - if (*digit) { - char c = *digit; - digit++; - if (c >= '0' && c <= '9') - nibble = c - '0'; - else if (allow_hex && c >= 'A' && c <= 'F') - nibble = 0xa + (c - 'A'); - else if (allow_hex && c >= 'a' && c <= 'f') - nibble = 0xa + (c - 'a'); - else - return -EINVAL; - } - nibble &= 0xf; - if ((nibble_i & 1)) - dst[octet] = (nibble << 4) | (dst[octet] & 0x0f); - else - dst[octet] = (dst[octet] & 0xf0) | nibble; - } - - /* floor(float(end_nibble) / 2) */ - return end_nibble / 2; -} - /*! Parse a string containing hexadecimal digits * \param[in] str string containing ASCII encoded hexadecimal digits * \param[out] b output buffer diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index a86fe11..9617823 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -18,8 +18,6 @@ * */ -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - #include #include #include @@ -388,9 +386,8 @@ { .mi_type = GSM_MI_TYPE_IMSI | GSM_MI_ODD, .mi_str = "423423", - .expect_str = "", - .expect_rc = 1, - .mi_name = "unknown", + .mi_name = "IMSI-423423", + .expect_mi_tlv_hex = "1704413224f3", }, { .mi_type = GSM_MI_TYPE_IMSI, @@ -474,21 +471,21 @@ .mi_type = GSM_MI_TYPE_NONE, .mi_str = "123", .mi_name = "unknown", - .expect_mi_tlv_hex = "", + .expect_mi_tlv_hex = "17021832", /* encoding invalid MI type */ .expect_str = "", }, { .mi_type = GSM_MI_TYPE_NONE, .mi_str = "1234", .mi_name = "unknown", - .expect_mi_tlv_hex = "", + .expect_mi_tlv_hex = "17031032f4", /* encoding invalid MI type */ .expect_str = "", }, { .mi_type = GSM_MI_ODD, .mi_str = "1234", .mi_name = "unknown", - .expect_mi_tlv_hex = "", + .expect_mi_tlv_hex = "17031032f4", /* encoding invalid MI type */ .expect_str = "", }, }; @@ -525,14 +522,9 @@ printf(" ERROR: expected '%s'\n", t->expect_mi_tlv_hex); } - if (tlv_len) { - /* skip the GSM48_IE_MOBILE_ID tag and length */ - mi_buf = tlv_buf + 2; - mi_len = tlv_len - 2; - } else { - mi_buf = NULL; - mi_len = 0; - } + /* skip the GSM48_IE_MOBILE_ID tag and length */ + mi_buf = tlv_buf + 2; + mi_len = tlv_len - 2; rc = gsm48_mi_to_string(str, str_size, mi_buf, mi_len); printf(" -> MI-str=%s rc=%d\n", osmo_quote_str(str, -1), rc); @@ -619,368 +611,6 @@ printf("\n"); } -struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) -{ - struct msgb *msg = msgb_alloc_headroom(size, 4, label); - OSMO_ASSERT(msg); - msg->l3h = msgb_put(msg, osmo_hexparse(hex, msg->data, msgb_tailroom(msg))); - return msg; -} - -struct mobile_identity_tc { - const char *label; - const char *compl_l3_msg; - int expect_rc; - struct osmo_mobile_identity expect_mi; -}; - -/* Some Complete Layer 3 messages copied from real GSM network traces. */ -struct mobile_identity_tc mobile_identity_tests[] = { - { - .label = "LU with IMSI 901700000004620", - .compl_l3_msg = "050802008168000130" "089910070000006402", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "901700000004620", - }, - }, - { - .label = "LU with TMSI 0x0980ad8a", - .compl_l3_msg = "05084262f224002a50" "05f40980ad8a", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x0980ad8a, - }, - }, - { - .label = "LU with invalid MI type", - .compl_l3_msg = "050802008168000130" "089d10070000006402", - .expect_rc = -EINVAL, - }, - { - .label = "LU with truncated IMSI MI", - .compl_l3_msg = "050802008168000130" "0899100700000064", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with too short IMSI MI (12345)", - .compl_l3_msg = "050802008168000130" "03193254", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with just long enough IMSI MI 123456", - .compl_l3_msg = "050802008168000130" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "LU with max length IMSI MI 123456789012345", - .compl_l3_msg = "050802008168000130" "081932547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456789012345", - }, - }, - { - .label = "LU with just too long IMSI MI 1234567890123456", - .compl_l3_msg = "050802008168000130" "091132547698103254f6", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with truncated TMSI MI", - .compl_l3_msg = "05084262f224002a50" "05f40980ad", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with odd length TMSI", - .compl_l3_msg = "05084262f224002a50" "05fc0980ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with too long TMSI MI", - .compl_l3_msg = "05084262f224002a50" "06f40980ad23", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with too short TMSI", - .compl_l3_msg = "05084262f224002a50" "04f480ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with IMSI 123456", - .compl_l3_msg = "052401035058a6" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "CM Service Request with TMSI 0x5a42e404", - .compl_l3_msg = "052401035058a6" "05f45a42e404", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x5a42e404, - }, - }, - { - .label = "CM Service Request with shorter CM2, with IMSI 123456", - .compl_l3_msg = "052401025058" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "CM Service Request with longer CM2, with IMSI 123456", - .compl_l3_msg = "052401055058a62342" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "CM Service Request with shorter CM2, with TMSI 0x00000000", - .compl_l3_msg = "052401025058" "05f400000000", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0, - }, - }, - { - .label = "CM Service Request with invalid MI type", - .compl_l3_msg = "052401035058a6" "089d10070000006402", - .expect_rc = -EINVAL, - }, - { - .label = "CM Service Request with truncated IMSI MI", - .compl_l3_msg = "052401035058a6" "0899100700000064", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with truncated TMSI MI", - .compl_l3_msg = "0524010150" "05f40980ad", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with odd length TMSI", - .compl_l3_msg = "052401045058a623" "05fc0980ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with too long TMSI MI", - .compl_l3_msg = "052401035058a6" "06f40980ad23", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with too short TMSI", - .compl_l3_msg = "052401035058a6" "04f480ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Reestablish Request with TMSI 0x5a42e404", - .compl_l3_msg = "052801035058a6" "05f45a42e404", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x5a42e404, - }, - }, - { - .label = "Paging Response with IMSI 1234567", - .compl_l3_msg = "06270003505886" "0419325476", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "1234567", - }, - }, - { - .label = "Paging Response with TMSI 0xb48883de", - .compl_l3_msg = "06270003505886" "05f4b48883de", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0xb48883de, - }, - }, - { - .label = "Paging Response with TMSI, with unused nibble not 0xf", - .compl_l3_msg = "06270003505886" "0504b48883de", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with too short IMEI (1234567)", - .compl_l3_msg = "06270003505886" "041a325476", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with IMEI 123456789012345", - .compl_l3_msg = "06270003505886" "081a32547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMEI, - .imei = "123456789012345", - }, - }, - { - .label = "Paging Response with IMEI 12345678901234 (no Luhn checksum)", - .compl_l3_msg = "06270003505886" "0812325476981032f4", - .expect_mi = { - .type = GSM_MI_TYPE_IMEI, - .imei = "12345678901234", - }, - }, - { - .label = "Paging Response with IMEISV 1234567890123456", - .compl_l3_msg = "06270003505886" "091332547698103254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMEISV, - .imeisv = "1234567890123456", - }, - }, - { - .label = "Paging Response with too short IMEISV 123456789012345", - .compl_l3_msg = "06270003505886" "081b32547698103254", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with too long IMEISV 12345678901234567", - .compl_l3_msg = "06270003505886" "091b3254769810325476", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with IMSI 123456789012345 and flipped ODD bit", - .compl_l3_msg = "06270003505886" "081132547698103254", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with IMSI 901700000004620", - .compl_l3_msg = "050130" "089910070000006402", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "901700000004620", - }, - }, - { - .label = "IMSI-Detach with TMSI 0x0980ad8a", - .compl_l3_msg = "050130" "05f40980ad8a", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x0980ad8a, - }, - }, - { - .label = "IMSI-Detach with invalid MI type", - .compl_l3_msg = "050130" "089d10070000006402", - .expect_rc = -EINVAL, - }, - { - .label = "IMSI-Detach with truncated IMSI MI", - .compl_l3_msg = "050130" "0899100700000064", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with too short IMSI MI (12345)", - .compl_l3_msg = "050130" "03193254", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with just long enough IMSI MI 123456", - .compl_l3_msg = "050130" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "IMSI-Detach with max length IMSI MI 123456789012345", - .compl_l3_msg = "050130" "081932547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456789012345", - }, - }, - { - .label = "IMSI-Detach with just too long IMSI MI 1234567890123456", - .compl_l3_msg = "050130" "091132547698103254f6", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with truncated TMSI MI", - .compl_l3_msg = "050130" "05f40980ad", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with odd length TMSI", - .compl_l3_msg = "050130" "05fc0980ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with too long TMSI MI", - .compl_l3_msg = "050130" "06f40980ad23", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with too short TMSI", - .compl_l3_msg = "050130" "04f480ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "Identity Response with IMSI 901700000004620", - .compl_l3_msg = "0519" "089910070000006402", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "901700000004620", - }, - }, - { - .label = "Identity Response with IMEI 123456789012345", - .compl_l3_msg = "0519" "081a32547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMEI, - .imei = "123456789012345", - }, - }, - { - .label = "Identity Response with IMEISV 9876543210987654", - .compl_l3_msg = "0519" "099378563412907856f4", - .expect_mi = { - .type = GSM_MI_TYPE_IMEISV, - .imeisv = "9876543210987654", - }, - }, -}; - -void test_struct_mobile_identity() -{ - struct mobile_identity_tc *t; - printf("%s()\n", __func__); - for (t = mobile_identity_tests; (t - mobile_identity_tests) < ARRAY_SIZE(mobile_identity_tests); t++) { - struct osmo_mobile_identity mi; - struct msgb *msg; - int rc; - memset(&mi, 0xff, sizeof(mi)); - - msg = msgb_from_hex(t->label, 1024, t->compl_l3_msg); - rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); - msgb_free(msg); - - printf("%s: rc = %d", t->label, rc); - if (!rc) { - printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); - } - - if (rc == t->expect_rc - && ((rc != 0) || !osmo_mobile_identity_cmp(&mi, &t->expect_mi))) { - printf(" ok"); - } else { - printf(" ERROR: Expected rc = %d", t->expect_rc); - if (!t->expect_rc) - printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &t->expect_mi)); - } - printf("\n"); - } - printf("\n"); -} - static const struct bcd_number_test { /* Human-readable test name */ const char *test_name; @@ -1552,7 +1182,6 @@ test_mid_from_imsi(); test_mid_encode_decode(); test_mid_decode_zero_length(); - test_struct_mobile_identity(); test_bcd_number_encode_decode(); test_ra_cap(); test_lai_encode_decode(); diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index f8de54a..d343869 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -17,9 +17,9 @@ -> MI-str="423423" rc=7 -> MI-name="IMSI-423423" - unknown 0x9 423423 - -> MI-TLV-hex='' - -> MI-str="" rc=1 - -> MI-name="unknown" + -> MI-TLV-hex='1704413224f3' + -> MI-str="423423" rc=7 + -> MI-name="IMSI-423423" - IMSI 4234235 -> MI-TLV-hex='170449322453' -> MI-str="4234235" rc=8 @@ -65,15 +65,15 @@ -> MI-str="3054" rc=9 -> MI-name="TMSI-0x12345678" - NONE 123 - -> MI-TLV-hex='' + -> MI-TLV-hex='17021832' -> MI-str="" rc=1 -> MI-name="unknown" - NONE 1234 - -> MI-TLV-hex='' + -> MI-TLV-hex='17031032f4' -> MI-str="" rc=1 -> MI-name="unknown" - unknown 0x8 1234 - -> MI-TLV-hex='' + -> MI-TLV-hex='17031032f4' -> MI-str="" rc=1 -> MI-name="unknown" @@ -139,57 +139,6 @@ rc=1 returned empty string -test_struct_mobile_identity() -LU with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok -LU with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok -LU with invalid MI type: rc = -22 ok -LU with truncated IMSI MI: rc = -74 ok -LU with too short IMSI MI (12345): rc = -74 ok -LU with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok -LU with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok -LU with just too long IMSI MI 1234567890123456: rc = -74 ok -LU with truncated TMSI MI: rc = -74 ok -LU with odd length TMSI: rc = -74 ok -LU with too long TMSI MI: rc = -74 ok -LU with too short TMSI: rc = -74 ok -CM Service Request with IMSI 123456: rc = 0, mi = IMSI-123456 ok -CM Service Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok -CM Service Request with shorter CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok -CM Service Request with longer CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok -CM Service Request with shorter CM2, with TMSI 0x00000000: rc = 0, mi = TMSI-0x00000000 ok -CM Service Request with invalid MI type: rc = -22 ok -CM Service Request with truncated IMSI MI: rc = -74 ok -CM Service Request with truncated TMSI MI: rc = -74 ok -CM Service Request with odd length TMSI: rc = -74 ok -CM Service Request with too long TMSI MI: rc = -74 ok -CM Service Request with too short TMSI: rc = -74 ok -CM Service Reestablish Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok -Paging Response with IMSI 1234567: rc = 0, mi = IMSI-1234567 ok -Paging Response with TMSI 0xb48883de: rc = 0, mi = TMSI-0xB48883DE ok -Paging Response with TMSI, with unused nibble not 0xf: rc = -74 ok -Paging Response with too short IMEI (1234567): rc = -74 ok -Paging Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok -Paging Response with IMEI 12345678901234 (no Luhn checksum): rc = 0, mi = IMEI-12345678901234 ok -Paging Response with IMEISV 1234567890123456: rc = 0, mi = IMEI-SV-1234567890123456 ok -Paging Response with too short IMEISV 123456789012345: rc = -74 ok -Paging Response with too long IMEISV 12345678901234567: rc = -74 ok -Paging Response with IMSI 123456789012345 and flipped ODD bit: rc = -74 ok -IMSI-Detach with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok -IMSI-Detach with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok -IMSI-Detach with invalid MI type: rc = -22 ok -IMSI-Detach with truncated IMSI MI: rc = -74 ok -IMSI-Detach with too short IMSI MI (12345): rc = -74 ok -IMSI-Detach with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok -IMSI-Detach with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok -IMSI-Detach with just too long IMSI MI 1234567890123456: rc = -74 ok -IMSI-Detach with truncated TMSI MI: rc = -74 ok -IMSI-Detach with odd length TMSI: rc = -74 ok -IMSI-Detach with too long TMSI MI: rc = -74 ok -IMSI-Detach with too short TMSI: rc = -74 ok -Identity Response with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok -Identity Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok -Identity Response with IMEISV 9876543210987654: rc = 0, mi = IMEI-SV-9876543210987654 ok - BSD number encoding / decoding test - Running test: regular 9-digit MSISDN - Encoding ASCII (buffer limit=0) '123456789'... diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index e15cf5f..e87cb22 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -487,7 +487,6 @@ { int i; uint8_t bcd[64]; - uint8_t bcd2[64]; int rc; printf("\nTesting bcd to string conversion\n"); @@ -512,12 +511,6 @@ printf(" ERROR: expected rc=%d\n", t->expect_rc); if (strcmp(str, t->expect_str)) printf(" ERROR: expected result %s\n", osmo_quote_str(t->expect_str, -1)); - - memset(bcd2, 0xff, sizeof(bcd2)); - rc = osmo_str2bcd(bcd2, sizeof(bcd2), str, t->start_nibble, -1, t->allow_hex); - printf("osmo_str2bcd(start_nibble=%d) -> rc=%d\n", t->start_nibble, rc); - if (rc > 0) - printf(" = %s\n", osmo_hexdump(bcd2, rc)); } printf("- zero output buffer\n"); diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index cbab72a..baa708e 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -181,41 +181,27 @@ - BCD-input='1a 32 54 76 98 f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234567890" -osmo_str2bcd(start_nibble=1) -> rc=6 - = 1f 32 54 76 98 f0 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=-22 -> "1234ABCD90" -osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234ABCD90" -osmo_str2bcd(start_nibble=1) -> rc=6 - = 1f 32 a4 cb 9d f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=-22 -> "1234567890F" -osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=11 -> "1234567890F" -osmo_str2bcd(start_nibble=1) -> rc=6 - = 1f 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[0..12[ str_size=64 rc=12 -> "A1234567890F" -osmo_str2bcd(start_nibble=0) -> rc=6 - = 1a 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=5 rc=11 -> "1234" -osmo_str2bcd(start_nibble=1) -> rc=3 - = 1f 32 f4 - BCD-input='' nibbles=[1..1[ str_size=64 rc=0 -> "" -osmo_str2bcd(start_nibble=1) -> rc=1 - = ff - zero output buffer bcd2str(NULL, ...) -> -12 bcd2str(dst, 0, ...) -> -12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bd958d0cd2ab4b0c4725e6d114f4404d725fcf7 Gerrit-Change-Number: 18853 Gerrit-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 Jun 16 07:22:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 07:22:10 +0000 Subject: Change in libosmocore[master]: Revert "add osmo_mobile_identity API" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18853 ) Change subject: Revert "add osmo_mobile_identity API" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bd958d0cd2ab4b0c4725e6d114f4404d725fcf7 Gerrit-Change-Number: 18853 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 16 Jun 2020 07:22: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 Jun 16 07:33:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 07:33:15 +0000 Subject: Change in libosmocore[master]: Revert "add osmo_mobile_identity API" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18853 ) Change subject: Revert "add osmo_mobile_identity API" ...................................................................... Revert "add osmo_mobile_identity API" This reverts commit d1ceca9d48eb3d8b212f386a1ebb35d8fc612297, as it introduces regressions in both osmo-msc and osmo-nitb which have been causing failing builds for several days now. Change-Id: I4bd958d0cd2ab4b0c4725e6d114f4404d725fcf7 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_bss.c M src/gsm/gsm0808.c M src/gsm/gsm29118.c M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 13 files changed, 150 insertions(+), 1,165 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 8619120..e637786 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -55,7 +55,6 @@ uint8_t osmo_char2bcd(char c); int osmo_bcd2str(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex); -int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex); int osmo_hexparse(const char *str, uint8_t *b, int max_len); diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h index 81f6028..7c68b1d 100644 --- a/include/osmocom/gsm/gsm48.h +++ b/include/osmocom/gsm/gsm48.h @@ -4,12 +4,10 @@ #include -#include #include #include #include -#include #include #include @@ -50,55 +48,16 @@ void gsm48_generate_lai2(struct gsm48_loc_area_id *lai48, const struct osmo_location_area_id *lai); #define GSM48_MID_MAX_SIZE 11 -int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) - OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" - " *l = osmo_mobile_identity_encode_msgb(...)"); -int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) - OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" - " *l = osmo_mobile_identity_encode_msgb(...)"); -uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) - OSMO_DEPRECATED("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" - " *l = osmo_mobile_identity_encode_msgb(...)"); +int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi); +int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi); +uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type); +/* Convert Mobile Identity (10.5.1.4) to string */ +int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len); const char *gsm48_mi_type_name(uint8_t mi); -/* Convert encoded Mobile Identity (10.5.1.4) to string */ -int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_decode()"); -const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_c()"); -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_buf()"); -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) - OSMO_DEPRECATED("Instead use osmo_mobile_identity_to_str_c()"); - -/*! Decoded representation of a Mobile Identity (3GPP TS 24.008 10.5.1.4). - * See osmo_mobile_identity_decode() and osmo_mobile_identity_from_l3(). */ -struct osmo_mobile_identity { - /*! A GSM_MI_TYPE_* constant (like GSM_MI_TYPE_IMSI). */ - uint8_t type; - /*! Decoded Mobile Identity digits or TMSI value. IMSI, IMEI and IMEISV as digits like - * "12345678", and TMSI is represented as raw uint32_t. */ - union { - /*! type == GSM_MI_TYPE_IMSI. */ - char imsi[GSM23003_IMSI_MAX_DIGITS + 1]; - /*! type == GSM_MI_TYPE_IMEI. */ - char imei[GSM23003_IMEI_NUM_DIGITS + 1]; - /*! type == GSM_MI_TYPE_IMEISV. */ - char imeisv[GSM23003_IMEISV_NUM_DIGITS + 1]; - /*! TMSI / P-TMSI / M-TMSI integer value if type == GSM_MI_TYPE_TMSI. */ - uint32_t tmsi; - }; -}; - -int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi); -char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi); -int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b); -int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, - bool allow_hex); -int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex); -int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits); -int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex); -int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex); +const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len); +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len); +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len); /* Parse Routeing Area Identifier */ void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 2784d0a..38794c2 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1170,20 +1170,19 @@ /* IMSI */ if (dup->imsi && strlen(dup->imsi)) { - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, dup->imsi); - msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { - if (log_check_level(DBSSGP, LOGL_NOTICE)) { - char strbuf[64]; - osmo_mobile_identity_to_str_buf(strbuf, sizeof(strbuf), &mi); - LOGP(DBSSGP, LOGL_ERROR, - "NSEI=%u/BVCI=%u Cannot encode Mobile Identity %s\n", - nsei, bvci, strbuf); - } - msgb_free(msg); - return -EINVAL; - } + uint8_t mi[GSM48_MID_MAX_SIZE]; +/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, + * but somehow gcc (8.2) is not smart enough to figure this out and claims that + * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to + * mi[131], which is wrong */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" + int imsi_len = gsm48_generate_mid_from_imsi(mi, dup->imsi); + OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); + if (imsi_len > 2) + msgb_tvlv_push(msg, BSSGP_IE_IMSI, + imsi_len-2, mi+2); +#pragma GCC diagnostic pop } /* DRX parameters */ @@ -1228,8 +1227,12 @@ struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t drx_params = osmo_htons(pinfo->drx_params); + uint8_t mi[GSM48_MID_MAX_SIZE]; + int imsi_len = gsm48_generate_mid_from_imsi(mi, pinfo->imsi); struct gsm48_ra_id ra; - struct osmo_mobile_identity mi; + + if (imsi_len < 2) + return -EINVAL; msgb_nsei(msg) = nsei; msgb_bvci(msg) = ns_bvci; @@ -1238,23 +1241,16 @@ bgph->pdu_type = BSSGP_PDUT_PAGING_PS; else bgph->pdu_type = BSSGP_PDUT_PAGING_CS; - /* IMSI */ - mi = (struct osmo_mobile_identity){ .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); - msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { - if (log_check_level(DBSSGP, LOGL_NOTICE)) { - char strbuf[64]; - osmo_mobile_identity_to_str_buf(strbuf, sizeof(strbuf), &mi); - LOGP(DBSSGP, LOGL_ERROR, - "NSEI=%u/BVCI=%u Cannot encode Mobile Identity %s\n", - nsei, ns_bvci, strbuf); - } - msgb_free(msg); - return -EINVAL; - } - +/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, + * but somehow gcc (8.2) is not smart enough to figure this out and claims that + * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to + * mi[131], which is wrong */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" + OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); + msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); +#pragma GCC diagnostic pop /* DRX Parameters */ msgb_tvlv_put(msg, BSSGP_IE_DRX_PARAMS, 2, (uint8_t *) &drx_params); diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 9e9cefc..5c9d11c 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -178,17 +178,22 @@ const char *imsi) { struct msgb *msg = common_tx_radio_status(bctx); - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); + uint8_t mi[GSM48_MID_MAX_SIZE]; + int imsi_len = gsm48_generate_mid_from_imsi(mi, imsi); if (!msg) return -ENOMEM; - - msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - if (osmo_mobile_identity_encode_msgb(msg, &mi, false) <= 0) { - msgb_free(msg); - return -EINVAL; - } +/* gsm48_generate_mid_from_imsi() is guaranteed to never return more than 11, + * but somehow gcc (8.2) is not smart enough to figure this out and claims that + * the memcpy in msgb_tvlv_put() below will cause and out-of-bounds access up to + * mi[131], which is wrong */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" + OSMO_ASSERT(imsi_len <= GSM48_MID_MAX_SIZE); + /* strip the MI type and length values (2 bytes) */ + if (imsi_len > 2) + msgb_tvlv_put(msg, BSSGP_IE_IMSI, imsi_len-2, mi+2); +#pragma GCC diagnostic pop LOGPC(DBSSGP, LOGL_NOTICE, "IMSI=%s ", imsi); return common_tx_radio_status2(msg, cause); @@ -481,7 +486,6 @@ struct tlv_parsed tp; uint8_t ra[6]; int rc, data_len; - struct osmo_mobile_identity mi; memset(ra, 0, sizeof(ra)); @@ -506,11 +510,9 @@ goto err_mand_ie; if (!pinfo->imsi) pinfo->imsi = talloc_zero_size(pinfo, GSM_IMSI_LENGTH); - if (osmo_mobile_identity_decode(&mi, TLVP_VAL(&tp, BSSGP_IE_IMSI), TLVP_LEN(&tp, BSSGP_IE_IMSI), false)) - goto err_mand_ie; - if (mi.type != GSM_MI_TYPE_IMSI) - goto err_mand_ie; - osmo_talloc_replace_string(pinfo, &pinfo->imsi, mi.imsi); + gsm48_mi_to_string(pinfo->imsi, GSM_IMSI_LENGTH, + TLVP_VAL(&tp, BSSGP_IE_IMSI), + TLVP_LEN(&tp, BSSGP_IE_IMSI)); /* DRX Parameters */ if (!TLVP_PRESENT(&tp, BSSGP_IE_DRX_PARAMS)) diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 6560d4b..9fdf379 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -730,10 +730,9 @@ const uint8_t *chan_needed) { struct msgb *msg; - struct osmo_mobile_identity mi; + uint8_t mid_buf[GSM48_MI_SIZE + 2]; + int mid_len; uint32_t tmsi_sw; - uint8_t *l; - int rc; /* Mandatory elements! */ OSMO_ASSERT(imsi); @@ -751,15 +750,8 @@ msgb_v_put(msg, BSS_MAP_MSG_PAGING); /* mandatory IMSI 3.2.2.6 */ - mi = (struct osmo_mobile_identity){ .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); - l = msgb_tl_put(msg, GSM0808_IE_IMSI); - rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - if (rc <= 0) { - msgb_free(msg); - return NULL; - } - *l = rc; + mid_len = gsm48_generate_mid_from_imsi(mid_buf, imsi); + msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); /* TMSI 3.2.2.7 */ if (tmsi) { @@ -975,17 +967,9 @@ /* IMSI 3.2.2.6 */ if (params->imsi) { - uint8_t *l; - int rc; - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - OSMO_STRLCPY_ARRAY(mi.imsi, params->imsi); - l = msgb_tl_put(msg, GSM0808_IE_IMSI); - rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - if (rc <= 0) { - msgb_free(msg); - return NULL; - } - *l = rc; + uint8_t mid_buf[GSM48_MI_SIZE + 2]; + int mid_len = gsm48_generate_mid_from_imsi(mid_buf, params->imsi); + msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); } if (params->aoip_transport_layer) diff --git a/src/gsm/gsm29118.c b/src/gsm/gsm29118.c index 5c72b4d..2c02b2f 100644 --- a/src/gsm/gsm29118.c +++ b/src/gsm/gsm29118.c @@ -219,14 +219,12 @@ /* Encode IMSI from string representation and append to SGSaAP msg */ static void msgb_sgsap_imsi_put(struct msgb *msg, const char *imsi) { - int rc; - struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - uint8_t *l; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); - l = msgb_tl_put(msg, SGSAP_IE_IMSI); - rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - /* This function fails to do error handling, so in case of error, leave the len == 0. */ - *l = rc > 0? rc : 0; + uint8_t buf[16]; + uint8_t len; + /* encoding is just like TS 04.08 */ + len = gsm48_generate_mid_from_imsi(buf, imsi); + /* skip first two bytes (tag+length) so we can use msgb_tlv_put */ + msgb_tlv_put(msg, SGSAP_IE_IMSI, len - 2, buf + 2); } /* Encode LAI from struct representation and append to SGSaAP msg */ diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 11bd361..8d0998b 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -45,7 +45,6 @@ #include #include #include -#include /*! \addtogroup gsm0408 * @{ @@ -459,500 +458,70 @@ return get_value_string(mi_type_names, mi); } -/*! Deprecated, see osmo_mobile_identity instead. - * Return a human readable representation of a Mobile Identity in caller-provided buffer. +/*! Return a human readable representation of a Mobile Identity in caller-provided buffer. * \param[out] buf caller-provided output buffer * \param[in] buf_len size of buf in bytes * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return buf */ -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi_data, uint8_t mi_len) +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) { - struct osmo_mobile_identity mi; - if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true)) { + uint8_t mi_type; + uint32_t tmsi; + char mi_string[GSM48_MI_SIZE]; + + mi_type = (mi && mi_len) ? (mi[0] & GSM_MI_TYPE_MASK) : GSM_MI_TYPE_NONE; + + switch (mi_type) { + case GSM_MI_TYPE_TMSI: + /* Table 10.5.4.3, reverse generate_mid_from_tmsi */ + if (mi_len == GSM48_TMSI_LEN && mi[0] == (0xf0 | GSM_MI_TYPE_TMSI)) { + tmsi = osmo_load32be(&mi[1]); + snprintf(buf, buf_len, "TMSI-0x%08" PRIX32, tmsi); + } else { + snprintf(buf, buf_len, "TMSI-invalid"); + } + return buf; + + case GSM_MI_TYPE_IMSI: + case GSM_MI_TYPE_IMEI: + case GSM_MI_TYPE_IMEISV: + osmo_bcd2str(mi_string, sizeof(mi_string), mi, 1, (mi_len * 2) - (mi[0] & GSM_MI_ODD ? 0 : 1), true); + snprintf(buf, buf_len, "%s-%s", gsm48_mi_type_name(mi_type), mi_string); + return buf; + + default: snprintf(buf, buf_len, "unknown"); return buf; } - osmo_mobile_identity_to_str_buf(buf, buf_len, &mi); - return buf; } -/*! Deprecated, see osmo_mobile_identity instead. - * Return a human readable representation of a Mobile Identity in static buffer. +/*! Return a human readable representation of a Mobile Identity in static buffer. * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid"... */ -const char *osmo_mi_name(const uint8_t *mi_data, uint8_t mi_len) +const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) { static __thread char mi_name[10 + GSM48_MI_SIZE + 1]; - struct osmo_mobile_identity mi; - if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true) == 0) - osmo_mobile_identity_to_str_buf(mi_name, sizeof(mi_name), &mi); - else - snprintf(mi_name, sizeof(mi_name), "unknown"); - return mi_name; + return osmo_mi_name_buf(mi_name, sizeof(mi_name), mi, mi_len); } -/*! Deprecated, see osmo_mobile_identity instead. - * Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. +/*! Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. * \param[in] ctx talloc context from which to allocate output buffer * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid" in a * dynamically-allocated output buffer. */ -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi_data, uint8_t mi_len) +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) { - struct osmo_mobile_identity mi; - if (osmo_mobile_identity_decode(&mi, mi_data, mi_len, true)) - return talloc_strdup((void*)ctx, "unknown"); - return osmo_mobile_identity_to_str_c((void*)ctx, &mi); -} - -/*! Extract Mobile Identity from encoded bytes (3GPP TS 24.008 10.5.1.4). - * - * On failure (negative return value), mi->type == GSM_MI_TYPE_NONE, mi->string[] is all-zero and mi->tmsi == - * GSM_RESERVED_TMSI. - * - * On success, mi->type reflects the decoded Mobile Identity type (GSM_MI_TYPE_IMSI, GSM_MI_TYPE_TMSI, GSM_MI_TYPE_IMEI - * or GSM_MI_TYPE_IMEISV). - * - * On success, mi->string always contains a human readable representation of the Mobile Identity digits: IMSI, IMEI and - * IMEISV as digits like "12345678", and TMSI as "0x" and 8 hexadecimal digits like "0x1234abcd". - * - * mi->tmsi contains the uint32_t TMSI value iff the extracted Mobile Identity was a TMSI, or GSM_RESERVED_TMSI - * otherwise. - * - * \param[out] mi Return buffer for decoded Mobile Identity. - * \param[in] mi_data The encoded Mobile Identity octets. - * \param[in] mi_len Number of octets in mi_data. - * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. - * \returns 0 on success, negative on error: -EBADMSG = invalid length indication or invalid data, - * -EINVAL = unknown Mobile Identity type. - */ -int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, - bool allow_hex) -{ - int rc; - int nibbles_len; - char *str; - size_t str_size; - - if (!mi_data || mi_len < 1) - return -EBADMSG; - - nibbles_len = (mi_len - 1) * 2 + ((mi_data[0] & GSM_MI_ODD) ? 1 : 0); - - *mi = (struct osmo_mobile_identity){ - .type = mi_data[0] & GSM_MI_TYPE_MASK, - }; - - /* First do length checks */ - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - mi->tmsi = GSM_RESERVED_TMSI; - if (nibbles_len != (GSM23003_TMSI_NUM_BYTES * 2)) { - rc = -EBADMSG; - goto return_error; - } - break; - - case GSM_MI_TYPE_IMSI: - if (nibbles_len < GSM23003_IMSI_MIN_DIGITS || nibbles_len > GSM23003_IMSI_MAX_DIGITS) { - rc = -EBADMSG; - goto return_error; - } - str = mi->imsi; - str_size = sizeof(mi->imsi); - break; - - case GSM_MI_TYPE_IMEI: - if (nibbles_len != GSM23003_IMEI_NUM_DIGITS && nibbles_len != GSM23003_IMEI_NUM_DIGITS_NO_CHK) { - rc = -EBADMSG; - goto return_error; - } - str = mi->imei; - str_size = sizeof(mi->imei); - break; - - case GSM_MI_TYPE_IMEISV: - if (nibbles_len != GSM23003_IMEISV_NUM_DIGITS) { - rc = -EBADMSG; - goto return_error; - } - str = mi->imeisv; - str_size = sizeof(mi->imeisv); - break; - - default: - rc = -EINVAL; - goto return_error; - } - - /* Decode BCD digits */ - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - /* MI is a 32bit integer TMSI. Length has been checked above. */ - if ((mi_data[0] & 0xf0) != 0xf0) { - /* A TMSI always has the first nibble == 0xf */ - rc = -EBADMSG; - goto return_error; - } - mi->tmsi = osmo_load32be(&mi_data[1]); - return 0; - - case GSM_MI_TYPE_IMSI: - case GSM_MI_TYPE_IMEI: - case GSM_MI_TYPE_IMEISV: - /* If the length is even, the last nibble (higher nibble of last octet) must be 0xf */ - if (!(mi_data[0] & GSM_MI_ODD) - && ((mi_data[mi_len - 1] & 0xf0) != 0xf0)) { - rc = -EBADMSG; - goto return_error; - } - rc = osmo_bcd2str(str, str_size, mi_data, 1, 1 + nibbles_len, allow_hex); - /* rc checked below */ - break; - - default: - /* Already handled above, but as future bug paranoia: */ - rc = -EINVAL; - goto return_error; - } - - /* check mi->str printing rc */ - if (rc < 1 || rc >= str_size) { - rc = -EBADMSG; - goto return_error; - } - return 0; - -return_error: - *mi = (struct osmo_mobile_identity){ - .type = GSM_MI_TYPE_NONE, - }; - return rc; -} - -/*! Return the number of encoded Mobile Identity octets, without actually encoding. - * Useful to write tag-length header before encoding the MI. - * \param[in] mi Mobile Identity. - * \param[out] mi_digits If not NULL, store the number of nibbles of used MI data (i.e. strlen(mi->string) or 8 for a TMSI). - * \return octets that osmo_mobile_identity_encode_msgb() will write for this mi. - */ -int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits) -{ - int mi_nibbles; - if (!mi) - return -EINVAL; - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - mi_nibbles = GSM23003_TMSI_NUM_BYTES * 2; - break; - case GSM_MI_TYPE_IMSI: - mi_nibbles = strlen(mi->imsi); - if (mi_nibbles < GSM23003_IMSI_MIN_DIGITS - || mi_nibbles > GSM23003_IMSI_MAX_DIGITS) - return -EINVAL; - break; - case GSM_MI_TYPE_IMEI: - mi_nibbles = strlen(mi->imei); - if (mi_nibbles < GSM23003_IMEI_NUM_DIGITS_NO_CHK - || mi_nibbles > GSM23003_IMEI_NUM_DIGITS) - return -EINVAL; - break; - case GSM_MI_TYPE_IMEISV: - mi_nibbles = strlen(mi->imeisv); - if (mi_nibbles != GSM23003_IMEISV_NUM_DIGITS) - return -EINVAL; - break; - default: - return -ENOTSUP; - } - - if (mi_digits) - *mi_digits = mi_nibbles; - - /* one type nibble, plus the MI nibbles, plus a filler nibble to complete the last octet: - * mi_octets = ceil((float)(mi_nibbles + 1) / 2) - */ - return (mi_nibbles + 2) / 2; -} - -/*! Encode Mobile Identity from uint32_t (TMSI) or digits string (all others) (3GPP TS 24.008 10.5.1.4). - * - * \param[out] buf Return buffer for encoded Mobile Identity. - * \param[in] buflen sizeof(buf). - * \param[in] mi Mobile identity to encode. - * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. - * \returns Amount of bytes written to buf, or negative on error. - */ -int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex) -{ - int rc; - int nibbles_len; - int mi_octets; - const char *mi_str; - - if (!buf || !buflen) - return -EIO; - - mi_octets = osmo_mobile_identity_encoded_len(mi, &nibbles_len); - if (mi_octets < 0) - return mi_octets; - if (mi_octets > buflen) - return -ENOSPC; - - buf[0] = (mi->type & GSM_MI_TYPE_MASK) | ((nibbles_len & 1) ? GSM_MI_ODD : 0); - - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - buf[0] |= 0xf0; - osmo_store32be(mi->tmsi, &buf[1]); - return mi_octets; - - case GSM_MI_TYPE_IMSI: - mi_str = mi->imsi; - break; - case GSM_MI_TYPE_IMEI: - mi_str = mi->imei; - break; - case GSM_MI_TYPE_IMEISV: - mi_str = mi->imeisv; - break; - default: - return -ENOTSUP; - } - rc = osmo_str2bcd(buf, buflen, mi_str, 1, -1, allow_hex); - if (rc != mi_octets) - return -EINVAL; - return mi_octets; -} - -/*! Encode Mobile Identity type and BCD digits, appended to a msgb. - * Example to add a GSM48_IE_MOBILE_ID IEI with tag and length to a msgb: - * - * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, .tmsi = random_tmsi, }; - * uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); - * int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); - * if (rc < 0) - * goto error; - * *l = rc; - * - * Example to add a BSSGP_IE_IMSI with tag and variable-size length, where the - * length needs to be known at the time of writing the IE tag-length header: - * - * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; - * OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); - * msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); - * if (osmo_mobile_identity_encode_msgb(msg, &mi, false) < 0) - * goto error; - */ -int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex) -{ - int rc = osmo_mobile_identity_encode_buf(msg->tail, msgb_tailroom(msg), mi, allow_hex); - if (rc < 0) - return rc; - msgb_put(msg, rc); - return rc; -} - -/*! Extract Mobile Identity from a Complete Layer 3 message. - * - * Determine the Mobile Identity data and call osmo_mobile_identity_decode() to return a decoded struct - * osmo_mobile_identity. - * - * \param[out] mi Return buffer for decoded Mobile Identity. - * \param[in] msg The Complete Layer 3 message to extract from (LU, CM Service Req or Paging Resp). - * \returns 0 on success, negative on error: return codes as defined in osmo_mobile_identity_decode(), or - * -ENOTSUP = not a Complete Layer 3 message, - */ -int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex) -{ - const struct gsm48_hdr *gh; - int8_t pdisc = 0; - uint8_t mtype = 0; - const struct gsm48_loc_upd_req *lu; - const uint8_t *cm2_buf; - uint8_t cm2_len; - const uint8_t *mi_start; - const struct gsm48_pag_resp *paging_response; - const uint8_t *mi_data; - uint8_t mi_len; - const struct gsm48_imsi_detach_ind *idi; - - *mi = (struct osmo_mobile_identity){ - .type = GSM_MI_TYPE_NONE, - .tmsi = GSM_RESERVED_TMSI, - }; - - if (msgb_l3len(msg) < sizeof(*gh)) - return -EBADMSG; - - gh = msgb_l3(msg); - pdisc = gsm48_hdr_pdisc(gh); - mtype = gsm48_hdr_msg_type(gh); - - switch (pdisc) { - case GSM48_PDISC_MM: - - switch (mtype) { - case GSM48_MT_MM_LOC_UPD_REQUEST: - /* First make sure that lu-> can be dereferenced */ - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) - return -EBADMSG; - - /* Now we know there is enough msgb data to read a lu->mi_len, so also check that */ - lu = (struct gsm48_loc_upd_req*)gh->data; - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu) + lu->mi_len) - return -EBADMSG; - mi_data = lu->mi; - mi_len = lu->mi_len; - goto got_mi; - - case GSM48_MT_MM_CM_SERV_REQ: - case GSM48_MT_MM_CM_REEST_REQ: - /* Unfortunately in Phase1 the Classmark2 length is variable, so we cannot - * just use gsm48_service_request struct, and need to parse it manually. */ - if (msgb_l3len(msg) < sizeof(*gh) + 2) - return -EBADMSG; - - cm2_len = gh->data[1]; - cm2_buf = gh->data + 2; - goto got_cm2; - - case GSM48_MT_MM_IMSI_DETACH_IND: - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*idi)) - return -EBADMSG; - idi = (struct gsm48_imsi_detach_ind*) gh->data; - mi_data = idi->mi; - mi_len = idi->mi_len; - goto got_mi; - - case GSM48_MT_MM_ID_RESP: - if (msgb_l3len(msg) < sizeof(*gh) + 2) - return -EBADMSG; - mi_data = gh->data+1; - mi_len = gh->data[0]; - goto got_mi; - - default: - break; - } - break; - - case GSM48_PDISC_RR: - - switch (mtype) { - case GSM48_MT_RR_PAG_RESP: - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*paging_response)) - return -EBADMSG; - paging_response = (struct gsm48_pag_resp*)gh->data; - cm2_len = paging_response->cm2_len; - cm2_buf = (uint8_t*)&paging_response->cm2; - goto got_cm2; - - default: - break; - } - break; - } - - return -ENOTSUP; - -got_cm2: - /* MI (Mobile Identity) LV follows the Classmark2 */ - - /* There must be at least a mi_len byte after the CM2 */ - if (cm2_buf + cm2_len + 1 > msg->tail) - return -EBADMSG; - - mi_start = cm2_buf + cm2_len; - mi_len = mi_start[0]; - mi_data = mi_start + 1; - -got_mi: - /* mi_data points at the start of the Mobile Identity coding of mi_len bytes */ - if (mi_data + mi_len > msg->tail) - return -EBADMSG; - - return osmo_mobile_identity_decode(mi, mi_data, mi_len, allow_hex); -} - -/*! Return a human readable representation of a struct osmo_mobile_identity. - * Write a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". - * \param[out] buf String buffer to write to. - * \param[in] buflen sizeof(buf). - * \param[in] mi Decoded Mobile Identity data. - * \return the strlen() of the string written when buflen is sufficiently large, like snprintf(). - */ -int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi) -{ - struct osmo_strbuf sb = { .buf = buf, .len = buflen }; - if (!mi) - return snprintf(buf, buflen, "NULL"); - OSMO_STRBUF_PRINTF(sb, "%s", gsm48_mi_type_name(mi->type)); - switch (mi->type) { - case GSM_MI_TYPE_TMSI: - OSMO_STRBUF_PRINTF(sb, "-0x%08" PRIX32, mi->tmsi); - break; - case GSM_MI_TYPE_IMSI: - OSMO_STRBUF_PRINTF(sb, "-%s", mi->imsi); - break; - case GSM_MI_TYPE_IMEI: - OSMO_STRBUF_PRINTF(sb, "-%s", mi->imei); - break; - case GSM_MI_TYPE_IMEISV: - OSMO_STRBUF_PRINTF(sb, "-%s", mi->imeisv); - break; - default: - break; - } - return sb.chars_needed; -} - -/*! Like osmo_mobile_identity_to_str_buf(), but return the string in a talloc buffer. - * \param[in] ctx Talloc context to allocate from. - * \param[in] mi Decoded Mobile Identity data. - * \return a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". - */ -char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi) -{ - OSMO_NAME_C_IMPL(ctx, 32, "ERROR", osmo_mobile_identity_to_str_buf, mi) -} - -/*! Compare two osmo_mobile_identity structs, returning typical cmp() result. - * \param[in] a Left side osmo_mobile_identity. - * \param[in] b Right side osmo_mobile_identity. - * \returns 0 if both are equal, -1 if a < b, 1 if a > b. - */ -int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b) -{ - int cmp; - if (a == b) - return 0; - if (!a) - return -1; - if (!b) - return 1; - cmp = OSMO_CMP(a->type, b->type); - if (cmp) - return cmp; - switch (a->type) { - case GSM_MI_TYPE_TMSI: - return OSMO_CMP(a->tmsi, b->tmsi); - case GSM_MI_TYPE_IMSI: - return strncmp(a->imsi, b->imsi, sizeof(a->imsi)); - case GSM_MI_TYPE_IMEI: - return strncmp(a->imei, b->imei, sizeof(a->imei)); - case GSM_MI_TYPE_IMEISV: - return strncmp(a->imeisv, b->imeisv, sizeof(a->imeisv)); - default: - /* No known type, but both have the same type. */ - return 0; - } + size_t buf_len = 10 + GSM48_MI_SIZE + 1; + char *mi_name = talloc_size(ctx, buf_len); + if (!mi_name) + return NULL; + return osmo_mi_name_buf(mi_name, buf_len, mi, mi_len); } /*! Checks is particular message is cipherable in A/Gb mode according to @@ -1107,76 +676,64 @@ } } -static int legacy_compat_generate_mid(uint8_t *buf, const struct osmo_mobile_identity *mi) -{ - int rc; - buf[0] = GSM48_IE_MOBILE_ID; - rc = osmo_mobile_identity_encode_buf(buf + 2, GSM48_MID_MAX_SIZE - 2, mi, false); - if (rc <= 0) - return 0; - OSMO_ASSERT(rc <= 9); - buf[1] = rc; - return 2 + rc; -} - -/*! Deprecated, see osmo_mobile_identity instead. - * Generate TS 04.08 Mobile ID from TMSI +/*! Generate TS 04.08 Mobile ID from TMSI * \param[out] buf Caller-provided output buffer (7 bytes) * \param[in] tmsi TMSI to be encoded * \returns number of byes encoded (always 7) */ int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) { - struct osmo_mobile_identity mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = tmsi, - }; - return legacy_compat_generate_mid(buf, &mi); + uint32_t tmsi_be = osmo_htonl(tmsi); + + buf[0] = GSM48_IE_MOBILE_ID; + buf[1] = GSM48_TMSI_LEN; + buf[2] = 0xf0 | GSM_MI_TYPE_TMSI; + memcpy(&buf[3], &tmsi_be, sizeof(tmsi_be)); + + return 7; } -/*! Deprecated, see osmo_mobile_identity instead. - * Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string +/*! Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string * \param[out] buf Caller-provided output buffer of at least GSM48_MID_MAX_SIZE bytes * \param[in] id Identity to be encoded * \param[in] mi_type Type of identity (e.g. GSM_MI_TYPE_IMSI, IMEI, IMEISV) * \returns number of bytes used in \a buf */ uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) { - struct osmo_mobile_identity mi = { .type = mi_type }; - switch (mi_type) { - case GSM_MI_TYPE_TMSI: - mi.tmsi = strtoul(id, NULL, 10); - break; - case GSM_MI_TYPE_IMSI: - OSMO_STRLCPY_ARRAY(mi.imsi, id); - break; - case GSM_MI_TYPE_IMEI: - OSMO_STRLCPY_ARRAY(mi.imei, id); - break; - case GSM_MI_TYPE_IMEISV: - OSMO_STRLCPY_ARRAY(mi.imeisv, id); - break; - default: - return 0; + uint8_t length = strnlen(id, 16), i, off = 0, odd = (length & 1) == 1; + /* maximum length == 16 (IMEISV) */ + + buf[0] = GSM48_IE_MOBILE_ID; + buf[2] = osmo_char2bcd(id[0]) << 4 | (mi_type & GSM_MI_TYPE_MASK) | (odd << 3); + + /* if the length is even we will fill half of the last octet */ + buf[1] = (length + (odd ? 1 : 2)) >> 1; + /* buf[1] maximum = 18/2 = 9 */ + OSMO_ASSERT(buf[1] <= 9); + + for (i = 1; i < buf[1]; ++i) { + uint8_t upper, lower = osmo_char2bcd(id[++off]); + if (!odd && off + 1 == length) + upper = 0x0f; + else + upper = osmo_char2bcd(id[++off]) & 0x0f; + + buf[2 + i] = (upper << 4) | lower; } - return legacy_compat_generate_mid(buf, &mi); + + /* maximum return value: 2 + 9 = 11 */ + return 2 + buf[1]; } -/*! Deprecated, see osmo_mobile_identity instead. - * Generate TS 04.08 Mobile ID from IMSI +/*! Generate TS 04.08 Mobile ID from IMSI * \param[out] buf Caller-provided output buffer * \param[in] imsi IMSI to be encoded * \returns number of bytes used in \a buf */ int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) { - struct osmo_mobile_identity mi = { - .type = GSM_MI_TYPE_IMSI, - }; - OSMO_STRLCPY_ARRAY(mi.imsi, imsi); - return legacy_compat_generate_mid(buf, &mi); + return gsm48_generate_mid(buf, imsi, GSM_MI_TYPE_IMSI); } -/*! Deprecated, see osmo_mobile_identity instead. - * Convert TS 04.08 Mobile Identity (10.5.1.4) to string. +/*! Convert TS 04.08 Mobile Identity (10.5.1.4) to string. * This function does not validate the Mobile Identity digits, i.e. digits > 9 are returned as 'A'-'F'. * \param[out] string Caller-provided buffer for output * \param[in] str_len Length of \a string in bytes diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 742cec3..ac9aeb2 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -363,14 +363,6 @@ gsm48_generate_mid_from_imsi; gsm48_generate_mid_from_tmsi; gsm48_mi_to_string; -osmo_mobile_identity_to_str_buf; -osmo_mobile_identity_to_str_c; -osmo_mobile_identity_cmp; -osmo_mobile_identity_decode; -osmo_mobile_identity_decode_from_l3; -osmo_mobile_identity_encoded_len; -osmo_mobile_identity_encode_buf; -osmo_mobile_identity_encode_msgb; gsm48_mm_att_tlvdef; gsm48_number_of_paging_subchannels; gsm48_parse_ra; diff --git a/src/utils.c b/src/utils.c index 3c4a8c9..18e105f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -175,65 +175,6 @@ return OSMO_MAX(0, end_nibble - start_nibble); } -/*! Convert string to BCD. - * The given nibble offsets are interpreted in BCD order, i.e. nibble 0 is bcd[0] & 0x0f, nibble 1 is bcd[0] & 0xf0, nibble - * 3 is bcd[1] & 0x0f, etc.. - * \param[out] dst Output BCD buffer. - * \param[in] dst_size sizeof() the output string buffer. - * \param[in] digits String containing decimal or hexadecimal digits in upper or lower case. - * \param[in] start_nibble Offset to start from, in nibbles, typically 1 to skip the first (MI type) nibble. - * \param[in] end_nibble Negative to write all digits found in str, followed by 0xf nibbles to fill any started octet. - * If >= 0, stop before this offset in nibbles, e.g. to get default behavior, pass - * start_nibble + strlen(str) + ((start_nibble + strlen(str)) & 1? 1 : 0) + 1. - * \param[in] allow_hex If false, return error if there are hexadecimal digits (A-F). If true, write those to - * BCD. - * \returns The buffer size in octets that is used to place all bcd digits (including the skipped nibbles - * from 'start_nibble' and rounded up to full octets); -EINVAL on invalid digits; - * -ENOMEM if dst is NULL, if dst_size is too small to contain all nibbles, or if start_nibble is negative. - */ -int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex) -{ - const char *digit = digits; - int nibble_i; - - if (!dst || !dst_size || start_nibble < 0) - return -ENOMEM; - - if (end_nibble < 0) { - end_nibble = start_nibble + strlen(digits); - /* If the last octet is not complete, add another filler nibble */ - if (end_nibble & 1) - end_nibble++; - } - if ((end_nibble / 2) > dst_size) - return -ENOMEM; - - for (nibble_i = start_nibble; nibble_i < end_nibble; nibble_i++) { - uint8_t nibble = 0xf; - int octet = nibble_i >> 1; - if (*digit) { - char c = *digit; - digit++; - if (c >= '0' && c <= '9') - nibble = c - '0'; - else if (allow_hex && c >= 'A' && c <= 'F') - nibble = 0xa + (c - 'A'); - else if (allow_hex && c >= 'a' && c <= 'f') - nibble = 0xa + (c - 'a'); - else - return -EINVAL; - } - nibble &= 0xf; - if ((nibble_i & 1)) - dst[octet] = (nibble << 4) | (dst[octet] & 0x0f); - else - dst[octet] = (dst[octet] & 0xf0) | nibble; - } - - /* floor(float(end_nibble) / 2) */ - return end_nibble / 2; -} - /*! Parse a string containing hexadecimal digits * \param[in] str string containing ASCII encoded hexadecimal digits * \param[out] b output buffer diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index a86fe11..9617823 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -18,8 +18,6 @@ * */ -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - #include #include #include @@ -388,9 +386,8 @@ { .mi_type = GSM_MI_TYPE_IMSI | GSM_MI_ODD, .mi_str = "423423", - .expect_str = "", - .expect_rc = 1, - .mi_name = "unknown", + .mi_name = "IMSI-423423", + .expect_mi_tlv_hex = "1704413224f3", }, { .mi_type = GSM_MI_TYPE_IMSI, @@ -474,21 +471,21 @@ .mi_type = GSM_MI_TYPE_NONE, .mi_str = "123", .mi_name = "unknown", - .expect_mi_tlv_hex = "", + .expect_mi_tlv_hex = "17021832", /* encoding invalid MI type */ .expect_str = "", }, { .mi_type = GSM_MI_TYPE_NONE, .mi_str = "1234", .mi_name = "unknown", - .expect_mi_tlv_hex = "", + .expect_mi_tlv_hex = "17031032f4", /* encoding invalid MI type */ .expect_str = "", }, { .mi_type = GSM_MI_ODD, .mi_str = "1234", .mi_name = "unknown", - .expect_mi_tlv_hex = "", + .expect_mi_tlv_hex = "17031032f4", /* encoding invalid MI type */ .expect_str = "", }, }; @@ -525,14 +522,9 @@ printf(" ERROR: expected '%s'\n", t->expect_mi_tlv_hex); } - if (tlv_len) { - /* skip the GSM48_IE_MOBILE_ID tag and length */ - mi_buf = tlv_buf + 2; - mi_len = tlv_len - 2; - } else { - mi_buf = NULL; - mi_len = 0; - } + /* skip the GSM48_IE_MOBILE_ID tag and length */ + mi_buf = tlv_buf + 2; + mi_len = tlv_len - 2; rc = gsm48_mi_to_string(str, str_size, mi_buf, mi_len); printf(" -> MI-str=%s rc=%d\n", osmo_quote_str(str, -1), rc); @@ -619,368 +611,6 @@ printf("\n"); } -struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) -{ - struct msgb *msg = msgb_alloc_headroom(size, 4, label); - OSMO_ASSERT(msg); - msg->l3h = msgb_put(msg, osmo_hexparse(hex, msg->data, msgb_tailroom(msg))); - return msg; -} - -struct mobile_identity_tc { - const char *label; - const char *compl_l3_msg; - int expect_rc; - struct osmo_mobile_identity expect_mi; -}; - -/* Some Complete Layer 3 messages copied from real GSM network traces. */ -struct mobile_identity_tc mobile_identity_tests[] = { - { - .label = "LU with IMSI 901700000004620", - .compl_l3_msg = "050802008168000130" "089910070000006402", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "901700000004620", - }, - }, - { - .label = "LU with TMSI 0x0980ad8a", - .compl_l3_msg = "05084262f224002a50" "05f40980ad8a", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x0980ad8a, - }, - }, - { - .label = "LU with invalid MI type", - .compl_l3_msg = "050802008168000130" "089d10070000006402", - .expect_rc = -EINVAL, - }, - { - .label = "LU with truncated IMSI MI", - .compl_l3_msg = "050802008168000130" "0899100700000064", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with too short IMSI MI (12345)", - .compl_l3_msg = "050802008168000130" "03193254", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with just long enough IMSI MI 123456", - .compl_l3_msg = "050802008168000130" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "LU with max length IMSI MI 123456789012345", - .compl_l3_msg = "050802008168000130" "081932547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456789012345", - }, - }, - { - .label = "LU with just too long IMSI MI 1234567890123456", - .compl_l3_msg = "050802008168000130" "091132547698103254f6", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with truncated TMSI MI", - .compl_l3_msg = "05084262f224002a50" "05f40980ad", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with odd length TMSI", - .compl_l3_msg = "05084262f224002a50" "05fc0980ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with too long TMSI MI", - .compl_l3_msg = "05084262f224002a50" "06f40980ad23", - .expect_rc = -EBADMSG, - }, - { - .label = "LU with too short TMSI", - .compl_l3_msg = "05084262f224002a50" "04f480ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with IMSI 123456", - .compl_l3_msg = "052401035058a6" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "CM Service Request with TMSI 0x5a42e404", - .compl_l3_msg = "052401035058a6" "05f45a42e404", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x5a42e404, - }, - }, - { - .label = "CM Service Request with shorter CM2, with IMSI 123456", - .compl_l3_msg = "052401025058" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "CM Service Request with longer CM2, with IMSI 123456", - .compl_l3_msg = "052401055058a62342" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "CM Service Request with shorter CM2, with TMSI 0x00000000", - .compl_l3_msg = "052401025058" "05f400000000", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0, - }, - }, - { - .label = "CM Service Request with invalid MI type", - .compl_l3_msg = "052401035058a6" "089d10070000006402", - .expect_rc = -EINVAL, - }, - { - .label = "CM Service Request with truncated IMSI MI", - .compl_l3_msg = "052401035058a6" "0899100700000064", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with truncated TMSI MI", - .compl_l3_msg = "0524010150" "05f40980ad", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with odd length TMSI", - .compl_l3_msg = "052401045058a623" "05fc0980ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with too long TMSI MI", - .compl_l3_msg = "052401035058a6" "06f40980ad23", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Request with too short TMSI", - .compl_l3_msg = "052401035058a6" "04f480ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "CM Service Reestablish Request with TMSI 0x5a42e404", - .compl_l3_msg = "052801035058a6" "05f45a42e404", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x5a42e404, - }, - }, - { - .label = "Paging Response with IMSI 1234567", - .compl_l3_msg = "06270003505886" "0419325476", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "1234567", - }, - }, - { - .label = "Paging Response with TMSI 0xb48883de", - .compl_l3_msg = "06270003505886" "05f4b48883de", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0xb48883de, - }, - }, - { - .label = "Paging Response with TMSI, with unused nibble not 0xf", - .compl_l3_msg = "06270003505886" "0504b48883de", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with too short IMEI (1234567)", - .compl_l3_msg = "06270003505886" "041a325476", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with IMEI 123456789012345", - .compl_l3_msg = "06270003505886" "081a32547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMEI, - .imei = "123456789012345", - }, - }, - { - .label = "Paging Response with IMEI 12345678901234 (no Luhn checksum)", - .compl_l3_msg = "06270003505886" "0812325476981032f4", - .expect_mi = { - .type = GSM_MI_TYPE_IMEI, - .imei = "12345678901234", - }, - }, - { - .label = "Paging Response with IMEISV 1234567890123456", - .compl_l3_msg = "06270003505886" "091332547698103254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMEISV, - .imeisv = "1234567890123456", - }, - }, - { - .label = "Paging Response with too short IMEISV 123456789012345", - .compl_l3_msg = "06270003505886" "081b32547698103254", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with too long IMEISV 12345678901234567", - .compl_l3_msg = "06270003505886" "091b3254769810325476", - .expect_rc = -EBADMSG, - }, - { - .label = "Paging Response with IMSI 123456789012345 and flipped ODD bit", - .compl_l3_msg = "06270003505886" "081132547698103254", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with IMSI 901700000004620", - .compl_l3_msg = "050130" "089910070000006402", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "901700000004620", - }, - }, - { - .label = "IMSI-Detach with TMSI 0x0980ad8a", - .compl_l3_msg = "050130" "05f40980ad8a", - .expect_mi = { - .type = GSM_MI_TYPE_TMSI, - .tmsi = 0x0980ad8a, - }, - }, - { - .label = "IMSI-Detach with invalid MI type", - .compl_l3_msg = "050130" "089d10070000006402", - .expect_rc = -EINVAL, - }, - { - .label = "IMSI-Detach with truncated IMSI MI", - .compl_l3_msg = "050130" "0899100700000064", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with too short IMSI MI (12345)", - .compl_l3_msg = "050130" "03193254", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with just long enough IMSI MI 123456", - .compl_l3_msg = "050130" "04113254f6", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456", - }, - }, - { - .label = "IMSI-Detach with max length IMSI MI 123456789012345", - .compl_l3_msg = "050130" "081932547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "123456789012345", - }, - }, - { - .label = "IMSI-Detach with just too long IMSI MI 1234567890123456", - .compl_l3_msg = "050130" "091132547698103254f6", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with truncated TMSI MI", - .compl_l3_msg = "050130" "05f40980ad", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with odd length TMSI", - .compl_l3_msg = "050130" "05fc0980ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with too long TMSI MI", - .compl_l3_msg = "050130" "06f40980ad23", - .expect_rc = -EBADMSG, - }, - { - .label = "IMSI-Detach with too short TMSI", - .compl_l3_msg = "050130" "04f480ad8a", - .expect_rc = -EBADMSG, - }, - { - .label = "Identity Response with IMSI 901700000004620", - .compl_l3_msg = "0519" "089910070000006402", - .expect_mi = { - .type = GSM_MI_TYPE_IMSI, - .imsi = "901700000004620", - }, - }, - { - .label = "Identity Response with IMEI 123456789012345", - .compl_l3_msg = "0519" "081a32547698103254", - .expect_mi = { - .type = GSM_MI_TYPE_IMEI, - .imei = "123456789012345", - }, - }, - { - .label = "Identity Response with IMEISV 9876543210987654", - .compl_l3_msg = "0519" "099378563412907856f4", - .expect_mi = { - .type = GSM_MI_TYPE_IMEISV, - .imeisv = "9876543210987654", - }, - }, -}; - -void test_struct_mobile_identity() -{ - struct mobile_identity_tc *t; - printf("%s()\n", __func__); - for (t = mobile_identity_tests; (t - mobile_identity_tests) < ARRAY_SIZE(mobile_identity_tests); t++) { - struct osmo_mobile_identity mi; - struct msgb *msg; - int rc; - memset(&mi, 0xff, sizeof(mi)); - - msg = msgb_from_hex(t->label, 1024, t->compl_l3_msg); - rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); - msgb_free(msg); - - printf("%s: rc = %d", t->label, rc); - if (!rc) { - printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); - } - - if (rc == t->expect_rc - && ((rc != 0) || !osmo_mobile_identity_cmp(&mi, &t->expect_mi))) { - printf(" ok"); - } else { - printf(" ERROR: Expected rc = %d", t->expect_rc); - if (!t->expect_rc) - printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &t->expect_mi)); - } - printf("\n"); - } - printf("\n"); -} - static const struct bcd_number_test { /* Human-readable test name */ const char *test_name; @@ -1552,7 +1182,6 @@ test_mid_from_imsi(); test_mid_encode_decode(); test_mid_decode_zero_length(); - test_struct_mobile_identity(); test_bcd_number_encode_decode(); test_ra_cap(); test_lai_encode_decode(); diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index f8de54a..d343869 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -17,9 +17,9 @@ -> MI-str="423423" rc=7 -> MI-name="IMSI-423423" - unknown 0x9 423423 - -> MI-TLV-hex='' - -> MI-str="" rc=1 - -> MI-name="unknown" + -> MI-TLV-hex='1704413224f3' + -> MI-str="423423" rc=7 + -> MI-name="IMSI-423423" - IMSI 4234235 -> MI-TLV-hex='170449322453' -> MI-str="4234235" rc=8 @@ -65,15 +65,15 @@ -> MI-str="3054" rc=9 -> MI-name="TMSI-0x12345678" - NONE 123 - -> MI-TLV-hex='' + -> MI-TLV-hex='17021832' -> MI-str="" rc=1 -> MI-name="unknown" - NONE 1234 - -> MI-TLV-hex='' + -> MI-TLV-hex='17031032f4' -> MI-str="" rc=1 -> MI-name="unknown" - unknown 0x8 1234 - -> MI-TLV-hex='' + -> MI-TLV-hex='17031032f4' -> MI-str="" rc=1 -> MI-name="unknown" @@ -139,57 +139,6 @@ rc=1 returned empty string -test_struct_mobile_identity() -LU with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok -LU with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok -LU with invalid MI type: rc = -22 ok -LU with truncated IMSI MI: rc = -74 ok -LU with too short IMSI MI (12345): rc = -74 ok -LU with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok -LU with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok -LU with just too long IMSI MI 1234567890123456: rc = -74 ok -LU with truncated TMSI MI: rc = -74 ok -LU with odd length TMSI: rc = -74 ok -LU with too long TMSI MI: rc = -74 ok -LU with too short TMSI: rc = -74 ok -CM Service Request with IMSI 123456: rc = 0, mi = IMSI-123456 ok -CM Service Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok -CM Service Request with shorter CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok -CM Service Request with longer CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok -CM Service Request with shorter CM2, with TMSI 0x00000000: rc = 0, mi = TMSI-0x00000000 ok -CM Service Request with invalid MI type: rc = -22 ok -CM Service Request with truncated IMSI MI: rc = -74 ok -CM Service Request with truncated TMSI MI: rc = -74 ok -CM Service Request with odd length TMSI: rc = -74 ok -CM Service Request with too long TMSI MI: rc = -74 ok -CM Service Request with too short TMSI: rc = -74 ok -CM Service Reestablish Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok -Paging Response with IMSI 1234567: rc = 0, mi = IMSI-1234567 ok -Paging Response with TMSI 0xb48883de: rc = 0, mi = TMSI-0xB48883DE ok -Paging Response with TMSI, with unused nibble not 0xf: rc = -74 ok -Paging Response with too short IMEI (1234567): rc = -74 ok -Paging Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok -Paging Response with IMEI 12345678901234 (no Luhn checksum): rc = 0, mi = IMEI-12345678901234 ok -Paging Response with IMEISV 1234567890123456: rc = 0, mi = IMEI-SV-1234567890123456 ok -Paging Response with too short IMEISV 123456789012345: rc = -74 ok -Paging Response with too long IMEISV 12345678901234567: rc = -74 ok -Paging Response with IMSI 123456789012345 and flipped ODD bit: rc = -74 ok -IMSI-Detach with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok -IMSI-Detach with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok -IMSI-Detach with invalid MI type: rc = -22 ok -IMSI-Detach with truncated IMSI MI: rc = -74 ok -IMSI-Detach with too short IMSI MI (12345): rc = -74 ok -IMSI-Detach with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok -IMSI-Detach with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok -IMSI-Detach with just too long IMSI MI 1234567890123456: rc = -74 ok -IMSI-Detach with truncated TMSI MI: rc = -74 ok -IMSI-Detach with odd length TMSI: rc = -74 ok -IMSI-Detach with too long TMSI MI: rc = -74 ok -IMSI-Detach with too short TMSI: rc = -74 ok -Identity Response with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok -Identity Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok -Identity Response with IMEISV 9876543210987654: rc = 0, mi = IMEI-SV-9876543210987654 ok - BSD number encoding / decoding test - Running test: regular 9-digit MSISDN - Encoding ASCII (buffer limit=0) '123456789'... diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index e15cf5f..e87cb22 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -487,7 +487,6 @@ { int i; uint8_t bcd[64]; - uint8_t bcd2[64]; int rc; printf("\nTesting bcd to string conversion\n"); @@ -512,12 +511,6 @@ printf(" ERROR: expected rc=%d\n", t->expect_rc); if (strcmp(str, t->expect_str)) printf(" ERROR: expected result %s\n", osmo_quote_str(t->expect_str, -1)); - - memset(bcd2, 0xff, sizeof(bcd2)); - rc = osmo_str2bcd(bcd2, sizeof(bcd2), str, t->start_nibble, -1, t->allow_hex); - printf("osmo_str2bcd(start_nibble=%d) -> rc=%d\n", t->start_nibble, rc); - if (rc > 0) - printf(" = %s\n", osmo_hexdump(bcd2, rc)); } printf("- zero output buffer\n"); diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index cbab72a..baa708e 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -181,41 +181,27 @@ - BCD-input='1a 32 54 76 98 f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234567890" -osmo_str2bcd(start_nibble=1) -> rc=6 - = 1f 32 54 76 98 f0 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=-22 -> "1234ABCD90" -osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234ABCD90" -osmo_str2bcd(start_nibble=1) -> rc=6 - = 1f 32 a4 cb 9d f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=-22 -> "1234567890F" -osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=11 -> "1234567890F" -osmo_str2bcd(start_nibble=1) -> rc=6 - = 1f 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[0..12[ str_size=64 rc=12 -> "A1234567890F" -osmo_str2bcd(start_nibble=0) -> rc=6 - = 1a 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=5 rc=11 -> "1234" -osmo_str2bcd(start_nibble=1) -> rc=3 - = 1f 32 f4 - BCD-input='' nibbles=[1..1[ str_size=64 rc=0 -> "" -osmo_str2bcd(start_nibble=1) -> rc=1 - = ff - zero output buffer bcd2str(NULL, ...) -> -12 bcd2str(dst, 0, ...) -> -12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bd958d0cd2ab4b0c4725e6d114f4404d725fcf7 Gerrit-Change-Number: 18853 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 Jun 16 07:42:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 07:42:16 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust logging config In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18852 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust logging config ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg File ttcn3-bsc-test/sccplite/osmo-bsc.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg at 16 PS1, Line 16: logging print category-hex 0 Please add 'logging print category 1'. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 Gerrit-Change-Number: 18852 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 16 Jun 2020 07:42:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:15:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:15:35 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 12: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08: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 Tue Jun 16 08:15:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 08:15:50 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: fix additional_args init In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18843 ) Change subject: ms_srs: fix additional_args init ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18843 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: I06f370462934ca35f3aa13bbfcd9e5fc3df91895 Gerrit-Change-Number: 18843 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:15:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:15:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 08:15:52 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: fix additional_args init In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18843 ) Change subject: ms_srs: fix additional_args init ...................................................................... ms_srs: fix additional_args init regressions after porting to list. init to new empty list Change-Id: I06f370462934ca35f3aa13bbfcd9e5fc3df91895 --- M src/osmo_gsm_tester/obj/ms_srs.py 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 6241685..cf2e166 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -230,11 +230,10 @@ self.enable_pcap = util.str2bool(values['ue'].get('enable_pcap', 'false')) config.overlay(values, dict(ue={'enable_pcap': self.enable_pcap})) - self._additional_args = values['ue'].get('additional_args', '').split() + self._additional_args = [] for add_args in values['ue'].get('additional_args', []): self._additional_args += add_args.split() - self.num_carriers = int(values['ue'].get('num_carriers', 1)) # We need to set some specific variables programatically here to match IP addresses: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18843 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: I06f370462934ca35f3aa13bbfcd9e5fc3df91895 Gerrit-Change-Number: 18843 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:17:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:17:20 +0000 Subject: Change in osmo-mgw[master]: endp: move endpoint name generation into mgcp_endp.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18754 ) Change subject: endp: move endpoint name generation into mgcp_endp.c ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Gerrit-Change-Number: 18754 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:17: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 Jun 16 08:21:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:21:04 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18745/4/src/libosmo-mgcp/mgcp_endp.c at 51 PS4, Line 51: { 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; > Also, any reason there is no 64k bits endpoint ? (just asking, I don't know if it makes sense) For Abis, 64k is not required. But of course, if we introduce E1 support to osmo-mgw, we should cover that case. So I think we need 16k (top priority), 8k (second priority), 64k (third priority). 32k is basically irrelevant. So while we don't strictly need full support for 64k slots right now, I would like to see it supported. At the very least I think we should keep them in mind and make sure our endpoint naming scheme and overall code architecture at least anticipates them. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Tue, 16 Jun 2020 08:21:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:22:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:22:19 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:22:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:23:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:23:05 +0000 Subject: Change in osmo-mgw[master]: endp: add typeset for e1-endpoints In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18755 ) Change subject: endp: add typeset for e1-endpoints ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 Gerrit-Change-Number: 18755 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 16 Jun 2020 08: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 Tue Jun 16 08:24:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:24:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: skip MSC pooling tests in SCCPlite In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18844 ) Change subject: bsc: skip MSC pooling tests in SCCPlite ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0b393d26feb56738e2f5ef213a8a922bb5e90a7 Gerrit-Change-Number: 18844 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08:24:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:24:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:24:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: drop unused function f_bssap_wait_for_reset() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18845 ) Change subject: RAN_Emulation: drop unused function f_bssap_wait_for_reset() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf4fdeaee8e5437427564ef860c9053ffa4241 Gerrit-Change-Number: 18845 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08:24:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:25:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:25:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow individual T_guard timeout via f_init() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18846 ) Change subject: bsc: allow individual T_guard timeout via f_init() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I14918f6a44d6fa1bd5c3e133757ebdbe32813b33 Gerrit-Change-Number: 18846 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08:25:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:25:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:25:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: set longer T_guard for TC_ho_neighbor_config tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18847 ) Change subject: bsc: set longer T_guard for TC_ho_neighbor_config tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9d641c9b5d5a6f2c2edbc2c782f33872cf7a483f Gerrit-Change-Number: 18847 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08: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 Tue Jun 16 08:25:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:25:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: only respond to RESET with correct PC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18848 ) Change subject: RAN_Emulation: only respond to RESET with correct PC ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia1f94c4fc99ca18196f3fd5c5efe26b7309df499 Gerrit-Change-Number: 18848 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08:25: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 Jun 16 08:25:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:25:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: undup pars.sccp_addr_msc and _bsc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 ) Change subject: bsc: undup pars.sccp_addr_msc and _bsc ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iae81ca58001455099218ce769a97dc6402832490 Gerrit-Change-Number: 18794 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08:25:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:28:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:28:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 ) Change subject: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic0cb2275ef585754b9ae5e3d8077ca652afd9365 Gerrit-Change-Number: 18841 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08: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 Tue Jun 16 08:28:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:28:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results: TC_rsl_bs_pwr_static_{ass, power_control} pass now In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 ) Change subject: bts/expected-results: TC_rsl_bs_pwr_static_{ass,power_control} pass now ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e8db76be78fffcc8418096670ad3cf5174856f8 Gerrit-Change-Number: 18842 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:28: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 Jun 16 08:28:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:28:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 ) Change subject: library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long ...................................................................... library/RSL_Types: fix RSL_IE_BS_Power: Power Level is 4 bit long Unlike the RSL_IE_MS_Power, where power_level is 5 bit long, in the RSL_IE_BS_Power it's 4 bit long. Fix this. Change-Id: Ic0cb2275ef585754b9ae5e3d8077ca652afd9365 --- M bts/BTS_Tests.ttcn M library/RSL_Types.ttcn 2 files changed, 7 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index b098fc6..f98419d 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1697,7 +1697,7 @@ boolean toa256_enabled, MeasElemFS meas_ul, int16_t timing_offset_256syms, - uint5_t bs_power_level, + uint4_t bs_power_level, uint5_t ms_power_level, uint8_t ms_actual_ta } @@ -2129,7 +2129,7 @@ f_trxc_fake_toffs256(g_pars.l1_pars.timing_offset_256syms); } - var uint5_t pwr_var := 1; + var uint4_t pwr_var := 1; var template (value) RSL_IE_BS_Power bs_power := ts_RSL_IE_BS_Power(pwr_var); var template (value) RSL_IE pwr := t_RSL_IE(RSL_IE_BS_POWER, RSL_IE_Body:{bs_power := bs_power}); @@ -2152,7 +2152,7 @@ f_trxc_fake_toffs256(g_pars.l1_pars.timing_offset_256syms); } - var uint5_t pwr_var := 1; + var uint4_t pwr_var := 1; var template (value) RSL_IE_BS_Power bs_power := ts_RSL_IE_BS_Power(pwr_var); f_est_dchan(); diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index 77b4e79..af01c5d 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -386,15 +386,15 @@ coding_alg_rate := alg } - /* 9.3.4 */ + /* 9.3.4 BS Power IE */ type record RSL_IE_BS_Power { - uint1_t reserved, + uint2_t reserved, boolean epc, boolean fpc, - uint5_t power_level + uint4_t power_level } - template (value) RSL_IE_BS_Power ts_RSL_IE_BS_Power(uint5_t power_level, + template (value) RSL_IE_BS_Power ts_RSL_IE_BS_Power(uint4_t power_level, boolean epc := false, boolean fpc := false) := { reserved := 0, epc := epc, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic0cb2275ef585754b9ae5e3d8077ca652afd9365 Gerrit-Change-Number: 18841 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:28:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:28:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts/expected-results: TC_rsl_bs_pwr_static_{ass, power_control} pass now In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 ) Change subject: bts/expected-results: TC_rsl_bs_pwr_static_{ass,power_control} pass now ...................................................................... bts/expected-results: TC_rsl_bs_pwr_static_{ass,power_control} pass now Change I16cc50dfca102030380a06e16c234d5f6698f38f fixes them both. Change-Id: I2e8db76be78fffcc8418096670ad3cf5174856f8 --- M bts/expected-results.xml 1 file changed, 2 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/bts/expected-results.xml b/bts/expected-results.xml index a03e16b..fa86f8a 100644 --- a/bts/expected-results.xml +++ b/bts/expected-results.xml @@ -51,18 +51,8 @@ - - "BTS_Tests.ttcn:MASKED : Received wrong BS power level in MEAS RES { msg_disc := { msg_group := RSL_MDISC_DCHAN (4), transparent := false }, msg_type := RSL_MT_MEAS_RES (40), ies := { { iei := RSL_IE_CHAN_NR (1), body := { chan_nr := { u := { ch0 := RSL_CHAN_NR_Bm_ACCH (1) }, tn := 1 } } }, { iei := RSL_IE_MEAS_RES_NR (27), body := { meas_res_nr := 0 } }, { iei := RSL_IE_UPLINK_MEAS (25), body := { uplink_meas := { len := 3, rfu := '0'B, dtx_d := false, rxlev_f_u := 10, reserved1 := '00'B, rxlev_s_u := 10, reserved2 := '00'B, rxq_f_u := 0, rxq_s_u := 0, supp_meas_info := omit } } }, { iei := RSL_IE_BS_POWER (4), body := { bs_power := { reserved := 0, epc := false, fpc := false, power_level := 0 } } }, { iei := RSL_IE_L1_INFO (10), body := { l1_info := { ms_power_lvl := 7, fpc := false, reserved := 0, actual_ta := 0 } } }, { iei := RSL_IE_L3_INFO (11), body := { l3_info := { len := 18, payload := '0615363601C0000000000000000000000000'O } } }, { iei := RSL_IE_MS_TIMING_OFFSET (37), body := { ms_timing_offset := 65 } } } }" - BTS_Tests.ttcn:MASKED BTS_Tests control part - BTS_Tests.ttcn:MASKED TC_rsl_bs_pwr_static_ass testcase - - - - "BTS_Tests.ttcn:MASKED : Received wrong BS power level in MEAS RES { msg_disc := { msg_group := RSL_MDISC_DCHAN (4), transparent := false }, msg_type := RSL_MT_MEAS_RES (40), ies := { { iei := RSL_IE_CHAN_NR (1), body := { chan_nr := { u := { ch0 := RSL_CHAN_NR_Bm_ACCH (1) }, tn := 1 } } }, { iei := RSL_IE_MEAS_RES_NR (27), body := { meas_res_nr := 0 } }, { iei := RSL_IE_UPLINK_MEAS (25), body := { uplink_meas := { len := 3, rfu := '0'B, dtx_d := false, rxlev_f_u := 10, reserved1 := '00'B, rxlev_s_u := 10, reserved2 := '00'B, rxq_f_u := 0, rxq_s_u := 0, supp_meas_info := omit } } }, { iei := RSL_IE_BS_POWER (4), body := { bs_power := { reserved := 0, epc := false, fpc := false, power_level := 0 } } }, { iei := RSL_IE_L1_INFO (10), body := { l1_info := { ms_power_lvl := 7, fpc := false, reserved := 0, actual_ta := 0 } } }, { iei := RSL_IE_L3_INFO (11), body := { l3_info := { len := 18, payload := '0615363601C0000000000000000000000000'O } } }, { iei := RSL_IE_MS_TIMING_OFFSET (37), body := { ms_timing_offset := 65 } } } }" - BTS_Tests.ttcn:MASKED BTS_Tests control part - BTS_Tests.ttcn:MASKED TC_rsl_bs_pwr_static_power_control testcase - - + + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2e8db76be78fffcc8418096670ad3cf5174856f8 Gerrit-Change-Number: 18842 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:29:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:29:44 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18833 ) Change subject: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 Gerrit-Change-Number: 18833 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:29:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:30:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:30:11 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: include BS Power reduction in Downlink bursts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18834 ) Change subject: osmo-bts-trx: include BS Power reduction in Downlink bursts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 Gerrit-Change-Number: 18834 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:30: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 Jun 16 08:32:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:32:04 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18835 ) Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:32:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:32:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:32:31 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: fix logging: do not print A-bis MO name twice In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18836 ) Change subject: A-bis/OML: fix logging: do not print A-bis MO name twice ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I513efeb441a69e9eee1ad7bbd8cb0b552b7195eb Gerrit-Change-Number: 18836 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:32: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 Jun 16 08:32:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:32:41 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18833 ) Change subject: osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state ...................................................................... osmo-bts-trx: store pointer to gsm_lchan in l1sched_chan_state This change simplifies access to generic logical channel state (struct gsm_lchan) from osmo-bts-trx specific state (struct l1sched_chan_state), so there is no need to look it up using get_lchan_by_chan_nr() on receipt of each Uplink burst. Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 4 files changed, 12 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/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index a7bc6c7..f5f346e 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -71,6 +71,11 @@ /* States each channel on a multiframe */ struct l1sched_chan_state { + /* Pointer to the associated logical channel state from gsm_data_shared. + * Initialized during channel activation, thus may be NULL for inactive + * or auto-active channels. Always check before dereferencing! */ + struct gsm_lchan *lchan; + /* scheduler */ bool active; /* Channel is active */ ubit_t *dl_bursts; /* burst buffer for TX */ diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ed6c623..b79c83d 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1000,6 +1000,11 @@ else chan_state->ho_rach_detect = 0; chan_state->active = active; + + if (active) { + chan_state->lchan = get_lchan_by_chan_nr(l1t->trx, chan_nr); + OSMO_ASSERT(chan_state->lchan != NULL); + } } } diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 80115a9..d289620 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -50,6 +50,7 @@ { struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + struct gsm_lchan *lchan = chan_state->lchan; sbit_t *burst, **bursts_p = &chan_state->ul_bursts; uint8_t *mask = &chan_state->ul_mask; uint8_t rsl_cmode = chan_state->rsl_cmode; @@ -59,8 +60,6 @@ int n_errors = 0; int n_bits_total = 0; bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); unsigned int fn_begin; uint16_t ber10k; uint8_t is_sub = 0; diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 8adaec3..0281342 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -50,6 +50,7 @@ { struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, bi->tn); struct l1sched_chan_state *chan_state = &l1ts->chan_state[chan]; + struct gsm_lchan *lchan = chan_state->lchan; sbit_t *burst, **bursts_p = &chan_state->ul_bursts; uint8_t *mask = &chan_state->ul_mask; uint8_t rsl_cmode = chan_state->rsl_cmode; @@ -59,8 +60,6 @@ int n_errors = 0; int n_bits_total = 0; bool bfi_flag = false; - struct gsm_lchan *lchan = - get_lchan_by_chan_nr(l1t->trx, trx_chan_desc[chan].chan_nr | bi->tn); /* Note on FN-10: If we are at FN 10, we decoded an even aligned * TCH/FACCH frame, because our burst buffer carries 6 bursts. * Even FN ending at: 10,11,19,20,2,3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4378020f980845b962f71b9e4b7faea738bc174 Gerrit-Change-Number: 18833 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:32:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:32:41 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: include BS Power reduction in Downlink bursts In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18834 ) Change subject: osmo-bts-trx: include BS Power reduction in Downlink bursts ...................................................................... osmo-bts-trx: include BS Power reduction in Downlink bursts For those osmo-bts-trx specific logical channels with a generic logical channel state associated, let's finally apply the BS Power reduction (attenuation) value that was received from the BSC. Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 --- M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c 2 files changed, 5 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/scheduler.c b/src/common/scheduler.c index b79c83d..ac9085d 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1190,6 +1190,10 @@ if (func(l1t, chan, bid, br) != 0) goto no_data; + /* BS Power reduction (2 dB steps) per logical channel */ + if (l1cs->lchan != NULL) + br->att = l1cs->lchan->bs_power * 2; + /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { ubit_t ks[114]; diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 6996593..d4a38b6 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -86,10 +86,9 @@ _sched_rts(l1t, tn, (fn + plink->u.osmotrx.rts_advance) % GSM_HYPERFRAME); - /* TODO: Tx attenuation is always 0? */ + /* All other parameters to be set by _sched_dl_burst() */ br = (struct trx_dl_burst_req) { .fn = fn, .tn = tn, - .att = 0, }; /* get burst for FN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib692ff1a75a80fceccb481839c8514d4b2a547b9 Gerrit-Change-Number: 18834 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:32:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:32:42 +0000 Subject: Change in osmo-bts[master]: A-bis/RSL: refactor handling of BS Power IE (power reduction) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18835 ) Change subject: A-bis/RSL: refactor handling of BS Power IE (power reduction) ...................................................................... A-bis/RSL: refactor handling of BS Power IE (power reduction) According to 3GPP TS 08.58, section 9.3.4, BS Power IE indicates the transmission power attenuation on a particular channel: +--------------+---------+-----------------+ | Reserved (3) | FPC (1) | Power level (4) | +--------------+---------+-----------------+ so let's change handling of this IE as follows: - s/bs_power/bs_power_red/g, so it reflects 'reduction'; - store power attenuation value in dB, not in 2 db steps; - get rid of ms_power_ctrl.bts_tx_pwr, it's always 0 anyway; - fix rsl_tx_meas_res(): use lchan->bs_power_red; - always check if FPC (Fast Power Control) flag is set; - we don't support it, so reject messages containing it; - fix rsl_rx_chan_activ(): properly apply the bitmask. Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f --- M include/osmo-bts/gsm_data_shared.h M include/osmo-bts/tx_power.h M src/common/rsl.c M src/common/scheduler.c M src/common/tx_power.c M src/common/vty.c M tests/tx_power/tx_power_test.c 7 files changed, 50 insertions(+), 43 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified fixeria: Verified diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index 7cfbfeb..bbc1bd4 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -193,8 +193,6 @@ uint8_t flags; /* RSL measurement result number, 0 at lchan_act */ uint8_t res_nr; - /* current Tx power level of the BTS */ - uint8_t bts_tx_pwr; /* number of measurements stored in array below */ uint8_t num_ul_meas; struct bts_ul_meas uplink[MAX_NUM_UL_MEAS]; @@ -267,8 +265,9 @@ uint8_t max; bool fixed; } ms_power_ctrl; - /* Power levels for BTS */ - uint8_t bs_power; + + /* BTS power reduction (in dB) */ + uint8_t bs_power_red; struct msgb *pending_rel_ind_msg; diff --git a/include/osmo-bts/tx_power.h b/include/osmo-bts/tx_power.h index 10129eb..8f33100 100644 --- a/include/osmo-bts/tx_power.h +++ b/include/osmo-bts/tx_power.h @@ -62,15 +62,15 @@ int get_p_nominal_mdBm(struct gsm_bts_trx *trx); -int get_p_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie); +int get_p_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red); int get_p_target_mdBm_lchan(struct gsm_lchan *lchan); int get_p_actual_mdBm(struct gsm_bts_trx *trx, int p_target_mdBm); -int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie); +int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red); int get_p_trxout_target_mdBm_lchan(struct gsm_lchan *lchan); -int get_p_trxout_actual_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie); +int get_p_trxout_actual_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red); int get_p_trxout_actual_mdBm_lchan(struct gsm_lchan *lchan); int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass); diff --git a/src/common/rsl.c b/src/common/rsl.c index f057a89..b518245 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -60,6 +60,9 @@ //#define FAKE_CIPH_MODE_COMPL +/* Parse power attenuation (in dB) from BS Power IE (see 9.3.4) */ +#define BS_POWER2DB(bs_power) \ + ((bs_power & 0x0f) * 2) static int rsl_tx_error_report(struct gsm_bts_trx *trx, uint8_t cause, const uint8_t *chan_nr, const uint8_t *link_id, const struct msgb *orig_msg); @@ -1001,7 +1004,7 @@ lchan->tch_mode = 0; memset(&lchan->encr, 0, sizeof(lchan->encr)); memset(&lchan->ho, 0, sizeof(lchan->ho)); - lchan->bs_power = 0; + lchan->bs_power_red = 0; memset(&lchan->ms_power_ctrl, 0, sizeof(lchan->ms_power_ctrl)); lchan->rqd_ta = 0; copy_sacch_si_to_lchan(lchan); @@ -1146,8 +1149,18 @@ } /* 9.3.4 BS Power */ - if (TLVP_PRES_LEN(&tp, RSL_IE_BS_POWER, 1)) - lchan->bs_power = *TLVP_VAL(&tp, RSL_IE_BS_POWER); + if (TLVP_PRES_LEN(&tp, RSL_IE_BS_POWER, 1)) { + if (*TLVP_VAL(&tp, RSL_IE_BS_POWER) & (1 << 4)) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, + "Fast Power Control is not supported\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_SERV_OPT_UNIMPL); + } + + lchan->bs_power_red = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); + LOGPLCHAN(lchan, DRSL, LOGL_DEBUG, "BS Power attenuation %u dB\n", + lchan->bs_power_red); + } + /* 9.3.13 MS Power */ if (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1)) { lchan->ms_power_ctrl.max = *TLVP_VAL(&tp, RSL_IE_MS_POWER) & 0x1F; @@ -1664,21 +1677,13 @@ return 0; } -/* See TS 48.058 Section 9.3.4 */ -static int bs_power_attenuation_dB(uint8_t bs_power) -{ - /* the lower nibble contains the number of 2dB steps that the BS power is reduced compared - * to its nominal transmit power */ - return - ((bs_power & 0xF) *2); -} - /* 8.4.16 BS POWER CONTROL */ static int rsl_rx_bs_pwr_ctrl(struct msgb *msg) { struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; struct tlv_parsed tp; - uint8_t new_bs_power; + uint8_t old_bs_power_red; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1686,12 +1691,16 @@ if (!TLVP_PRES_LEN(&tp, RSL_IE_BS_POWER, 1)) return rsl_tx_error_report(msg->trx, RSL_ERR_MAND_IE_ERROR, &dch->chan_nr, NULL, msg); - new_bs_power = *TLVP_VAL(&tp, RSL_IE_BS_POWER); + if (*TLVP_VAL(&tp, RSL_IE_BS_POWER) & (1 << 4)) { + LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Fast Power Control is not supported\n"); + return rsl_tx_error_report(msg->trx, RSL_ERR_SERV_OPT_UNIMPL, &dch->chan_nr, NULL, msg); + } + + old_bs_power_red = lchan->bs_power_red; + lchan->bs_power_red = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "BS POWER CONTROL Attenuation %d -> %d dB\n", - bs_power_attenuation_dB(lchan->bs_power), bs_power_attenuation_dB(new_bs_power)); - - lchan->bs_power = new_bs_power; + old_bs_power_red, lchan->bs_power_red); /* 9.3.31 MS Power Parameters (O) */ if (TLVP_PRESENT(&tp, RSL_IE_BS_POWER_PARAM)) { @@ -2896,7 +2905,7 @@ msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; } - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->meas.bts_tx_pwr); + msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_red / 2); if (lchan->meas.flags & LC_UL_M_F_L1_VALID) { msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, 2, lchan->meas.l1_info); lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ac9085d..e55b3a4 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1190,9 +1190,9 @@ if (func(l1t, chan, bid, br) != 0) goto no_data; - /* BS Power reduction (2 dB steps) per logical channel */ + /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) - br->att = l1cs->lchan->bs_power * 2; + br->att = l1cs->lchan->bs_power_red; /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { diff --git a/src/common/tx_power.c b/src/common/tx_power.c index e418cec..db3121d 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -60,14 +60,14 @@ /* calculate the target total output power required, reduced by both * OML and RSL, but ignoring the attenuation required for power ramping and * thermal management */ -int get_p_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie) +int get_p_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red) { - /* Pn subtracted by RSL BS Power IE (in 2 dB steps) */ - return get_p_nominal_mdBm(trx) - to_mdB(bs_power_ie * 2); + /* Pn subtracted by RSL BS Power Recudtion (in 1 dB steps) */ + return get_p_nominal_mdBm(trx) - to_mdB(bs_power_red); } int get_p_target_mdBm_lchan(struct gsm_lchan *lchan) { - return get_p_target_mdBm(lchan->ts->trx, lchan->bs_power); + return get_p_target_mdBm(lchan->ts->trx, lchan->bs_power_red); } /* calculate the actual total output power required, taking into account the @@ -113,14 +113,14 @@ /* calculate target TRX output power required, ignoring the * attenuations required for power ramping but not thermal management */ -int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie) +int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red) { struct trx_power_params *tpp = &trx->power_params; int p_target_mdBm, user_pa_drvlvl_mdBm, pa_drvlvl_mdBm; unsigned int arfcn = trx->arfcn; /* P_target subtracted by any bulk gain added by the user */ - p_target_mdBm = get_p_target_mdBm(trx, bs_power_ie) - tpp->user_gain_mdB; + p_target_mdBm = get_p_target_mdBm(trx, bs_power_red) - tpp->user_gain_mdB; /* determine input drive level required at input to user PA */ user_pa_drvlvl_mdBm = get_pa_drive_level_mdBm(&tpp->user_pa, p_target_mdBm, arfcn); @@ -133,7 +133,7 @@ } int get_p_trxout_target_mdBm_lchan(struct gsm_lchan *lchan) { - return get_p_trxout_target_mdBm(lchan->ts->trx, lchan->bs_power); + return get_p_trxout_target_mdBm(lchan->ts->trx, lchan->bs_power_red); } diff --git a/src/common/vty.c b/src/common/vty.c index 3dfd387..6a1fd9c 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1182,8 +1182,7 @@ lchan->state == LCHAN_S_BROKEN ? lchan->broken_reason : "", VTY_NEWLINE); vty_out(vty, " BS Power: %d dBm, MS Power: %u dBm%s", - lchan->ts->trx->nominal_power - lchan->ts->trx->max_power_red - - lchan->bs_power*2, + lchan->ts->trx->nominal_power - (lchan->ts->trx->max_power_red + lchan->bs_power_red), ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), VTY_NEWLINE); vty_out(vty, " Channel Mode / Codec: %s%s", diff --git a/tests/tx_power/tx_power_test.c b/tests/tx_power/tx_power_test.c index 9d38d83..aaa34ea 100644 --- a/tests/tx_power/tx_power_test.c +++ b/tests/tx_power/tx_power_test.c @@ -120,9 +120,9 @@ /* at max_power_red = 2, we expect 21dBm */ OSMO_ASSERT(get_p_nominal_mdBm(trx) == to_mdB(21)); /* at 1 step (of 2dB), we expect full 23-2-2=19 dBm */ - OSMO_ASSERT(get_p_target_mdBm(trx, 1) == to_mdB(19)); + OSMO_ASSERT(get_p_target_mdBm(trx, 2) == to_mdB(19)); /* at 2 steps (= 4dB), we expect 23-2-4=17*/ - OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 2) == to_mdB(17)); + OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 4) == to_mdB(17)); } static void test_sbts1020(struct gsm_bts_trx *trx) @@ -138,9 +138,9 @@ /* at max_power_red = 2, we expect 31dBm */ OSMO_ASSERT(get_p_nominal_mdBm(trx) == to_mdB(31)); /* at 1 step (of 2dB), we expect full 33-2-2=29 dBm */ - OSMO_ASSERT(get_p_target_mdBm(trx, 1) == to_mdB(29)); + OSMO_ASSERT(get_p_target_mdBm(trx, 2) == to_mdB(29)); /* at 2 steps (= 4dB), we expect 33-2-4-10=17*/ - OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 2) == to_mdB(17)); + OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 4) == to_mdB(17)); } @@ -157,9 +157,9 @@ /* at max_power_red = 2, we expect 38dBm */ OSMO_ASSERT(get_p_nominal_mdBm(trx) == to_mdB(38)); /* at 1 step (of 2dB), we expect full 40-2-2=36 dBm */ - OSMO_ASSERT(get_p_target_mdBm(trx, 1) == to_mdB(36)); + OSMO_ASSERT(get_p_target_mdBm(trx, 2) == to_mdB(36)); /* at 2 steps (= 4dB), we expect 40-2-4-17=17*/ - OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 2) == to_mdB(17)); + OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 4) == to_mdB(17)); } static void test_sbts2050(struct gsm_bts_trx *trx) @@ -175,9 +175,9 @@ /* at max_power_red = 2, we expect 35dBm */ OSMO_ASSERT(get_p_nominal_mdBm(trx) == to_mdB(35)); /* at 1 step (of 2dB), we expect full 37-2-2=33 dBm */ - OSMO_ASSERT(get_p_target_mdBm(trx, 1) == to_mdB(33)); + OSMO_ASSERT(get_p_target_mdBm(trx, 2) == to_mdB(33)); /* at 2 steps (= 4dB), we expect 37-2-4=31dBm */ - OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 2) == to_mdB(31)); + OSMO_ASSERT(get_p_trxout_target_mdBm(trx, 4) == to_mdB(31)); } int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f Gerrit-Change-Number: 18835 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 Tue Jun 16 08:32:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:32:43 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: fix logging: do not print A-bis MO name twice In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18836 ) Change subject: A-bis/OML: fix logging: do not print A-bis MO name twice ...................................................................... A-bis/OML: fix logging: do not print A-bis MO name twice LOGPFOH() itself prepends A-bis MO name to the logging message. Change-Id: I513efeb441a69e9eee1ad7bbd8cb0b552b7195eb --- M src/common/oml.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/common/oml.c b/src/common/oml.c index 5610ab1..28fa066 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -937,8 +937,8 @@ /* If there is no TSC specified, use the BCC */ ts->tsc = BSIC2BCC(bts->bsic); } - LOGPFOH(DOML, LOGL_INFO, foh, "%s SET CHAN ATTR (TSC=%u pchan=%s)\n", - gsm_abis_mo_name(&ts->mo), ts->tsc, gsm_pchan_name(ts->pchan)); + LOGPFOH(DOML, LOGL_INFO, foh, "SET CHAN ATTR (TSC=%u pchan=%s)\n", + ts->tsc, gsm_pchan_name(ts->pchan)); /* call into BTS driver to apply new attributes to hardware */ return bts_model_apply_oml(bts, msg, tp_merged, NM_OC_CHANNEL, ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I513efeb441a69e9eee1ad7bbd8cb0b552b7195eb Gerrit-Change-Number: 18836 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:38:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:38:30 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18837 ) Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:38: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 Jun 16 08:38:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:38:45 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Add support for setting TOS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18840 ) Change subject: iperf3: Add support for setting TOS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18840 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: I3ccc249ad1c9598c606303c52eff6823f45afa7b Gerrit-Change-Number: 18840 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08:38:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:38:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:38:57 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Refactor iperf3cli popen arg list generation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 ) Change subject: iperf3: Refactor iperf3cli popen arg list generation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 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: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934 Gerrit-Change-Number: 18839 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 08:38: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 Jun 16 08:43:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:43:14 +0000 Subject: Change in osmo-bsc[master]: gsm_data.h: Remove period at end of counter description In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18749 ) Change subject: gsm_data.h: Remove period at end of counter description ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I045cef207603074bd018e40f984263d03db31405 Gerrit-Change-Number: 18749 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08: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 Tue Jun 16 08:43:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:43:37 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18719 ) Change subject: abis_rsl: Count successful channel requests ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:43: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 Jun 16 08:43:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:43:46 +0000 Subject: Change in osmo-bsc[master]: gsm_data.h: Remove period at end of counter description In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18749 ) Change subject: gsm_data.h: Remove period at end of counter description ...................................................................... gsm_data.h: Remove period at end of counter description Change-Id: I045cef207603074bd018e40f984263d03db31405 --- M include/osmocom/bsc/gsm_data.h 1 file changed, 18 insertions(+), 18 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 52ff5e4..8dc4105 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1429,25 +1429,25 @@ }; static const struct rate_ctr_desc bts_ctr_description[] = { - [BTS_CTR_CHREQ_TOTAL] = {"chreq:total", "Received channel requests."}, - [BTS_CTR_CHREQ_NO_CHANNEL] = {"chreq:no_channel", "Sent to MS no channel available."}, - [BTS_CTR_CHAN_RF_FAIL] = {"chan:rf_fail", "Received a RF failure indication from BTS."}, - [BTS_CTR_CHAN_RLL_ERR] = {"chan:rll_err", "Received a RLL failure with T200 cause from BTS."}, - [BTS_CTR_BTS_OML_FAIL] = {"oml_fail", "Received a TEI down on a OML link."}, - [BTS_CTR_BTS_RSL_FAIL] = {"rsl_fail", "Received a TEI down on a OML link."}, - [BTS_CTR_CODEC_AMR_F] = {"codec:amr_f", "Count the usage of AMR/F codec by channel mode requested."}, - [BTS_CTR_CODEC_AMR_H] = {"codec:amr_h", "Count the usage of AMR/H codec by channel mode requested."}, - [BTS_CTR_CODEC_EFR] = {"codec:efr", "Count the usage of EFR codec by channel mode requested."}, - [BTS_CTR_CODEC_V1_FR] = {"codec:fr", "Count the usage of FR codec by channel mode requested."}, - [BTS_CTR_CODEC_V1_HR] = {"codec:hr", "Count the usage of HR codec by channel mode requested."}, + [BTS_CTR_CHREQ_TOTAL] = {"chreq:total", "Received channel requests"}, + [BTS_CTR_CHREQ_NO_CHANNEL] = {"chreq:no_channel", "Sent to MS no channel available"}, + [BTS_CTR_CHAN_RF_FAIL] = {"chan:rf_fail", "Received a RF failure indication from BTS"}, + [BTS_CTR_CHAN_RLL_ERR] = {"chan:rll_err", "Received a RLL failure with T200 cause from BTS"}, + [BTS_CTR_BTS_OML_FAIL] = {"oml_fail", "Received a TEI down on a OML link"}, + [BTS_CTR_BTS_RSL_FAIL] = {"rsl_fail", "Received a TEI down on a OML link"}, + [BTS_CTR_CODEC_AMR_F] = {"codec:amr_f", "Count the usage of AMR/F codec by channel mode requested"}, + [BTS_CTR_CODEC_AMR_H] = {"codec:amr_h", "Count the usage of AMR/H codec by channel mode requested"}, + [BTS_CTR_CODEC_EFR] = {"codec:efr", "Count the usage of EFR codec by channel mode requested"}, + [BTS_CTR_CODEC_V1_FR] = {"codec:fr", "Count the usage of FR codec by channel mode requested"}, + [BTS_CTR_CODEC_V1_HR] = {"codec:hr", "Count the usage of HR codec by channel mode requested"}, - [BTS_CTR_PAGING_ATTEMPTED] = {"paging:attempted", "Paging attempts for a subscriber."}, - [BTS_CTR_PAGING_ALREADY] = {"paging:already", "Paging attempts ignored as subscriber was already being paged."}, - [BTS_CTR_PAGING_RESPONDED] = {"paging:responded", "Paging attempts with successful paging response."}, - [BTS_CTR_PAGING_EXPIRED] = {"paging:expired", "Paging Request expired because of timeout T3113."}, - [BTS_CTR_PAGING_NO_ACTIVE_PAGING] = {"paging:no_active_paging", "Paging response without an active paging request (arrived after paging expiration?)."}, - [BTS_CTR_PAGING_MSC_FLUSH] = {"paging:msc_flush", "Paging flushed due to MSC Reset BSSMAP message."}, - [BTS_CTR_CHAN_ACT_TOTAL] = {"chan_act:total", "Total number of Channel Activations."}, + [BTS_CTR_PAGING_ATTEMPTED] = {"paging:attempted", "Paging attempts for a subscriber"}, + [BTS_CTR_PAGING_ALREADY] = {"paging:already", "Paging attempts ignored as subscriber was already being paged"}, + [BTS_CTR_PAGING_RESPONDED] = {"paging:responded", "Paging attempts with successful paging response"}, + [BTS_CTR_PAGING_EXPIRED] = {"paging:expired", "Paging Request expired because of timeout T3113"}, + [BTS_CTR_PAGING_NO_ACTIVE_PAGING] = {"paging:no_active_paging", "Paging response without an active paging request (arrived after paging expiration?)"}, + [BTS_CTR_PAGING_MSC_FLUSH] = {"paging:msc_flush", "Paging flushed due to MSC Reset BSSMAP message"}, + [BTS_CTR_CHAN_ACT_TOTAL] = {"chan_act:total", "Total number of Channel Activations"}, [BTS_CTR_CHAN_ACT_NACK] = {"chan_act:nack", "Number of Channel Activations that the BTS NACKed"}, [BTS_CTR_RSL_UNKNOWN] = {"rsl:unknown", "Number of unknown/unsupported RSL messages received from BTS"}, [BTS_CTR_RSL_IPA_NACK] = {"rsl:ipa_nack", "Number of IPA (RTP/dyn-PDCH) related NACKs received from BTS"}, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I045cef207603074bd018e40f984263d03db31405 Gerrit-Change-Number: 18749 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:43:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:43:46 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Count successful channel requests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18719 ) Change subject: abis_rsl: Count successful channel requests ...................................................................... abis_rsl: Count successful channel requests Ticket: SYS#4877 Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c 2 files 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/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 8dc4105..7e55089 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1384,6 +1384,7 @@ enum bts_counter_id { BTS_CTR_CHREQ_TOTAL, + BTS_CTR_CHREQ_SUCCESSFUL, BTS_CTR_CHREQ_NO_CHANNEL, BTS_CTR_CHAN_RF_FAIL, BTS_CTR_CHAN_RLL_ERR, @@ -1430,6 +1431,7 @@ static const struct rate_ctr_desc bts_ctr_description[] = { [BTS_CTR_CHREQ_TOTAL] = {"chreq:total", "Received channel requests"}, + [BTS_CTR_CHREQ_SUCCESSFUL] = {"chreq:successful", "Successful channel requests (immediate assign sent)"}, [BTS_CTR_CHREQ_NO_CHANNEL] = {"chreq:no_channel", "Sent to MS no channel available"}, [BTS_CTR_CHAN_RF_FAIL] = {"chan:rf_fail", "Received a RF failure indication from BTS"}, [BTS_CTR_CHAN_RLL_ERR] = {"chan:rll_err", "Received a RLL failure with T200 cause from BTS"}, diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 4a1d314..705e759 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1428,6 +1428,7 @@ int rsl_tx_imm_assignment(struct gsm_lchan *lchan) { + int rc; struct gsm_bts *bts = lchan->ts->trx->bts; uint8_t buf[GSM_MACBLOCK_LEN]; struct gsm48_imm_ass *ia = (struct gsm48_imm_ass *) buf; @@ -1453,7 +1454,12 @@ ia->l2_plen = GSM48_LEN2PLEN((sizeof(*ia)-1) + ia->mob_alloc_len); /* send IMMEDIATE ASSIGN CMD on RSL to BTS (to send on CCCH to MS) */ - return rsl_imm_assign_cmd(bts, sizeof(*ia)+ia->mob_alloc_len, (uint8_t *) ia); + rc = rsl_imm_assign_cmd(bts, sizeof(*ia)+ia->mob_alloc_len, (uint8_t *) ia); + + if (!rc) + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_SUCCESSFUL]); + + return rc; } /* current load on the CCCH */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5c51956569223e802f4789dc5ed1605d18f80aea Gerrit-Change-Number: 18719 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 08:45:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 08:45:08 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18720 ) Change subject: Count assignment rates per BTS as well ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 08:45: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 Jun 16 09:07:21 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 16 Jun 2020 09:07:21 +0000 Subject: Change in osmo-bsc[master]: Count assignment rates per BTS as well In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18720 ) Change subject: Count assignment rates per BTS as well ...................................................................... Count assignment rates per BTS as well This adds the assignment counters for the BTS as well and changes the assignment_count() macro to increase both the counters for the BSC as well as the BTS. Related: SYS#4877 Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c 2 files changed, 29 insertions(+), 13 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 7e55089..be7c575 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1427,6 +1427,13 @@ BTS_CTR_TS_BORKEN_EV_PDCH_ACT_ACK_NACK, BTS_CTR_TS_BORKEN_EV_PDCH_DEACT_ACK_NACK, BTS_CTR_TS_BORKEN_EV_TEARDOWN, + BTS_CTR_ASSIGNMENT_ATTEMPTED, + BTS_CTR_ASSIGNMENT_COMPLETED, + BTS_CTR_ASSIGNMENT_STOPPED, + BTS_CTR_ASSIGNMENT_NO_CHANNEL, + BTS_CTR_ASSIGNMENT_TIMEOUT, + BTS_CTR_ASSIGNMENT_FAILED, + BTS_CTR_ASSIGNMENT_ERROR, }; static const struct rate_ctr_desc bts_ctr_description[] = { @@ -1477,6 +1484,13 @@ [BTS_CTR_TS_BORKEN_EV_PDCH_ACT_ACK_NACK] = {"ts_borken:event:pdch_act_ack_nack", "PDCH_ACT_ACK/NACK received in the TS BORKEN state"}, [BTS_CTR_TS_BORKEN_EV_PDCH_DEACT_ACK_NACK] = {"ts_borken:event:pdch_deact_ack_nack", "PDCH_DEACT_ACK/NACK received in the TS BORKEN state"}, [BTS_CTR_TS_BORKEN_EV_TEARDOWN] = {"ts_borken:event:teardown", "TS in a BORKEN state is shutting down (BTS disconnected?)"}, + [BTS_CTR_ASSIGNMENT_ATTEMPTED] = {"assignment:attempted", "Assignment attempts"}, + [BTS_CTR_ASSIGNMENT_COMPLETED] = {"assignment:completed", "Assignment completed"}, + [BTS_CTR_ASSIGNMENT_STOPPED] = {"assignment:stopped", "Connection ended during Assignment"}, + [BTS_CTR_ASSIGNMENT_NO_CHANNEL] = {"assignment:no_channel", "Failure to allocate lchan for Assignment"}, + [BTS_CTR_ASSIGNMENT_TIMEOUT] = {"assignment:timeout", "Assignment timed out"}, + [BTS_CTR_ASSIGNMENT_FAILED] = {"assignment:failed", "Received Assignment Failure message"}, + [BTS_CTR_ASSIGNMENT_ERROR] = {"assignment:error", "Assignment failed for other reason"}, }; static const struct rate_ctr_group_desc bts_ctrg_desc = { diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 674dcbc..94dd359 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -69,16 +69,18 @@ _conn->assignment.failure_cause = cause; \ LOG_ASSIGNMENT(_conn, LOGL_ERROR, "Assignment failed in state %s, cause %s: " fmt "\n", \ osmo_fsm_inst_state_name(fi), gsm0808_cause_name(cause), ## args); \ - assignment_count_result(BSC_CTR_ASSIGNMENT_ERROR); \ + assignment_count_result(CTR_ASSIGNMENT_ERROR); \ on_assignment_failure(_conn); \ } while(0) /* Assume presence of local var 'conn' as struct gsm_subscriber_connection */ #define assignment_count(counter) do { \ + struct gsm_bts *bts = conn_get_bts(conn); \ LOG_ASSIGNMENT(conn, LOGL_DEBUG, "incrementing rate counter: %s %s\n", \ - bsc_ctr_description[counter].name, \ - bsc_ctr_description[counter].description); \ - rate_ctr_inc(&conn->network->bsc_ctrs->ctr[counter]); \ + bsc_ctr_description[BSC_##counter].name, \ + bsc_ctr_description[BSC_##counter].description); \ + rate_ctr_inc(&conn->network->bsc_ctrs->ctr[BSC_##counter]); \ + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_##counter]); \ } while(0) #define assignment_count_result(counter) do { \ @@ -88,8 +90,8 @@ } else \ LOG_ASSIGNMENT(conn, LOGL_DEBUG, \ "result rate counter already recorded, NOT counting as: %s %s\n", \ - bsc_ctr_description[counter].name, \ - bsc_ctr_description[counter].description); \ + bsc_ctr_description[BSC_##counter].name, \ + bsc_ctr_description[BSC_##counter].description); \ } while(0) void assignment_reset(struct gsm_subscriber_connection *conn) @@ -250,7 +252,7 @@ LOG_ASSIGNMENT(conn, LOGL_DEBUG, "Assignment successful\n"); osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); - assignment_count_result(BSC_CTR_ASSIGNMENT_COMPLETED); + assignment_count_result(CTR_ASSIGNMENT_COMPLETED); } static void assignment_fsm_update_id(struct gsm_subscriber_connection *conn) @@ -426,7 +428,7 @@ OSMO_ASSERT(!conn->assignment.fi); OSMO_ASSERT(!conn->assignment.new_lchan); - assignment_count(BSC_CTR_ASSIGNMENT_ATTEMPTED); + assignment_count(CTR_ASSIGNMENT_ATTEMPTED); fi = osmo_fsm_inst_alloc_child(&assignment_fsm, conn->fi, GSCON_EV_ASSIGNMENT_END); OSMO_ASSERT(fi); @@ -456,7 +458,7 @@ /* If something went wrong during send_assignment_complete(), the fi will be gone from * error handling in there. */ if (conn->assignment.fi) { - assignment_count_result(BSC_CTR_ASSIGNMENT_COMPLETED); + assignment_count_result(CTR_ASSIGNMENT_COMPLETED); osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); } return; @@ -474,7 +476,7 @@ /* Check whether the lchan allocation was successful or not and tear * down the assignment in case of failure. */ if (!conn->assignment.new_lchan) { - assignment_count_result(BSC_CTR_ASSIGNMENT_NO_CHANNEL); + assignment_count_result(CTR_ASSIGNMENT_NO_CHANNEL); assignment_fail(GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, "BSSMAP Assignment Command:" " No lchan available for: pref=%s:%s / alt1=%s:%s / alt2=%s:%s\n", @@ -565,7 +567,7 @@ return; case ASSIGNMENT_EV_RR_ASSIGNMENT_FAIL: - assignment_count_result(BSC_CTR_ASSIGNMENT_FAILED); + assignment_count_result(CTR_ASSIGNMENT_FAILED); assignment_fail(get_cause(data), "Rx RR Assignment Failure"); return; @@ -733,7 +735,7 @@ switch (event) { case ASSIGNMENT_EV_CONN_RELEASING: - assignment_count_result(BSC_CTR_ASSIGNMENT_STOPPED); + assignment_count_result(CTR_ASSIGNMENT_STOPPED); osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REQUEST, 0); return; @@ -753,7 +755,7 @@ int assignment_fsm_timer_cb(struct osmo_fsm_inst *fi) { struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); - assignment_count_result(BSC_CTR_ASSIGNMENT_TIMEOUT); + assignment_count_result(CTR_ASSIGNMENT_TIMEOUT); assignment_fail(GSM0808_CAUSE_EQUIPMENT_FAILURE, "Timeout"); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Gerrit-Change-Number: 18720 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 09:41:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 09:41:54 +0000 Subject: Change in osmo-gsm-tester[master]: doc/manuals: Fix callout definition in code block References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18854 ) Change subject: doc/manuals: Fix callout definition in code block ...................................................................... doc/manuals: Fix callout definition in code block Currently osmo-gsm-tester master jenkins build fails while building manual due to errors like: "asciidoc: WARNING: test_api.adoc: line 42: no callouts refer to list item 1" According to asciidoc documentation in [1], code examples can be annotated with callouts, but callouts need to be put inside source code comments. [1] http://www.methods.co.nz/asciidoc/chunked/ch20.html Change-Id: I2213874592342b12adf7440b25edc706abfc78ba --- M doc/manuals/chapters/test_api.adoc 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/54/18854/1 diff --git a/doc/manuals/chapters/test_api.adoc b/doc/manuals/chapters/test_api.adoc index f159348..c0a2ee8 100644 --- a/doc/manuals/chapters/test_api.adoc +++ b/doc/manuals/chapters/test_api.adoc @@ -34,10 +34,10 @@ process locally in the same host and wait for its termination: [source,python] ---- -proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') <1> -tenv.remember_to_stop(proc) <2> -proc.launch() <3> -proc.wait() <4> +proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') # <1> +tenv.remember_to_stop(proc) # <2> +proc.launch() # <3> +proc.wait() # <4> ---- <1> Create process object. This line doesn't yet runs it. <2> Make sure the core will kill the process if this test fails -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18854 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: I2213874592342b12adf7440b25edc706abfc78ba Gerrit-Change-Number: 18854 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 Jun 16 09:57:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 09:57:00 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust handover config In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18850 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust handover config ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9694863b2db6be6384d1d6ffb35fc477fe774d02 Gerrit-Change-Number: 18850 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 16 Jun 2020 09:57: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 Jun 16 09:57:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 09:57:09 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust si2quater config In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18851 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust si2quater config ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4dbabcc28309424a336d2a052a067484d17663ac Gerrit-Change-Number: 18851 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 16 Jun 2020 09:57: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 Jun 16 09:57:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 09:57:45 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust logging config In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18852 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust logging config ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg File ttcn3-bsc-test/sccplite/osmo-bsc.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg at 16 PS1, Line 16: logging print category-hex 0 > Please add 'logging print category 1'. it's up in line 13 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 Gerrit-Change-Number: 18852 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 16 Jun 2020 09:57:45 +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 Jun 16 09:58:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 09:58:05 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust handover config In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18850 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust handover config ...................................................................... bsc.cfg: SCCPlite = AoIP: adjust handover config Adjust the SCCPlite osmo-bsc.cfg according to changes applied in osmo-bsc.cfg, which were obviously forgotten to also apply to the SCCPlite test runs. These handover config changes should fix the TC_ho_* tests in ttcn3-bsc-sccplite. Change-Id: I9694863b2db6be6384d1d6ffb35fc477fe774d02 --- M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: fixeria: Looks good to me, approved neels: Verified diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index 806ec69..eb627fe 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -69,7 +69,7 @@ encryption a5 0 1 3 neci 1 paging any use tch 0 - handover 0 + handover 1 handover window rxlev averaging 10 handover window rxqual averaging 1 handover window rxlev neighbor averaging 10 @@ -104,8 +104,6 @@ neighbor-list add arfcn 200 si5 neighbor-list add arfcn 10 si5 neighbor-list add arfcn 20 - # remote-BSS neighbor: - neighbor lac 99 arfcn 123 bsic any codec-support fr hr efr amr gprs mode gprs gprs routing area 0 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I9694863b2db6be6384d1d6ffb35fc477fe774d02 Gerrit-Change-Number: 18850 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Jun 16 09:58:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 09:58:05 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust si2quater config In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18851 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust si2quater config ...................................................................... bsc.cfg: SCCPlite = AoIP: adjust si2quater config Adjust the SCCPlite osmo-bsc.cfg according to changes applied in osmo-bsc.cfg, which were obviously forgotten to also apply to the SCCPlite test runs. Make the SI2quater config reflect that of the AoIP osmo-bsc.cfg. Change-Id: I4dbabcc28309424a336d2a052a067484d17663ac --- M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved neels: Verified diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index eb627fe..0441492 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -137,6 +137,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -226,6 +227,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -315,6 +317,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4dbabcc28309424a336d2a052a067484d17663ac Gerrit-Change-Number: 18851 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Jun 16 09:58:16 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 09:58:16 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust logging config In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18852 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust logging config ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 Gerrit-Change-Number: 18852 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 16 Jun 2020 09:58:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jun 16 09:58:20 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 09:58:20 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee897c711000_e962b0071b305f0204222f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 704s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 704s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 704s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 704s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 705s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 705s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 705s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 706s] [1935/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 706s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 706s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 706s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 706s] ../src/udm/context.c: In function ?udm_ue_add?: [ 706s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 706s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 706s] ~~^ [ 706s] %d [ 706s] cc1: some warnings being treated as errors [ 707s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 707s] ninja: build stopped: subcommand failed. [ 707s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1 [ 707s] make: *** [debian/rules:11: binary] Error 1 [ 707s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 707s] ### VM INTERACTION START ### [ 710s] [ 691.608396] sysrq: SysRq : Power Off [ 710s] [ 691.628150] reboot: Power down [ 710s] ### VM INTERACTION END ### [ 710s] [ 710s] armbuild01 failed "build open5gs_1.2.5.20200616.dsc" at Tue Jun 16 09:58:07 UTC 2020. [ 710s] -- 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 Jun 16 09:58:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 09:58:41 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust logging config In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18852 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust logging config ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg File ttcn3-bsc-test/sccplite/osmo-bsc.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg at 18 PS1, Line 18: logging print level 1 wondering waht this does lol -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 Gerrit-Change-Number: 18852 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 09:58: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 Tue Jun 16 10:04:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 10:04:01 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Refactor iperf3cli popen arg list generation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 ) Change subject: iperf3: Refactor iperf3cli popen arg list generation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 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: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934 Gerrit-Change-Number: 18839 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 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 Tue Jun 16 10:04:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 10:04:04 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Refactor iperf3cli popen arg list generation In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 ) Change subject: iperf3: Refactor iperf3cli popen arg list generation ...................................................................... iperf3: Refactor iperf3cli popen arg list generation Change-Id: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934 --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 14 insertions(+), 22 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_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index 13fd455..d79ff98 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -246,14 +246,24 @@ self.log_copied = False self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name())) self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE) + + popen_args = ('iperf3', '-c', self.server.addr(), + '-p', str(self.server.port()), '-J', + '-t', str(time_sec)) + if dir == IPerf3Client.DIR_DL: + popen_args += ('-R',) + elif dir == IPerf3Client.DIR_BI: + popen_args += ('--bidir',) + if proto == IPerf3Client.PROTO_UDP: + popen_args += ('-u', '-b', str(bitrate)) if self.runs_locally(): - proc = self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_locally(netns, popen_args) else: - proc = self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate) + proc = self.prepare_test_proc_remotely(netns, popen_args) proc.set_default_wait_timeout(time_sec + 30) # leave 30 extra sec for remote run, ctrl conn establishment, etc. return proc - def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate): + def prepare_test_proc_remotely(self, netns, popen_args): self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr()) remote_prefix_dir = util.Dir(IPerf3Client.REMOTE_DIR) @@ -262,17 +272,8 @@ self.rem_host.recreate_remote_dir(remote_run_dir) - popen_args = ('iperf3', '-c', self.server.addr(), - '-p', str(self.server.port()), '-J', - '-t', str(time_sec)) if self.logfile_supported: popen_args += ('--logfile', self.remote_log_file,) - if dir == IPerf3Client.DIR_DL: - popen_args += ('-R',) - elif dir == IPerf3Client.DIR_BI: - popen_args += ('--bidir',) - if use_udp: - popen_args += ('-u', '-b', str(bitrate)) if netns: self.process = self.rem_host.RemoteNetNSProcess(self.name(), netns, popen_args, env={}) @@ -280,21 +281,12 @@ self.process = self.rem_host.RemoteProcess(self.name(), popen_args, env={}) return self.process - def prepare_test_proc_locally(self, dir, netns, time_sec, use_udp): + def prepare_test_proc_locally(self, netns, popen_args): pcap_recorder.PcapRecorder(self.testenv, self.run_dir.new_dir('pcap'), None, 'host %s and port not 22' % self.server.addr(), netns) - popen_args = ('iperf3', '-c', self.server.addr(), - '-p', str(self.server.port()), '-J', - '-t', str(time_sec)) if self.logfile_supported: popen_args += ('--logfile', os.path.abspath(self.log_file),) - if dir == IPerf3Client.DIR_DL: - popen_args += ('-R',) - elif dir == IPerf3Client.DIR_BI: - popen_args += ('--bidir',) - if use_udp: - popen_args += ('-u', '-b', '0') if netns: self.process = process.NetNSProcess(self.name(), self.run_dir, netns, popen_args, env={}) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18839 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: I10ab737e1317a52b6ccbd0de2470a9cf0c90c934 Gerrit-Change-Number: 18839 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 Jun 16 10:04:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 10:04:05 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: Add support for setting TOS In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18840 ) Change subject: iperf3: Add support for setting TOS ...................................................................... iperf3: Add support for setting TOS Change-Id: I3ccc249ad1c9598c606303c52eff6823f45afa7b --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index d79ff98..4ccbf42 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -219,7 +219,7 @@ locally = not self._run_node or self._run_node.is_local() return locally - def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None, bitrate=0): + def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None, bitrate=0, tos=None): values = config.get_defaults('iperf3cli') config.overlay(values, self.testenv.suite().config().get('iperf3cli', {})) @@ -256,6 +256,9 @@ popen_args += ('--bidir',) if proto == IPerf3Client.PROTO_UDP: popen_args += ('-u', '-b', str(bitrate)) + if tos is not None: + popen_args += ('-S', str(tos)) + if self.runs_locally(): proc = self.prepare_test_proc_locally(netns, popen_args) else: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18840 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: I3ccc249ad1c9598c606303c52eff6823f45afa7b Gerrit-Change-Number: 18840 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 Jun 16 10:04:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 10:04:12 +0000 Subject: Change in osmo-gsm-tester[master]: doc/manuals: Fix callout definition in code block In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18854 ) Change subject: doc/manuals: Fix callout definition in code block ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18854 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: I2213874592342b12adf7440b25edc706abfc78ba Gerrit-Change-Number: 18854 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 10:04: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 Jun 16 10:04:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 10:04:15 +0000 Subject: Change in osmo-gsm-tester[master]: doc/manuals: Fix callout definition in code block In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18854 ) Change subject: doc/manuals: Fix callout definition in code block ...................................................................... doc/manuals: Fix callout definition in code block Currently osmo-gsm-tester master jenkins build fails while building manual due to errors like: "asciidoc: WARNING: test_api.adoc: line 42: no callouts refer to list item 1" According to asciidoc documentation in [1], code examples can be annotated with callouts, but callouts need to be put inside source code comments. [1] http://www.methods.co.nz/asciidoc/chunked/ch20.html Change-Id: I2213874592342b12adf7440b25edc706abfc78ba --- M doc/manuals/chapters/test_api.adoc 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/test_api.adoc b/doc/manuals/chapters/test_api.adoc index f159348..c0a2ee8 100644 --- a/doc/manuals/chapters/test_api.adoc +++ b/doc/manuals/chapters/test_api.adoc @@ -34,10 +34,10 @@ process locally in the same host and wait for its termination: [source,python] ---- -proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') <1> -tenv.remember_to_stop(proc) <2> -proc.launch() <3> -proc.wait() <4> +proc = process.Process('process_description_name', working_dir_to_store_logs, 'sleep 4') # <1> +tenv.remember_to_stop(proc) # <2> +proc.launch() # <3> +proc.wait() # <4> ---- <1> Create process object. This line doesn't yet runs it. <2> Make sure the core will kill the process if this test fails -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18854 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: I2213874592342b12adf7440b25edc706abfc78ba Gerrit-Change-Number: 18854 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 10:14:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 10:14:44 +0000 Subject: Change in osmo-bsc[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18374 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: Code-Review+2 combine two +1 (earlier +1 from fixeria) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5dc872149154e1a949bb6a2b9bbc1461e0fc51f6 Gerrit-Change-Number: 18374 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 10: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 Tue Jun 16 10:16:30 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 10:16:30 +0000 Subject: Change in osmo-bsc[master]: add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18347 ) Change subject: add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-bsc --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: I316efedb2c1652791434ecf14a1e261367cd2fb7 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: 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 9ddbe35..0e5b4e6 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -104,12 +104,14 @@ printf(" -e --log-level number Set a global loglevel.\n"); printf(" -r --rf-ctl NAME A unix domain socket to listen for cmds.\n"); printf(" -t --testmode A special mode to provoke failures at the MSC.\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { {"help", 0, 0, 'h'}, {"debug", 1, 0, 'd'}, @@ -122,6 +124,7 @@ {"log-level", 1, 0, 'e'}, {"rf-ctl", 1, 0, 'r'}, {"testmode", 0, 0, 't'}, + {"vty-ref-xml", 0, &long_option, 1}, {0, 0, 0, 0} }; @@ -135,6 +138,15 @@ print_usage(); print_help(); exit(0); + case 0: + switch (long_option) { + case 1: + vty_dump_xml_ref(stdout); + exit(0); + default: + fprintf(stderr, "error parsing cmdline options\n"); + exit(2); + } case 's': log_set_use_color(osmo_stderr_target, 0); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I316efedb2c1652791434ecf14a1e261367cd2fb7 Gerrit-Change-Number: 18347 Gerrit-PatchSet: 6 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 Tue Jun 16 10:16:33 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 10:16:33 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc main: exit on cmdline option error In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18797 ) Change subject: osmo-bsc main: exit on cmdline option error ...................................................................... osmo-bsc main: exit on cmdline option error Change-Id: I7c3432790a77ae9081d2c458ee9f598e435e089d --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: laforge: 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 0e5b4e6..9eaaf2a 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -173,8 +173,9 @@ rf_ctrl = optarg; break; default: - /* ignore */ - break; + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c3432790a77ae9081d2c458ee9f598e435e089d Gerrit-Change-Number: 18797 Gerrit-PatchSet: 2 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 admin at opensuse.org Tue Jun 16 10:31:55 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 16 Jun 2020 10:31:55 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee89fa0a909f_e962b0071b305f020482da@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 453s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 453s] [1932/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 453s] [1933/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 453s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 454s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 454s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudm-handler.c.o' -c ../src/udm/nudm-handler.c [ 454s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 454s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 454s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 454s] ../src/udm/context.c: In function ?udm_ue_add?: [ 454s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 454s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 454s] ~~^ [ 454s] %d [ 454s] cc1: some warnings being treated as errors [ 454s] [1938/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 454s] [1939/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-build.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-build.c.o' -c ../src/udm/nudr-build.c [ 454s] [1940/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 454s] ninja: build stopped: subcommand failed. [ 454s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1 [ 454s] make: *** [debian/rules:11: binary] Error 1 [ 454s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 454s] ### VM INTERACTION START ### [ 457s] [ 442.663524] sysrq: SysRq : Power Off [ 457s] [ 442.667920] reboot: Power down [ 458s] ### VM INTERACTION END ### [ 458s] [ 458s] armbuild22 failed "build open5gs_1.2.5.20200616.dsc" at Tue Jun 16 10:31:38 UTC 2020. [ 458s] -- 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 Jun 16 10:41:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 10:41:32 +0000 Subject: Change in osmo-bts[master]: doc: Fix typos in bts-models.adoc References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18855 ) Change subject: doc: Fix typos in bts-models.adoc ...................................................................... doc: Fix typos in bts-models.adoc Change-Id: I05c9eb9b0edda528363a16d27dbf683994d9ab62 --- M doc/manuals/chapters/bts-models.adoc 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/55/18855/1 diff --git a/doc/manuals/chapters/bts-models.adoc b/doc/manuals/chapters/bts-models.adoc index 4b48d4b..6365479 100644 --- a/doc/manuals/chapters/bts-models.adoc +++ b/doc/manuals/chapters/bts-models.adoc @@ -248,7 +248,7 @@ GSM is a TDMA (time division multiple access) system on the radio interface. OsmoTRX is the "clock master" of that in the Osmocom implementation. It informs OsmoBTS of the current GSM frame -number. However, as there is non-zero delays (UDP packet trnsmission +number. However, as there is non-zero delays (UDP packet transmission delay, operating system scheduler delay on both OsmoTRX and OsmoBTS side, ...), OsmoBTS must compensate for that delay by "advancing" the clock a certain amount of time. @@ -266,7 +266,7 @@ The detailed value will depend on your underlying computer systems, operating system and related tuning parameters. Running OsmoTRX -on a remote host will inevitably require a higher fn-advance then +on a remote host will inevitably require a higher fn-advance than running it on the same machine, where the UDP packetes are just passed over the loopback device. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I05c9eb9b0edda528363a16d27dbf683994d9ab62 Gerrit-Change-Number: 18855 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 Jun 16 10:42:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 10:42:33 +0000 Subject: Change in osmo-bts[master]: doc: Fix typos in bts-models.adoc In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/18855 ) Change subject: doc: Fix typos in bts-models.adoc ...................................................................... doc: Fix typos in bts-models.adoc Change-Id: I05c9eb9b0edda528363a16d27dbf683994d9ab62 --- M doc/manuals/chapters/bts-models.adoc 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/55/18855/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I05c9eb9b0edda528363a16d27dbf683994d9ab62 Gerrit-Change-Number: 18855 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 Jun 16 10:44:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 10:44:35 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere 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-msc/+/18715 to look at the new patch set (#4). Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea --- M include/osmocom/msc/gsm_04_08.h M include/osmocom/msc/msub.h M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/msub.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_access_req_fsm.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 20 files changed, 231 insertions(+), 255 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/18715/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 10:44:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 10:44:35 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 to look at the new patch set (#3). Change subject: add rudimentary NRI support for MSC pooling ...................................................................... add rudimentary NRI support for MSC pooling This patch served for a manual testing counterpart for osmo-bsc to implement MSC pooling. This enables a basic MSC pooling setup, but for a production setup, osmo-msc would still lack various features related to unloading subscribers to another MSC as explained in 3GPP TS 23.236. Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 --- M include/osmocom/msc/vlr.h M src/libmsc/msc_vty.c M src/libvlr/vlr.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_hlr_timeout.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/test_nodes.vty 17 files changed, 218 insertions(+), 122 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/70/18770/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 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 Tue Jun 16 10:59:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 10:59:30 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18712 ) Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 10:59: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 Jun 16 11:03:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 11:03:36 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c at 2094 PS3, Line 2094: FIRST [LAST] I'm not sure if this FIRST / LAST (generic variables that accept any kind of string) is the best here. We typically express numeric values in the VTY syntax so the VTY will already reject any kind of unexpected/unknown value. I guess the rationale here is to be able to specify them as both decimal and hex. But is this really a good idea? Isn't it more confusing if there are multiple options? Especially as I'm sure if you enter it as hex it will be saved as integer (or vice-versa?) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 11:03:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 11:54:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 11:54:39 +0000 Subject: Change in osmo-bts[master]: scheduler: Improve logging about prim being out of range References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18856 ) Change subject: scheduler: Improve logging about prim being out of range ...................................................................... scheduler: Improve logging about prim being out of range Change-Id: Ie7ea210fee1f59ece3abe171b64cdc04670c344b --- M src/common/scheduler.c 1 file changed, 7 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/56/18856/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index e55b3a4..e1e7c95 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -635,7 +635,7 @@ { struct msgb *msg, *msg2; struct osmo_phsap_prim *l1sap; - uint32_t prim_fn; + uint32_t prim_fn, l1sap_fn; uint8_t chan_nr, link_id; struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); @@ -655,22 +655,24 @@ case PRIM_PH_DATA: chan_nr = l1sap->u.data.chan_nr; link_id = l1sap->u.data.link_id; - prim_fn = ((l1sap->u.data.fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); + l1sap_fn = l1sap->u.data.fn; break; case PRIM_TCH: chan_nr = l1sap->u.tch.chan_nr; link_id = 0; - prim_fn = ((l1sap->u.tch.fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); + l1sap_fn = l1sap->u.tch.fn; break; default: goto wrong_type; } + prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); if (prim_fn > 100) { LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, - "Prim %u is out of range (100), or channel %s with " + "Prim %u is out of range (%u vs exp %u), or channel %s with " "type %s is already disabled. If this happens in " "conjunction with PCU, increase 'rts-advance' by 5.\n", - prim_fn, get_lchan_by_chan_nr(l1t->trx, chan_nr)->name, + prim_fn, l1sap_fn, fn, + get_lchan_by_chan_nr(l1t->trx, chan_nr)->name, trx_chan_desc[chan].name); /* unlink and free message */ llist_del(&msg->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie7ea210fee1f59ece3abe171b64cdc04670c344b Gerrit-Change-Number: 18856 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 Jun 16 11:57:31 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 11:57:31 +0000 Subject: Change in osmo-bts[master]: doc: Fix typos in bts-models.adoc In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18855 ) Change subject: doc: Fix typos in bts-models.adoc ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I05c9eb9b0edda528363a16d27dbf683994d9ab62 Gerrit-Change-Number: 18855 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 16 Jun 2020 11:57: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 Jun 16 11:58:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 11:58:56 +0000 Subject: Change in osmo-bts[master]: doc: Fix typos in bts-models.adoc In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18855 ) Change subject: doc: Fix typos in bts-models.adoc ...................................................................... doc: Fix typos in bts-models.adoc Change-Id: I05c9eb9b0edda528363a16d27dbf683994d9ab62 --- M doc/manuals/chapters/bts-models.adoc 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/doc/manuals/chapters/bts-models.adoc b/doc/manuals/chapters/bts-models.adoc index 4b48d4b..495571f 100644 --- a/doc/manuals/chapters/bts-models.adoc +++ b/doc/manuals/chapters/bts-models.adoc @@ -248,7 +248,7 @@ GSM is a TDMA (time division multiple access) system on the radio interface. OsmoTRX is the "clock master" of that in the Osmocom implementation. It informs OsmoBTS of the current GSM frame -number. However, as there is non-zero delays (UDP packet trnsmission +number. However, as there is non-zero delays (UDP packet transmission delay, operating system scheduler delay on both OsmoTRX and OsmoBTS side, ...), OsmoBTS must compensate for that delay by "advancing" the clock a certain amount of time. @@ -266,8 +266,8 @@ The detailed value will depend on your underlying computer systems, operating system and related tuning parameters. Running OsmoTRX -on a remote host will inevitably require a higher fn-advance then -running it on the same machine, where the UDP packetes are just passed +on a remote host will inevitably require a higher fn-advance than +running it on the same machine, where the UDP packets are just passed over the loopback device. The default value for `fn-advance` is 20 (corresponding to 92 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I05c9eb9b0edda528363a16d27dbf683994d9ab62 Gerrit-Change-Number: 18855 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 12:09:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 12:09:47 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 3 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 3 ...................................................................... Patch Set 1: > Patch Set 1: > > Using with osmo-trx-uhd B200 with multi-arfcn (2TRX) as requested by Daniel: > osmotrx fn-advance 2 > osmotrx rts-advance 3 > > I see lots of issues in osmo-bts-trx like this: > 20200609163224911 DL1P <0007> scheduler.c:669 1027203/774/21/12/27 (bts=0,trx=1,ts=7) PDTCH: Prim 2715644 is out of range (100), or channel (bts=0,trx=1,ts=7,ss=0) with type PDTCH is already disabled. If this happens in conjunction with PCU, increase 'rts-advance' by 5. > > No issue shows up in osmo-trx. I improved a bit the related log, since I'm getting similar warnings with current default values in master when there's heavy traffic in the MS (like loading a web page): https://paste.debian.net/1152330/ I have the feeling the prim_fn calculation in there may be wrong. Notice how fns stored in the queue are lower than the one we are at. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 12:09: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 Jun 16 12:20:55 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 12:20:55 +0000 Subject: Change in osmo-bts[master]: scheduler: Improve logging about prim being out of range In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18856 ) Change subject: scheduler: Improve logging about prim being out of range ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie7ea210fee1f59ece3abe171b64cdc04670c344b Gerrit-Change-Number: 18856 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 16 Jun 2020 12:20:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 12:22:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 12:22:23 +0000 Subject: Change in osmo-bts[master]: scheduler: Improve logging about prim being out of range In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18856 ) Change subject: scheduler: Improve logging about prim being out of range ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie7ea210fee1f59ece3abe171b64cdc04670c344b Gerrit-Change-Number: 18856 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 16 Jun 2020 12: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 Tue Jun 16 12:35:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 12:35:30 +0000 Subject: Change in osmo-bts[master]: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18857 ) Change subject: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases ...................................................................... scheduler: Early return in _sched_dequeue_prim() and clarify FN cases We should always expect the msgb queue to be ordered by FN, so there's no use in continue traversing the queue after we found a later primitive than the one at current time, since next onews will be even more in the future. Change-Id: If57fc3d89a74e6cbc79fce80dae7bf4f77e9364d --- M src/common/scheduler.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/57/18857/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index e1e7c95..86978eb 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -666,7 +666,7 @@ goto wrong_type; } prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); - if (prim_fn > 100) { + if (prim_fn > 100) { /* l1sap_fn < fn */ LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Prim %u is out of range (%u vs exp %u), or channel %s with " "type %s is already disabled. If this happens in " @@ -679,9 +679,10 @@ msgb_free(msg); continue; } - if (prim_fn > 0) - continue; + if (prim_fn > 0) /* l1sap_fn > fn */ + return NULL; + /* l1sap_fn == fn */ goto found_msg; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If57fc3d89a74e6cbc79fce80dae7bf4f77e9364d Gerrit-Change-Number: 18857 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 Jun 16 12:38:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 12:38:11 +0000 Subject: Change in osmo-bts[master]: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18857 ) Change subject: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If57fc3d89a74e6cbc79fce80dae7bf4f77e9364d Gerrit-Change-Number: 18857 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 12: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 Jun 16 13:10:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:10:00 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18858 ) Change subject: add osmo_mobile_identity API ...................................................................... add osmo_mobile_identity API Implement better API around 3GPP TS 24.008 Mobile Identity coding. struct osmo_mobile_identity is a decoded representation of the raw Mobile Identity, with a string representation as well as dedicated raw uint32_t TMSI. The aim is to remove all uncertainty about decoded buffer sizes / data types. I have patches ready for current osmo CNI programs, replacing the Mobile Identity coding with this new API. Deprecate the old MI API. osmo-bsc: I71c3b4c65dbfdfa51409e09d4868aea83225338a osmo-msc: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 osmo-sgsn: I4cacb10bac419633ca0c14f244f9903f7f517b49 Note that some GPRS and SGs related coding is done here in libosmocore and hence currently remains using the old implementation (see previous version of this patch: Ic3f969e739654c1e8c387aedeeba5cce07fe2307). New API functions provide properly size-checking implementations of: - decoding a raw MI from a bunch of MI octets; - locating and decoding MI from a full 3GPP TS 24.008 Complete Layer 3 msgb; - encoding to a buffer; - encoding to the end of a msgb. Other than the old gsm48_generate_mid(), omit a TLV tag and length from encoding. Many callers manually stripped the tag and value after calling gsm48_generate_mid(). The aim is to leave writing a TL to the caller entirely, especially since some callers need to use a TvL, i.e. support a variable-size length of 8 or 16 bit. New validity checks so far not implemented anywhere else: - stricter validation of number of digits of IMSI, IMEI, IMEI-SV MI. - stricter on filler nibbles to be 0xf. As a result, applications using osmo_mobile_identity will be stricter in rejecting coding mistakes (some of which we currently have in our test suites, and which we'll need to fix). Rationale: While implementing osmo-bsc's MSC pooling feature in osmo-bsc, this API will be used to reduce the number of times a Mobile Identity is extracted from a raw RSL message. Extracting the Mobile Identity from messages has numerous duplicate implementations across our code with various levels of specialization. https://xkcd.com/927/ To name a few: - libosmocore: gsm48_mi_to_string(), osmo_mi_name_buf() - osmo-bsc: extract_sub() - osmo-msc: mm_rx_loc_upd_req(), cm_serv_reuse_conn(), gsm48_rx_mm_serv_req(), vlr_proc_acc_req() We have existing functions to produce a human readable string from a Mobile Identity, more or less awkward: - gsm48_mi_to_string() decodes a TMSI as a decimal number. These days we use hexadecimal TMSI everywhere. - osmo_mi_name_buf() decodes the BCD digits from a raw MI every time, so we'd need to pass around the raw message bytes. Also, osmo_mi_name_buf() has the wrong signature, it should return a length like snprintf(). - osmo-bsc's extract_sub() first uses gsm48_mi_to_string() which encodes the raw uint32_t TMSI to a string, and then calls strtoul() via tmsi_from_string() to code those back to a raw uint32_t. Each of the above implementations employ their own size overflow checks, each invoke osmo_bcd2str() and implement their own TMSI osmo_load32be() handling. Too much code dup, let's hope that each and every one is correct. In osmo-bsc, I am now implementing MSC pooling, and need to extract NRI bits from a TMSI Mobile Identity. Since none of the above functions are general enough to be re-used, I found myself again copy-pasting Mobile Identity code: locating the MI in a 24.008 message with proper size checks, decoding MI octets. This time I would like it to become a generally re-usable API. This patch was first merged as Ic3f969e739654c1e8c387aedeeba5cce07fe2307 and caused test fallout, because it re-implemented old API with the new stricter decoding. In this patch version, old API remains 1:1 unchanged to avoid such fallout. Applications will soon switch to the new osmo_mobile_identity API and become stricter on MI coding when that happens, not implicitly by a new libosmocore version. Change-Id: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 9 files changed, 1,019 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/18858/1 diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index e637786..8619120 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -55,6 +55,7 @@ uint8_t osmo_char2bcd(char c); int osmo_bcd2str(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex); +int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex); int osmo_hexparse(const char *str, uint8_t *b, int max_len); diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h index 7c68b1d..f772f4a 100644 --- a/include/osmocom/gsm/gsm48.h +++ b/include/osmocom/gsm/gsm48.h @@ -4,10 +4,12 @@ #include +#include #include #include #include +#include #include #include @@ -48,16 +50,55 @@ void gsm48_generate_lai2(struct gsm48_loc_area_id *lai48, const struct osmo_location_area_id *lai); #define GSM48_MID_MAX_SIZE 11 -int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi); -int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi); -uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type); +int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) + OSMO_DEPRECATED_OUTSIDE("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); +int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) + OSMO_DEPRECATED_OUTSIDE("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); +uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) + OSMO_DEPRECATED_OUTSIDE("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); -/* Convert Mobile Identity (10.5.1.4) to string */ -int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len); const char *gsm48_mi_type_name(uint8_t mi); -const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len); -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len); -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len); +/* Convert encoded Mobile Identity (10.5.1.4) to string */ +int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_decode()"); +const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_to_str_c()"); +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_to_str_buf()"); +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_to_str_c()"); + +/*! Decoded representation of a Mobile Identity (3GPP TS 24.008 10.5.1.4). + * See osmo_mobile_identity_decode() and osmo_mobile_identity_from_l3(). */ +struct osmo_mobile_identity { + /*! A GSM_MI_TYPE_* constant (like GSM_MI_TYPE_IMSI). */ + uint8_t type; + /*! Decoded Mobile Identity digits or TMSI value. IMSI, IMEI and IMEISV as digits like + * "12345678", and TMSI is represented as raw uint32_t. */ + union { + /*! type == GSM_MI_TYPE_IMSI. */ + char imsi[GSM23003_IMSI_MAX_DIGITS + 1]; + /*! type == GSM_MI_TYPE_IMEI. */ + char imei[GSM23003_IMEI_NUM_DIGITS + 1]; + /*! type == GSM_MI_TYPE_IMEISV. */ + char imeisv[GSM23003_IMEISV_NUM_DIGITS + 1]; + /*! TMSI / P-TMSI / M-TMSI integer value if type == GSM_MI_TYPE_TMSI. */ + uint32_t tmsi; + }; +}; + +int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi); +char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi); +int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b); +int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, + bool allow_hex); +int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex); +int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits); +int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex); +int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex); /* Parse Routeing Area Identifier */ void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf); diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 8d0998b..4368ce2 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -45,6 +45,7 @@ #include #include #include +#include /*! \addtogroup gsm0408 * @{ @@ -458,7 +459,8 @@ return get_value_string(mi_type_names, mi); } -/*! Return a human readable representation of a Mobile Identity in caller-provided buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in caller-provided buffer. * \param[out] buf caller-provided output buffer * \param[in] buf_len size of buf in bytes * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. @@ -497,7 +499,8 @@ } } -/*! Return a human readable representation of a Mobile Identity in static buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in static buffer. * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid"... @@ -508,7 +511,8 @@ return osmo_mi_name_buf(mi_name, sizeof(mi_name), mi, mi_len); } -/*! Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. * \param[in] ctx talloc context from which to allocate output buffer * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. @@ -524,6 +528,450 @@ return osmo_mi_name_buf(mi_name, buf_len, mi, mi_len); } +/*! Extract Mobile Identity from encoded bytes (3GPP TS 24.008 10.5.1.4). + * + * On failure (negative return value), mi->type == GSM_MI_TYPE_NONE, mi->string[] is all-zero and mi->tmsi == + * GSM_RESERVED_TMSI. + * + * On success, mi->type reflects the decoded Mobile Identity type (GSM_MI_TYPE_IMSI, GSM_MI_TYPE_TMSI, GSM_MI_TYPE_IMEI + * or GSM_MI_TYPE_IMEISV). + * + * On success, mi->string always contains a human readable representation of the Mobile Identity digits: IMSI, IMEI and + * IMEISV as digits like "12345678", and TMSI as "0x" and 8 hexadecimal digits like "0x1234abcd". + * + * mi->tmsi contains the uint32_t TMSI value iff the extracted Mobile Identity was a TMSI, or GSM_RESERVED_TMSI + * otherwise. + * + * \param[out] mi Return buffer for decoded Mobile Identity. + * \param[in] mi_data The encoded Mobile Identity octets. + * \param[in] mi_len Number of octets in mi_data. + * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. + * \returns 0 on success, negative on error: -EBADMSG = invalid length indication or invalid data, + * -EINVAL = unknown Mobile Identity type. + */ +int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, + bool allow_hex) +{ + int rc; + int nibbles_len; + char *str; + size_t str_size; + + if (!mi_data || mi_len < 1) + return -EBADMSG; + + nibbles_len = (mi_len - 1) * 2 + ((mi_data[0] & GSM_MI_ODD) ? 1 : 0); + + *mi = (struct osmo_mobile_identity){ + .type = mi_data[0] & GSM_MI_TYPE_MASK, + }; + + /* First do length checks */ + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + mi->tmsi = GSM_RESERVED_TMSI; + if (nibbles_len != (GSM23003_TMSI_NUM_BYTES * 2)) { + rc = -EBADMSG; + goto return_error; + } + break; + + case GSM_MI_TYPE_IMSI: + if (nibbles_len < GSM23003_IMSI_MIN_DIGITS || nibbles_len > GSM23003_IMSI_MAX_DIGITS) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imsi; + str_size = sizeof(mi->imsi); + break; + + case GSM_MI_TYPE_IMEI: + if (nibbles_len != GSM23003_IMEI_NUM_DIGITS && nibbles_len != GSM23003_IMEI_NUM_DIGITS_NO_CHK) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imei; + str_size = sizeof(mi->imei); + break; + + case GSM_MI_TYPE_IMEISV: + if (nibbles_len != GSM23003_IMEISV_NUM_DIGITS) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imeisv; + str_size = sizeof(mi->imeisv); + break; + + default: + rc = -EINVAL; + goto return_error; + } + + /* Decode BCD digits */ + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + /* MI is a 32bit integer TMSI. Length has been checked above. */ + if ((mi_data[0] & 0xf0) != 0xf0) { + /* A TMSI always has the first nibble == 0xf */ + rc = -EBADMSG; + goto return_error; + } + mi->tmsi = osmo_load32be(&mi_data[1]); + return 0; + + case GSM_MI_TYPE_IMSI: + case GSM_MI_TYPE_IMEI: + case GSM_MI_TYPE_IMEISV: + /* If the length is even, the last nibble (higher nibble of last octet) must be 0xf */ + if (!(mi_data[0] & GSM_MI_ODD) + && ((mi_data[mi_len - 1] & 0xf0) != 0xf0)) { + rc = -EBADMSG; + goto return_error; + } + rc = osmo_bcd2str(str, str_size, mi_data, 1, 1 + nibbles_len, allow_hex); + /* rc checked below */ + break; + + default: + /* Already handled above, but as future bug paranoia: */ + rc = -EINVAL; + goto return_error; + } + + /* check mi->str printing rc */ + if (rc < 1 || rc >= str_size) { + rc = -EBADMSG; + goto return_error; + } + return 0; + +return_error: + *mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_NONE, + }; + return rc; +} + +/*! Return the number of encoded Mobile Identity octets, without actually encoding. + * Useful to write tag-length header before encoding the MI. + * \param[in] mi Mobile Identity. + * \param[out] mi_digits If not NULL, store the number of nibbles of used MI data (i.e. strlen(mi->string) or 8 for a TMSI). + * \return octets that osmo_mobile_identity_encode_msgb() will write for this mi. + */ +int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits) +{ + int mi_nibbles; + if (!mi) + return -EINVAL; + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + mi_nibbles = GSM23003_TMSI_NUM_BYTES * 2; + break; + case GSM_MI_TYPE_IMSI: + mi_nibbles = strlen(mi->imsi); + if (mi_nibbles < GSM23003_IMSI_MIN_DIGITS + || mi_nibbles > GSM23003_IMSI_MAX_DIGITS) + return -EINVAL; + break; + case GSM_MI_TYPE_IMEI: + mi_nibbles = strlen(mi->imei); + if (mi_nibbles < GSM23003_IMEI_NUM_DIGITS_NO_CHK + || mi_nibbles > GSM23003_IMEI_NUM_DIGITS) + return -EINVAL; + break; + case GSM_MI_TYPE_IMEISV: + mi_nibbles = strlen(mi->imeisv); + if (mi_nibbles != GSM23003_IMEISV_NUM_DIGITS) + return -EINVAL; + break; + default: + return -ENOTSUP; + } + + if (mi_digits) + *mi_digits = mi_nibbles; + + /* one type nibble, plus the MI nibbles, plus a filler nibble to complete the last octet: + * mi_octets = ceil((float)(mi_nibbles + 1) / 2) + */ + return (mi_nibbles + 2) / 2; +} + +/*! Encode Mobile Identity from uint32_t (TMSI) or digits string (all others) (3GPP TS 24.008 10.5.1.4). + * + * \param[out] buf Return buffer for encoded Mobile Identity. + * \param[in] buflen sizeof(buf). + * \param[in] mi Mobile identity to encode. + * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. + * \returns Amount of bytes written to buf, or negative on error. + */ +int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex) +{ + int rc; + int nibbles_len; + int mi_octets; + const char *mi_str; + + if (!buf || !buflen) + return -EIO; + + mi_octets = osmo_mobile_identity_encoded_len(mi, &nibbles_len); + if (mi_octets < 0) + return mi_octets; + if (mi_octets > buflen) + return -ENOSPC; + + buf[0] = (mi->type & GSM_MI_TYPE_MASK) | ((nibbles_len & 1) ? GSM_MI_ODD : 0); + + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + buf[0] |= 0xf0; + osmo_store32be(mi->tmsi, &buf[1]); + return mi_octets; + + case GSM_MI_TYPE_IMSI: + mi_str = mi->imsi; + break; + case GSM_MI_TYPE_IMEI: + mi_str = mi->imei; + break; + case GSM_MI_TYPE_IMEISV: + mi_str = mi->imeisv; + break; + default: + return -ENOTSUP; + } + rc = osmo_str2bcd(buf, buflen, mi_str, 1, -1, allow_hex); + if (rc != mi_octets) + return -EINVAL; + return mi_octets; +} + +/*! Encode Mobile Identity type and BCD digits, appended to a msgb. + * Example to add a GSM48_IE_MOBILE_ID IEI with tag and length to a msgb: + * + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, .tmsi = random_tmsi, }; + * uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); + * int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + * if (rc < 0) + * goto error; + * *l = rc; + * + * Example to add a BSSGP_IE_IMSI with tag and variable-size length, where the + * length needs to be known at the time of writing the IE tag-length header: + * + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; + * OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); + * msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); + * if (osmo_mobile_identity_encode_msgb(msg, &mi, false) < 0) + * goto error; + */ +int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex) +{ + int rc = osmo_mobile_identity_encode_buf(msg->tail, msgb_tailroom(msg), mi, allow_hex); + if (rc < 0) + return rc; + msgb_put(msg, rc); + return rc; +} + +/*! Extract Mobile Identity from a Complete Layer 3 message. + * + * Determine the Mobile Identity data and call osmo_mobile_identity_decode() to return a decoded struct + * osmo_mobile_identity. + * + * \param[out] mi Return buffer for decoded Mobile Identity. + * \param[in] msg The Complete Layer 3 message to extract from (LU, CM Service Req or Paging Resp). + * \returns 0 on success, negative on error: return codes as defined in osmo_mobile_identity_decode(), or + * -ENOTSUP = not a Complete Layer 3 message, + */ +int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex) +{ + const struct gsm48_hdr *gh; + int8_t pdisc = 0; + uint8_t mtype = 0; + const struct gsm48_loc_upd_req *lu; + const uint8_t *cm2_buf; + uint8_t cm2_len; + const uint8_t *mi_start; + const struct gsm48_pag_resp *paging_response; + const uint8_t *mi_data; + uint8_t mi_len; + const struct gsm48_imsi_detach_ind *idi; + + *mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_NONE, + .tmsi = GSM_RESERVED_TMSI, + }; + + if (msgb_l3len(msg) < sizeof(*gh)) + return -EBADMSG; + + gh = msgb_l3(msg); + pdisc = gsm48_hdr_pdisc(gh); + mtype = gsm48_hdr_msg_type(gh); + + switch (pdisc) { + case GSM48_PDISC_MM: + + switch (mtype) { + case GSM48_MT_MM_LOC_UPD_REQUEST: + /* First make sure that lu-> can be dereferenced */ + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) + return -EBADMSG; + + /* Now we know there is enough msgb data to read a lu->mi_len, so also check that */ + lu = (struct gsm48_loc_upd_req*)gh->data; + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu) + lu->mi_len) + return -EBADMSG; + mi_data = lu->mi; + mi_len = lu->mi_len; + goto got_mi; + + case GSM48_MT_MM_CM_SERV_REQ: + case GSM48_MT_MM_CM_REEST_REQ: + /* Unfortunately in Phase1 the Classmark2 length is variable, so we cannot + * just use gsm48_service_request struct, and need to parse it manually. */ + if (msgb_l3len(msg) < sizeof(*gh) + 2) + return -EBADMSG; + + cm2_len = gh->data[1]; + cm2_buf = gh->data + 2; + goto got_cm2; + + case GSM48_MT_MM_IMSI_DETACH_IND: + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*idi)) + return -EBADMSG; + idi = (struct gsm48_imsi_detach_ind*) gh->data; + mi_data = idi->mi; + mi_len = idi->mi_len; + goto got_mi; + + case GSM48_MT_MM_ID_RESP: + if (msgb_l3len(msg) < sizeof(*gh) + 2) + return -EBADMSG; + mi_data = gh->data+1; + mi_len = gh->data[0]; + goto got_mi; + + default: + break; + } + break; + + case GSM48_PDISC_RR: + + switch (mtype) { + case GSM48_MT_RR_PAG_RESP: + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*paging_response)) + return -EBADMSG; + paging_response = (struct gsm48_pag_resp*)gh->data; + cm2_len = paging_response->cm2_len; + cm2_buf = (uint8_t*)&paging_response->cm2; + goto got_cm2; + + default: + break; + } + break; + } + + return -ENOTSUP; + +got_cm2: + /* MI (Mobile Identity) LV follows the Classmark2 */ + + /* There must be at least a mi_len byte after the CM2 */ + if (cm2_buf + cm2_len + 1 > msg->tail) + return -EBADMSG; + + mi_start = cm2_buf + cm2_len; + mi_len = mi_start[0]; + mi_data = mi_start + 1; + +got_mi: + /* mi_data points at the start of the Mobile Identity coding of mi_len bytes */ + if (mi_data + mi_len > msg->tail) + return -EBADMSG; + + return osmo_mobile_identity_decode(mi, mi_data, mi_len, allow_hex); +} + +/*! Return a human readable representation of a struct osmo_mobile_identity. + * Write a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". + * \param[out] buf String buffer to write to. + * \param[in] buflen sizeof(buf). + * \param[in] mi Decoded Mobile Identity data. + * \return the strlen() of the string written when buflen is sufficiently large, like snprintf(). + */ +int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + if (!mi) + return snprintf(buf, buflen, "NULL"); + OSMO_STRBUF_PRINTF(sb, "%s", gsm48_mi_type_name(mi->type)); + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + OSMO_STRBUF_PRINTF(sb, "-0x%08" PRIX32, mi->tmsi); + break; + case GSM_MI_TYPE_IMSI: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imsi); + break; + case GSM_MI_TYPE_IMEI: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imei); + break; + case GSM_MI_TYPE_IMEISV: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imeisv); + break; + default: + break; + } + return sb.chars_needed; +} + +/*! Like osmo_mobile_identity_to_str_buf(), but return the string in a talloc buffer. + * \param[in] ctx Talloc context to allocate from. + * \param[in] mi Decoded Mobile Identity data. + * \return a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". + */ +char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi) +{ + OSMO_NAME_C_IMPL(ctx, 32, "ERROR", osmo_mobile_identity_to_str_buf, mi) +} + +/*! Compare two osmo_mobile_identity structs, returning typical cmp() result. + * \param[in] a Left side osmo_mobile_identity. + * \param[in] b Right side osmo_mobile_identity. + * \returns 0 if both are equal, -1 if a < b, 1 if a > b. + */ +int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b) +{ + int cmp; + if (a == b) + return 0; + if (!a) + return -1; + if (!b) + return 1; + cmp = OSMO_CMP(a->type, b->type); + if (cmp) + return cmp; + switch (a->type) { + case GSM_MI_TYPE_TMSI: + return OSMO_CMP(a->tmsi, b->tmsi); + case GSM_MI_TYPE_IMSI: + return strncmp(a->imsi, b->imsi, sizeof(a->imsi)); + case GSM_MI_TYPE_IMEI: + return strncmp(a->imei, b->imei, sizeof(a->imei)); + case GSM_MI_TYPE_IMEISV: + return strncmp(a->imeisv, b->imeisv, sizeof(a->imeisv)); + default: + /* No known type, but both have the same type. */ + return 0; + } +} + /*! Checks is particular message is cipherable in A/Gb mode according to * 3GPP TS 24.008 ? 4.7.1.2 * \param[in] hdr Message header @@ -676,7 +1124,8 @@ } } -/*! Generate TS 04.08 Mobile ID from TMSI +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 04.08 Mobile ID from TMSI * \param[out] buf Caller-provided output buffer (7 bytes) * \param[in] tmsi TMSI to be encoded * \returns number of byes encoded (always 7) */ @@ -692,7 +1141,8 @@ return 7; } -/*! Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string * \param[out] buf Caller-provided output buffer of at least GSM48_MID_MAX_SIZE bytes * \param[in] id Identity to be encoded * \param[in] mi_type Type of identity (e.g. GSM_MI_TYPE_IMSI, IMEI, IMEISV) @@ -724,7 +1174,8 @@ return 2 + buf[1]; } -/*! Generate TS 04.08 Mobile ID from IMSI +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 04.08 Mobile ID from IMSI * \param[out] buf Caller-provided output buffer * \param[in] imsi IMSI to be encoded * \returns number of bytes used in \a buf */ @@ -733,7 +1184,8 @@ return gsm48_generate_mid(buf, imsi, GSM_MI_TYPE_IMSI); } -/*! Convert TS 04.08 Mobile Identity (10.5.1.4) to string. +/*! Deprecated, see osmo_mobile_identity instead. + * Convert TS 04.08 Mobile Identity (10.5.1.4) to string. * This function does not validate the Mobile Identity digits, i.e. digits > 9 are returned as 'A'-'F'. * \param[out] string Caller-provided buffer for output * \param[in] str_len Length of \a string in bytes diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ac9aeb2..742cec3 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -363,6 +363,14 @@ gsm48_generate_mid_from_imsi; gsm48_generate_mid_from_tmsi; gsm48_mi_to_string; +osmo_mobile_identity_to_str_buf; +osmo_mobile_identity_to_str_c; +osmo_mobile_identity_cmp; +osmo_mobile_identity_decode; +osmo_mobile_identity_decode_from_l3; +osmo_mobile_identity_encoded_len; +osmo_mobile_identity_encode_buf; +osmo_mobile_identity_encode_msgb; gsm48_mm_att_tlvdef; gsm48_number_of_paging_subchannels; gsm48_parse_ra; diff --git a/src/utils.c b/src/utils.c index 18e105f..3c4a8c9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -175,6 +175,65 @@ return OSMO_MAX(0, end_nibble - start_nibble); } +/*! Convert string to BCD. + * The given nibble offsets are interpreted in BCD order, i.e. nibble 0 is bcd[0] & 0x0f, nibble 1 is bcd[0] & 0xf0, nibble + * 3 is bcd[1] & 0x0f, etc.. + * \param[out] dst Output BCD buffer. + * \param[in] dst_size sizeof() the output string buffer. + * \param[in] digits String containing decimal or hexadecimal digits in upper or lower case. + * \param[in] start_nibble Offset to start from, in nibbles, typically 1 to skip the first (MI type) nibble. + * \param[in] end_nibble Negative to write all digits found in str, followed by 0xf nibbles to fill any started octet. + * If >= 0, stop before this offset in nibbles, e.g. to get default behavior, pass + * start_nibble + strlen(str) + ((start_nibble + strlen(str)) & 1? 1 : 0) + 1. + * \param[in] allow_hex If false, return error if there are hexadecimal digits (A-F). If true, write those to + * BCD. + * \returns The buffer size in octets that is used to place all bcd digits (including the skipped nibbles + * from 'start_nibble' and rounded up to full octets); -EINVAL on invalid digits; + * -ENOMEM if dst is NULL, if dst_size is too small to contain all nibbles, or if start_nibble is negative. + */ +int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex) +{ + const char *digit = digits; + int nibble_i; + + if (!dst || !dst_size || start_nibble < 0) + return -ENOMEM; + + if (end_nibble < 0) { + end_nibble = start_nibble + strlen(digits); + /* If the last octet is not complete, add another filler nibble */ + if (end_nibble & 1) + end_nibble++; + } + if ((end_nibble / 2) > dst_size) + return -ENOMEM; + + for (nibble_i = start_nibble; nibble_i < end_nibble; nibble_i++) { + uint8_t nibble = 0xf; + int octet = nibble_i >> 1; + if (*digit) { + char c = *digit; + digit++; + if (c >= '0' && c <= '9') + nibble = c - '0'; + else if (allow_hex && c >= 'A' && c <= 'F') + nibble = 0xa + (c - 'A'); + else if (allow_hex && c >= 'a' && c <= 'f') + nibble = 0xa + (c - 'a'); + else + return -EINVAL; + } + nibble &= 0xf; + if ((nibble_i & 1)) + dst[octet] = (nibble << 4) | (dst[octet] & 0x0f); + else + dst[octet] = (dst[octet] & 0xf0) | nibble; + } + + /* floor(float(end_nibble) / 2) */ + return end_nibble / 2; +} + /*! Parse a string containing hexadecimal digits * \param[in] str string containing ASCII encoded hexadecimal digits * \param[out] b output buffer diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 9617823..6cd3381 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -522,9 +522,14 @@ printf(" ERROR: expected '%s'\n", t->expect_mi_tlv_hex); } - /* skip the GSM48_IE_MOBILE_ID tag and length */ - mi_buf = tlv_buf + 2; - mi_len = tlv_len - 2; + if (tlv_len) { + /* skip the GSM48_IE_MOBILE_ID tag and length */ + mi_buf = tlv_buf + 2; + mi_len = tlv_len - 2; + } else { + mi_buf = NULL; + mi_len = 0; + } rc = gsm48_mi_to_string(str, str_size, mi_buf, mi_len); printf(" -> MI-str=%s rc=%d\n", osmo_quote_str(str, -1), rc); @@ -611,6 +616,368 @@ printf("\n"); } +struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) +{ + struct msgb *msg = msgb_alloc_headroom(size, 4, label); + OSMO_ASSERT(msg); + msg->l3h = msgb_put(msg, osmo_hexparse(hex, msg->data, msgb_tailroom(msg))); + return msg; +} + +struct mobile_identity_tc { + const char *label; + const char *compl_l3_msg; + int expect_rc; + struct osmo_mobile_identity expect_mi; +}; + +/* Some Complete Layer 3 messages copied from real GSM network traces. */ +struct mobile_identity_tc mobile_identity_tests[] = { + { + .label = "LU with IMSI 901700000004620", + .compl_l3_msg = "050802008168000130" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "LU with TMSI 0x0980ad8a", + .compl_l3_msg = "05084262f224002a50" "05f40980ad8a", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x0980ad8a, + }, + }, + { + .label = "LU with invalid MI type", + .compl_l3_msg = "050802008168000130" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "LU with truncated IMSI MI", + .compl_l3_msg = "050802008168000130" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too short IMSI MI (12345)", + .compl_l3_msg = "050802008168000130" "03193254", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with just long enough IMSI MI 123456", + .compl_l3_msg = "050802008168000130" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "LU with max length IMSI MI 123456789012345", + .compl_l3_msg = "050802008168000130" "081932547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456789012345", + }, + }, + { + .label = "LU with just too long IMSI MI 1234567890123456", + .compl_l3_msg = "050802008168000130" "091132547698103254f6", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with truncated TMSI MI", + .compl_l3_msg = "05084262f224002a50" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with odd length TMSI", + .compl_l3_msg = "05084262f224002a50" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too long TMSI MI", + .compl_l3_msg = "05084262f224002a50" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too short TMSI", + .compl_l3_msg = "05084262f224002a50" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with IMSI 123456", + .compl_l3_msg = "052401035058a6" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with TMSI 0x5a42e404", + .compl_l3_msg = "052401035058a6" "05f45a42e404", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x5a42e404, + }, + }, + { + .label = "CM Service Request with shorter CM2, with IMSI 123456", + .compl_l3_msg = "052401025058" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with longer CM2, with IMSI 123456", + .compl_l3_msg = "052401055058a62342" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with shorter CM2, with TMSI 0x00000000", + .compl_l3_msg = "052401025058" "05f400000000", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0, + }, + }, + { + .label = "CM Service Request with invalid MI type", + .compl_l3_msg = "052401035058a6" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "CM Service Request with truncated IMSI MI", + .compl_l3_msg = "052401035058a6" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with truncated TMSI MI", + .compl_l3_msg = "0524010150" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with odd length TMSI", + .compl_l3_msg = "052401045058a623" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with too long TMSI MI", + .compl_l3_msg = "052401035058a6" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with too short TMSI", + .compl_l3_msg = "052401035058a6" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Reestablish Request with TMSI 0x5a42e404", + .compl_l3_msg = "052801035058a6" "05f45a42e404", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x5a42e404, + }, + }, + { + .label = "Paging Response with IMSI 1234567", + .compl_l3_msg = "06270003505886" "0419325476", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "1234567", + }, + }, + { + .label = "Paging Response with TMSI 0xb48883de", + .compl_l3_msg = "06270003505886" "05f4b48883de", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0xb48883de, + }, + }, + { + .label = "Paging Response with TMSI, with unused nibble not 0xf", + .compl_l3_msg = "06270003505886" "0504b48883de", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with too short IMEI (1234567)", + .compl_l3_msg = "06270003505886" "041a325476", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with IMEI 123456789012345", + .compl_l3_msg = "06270003505886" "081a32547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "123456789012345", + }, + }, + { + .label = "Paging Response with IMEI 12345678901234 (no Luhn checksum)", + .compl_l3_msg = "06270003505886" "0812325476981032f4", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "12345678901234", + }, + }, + { + .label = "Paging Response with IMEISV 1234567890123456", + .compl_l3_msg = "06270003505886" "091332547698103254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMEISV, + .imeisv = "1234567890123456", + }, + }, + { + .label = "Paging Response with too short IMEISV 123456789012345", + .compl_l3_msg = "06270003505886" "081b32547698103254", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with too long IMEISV 12345678901234567", + .compl_l3_msg = "06270003505886" "091b3254769810325476", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with IMSI 123456789012345 and flipped ODD bit", + .compl_l3_msg = "06270003505886" "081132547698103254", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with IMSI 901700000004620", + .compl_l3_msg = "050130" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "IMSI-Detach with TMSI 0x0980ad8a", + .compl_l3_msg = "050130" "05f40980ad8a", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x0980ad8a, + }, + }, + { + .label = "IMSI-Detach with invalid MI type", + .compl_l3_msg = "050130" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "IMSI-Detach with truncated IMSI MI", + .compl_l3_msg = "050130" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too short IMSI MI (12345)", + .compl_l3_msg = "050130" "03193254", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with just long enough IMSI MI 123456", + .compl_l3_msg = "050130" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "IMSI-Detach with max length IMSI MI 123456789012345", + .compl_l3_msg = "050130" "081932547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456789012345", + }, + }, + { + .label = "IMSI-Detach with just too long IMSI MI 1234567890123456", + .compl_l3_msg = "050130" "091132547698103254f6", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with truncated TMSI MI", + .compl_l3_msg = "050130" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with odd length TMSI", + .compl_l3_msg = "050130" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too long TMSI MI", + .compl_l3_msg = "050130" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too short TMSI", + .compl_l3_msg = "050130" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "Identity Response with IMSI 901700000004620", + .compl_l3_msg = "0519" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "Identity Response with IMEI 123456789012345", + .compl_l3_msg = "0519" "081a32547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "123456789012345", + }, + }, + { + .label = "Identity Response with IMEISV 9876543210987654", + .compl_l3_msg = "0519" "099378563412907856f4", + .expect_mi = { + .type = GSM_MI_TYPE_IMEISV, + .imeisv = "9876543210987654", + }, + }, +}; + +void test_struct_mobile_identity() +{ + struct mobile_identity_tc *t; + printf("%s()\n", __func__); + for (t = mobile_identity_tests; (t - mobile_identity_tests) < ARRAY_SIZE(mobile_identity_tests); t++) { + struct osmo_mobile_identity mi; + struct msgb *msg; + int rc; + memset(&mi, 0xff, sizeof(mi)); + + msg = msgb_from_hex(t->label, 1024, t->compl_l3_msg); + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + msgb_free(msg); + + printf("%s: rc = %d", t->label, rc); + if (!rc) { + printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); + } + + if (rc == t->expect_rc + && ((rc != 0) || !osmo_mobile_identity_cmp(&mi, &t->expect_mi))) { + printf(" ok"); + } else { + printf(" ERROR: Expected rc = %d", t->expect_rc); + if (!t->expect_rc) + printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &t->expect_mi)); + } + printf("\n"); + } + printf("\n"); +} + static const struct bcd_number_test { /* Human-readable test name */ const char *test_name; @@ -1182,6 +1549,7 @@ test_mid_from_imsi(); test_mid_encode_decode(); test_mid_decode_zero_length(); + test_struct_mobile_identity(); test_bcd_number_encode_decode(); test_ra_cap(); test_lai_encode_decode(); diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index d343869..3e6ae1f 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -139,6 +139,57 @@ rc=1 returned empty string +test_struct_mobile_identity() +LU with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +LU with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok +LU with invalid MI type: rc = -22 ok +LU with truncated IMSI MI: rc = -74 ok +LU with too short IMSI MI (12345): rc = -74 ok +LU with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok +LU with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok +LU with just too long IMSI MI 1234567890123456: rc = -74 ok +LU with truncated TMSI MI: rc = -74 ok +LU with odd length TMSI: rc = -74 ok +LU with too long TMSI MI: rc = -74 ok +LU with too short TMSI: rc = -74 ok +CM Service Request with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok +CM Service Request with shorter CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with longer CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with shorter CM2, with TMSI 0x00000000: rc = 0, mi = TMSI-0x00000000 ok +CM Service Request with invalid MI type: rc = -22 ok +CM Service Request with truncated IMSI MI: rc = -74 ok +CM Service Request with truncated TMSI MI: rc = -74 ok +CM Service Request with odd length TMSI: rc = -74 ok +CM Service Request with too long TMSI MI: rc = -74 ok +CM Service Request with too short TMSI: rc = -74 ok +CM Service Reestablish Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok +Paging Response with IMSI 1234567: rc = 0, mi = IMSI-1234567 ok +Paging Response with TMSI 0xb48883de: rc = 0, mi = TMSI-0xB48883DE ok +Paging Response with TMSI, with unused nibble not 0xf: rc = -74 ok +Paging Response with too short IMEI (1234567): rc = -74 ok +Paging Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok +Paging Response with IMEI 12345678901234 (no Luhn checksum): rc = 0, mi = IMEI-12345678901234 ok +Paging Response with IMEISV 1234567890123456: rc = 0, mi = IMEI-SV-1234567890123456 ok +Paging Response with too short IMEISV 123456789012345: rc = -74 ok +Paging Response with too long IMEISV 12345678901234567: rc = -74 ok +Paging Response with IMSI 123456789012345 and flipped ODD bit: rc = -74 ok +IMSI-Detach with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +IMSI-Detach with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok +IMSI-Detach with invalid MI type: rc = -22 ok +IMSI-Detach with truncated IMSI MI: rc = -74 ok +IMSI-Detach with too short IMSI MI (12345): rc = -74 ok +IMSI-Detach with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok +IMSI-Detach with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok +IMSI-Detach with just too long IMSI MI 1234567890123456: rc = -74 ok +IMSI-Detach with truncated TMSI MI: rc = -74 ok +IMSI-Detach with odd length TMSI: rc = -74 ok +IMSI-Detach with too long TMSI MI: rc = -74 ok +IMSI-Detach with too short TMSI: rc = -74 ok +Identity Response with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +Identity Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok +Identity Response with IMEISV 9876543210987654: rc = 0, mi = IMEI-SV-9876543210987654 ok + BSD number encoding / decoding test - Running test: regular 9-digit MSISDN - Encoding ASCII (buffer limit=0) '123456789'... diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index e87cb22..e15cf5f 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -487,6 +487,7 @@ { int i; uint8_t bcd[64]; + uint8_t bcd2[64]; int rc; printf("\nTesting bcd to string conversion\n"); @@ -511,6 +512,12 @@ printf(" ERROR: expected rc=%d\n", t->expect_rc); if (strcmp(str, t->expect_str)) printf(" ERROR: expected result %s\n", osmo_quote_str(t->expect_str, -1)); + + memset(bcd2, 0xff, sizeof(bcd2)); + rc = osmo_str2bcd(bcd2, sizeof(bcd2), str, t->start_nibble, -1, t->allow_hex); + printf("osmo_str2bcd(start_nibble=%d) -> rc=%d\n", t->start_nibble, rc); + if (rc > 0) + printf(" = %s\n", osmo_hexdump(bcd2, rc)); } printf("- zero output buffer\n"); diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index baa708e..cbab72a 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -181,27 +181,41 @@ - BCD-input='1a 32 54 76 98 f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234567890" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 54 76 98 f0 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=-22 -> "1234ABCD90" +osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234ABCD90" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 a4 cb 9d f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=-22 -> "1234567890F" +osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=11 -> "1234567890F" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[0..12[ str_size=64 rc=12 -> "A1234567890F" +osmo_str2bcd(start_nibble=0) -> rc=6 + = 1a 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=5 rc=11 -> "1234" +osmo_str2bcd(start_nibble=1) -> rc=3 + = 1f 32 f4 - BCD-input='' nibbles=[1..1[ str_size=64 rc=0 -> "" +osmo_str2bcd(start_nibble=1) -> rc=1 + = ff - zero output buffer bcd2str(NULL, ...) -> -12 bcd2str(dst, 0, ...) -> -12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 Gerrit-Change-Number: 18858 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 Jun 16 13:10:01 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:10:01 +0000 Subject: Change in libosmocore[master]: gsm0408_test: allow deprecated API References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18859 ) Change subject: gsm0408_test: allow deprecated API ...................................................................... gsm0408_test: allow deprecated API This test knowingly calls deprecated functions -- allow that to squelch these warnings: warning: ?gsm48_generate_lai? is deprecated: Use gsm48_generate_lai2() instead, to not lose leading zeros in the MNC [-Wdeprecated-declarations] warning: ?gsm48_decode_lai? is deprecated: Use gsm48_decode_lai2() instead, to not lose leading zeros in the MNC [-Wdeprecated-declarations] Change-Id: Ifd618c1b9befa9c9ef0a338ab4aae2b0f796f4c2 --- M tests/gsm0408/gsm0408_test.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/18859/1 diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 6cd3381..8567aa8 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -18,6 +18,8 @@ * */ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + #include #include #include -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifd618c1b9befa9c9ef0a338ab4aae2b0f796f4c2 Gerrit-Change-Number: 18859 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 Jun 16 13:10:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:10:26 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() In-Reply-To: References: Message-ID: Hello dexter, daniel, pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 to look at the new patch set (#4). Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... remove extract_sub(), add bsc_subscr_find_or_create_by_mi() Use the new osmo_mobile_identity API to shed some code dup and simplify. gsm48_paging_extract_mi() is now unused, drop. (More refactoring to use osmo_mobile_identity follows in subsequent patch.) Depends: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 (libosmocore) Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b --- M TODO-RELEASE M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/gsm_04_08_rr.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/gsm_08_08.c 7 files changed, 55 insertions(+), 58 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/18712/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 13:10:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:10:26 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 to look at the new patch set (#5). Change subject: use osmo_mobile_identity API everywhere ...................................................................... use osmo_mobile_identity API everywhere Depends: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 (libosmocore) Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/gsm_04_08_rr.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c 7 files changed, 64 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/18713/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 13:10:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:10:26 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter In-Reply-To: References: Message-ID: Hello dexter, pespin, daniel, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 to look at the new patch set (#5). Change subject: mscpool: add user manual chapter ...................................................................... mscpool: add user manual chapter Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e --- A doc/manuals/chapters/mscpool.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 215 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/79/18779/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 13:11:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:11:14 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere 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-msc/+/18715 to look at the new patch set (#5). Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea --- M TODO-RELEASE M include/osmocom/msc/gsm_04_08.h M include/osmocom/msc/msub.h M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/msub.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_access_req_fsm.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 21 files changed, 233 insertions(+), 255 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/18715/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 13:11:31 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:11:31 +0000 Subject: Change in osmo-sgsn[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 to look at the new patch set (#3). Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 (libosmocore) Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 --- M TODO-RELEASE M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M src/gprs/gprs_gb_parse.c M src/sgsn/gprs_gmm.c M tests/gbproxy/gbproxy_test.c 7 files changed, 137 insertions(+), 120 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/16/18716/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 Gerrit-Change-Number: 18716 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 Tue Jun 16 13:17:52 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 13:17:52 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API 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/+/18858 to look at the new patch set (#2). Change subject: add osmo_mobile_identity API ...................................................................... add osmo_mobile_identity API Implement better API around 3GPP TS 24.008 Mobile Identity coding. struct osmo_mobile_identity is a decoded representation of the raw Mobile Identity, with a string representation as well as dedicated raw uint32_t TMSI. The aim is to remove all uncertainty about decoded buffer sizes / data types. I have patches ready for current osmo CNI programs, replacing the Mobile Identity coding with this new API. Deprecate the old MI API. osmo-bsc: I71c3b4c65dbfdfa51409e09d4868aea83225338a osmo-msc: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 osmo-sgsn: I4cacb10bac419633ca0c14f244f9903f7f517b49 Note that some GPRS and SGs related coding is done here in libosmocore and hence currently remains using the old implementation (see previous version of this patch: Ic3f969e739654c1e8c387aedeeba5cce07fe2307). New API functions provide properly size-checking implementations of: - decoding a raw MI from a bunch of MI octets; - locating and decoding MI from a full 3GPP TS 24.008 Complete Layer 3 msgb; - encoding to a buffer; - encoding to the end of a msgb. Other than the old gsm48_generate_mid(), omit a TLV tag and length from encoding. Many callers manually stripped the tag and value after calling gsm48_generate_mid(). The aim is to leave writing a TL to the caller entirely, especially since some callers need to use a TvL, i.e. support a variable-size length of 8 or 16 bit. New validity checks so far not implemented anywhere else: - stricter validation of number of digits of IMSI, IMEI, IMEI-SV MI. - stricter on filler nibbles to be 0xf. As a result, applications using osmo_mobile_identity will be stricter in rejecting coding mistakes (some of which we currently have in our test suites, and which we'll need to fix). Rationale: While implementing osmo-bsc's MSC pooling feature in osmo-bsc, this API will be used to reduce the number of times a Mobile Identity is extracted from a raw RSL message. Extracting the Mobile Identity from messages has numerous duplicate implementations across our code with various levels of specialization. https://xkcd.com/927/ To name a few: - libosmocore: gsm48_mi_to_string(), osmo_mi_name_buf() - osmo-bsc: extract_sub() - osmo-msc: mm_rx_loc_upd_req(), cm_serv_reuse_conn(), gsm48_rx_mm_serv_req(), vlr_proc_acc_req() We have existing functions to produce a human readable string from a Mobile Identity, more or less awkward: - gsm48_mi_to_string() decodes a TMSI as a decimal number. These days we use hexadecimal TMSI everywhere. - osmo_mi_name_buf() decodes the BCD digits from a raw MI every time, so we'd need to pass around the raw message bytes. Also, osmo_mi_name_buf() has the wrong signature, it should return a length like snprintf(). - osmo-bsc's extract_sub() first uses gsm48_mi_to_string() which encodes the raw uint32_t TMSI to a string, and then calls strtoul() via tmsi_from_string() to code those back to a raw uint32_t. Each of the above implementations employ their own size overflow checks, each invoke osmo_bcd2str() and implement their own TMSI osmo_load32be() handling. Too much code dup, let's hope that each and every one is correct. In osmo-bsc, I am now implementing MSC pooling, and need to extract NRI bits from a TMSI Mobile Identity. Since none of the above functions are general enough to be re-used, I found myself again copy-pasting Mobile Identity code: locating the MI in a 24.008 message with proper size checks, decoding MI octets. This time I would like it to become a generally re-usable API. This patch was first merged as Ic3f969e739654c1e8c387aedeeba5cce07fe2307 and caused test fallout, because it re-implemented old API with the new stricter decoding. In this patch version, old API remains 1:1 unchanged to avoid such fallout. Applications will soon switch to the new osmo_mobile_identity API and become stricter on MI coding when that happens, not implicitly by a new libosmocore version. Change-Id: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 9 files changed, 1,011 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/18858/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 Gerrit-Change-Number: 18858 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 Tue Jun 16 13:24:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 13:24:36 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: LU: ignore TMSI NRI from a different PLMN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18783 ) Change subject: MSC pooling: LU: ignore TMSI NRI from a different PLMN ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iac1158cff022b6365ce22bb70feaaff93e39172a Gerrit-Change-Number: 18783 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 13:24:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 13:25:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 13:25:21 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add 'no allow-attach' for MSC off-loading In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18778 ) Change subject: MSC pooling: add 'no allow-attach' for MSC off-loading ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 Gerrit-Change-Number: 18778 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 13:25: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 Jun 16 13:26:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 13:26:38 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18779 ) Change subject: mscpool: add user manual chapter ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 13:26: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 Jun 16 13:28:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 13:28:39 +0000 Subject: Change in osmo-bsc[master]: vty: add 'mscpool roundrobin next' for ttcn3 tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18767 ) Change subject: vty: add 'mscpool roundrobin next' for ttcn3 tests ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18767/6/src/osmo-bsc/osmo_bsc_vty.c File src/osmo-bsc/osmo_bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18767/6/src/osmo-bsc/osmo_bsc_vty.c at 942 PS6, Line 942: DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, maybe make that a hidden command with DEFUN_HIDDEN ? It's not something a normal user should ever use. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c Gerrit-Change-Number: 18767 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 13:28:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 13:29:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 13:29:07 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18768 ) Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 13: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 Tue Jun 16 13:29:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 13:29:28 +0000 Subject: Change in osmo-bsc[master]: debug: log about matching Paging Response to earlier Paging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18769 ) Change subject: debug: log about matching Paging Response to earlier Paging ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I277d3236686dd5a5a21113ef2ddfd29341190086 Gerrit-Change-Number: 18769 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 13:29: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 Jun 16 13:41:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 13:41:31 +0000 Subject: Change in osmo-bts[master]: scheduler: Improve logging about prim being out of range In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18856 ) Change subject: scheduler: Improve logging about prim being out of range ...................................................................... scheduler: Improve logging about prim being out of range Change-Id: Ie7ea210fee1f59ece3abe171b64cdc04670c344b --- M src/common/scheduler.c 1 file changed, 7 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/scheduler.c b/src/common/scheduler.c index e55b3a4..e1e7c95 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -635,7 +635,7 @@ { struct msgb *msg, *msg2; struct osmo_phsap_prim *l1sap; - uint32_t prim_fn; + uint32_t prim_fn, l1sap_fn; uint8_t chan_nr, link_id; struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); @@ -655,22 +655,24 @@ case PRIM_PH_DATA: chan_nr = l1sap->u.data.chan_nr; link_id = l1sap->u.data.link_id; - prim_fn = ((l1sap->u.data.fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); + l1sap_fn = l1sap->u.data.fn; break; case PRIM_TCH: chan_nr = l1sap->u.tch.chan_nr; link_id = 0; - prim_fn = ((l1sap->u.tch.fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); + l1sap_fn = l1sap->u.tch.fn; break; default: goto wrong_type; } + prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); if (prim_fn > 100) { LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, - "Prim %u is out of range (100), or channel %s with " + "Prim %u is out of range (%u vs exp %u), or channel %s with " "type %s is already disabled. If this happens in " "conjunction with PCU, increase 'rts-advance' by 5.\n", - prim_fn, get_lchan_by_chan_nr(l1t->trx, chan_nr)->name, + prim_fn, l1sap_fn, fn, + get_lchan_by_chan_nr(l1t->trx, chan_nr)->name, trx_chan_desc[chan].name); /* unlink and free message */ llist_del(&msg->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie7ea210fee1f59ece3abe171b64cdc04670c344b Gerrit-Change-Number: 18856 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 Jun 16 14:48:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 14:48:22 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor goto paths References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18860 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor goto paths ...................................................................... scheduler: _sched_dequeue_prim(): Refactor goto paths Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 --- M src/common/scheduler.c 1 file changed, 9 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/60/18860/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 86978eb..ed7d412 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -643,13 +643,8 @@ llist_for_each_entry_safe(msg, msg2, &l1ts->dl_prims, list) { l1sap = msgb_l1sap_prim(msg); if (l1sap->oph.operation != PRIM_OP_REQUEST) { -wrong_type: LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong type.\n"); -free_msg: - /* unlink and free message */ - llist_del(&msg->list); - msgb_free(msg); - return NULL; + goto free_msg; } switch (l1sap->oph.primitive) { case PRIM_PH_DATA: @@ -663,7 +658,8 @@ l1sap_fn = l1sap->u.tch.fn; break; default: - goto wrong_type; + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong type.\n"); + goto free_msg; } prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); if (prim_fn > 100) { /* l1sap_fn < fn */ @@ -700,6 +696,12 @@ /* unlink and return message */ llist_del(&msg->list); return msg; + +free_msg: + /* unlink and free message */ + llist_del(&msg->list); + msgb_free(msg); + return NULL; } int _sched_compose_ph_data_ind(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 Gerrit-Change-Number: 18860 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 Jun 16 14:48:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 14:48:23 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18861 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path ...................................................................... scheduler: _sched_dequeue_prim(): Refactor found_msg goto path Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 --- M src/common/scheduler.c 1 file changed, 11 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/61/18861/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ed7d412..c1bd19f 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -679,24 +679,21 @@ return NULL; /* l1sap_fn == fn */ - goto found_msg; + if ((chan_nr ^ (trx_chan_desc[chan].chan_nr | tn)) + || ((link_id & 0xc0) ^ trx_chan_desc[chan].link_id)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong chan_nr=0x%02x link_id=%02x, " + "expecting chan_nr=0x%02x link_id=%02x.\n", chan_nr, link_id, + trx_chan_desc[chan].chan_nr | tn, trx_chan_desc[chan].link_id); + goto free_msg; + } + + /* unlink and return message */ + llist_del(&msg->list); + return msg; } return NULL; -found_msg: - if ((chan_nr ^ (trx_chan_desc[chan].chan_nr | tn)) - || ((link_id & 0xc0) ^ trx_chan_desc[chan].link_id)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong chan_nr=0x%02x link_id=%02x, " - "expecting chan_nr=0x%02x link_id=%02x.\n", chan_nr, link_id, - trx_chan_desc[chan].chan_nr | tn, trx_chan_desc[chan].link_id); - goto free_msg; - } - - /* unlink and return message */ - llist_del(&msg->list); - return msg; - free_msg: /* unlink and free message */ llist_del(&msg->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 Gerrit-Change-Number: 18861 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 Jun 16 14:48:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 14:48:23 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... scheduler: Add rate_ctr informing about too low rts-advance Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c 2 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/62/18862/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index f5f346e..e65665f 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -2,6 +2,7 @@ #define TRX_SCHEDULER_H #include +#include #include @@ -142,6 +143,8 @@ struct llist_head dl_prims; /* Queue primitives for TX */ + struct rate_ctr_group *ctrs; /* rate counters */ + /* Channel states for all logical channels */ struct l1sched_chan_state chan_state[_TRX_CHAN_MAX]; }; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index c1bd19f..6d9e132 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include #include @@ -562,6 +564,22 @@ }, }; +enum { + L1SCHED_TS_CTR_DL_LATE, +}; + + +static const struct rate_ctr_desc l1sched_ts_ctr_desc[] = { + [L1SCHED_TS_CTR_DL_LATE] = {"l1sched_ts:dl_late", "Downlink frames prepared too late to submit to lower layers"}, +}; +static const struct rate_ctr_group_desc l1sched_ts_ctrg_desc = { + "l1sched_ts", + "L1 scheduler timeslot", + OSMO_STATS_CLASS_GLOBAL, + ARRAY_SIZE(l1sched_ts_ctr_desc), + l1sched_ts_ctr_desc +}; + /* * init / exit */ @@ -582,7 +600,9 @@ struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); l1ts->mf_index = 0; + l1ts->ctrs = rate_ctr_group_alloc(trx, &l1sched_ts_ctrg_desc, (trx->nr + 1) * 100 + tn); INIT_LLIST_HEAD(&l1ts->dl_prims); + for (i = 0; i < ARRAY_SIZE(l1ts->chan_state); i++) { struct l1sched_chan_state *chan_state; chan_state = &l1ts->chan_state[i]; @@ -604,6 +624,8 @@ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); msgb_queue_flush(&l1ts->dl_prims); + rate_ctr_group_free(l1ts->ctrs); + l1ts->ctrs = NULL; for (i = 0; i < _TRX_CHAN_MAX; i++) { struct l1sched_chan_state *chan_state; chan_state = &l1ts->chan_state[i]; @@ -670,6 +692,7 @@ prim_fn, l1sap_fn, fn, get_lchan_by_chan_nr(l1t->trx, chan_nr)->name, trx_chan_desc[chan].name); + rate_ctr_inc2(l1ts->ctrs, L1SCHED_TS_CTR_DL_LATE); /* unlink and free message */ llist_del(&msg->list); msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 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 Jun 16 14:48:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 14:48:23 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about not Dl block not found References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18863 ) Change subject: scheduler: Add rate_ctr informing about not Dl block not found ...................................................................... scheduler: Add rate_ctr informing about not Dl block not found Together with previous counter L1SCHED_TS_CTR_DL_LATE, it allows understanding which dl blocks are really lost (never queued) and which were simply queued too late. Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 --- M src/common/scheduler.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/63/18863/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 6d9e132..635562f 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -566,11 +566,13 @@ enum { L1SCHED_TS_CTR_DL_LATE, + L1SCHED_TS_CTR_DL_NOT_FOUND, }; static const struct rate_ctr_desc l1sched_ts_ctr_desc[] = { [L1SCHED_TS_CTR_DL_LATE] = {"l1sched_ts:dl_late", "Downlink frames prepared too late to submit to lower layers"}, + [L1SCHED_TS_CTR_DL_NOT_FOUND] = {"l1sched_ts:dl_not_found", "Downlink frame not found while scheduling"}, }; static const struct rate_ctr_group_desc l1sched_ts_ctrg_desc = { "l1sched_ts", @@ -699,7 +701,7 @@ continue; } if (prim_fn > 0) /* l1sap_fn > fn */ - return NULL; + goto not_found; /* l1sap_fn == fn */ if ((chan_nr ^ (trx_chan_desc[chan].chan_nr | tn)) @@ -715,6 +717,8 @@ return msg; } +not_found: + rate_ctr_inc2(l1ts->ctrs, L1SCHED_TS_CTR_DL_NOT_FOUND); return NULL; free_msg: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 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 Jun 16 14:57:09 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 16 Jun 2020 14:57:09 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb.cfg.tmpl: expose log options References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18864 ) Change subject: amarisoft_enb.cfg.tmpl: expose log options ...................................................................... amarisoft_enb.cfg.tmpl: expose log options this allows to alter the log options through a modifier Change-Id: Iecd24afe6b242fbebc8463c9e1fa1c3b60b27d01 --- M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl M sysmocom/defaults.conf 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/64/18864/1 diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 5690da9..c02192c 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -29,8 +29,7 @@ - 'max_size': set the maximum size of the hex dump. 0 means no hex dump. -1 means no limit. */ - //log_options: "all.level=debug,all.max_size=32", - log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1", + log_options: "${enb.log_options}", log_filename: "${enb.log_filename}", /* Enable remote API and Web interface */ diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index 6694652..b113545 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -149,6 +149,7 @@ enable_pcap: false tx_gain: 89 rx_gain: 60 + log_options: all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1 srsue: enable_pcap: false -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18864 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: Iecd24afe6b242fbebc8463c9e1fa1c3b60b27d01 Gerrit-Change-Number: 18864 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 14:57:09 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 16 Jun 2020 14:57:09 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add option to enable dedicated bearers References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 ) Change subject: epc: add option to enable dedicated bearers ...................................................................... epc: add option to enable dedicated bearers add boolean option to epc class and extend the Amarisoft MME config template to use it Change-Id: If45cb7e15c8595164b8f537a390507927492c660 --- M src/osmo_gsm_tester/obj/epc.py M src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl M sysmocom/defaults.conf 3 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/65/18865/1 diff --git a/src/osmo_gsm_tester/obj/epc.py b/src/osmo_gsm_tester/obj/epc.py index 6f056fc..7ae6dcd 100644 --- a/src/osmo_gsm_tester/obj/epc.py +++ b/src/osmo_gsm_tester/obj/epc.py @@ -25,6 +25,7 @@ config_schema = { 'type': schema.STR, 'qci': schema.UINT, + 'add_dedicated_bearer': schema.BOOL_STR, } schema.register_config_schema('epc', config_schema) diff --git a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl index ce7200f..9361972 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl @@ -68,6 +68,58 @@ pre_emption_capability: "shall_not_trigger_pre_emption", pre_emption_vulnerability: "not_pre_emptable", }, +% if epc.add_dedicated_bearer: + { + qci: 1, + priority_level: 1, + pre_emption_capability: "shall_not_trigger_pre_emption", + pre_emption_vulnerability: "not_pre_emptable", + setup_type: "automatic", + filters: [ + { + direction: "both", + id: 1, + precedence: 0, + components: [ + { + type_of_service: 0xb8, + mask: 255 + } + ] + } + ], + on_demand_timeout: 10000, + on_demand_ul_trigger: true, + transaction_identifier: 20, + radio_priority: 1, + packet_flow_identifier: 20 + }, + { + qci: 2, + priority_level: 1, + pre_emption_capability: "shall_not_trigger_pre_emption", + pre_emption_vulnerability: "not_pre_emptable", + setup_type: "automatic", + filters: [ + { + direction: "both", + id: 2, + precedence: 1, + components: [ + { + type_of_service: 0x60, + mask: 255 + } + ] + } + ], + on_demand_timeout: 10000, + on_demand_ul_trigger: true, + transaction_identifier: 21, + radio_priority: 1, + packet_flow_identifier: 21 + }, +%endif ], }, ], diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index b113545..6d6cb53 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -98,6 +98,7 @@ mcc: 901 mnc: 70 qci: 9 + add_dedicated_bearer: false srsepc: enable_pcap: false -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 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: If45cb7e15c8595164b8f537a390507927492c660 Gerrit-Change-Number: 18865 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 14:57:09 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 16 Jun 2020 14:57:09 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: add getter to read the actual run time of an iperf client run References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18866 ) Change subject: iperf3: add getter to read the actual run time of an iperf client run ...................................................................... iperf3: add getter to read the actual run time of an iperf client run this is helpful to run some action for the exact run time of an iperf3 session. note that if no time spec is given when calling "prepare_test_proc()", a modifier could set the runtime of an DL experiment to an arbitrary value so we need to have a mechanism to read the actual time from within a test Change-Id: I484a0add322ffd269a1e9df72a00cf348950b268 --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/66/18866/1 diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index 13fd455..b1e3349 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -209,6 +209,7 @@ self.server = iperf3srv self.testenv = testenv self._proto = None + self._time_sec = None self.log_file = None self.rem_host = None self.remote_log_file = None @@ -237,6 +238,7 @@ else: time_sec = int(time_sec_str) assert(time_sec) + self._time_sec = time_sec if proto is None: proto = values.get('protocol', IPerf3Client.PROTO_TCP) @@ -329,6 +331,9 @@ def proto(self): return self._proto + def time_sec(self): + return self._time_sec + def __str__(self): # FIXME: somehow differentiate between several clients connected to same server? return "%s:%u" %(self.server.addr(), self.server.port()) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18866 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: I484a0add322ffd269a1e9df72a00cf348950b268 Gerrit-Change-Number: 18866 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 14:57:09 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 16 Jun 2020 14:57:09 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add getter for number of cells of an eNB References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18867 ) Change subject: enb: add getter for number of cells of an eNB ...................................................................... enb: add getter for number of cells of an eNB In order to set up the channel emulator we need to calculate the total number of RF channels that a eNB has from within a test. Change-Id: If641993033eb5dcdc6e2d6afdc8426ed322241ca --- M src/osmo_gsm_tester/obj/enb.py 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/67/18867/1 diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 4a151d7..d9fe1a5 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -130,6 +130,9 @@ return 1 return 2 + def num_cells(self): + return self._num_cells + ######################## # PUBLIC - INTERNAL API ######################## -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18867 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: If641993033eb5dcdc6e2d6afdc8426ed322241ca Gerrit-Change-Number: 18867 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 15:01:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 15:01:57 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb.cfg.tmpl: expose log options In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18864 ) Change subject: amarisoft_enb.cfg.tmpl: expose log options ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18864 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: Iecd24afe6b242fbebc8463c9e1fa1c3b60b27d01 Gerrit-Change-Number: 18864 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 15:01: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 Jun 16 15:02:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 15:02:58 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add option to enable dedicated bearers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 ) Change subject: epc: add option to enable dedicated bearers ...................................................................... Patch Set 1: Why not have it always there? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 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: If45cb7e15c8595164b8f537a390507927492c660 Gerrit-Change-Number: 18865 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 15:02: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 Tue Jun 16 15:03:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 15:03:28 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add option to enable dedicated bearers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 ) Change subject: epc: add option to enable dedicated bearers ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865/1/sysmocom/defaults.conf File sysmocom/defaults.conf: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865/1/sysmocom/defaults.conf at 101 PS1, Line 101: add_dedicated_bearer: false afaict this is Amarisoft specific so it should go into amarisoftepc? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 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: If45cb7e15c8595164b8f537a390507927492c660 Gerrit-Change-Number: 18865 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 15:03: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 Jun 16 15:04:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 15:04:33 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: add getter to read the actual run time of an iperf client run In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18866 ) Change subject: iperf3: add getter to read the actual run time of an iperf client run ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18866 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: I484a0add322ffd269a1e9df72a00cf348950b268 Gerrit-Change-Number: 18866 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 16 Jun 2020 15:04: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 Jun 16 15:05:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 15:05:04 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add getter for number of cells of an eNB In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18867 ) Change subject: enb: add getter for number of cells of an eNB ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18867 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: If641993033eb5dcdc6e2d6afdc8426ed322241ca Gerrit-Change-Number: 18867 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 15:05:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 16:24:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 16:24:34 +0000 Subject: Change in osmo-bts[master]: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18857 ) Change subject: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If57fc3d89a74e6cbc79fce80dae7bf4f77e9364d Gerrit-Change-Number: 18857 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 16:24:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 16:25:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 16:25:16 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor goto paths In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18860 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor goto paths ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 Gerrit-Change-Number: 18860 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 16: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 Tue Jun 16 16:26:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 16:26:42 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18861 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path ...................................................................... Patch Set 1: I'm not against those patches, but I'm wondering why there they are leading and why they are done while it is known that fixeria is restructuring large parts of the osmo-bts-trx code to support baseband frequency hopping -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 Gerrit-Change-Number: 18861 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 16:26: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 Tue Jun 16 16:27:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 16:27:04 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 16:27:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 16:27:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 16:27:24 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about not Dl block not found In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18863 ) Change subject: scheduler: Add rate_ctr informing about not Dl block not found ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 16:27:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 16:30:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 16:30:17 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18858 ) Change subject: add osmo_mobile_identity API ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 Gerrit-Change-Number: 18858 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 16:30:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 16:38:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 16:38:16 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 3 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 3 ...................................................................... Patch Set 1: The PDCH situation improved by using SCHED_RR on osmo-pcu (it's the only one I was not using with realtime prio), and as well using a less verbose logging level (I had specially RLCMAC really verbose and compute intensive logging enabled). So all in all I think decreasing fn-advance to 2 is fine, but I'd leave rts-advance to 5. due to the above mentioned reasons. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 16:38:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 16:43:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 16:43:45 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18861 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path ...................................................................... Patch Set 1: > Patch Set 1: > > I'm not against those patches, but I'm wondering why there they are leading and why they are done while it is known that fixeria is restructuring large parts of the osmo-bts-trx code to support baseband frequency hopping They lead towards: * Making function more understandable and avoig hoping up and down * Making more rational return paths... * ... which helps in adding rate counters... * ... which helps in understanding timing issues with regards to fn-advance and rts-advance. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 Gerrit-Change-Number: 18861 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 16:43:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 16:45:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 16:45:50 +0000 Subject: Change in osmo-bts[master]: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18857 ) Change subject: scheduler: Early return in _sched_dequeue_prim() and clarify FN cases ...................................................................... scheduler: Early return in _sched_dequeue_prim() and clarify FN cases We should always expect the msgb queue to be ordered by FN, so there's no use in continue traversing the queue after we found a later primitive than the one at current time, since next onews will be even more in the future. Change-Id: If57fc3d89a74e6cbc79fce80dae7bf4f77e9364d --- M src/common/scheduler.c 1 file changed, 4 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/src/common/scheduler.c b/src/common/scheduler.c index e1e7c95..86978eb 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -666,7 +666,7 @@ goto wrong_type; } prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); - if (prim_fn > 100) { + if (prim_fn > 100) { /* l1sap_fn < fn */ LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Prim %u is out of range (%u vs exp %u), or channel %s with " "type %s is already disabled. If this happens in " @@ -679,9 +679,10 @@ msgb_free(msg); continue; } - if (prim_fn > 0) - continue; + if (prim_fn > 0) /* l1sap_fn > fn */ + return NULL; + /* l1sap_fn == fn */ goto found_msg; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If57fc3d89a74e6cbc79fce80dae7bf4f77e9364d Gerrit-Change-Number: 18857 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 Jun 16 17:00:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 17:00:38 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2) to the change originally created by daniel. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... osmo-bts-trx: Change default for clock_advance to 2 osmotrx fn-advance (which is the clock_advance variable here) and osmotrx rtx-advance together make up the minimum delay the BTS can react to a channel request, etc. The default of 25 are around 115ms which is clearly too much. With modern hardware and using SCHED_RR a lower value should not be an issue. Fixes: OS#4487 Fixes: SYS#4885 Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Related: SYS#4881 --- M doc/manuals/chapters/bts-models.adoc M src/osmo-bts-trx/main.c 2 files changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/66/17766/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 17:26:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 17:26:47 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Improve ps-paging logging References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 ) Change subject: sgsn_libgtp: Improve ps-paging logging ...................................................................... sgsn_libgtp: Improve ps-paging logging Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 --- M src/sgsn/sgsn_libgtp.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/68/18868/1 diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c index 7b46476..717df4a 100644 --- a/src/sgsn/sgsn_libgtp.c +++ b/src/sgsn/sgsn_libgtp.c @@ -661,13 +661,19 @@ switch (mm->gmm_fsm->state) { case ST_GMM_REGISTERED_SUSPENDED: /* initiate PS PAGING procedure */ + LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s\n", + osmo_fsm_inst_state_name(mm->gmm_fsm)); gprs_gb_page_ps_ra(mm); /* FIXME: queue the packet we received from GTP */ break; case ST_GMM_REGISTERED_NORMAL: OSMO_ASSERT(mm->gb.mm_state_fsm->state != ST_MM_IDLE); - if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) + if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) { + LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s, MM state %s\n", + osmo_fsm_inst_state_name(mm->gmm_fsm), + osmo_fsm_inst_state_name(mm->gb.mm_state_fsm)); gprs_gb_page_ps_ra(mm); + } /* FIXME: queue the packet we received from GTP */ break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 Gerrit-Change-Number: 18868 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 Jun 16 17:53:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 17:53:32 +0000 Subject: Change in libosmocore[master]: gsm0408_test: allow deprecated API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18859 ) Change subject: gsm0408_test: allow deprecated API ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifd618c1b9befa9c9ef0a338ab4aae2b0f796f4c2 Gerrit-Change-Number: 18859 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 17: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 Tue Jun 16 18:06:48 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 18:06:48 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Improve ps-paging logging In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 ) Change subject: sgsn_libgtp: Improve ps-paging logging ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/18868/1/src/sgsn/sgsn_libgtp.c File src/sgsn/sgsn_libgtp.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/18868/1/src/sgsn/sgsn_libgtp.c at 671 PS1, Line 671: gb.mm_state_fsm Hmm, there is also 'iu.mm_state_fsm'. I am wondering why it's not handled here... -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 Gerrit-Change-Number: 18868 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 16 Jun 2020 18:06:48 +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 Jun 16 18:11:17 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 18:11:17 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor goto paths In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18860 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor goto paths ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18860/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18860/1/src/common/scheduler.c at 647 PS1, Line 647: goto free_msg; Using OTC_SELECT would allow us not to care about message de-allocation on every possible error. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 Gerrit-Change-Number: 18860 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 18:11:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 18:23:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 18:23:49 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18862/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18862/1/src/common/scheduler.c at 573 PS1, Line 573: prepared This sounds confusing. Maybe rather "... arrived too late"? https://gerrit.osmocom.org/c/osmo-bts/+/18862/1/src/common/scheduler.c at 603 PS1, Line 603: 100 It can be just 10, because a single transceiver cannot have more than 8 timeslots. Not critical. https://gerrit.osmocom.org/c/osmo-bts/+/18862/1/src/common/scheduler.c at 695 PS1, Line 695: rate_ctr_inc2 Wrong spacing. Please do <<. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 18:23:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 18:28:27 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 18:28:27 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18861 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path ...................................................................... Patch Set 1: Code-Review+1 > fixeria is restructuring large parts of the osmo-bts-trx code ... I was planning to refactor a lot, and already submitted some changes, but when I finally wrapped my head around the concept of baseband frequency hopping and got the first results, I realized that we can keep the same code structure / hierarchy. So feel free to merge it, this patch is not breaking anything for me ;) Thanks for considering potential merge/rebase conflicts anyway! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 Gerrit-Change-Number: 18861 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 16 Jun 2020 18:28:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 18:37:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 18:37:05 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about not Dl block not found In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18863 ) Change subject: scheduler: Add rate_ctr informing about not Dl block not found ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18863/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/18863/1//COMMIT_MSG at 7 PS1, Line 7: not Dl block not found no no no, double negation is in Russian, but not in English! ;) Maybe rather "... no DL block found"? P.S. In Russian it's normal to say "I have not found nothing", and this means "I found nothing". https://gerrit.osmocom.org/c/osmo-bts/+/18863/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18863/1/src/common/scheduler.c at 575 PS1, Line 575: Downlink frame not found while scheduling Maybe "No Downlink frame found for scheduling"? https://gerrit.osmocom.org/c/osmo-bts/+/18863/1/src/common/scheduler.c at 704 PS1, Line 704: goto not_found; Just do 'break' here, rather than making the code even more "assemblish". -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 18:37:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 18:38:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 18:38:45 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor goto paths In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18860 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor goto paths ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18860/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18860/1/src/common/scheduler.c at 647 PS1, Line 647: goto free_msg; > Using OTC_SELECT would allow us not to care about message de-allocation on every possible error. Let's avoid OTC_SELECT at least in osmo-pcu, osmo-bts and osmo-trx, that's my opinion :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 Gerrit-Change-Number: 18860 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 18:38:45 +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 Jun 16 18:41:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 18:41:17 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor goto paths In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18860 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor goto paths ...................................................................... Patch Set 1: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 Gerrit-Change-Number: 18860 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 18:41:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 18:41:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 18:41:22 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor goto paths In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18860 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor goto paths ...................................................................... scheduler: _sched_dequeue_prim(): Refactor goto paths Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 --- M src/common/scheduler.c 1 file changed, 9 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/common/scheduler.c b/src/common/scheduler.c index 86978eb..ed7d412 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -643,13 +643,8 @@ llist_for_each_entry_safe(msg, msg2, &l1ts->dl_prims, list) { l1sap = msgb_l1sap_prim(msg); if (l1sap->oph.operation != PRIM_OP_REQUEST) { -wrong_type: LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong type.\n"); -free_msg: - /* unlink and free message */ - llist_del(&msg->list); - msgb_free(msg); - return NULL; + goto free_msg; } switch (l1sap->oph.primitive) { case PRIM_PH_DATA: @@ -663,7 +658,8 @@ l1sap_fn = l1sap->u.tch.fn; break; default: - goto wrong_type; + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong type.\n"); + goto free_msg; } prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); if (prim_fn > 100) { /* l1sap_fn < fn */ @@ -700,6 +696,12 @@ /* unlink and return message */ llist_del(&msg->list); return msg; + +free_msg: + /* unlink and free message */ + llist_del(&msg->list); + msgb_free(msg); + return NULL; } int _sched_compose_ph_data_ind(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia0b1674ac3dfbe89c9eb0e6d6426848ec64320d9 Gerrit-Change-Number: 18860 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Tue Jun 16 18:52:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 18:52:58 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: Hello fixeria, daniel, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 to look at the new patch set (#2). Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... scheduler: Add rate_ctr informing about too low rts-advance Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c 2 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/62/18862/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 18:52:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 16 Jun 2020 18:52:58 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about Dl block not found In-Reply-To: References: Message-ID: Hello fixeria, daniel, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 to look at the new patch set (#2). Change subject: scheduler: Add rate_ctr informing about Dl block not found ...................................................................... scheduler: Add rate_ctr informing about Dl block not found Together with previous counter L1SCHED_TS_CTR_DL_LATE, it allows understanding which dl blocks are really lost (never queued) and which were simply queued too late. Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 --- M src/common/scheduler.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/63/18863/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 19:21:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 19:21:23 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... Patch Set 2: Maybe we should also make sure that the new defaults are good enough for embedded setups based on e.g. Raspberry Pi? AFAIU, this patch was only tested on relatively powerful x86-64 so far. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 19:21: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 Jun 16 19:27:17 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 16 Jun 2020 19:27:17 +0000 Subject: Change in osmo-gsm-tester[master]: epc: add option to enable dedicated bearers In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 ) Change subject: epc: add option to enable dedicated bearers ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865/1/sysmocom/defaults.conf File sysmocom/defaults.conf: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865/1/sysmocom/defaults.conf at 101 PS1, Line 101: add_dedicated_bearer: false > afaict this is Amarisoft specific so it should go into amarisoftepc? true, we will add support to srsENB but not srsEPC. Not sure how your nextEPC plans are but it I think they also support dedicated bearer. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18865 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: If45cb7e15c8595164b8f537a390507927492c660 Gerrit-Change-Number: 18865 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: srs_andre Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 19:27:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 19:44:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 19:44:12 +0000 Subject: Change in libosmocore[master]: gsm0408_test: allow deprecated API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18859 ) Change subject: gsm0408_test: allow deprecated API ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifd618c1b9befa9c9ef0a338ab4aae2b0f796f4c2 Gerrit-Change-Number: 18859 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 19:44:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 19:44:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 19:44:20 +0000 Subject: Change in libosmocore[master]: add osmo_mobile_identity API In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18858 ) Change subject: add osmo_mobile_identity API ...................................................................... add osmo_mobile_identity API Implement better API around 3GPP TS 24.008 Mobile Identity coding. struct osmo_mobile_identity is a decoded representation of the raw Mobile Identity, with a string representation as well as dedicated raw uint32_t TMSI. The aim is to remove all uncertainty about decoded buffer sizes / data types. I have patches ready for current osmo CNI programs, replacing the Mobile Identity coding with this new API. Deprecate the old MI API. osmo-bsc: I71c3b4c65dbfdfa51409e09d4868aea83225338a osmo-msc: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 osmo-sgsn: I4cacb10bac419633ca0c14f244f9903f7f517b49 Note that some GPRS and SGs related coding is done here in libosmocore and hence currently remains using the old implementation (see previous version of this patch: Ic3f969e739654c1e8c387aedeeba5cce07fe2307). New API functions provide properly size-checking implementations of: - decoding a raw MI from a bunch of MI octets; - locating and decoding MI from a full 3GPP TS 24.008 Complete Layer 3 msgb; - encoding to a buffer; - encoding to the end of a msgb. Other than the old gsm48_generate_mid(), omit a TLV tag and length from encoding. Many callers manually stripped the tag and value after calling gsm48_generate_mid(). The aim is to leave writing a TL to the caller entirely, especially since some callers need to use a TvL, i.e. support a variable-size length of 8 or 16 bit. New validity checks so far not implemented anywhere else: - stricter validation of number of digits of IMSI, IMEI, IMEI-SV MI. - stricter on filler nibbles to be 0xf. As a result, applications using osmo_mobile_identity will be stricter in rejecting coding mistakes (some of which we currently have in our test suites, and which we'll need to fix). Rationale: While implementing osmo-bsc's MSC pooling feature in osmo-bsc, this API will be used to reduce the number of times a Mobile Identity is extracted from a raw RSL message. Extracting the Mobile Identity from messages has numerous duplicate implementations across our code with various levels of specialization. https://xkcd.com/927/ To name a few: - libosmocore: gsm48_mi_to_string(), osmo_mi_name_buf() - osmo-bsc: extract_sub() - osmo-msc: mm_rx_loc_upd_req(), cm_serv_reuse_conn(), gsm48_rx_mm_serv_req(), vlr_proc_acc_req() We have existing functions to produce a human readable string from a Mobile Identity, more or less awkward: - gsm48_mi_to_string() decodes a TMSI as a decimal number. These days we use hexadecimal TMSI everywhere. - osmo_mi_name_buf() decodes the BCD digits from a raw MI every time, so we'd need to pass around the raw message bytes. Also, osmo_mi_name_buf() has the wrong signature, it should return a length like snprintf(). - osmo-bsc's extract_sub() first uses gsm48_mi_to_string() which encodes the raw uint32_t TMSI to a string, and then calls strtoul() via tmsi_from_string() to code those back to a raw uint32_t. Each of the above implementations employ their own size overflow checks, each invoke osmo_bcd2str() and implement their own TMSI osmo_load32be() handling. Too much code dup, let's hope that each and every one is correct. In osmo-bsc, I am now implementing MSC pooling, and need to extract NRI bits from a TMSI Mobile Identity. Since none of the above functions are general enough to be re-used, I found myself again copy-pasting Mobile Identity code: locating the MI in a 24.008 message with proper size checks, decoding MI octets. This time I would like it to become a generally re-usable API. This patch was first merged as Ic3f969e739654c1e8c387aedeeba5cce07fe2307 and caused test fallout, because it re-implemented old API with the new stricter decoding. In this patch version, old API remains 1:1 unchanged to avoid such fallout. Applications will soon switch to the new osmo_mobile_identity API and become stricter on MI coding when that happens, not implicitly by a new libosmocore version. Change-Id: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 --- M include/osmocom/core/utils.h M include/osmocom/gsm/gsm48.h M src/gsm/gsm48.c M src/gsm/libosmogsm.map M src/utils.c M tests/gsm0408/gsm0408_test.c M tests/gsm0408/gsm0408_test.ok M tests/utils/utils_test.c M tests/utils/utils_test.ok 9 files changed, 1,011 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index e637786..8619120 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -55,6 +55,7 @@ uint8_t osmo_char2bcd(char c); int osmo_bcd2str(char *dst, size_t dst_size, const uint8_t *bcd, int start_nibble, int end_nibble, bool allow_hex); +int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex); int osmo_hexparse(const char *str, uint8_t *b, int max_len); diff --git a/include/osmocom/gsm/gsm48.h b/include/osmocom/gsm/gsm48.h index 7c68b1d..f772f4a 100644 --- a/include/osmocom/gsm/gsm48.h +++ b/include/osmocom/gsm/gsm48.h @@ -4,10 +4,12 @@ #include +#include #include #include #include +#include #include #include @@ -48,16 +50,55 @@ void gsm48_generate_lai2(struct gsm48_loc_area_id *lai48, const struct osmo_location_area_id *lai); #define GSM48_MID_MAX_SIZE 11 -int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi); -int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi); -uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type); +int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi) + OSMO_DEPRECATED_OUTSIDE("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); +int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi) + OSMO_DEPRECATED_OUTSIDE("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); +uint8_t gsm48_generate_mid(uint8_t *buf, const char *id, uint8_t mi_type) + OSMO_DEPRECATED_OUTSIDE("Instead use: l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID);" + " *l = osmo_mobile_identity_encode_msgb(...)"); -/* Convert Mobile Identity (10.5.1.4) to string */ -int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len); const char *gsm48_mi_type_name(uint8_t mi); -const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len); -char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len); -char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len); +/* Convert encoded Mobile Identity (10.5.1.4) to string */ +int gsm48_mi_to_string(char *string, int str_len, const uint8_t *mi, int mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_decode()"); +const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_to_str_c()"); +char *osmo_mi_name_buf(char *buf, size_t buf_len, const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_to_str_buf()"); +char *osmo_mi_name_c(const void *ctx, const uint8_t *mi, uint8_t mi_len) + OSMO_DEPRECATED_OUTSIDE("Instead use osmo_mobile_identity_to_str_c()"); + +/*! Decoded representation of a Mobile Identity (3GPP TS 24.008 10.5.1.4). + * See osmo_mobile_identity_decode() and osmo_mobile_identity_from_l3(). */ +struct osmo_mobile_identity { + /*! A GSM_MI_TYPE_* constant (like GSM_MI_TYPE_IMSI). */ + uint8_t type; + /*! Decoded Mobile Identity digits or TMSI value. IMSI, IMEI and IMEISV as digits like + * "12345678", and TMSI is represented as raw uint32_t. */ + union { + /*! type == GSM_MI_TYPE_IMSI. */ + char imsi[GSM23003_IMSI_MAX_DIGITS + 1]; + /*! type == GSM_MI_TYPE_IMEI. */ + char imei[GSM23003_IMEI_NUM_DIGITS + 1]; + /*! type == GSM_MI_TYPE_IMEISV. */ + char imeisv[GSM23003_IMEISV_NUM_DIGITS + 1]; + /*! TMSI / P-TMSI / M-TMSI integer value if type == GSM_MI_TYPE_TMSI. */ + uint32_t tmsi; + }; +}; + +int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi); +char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi); +int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b); +int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, + bool allow_hex); +int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex); +int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits); +int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex); +int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex); /* Parse Routeing Area Identifier */ void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf); diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 8d0998b..4368ce2 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -45,6 +45,7 @@ #include #include #include +#include /*! \addtogroup gsm0408 * @{ @@ -458,7 +459,8 @@ return get_value_string(mi_type_names, mi); } -/*! Return a human readable representation of a Mobile Identity in caller-provided buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in caller-provided buffer. * \param[out] buf caller-provided output buffer * \param[in] buf_len size of buf in bytes * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. @@ -497,7 +499,8 @@ } } -/*! Return a human readable representation of a Mobile Identity in static buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in static buffer. * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. * \return A string like "IMSI-1234567", "TMSI-0x1234ABCD" or "unknown", "TMSI-invalid"... @@ -508,7 +511,8 @@ return osmo_mi_name_buf(mi_name, sizeof(mi_name), mi, mi_len); } -/*! Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. +/*! Deprecated, see osmo_mobile_identity instead. + * Return a human readable representation of a Mobile Identity in dynamically-allocated buffer. * \param[in] ctx talloc context from which to allocate output buffer * \param[in] mi Mobile Identity buffer containing 3GPP TS 04.08 style MI type and data. * \param[in] mi_len Length of mi. @@ -524,6 +528,450 @@ return osmo_mi_name_buf(mi_name, buf_len, mi, mi_len); } +/*! Extract Mobile Identity from encoded bytes (3GPP TS 24.008 10.5.1.4). + * + * On failure (negative return value), mi->type == GSM_MI_TYPE_NONE, mi->string[] is all-zero and mi->tmsi == + * GSM_RESERVED_TMSI. + * + * On success, mi->type reflects the decoded Mobile Identity type (GSM_MI_TYPE_IMSI, GSM_MI_TYPE_TMSI, GSM_MI_TYPE_IMEI + * or GSM_MI_TYPE_IMEISV). + * + * On success, mi->string always contains a human readable representation of the Mobile Identity digits: IMSI, IMEI and + * IMEISV as digits like "12345678", and TMSI as "0x" and 8 hexadecimal digits like "0x1234abcd". + * + * mi->tmsi contains the uint32_t TMSI value iff the extracted Mobile Identity was a TMSI, or GSM_RESERVED_TMSI + * otherwise. + * + * \param[out] mi Return buffer for decoded Mobile Identity. + * \param[in] mi_data The encoded Mobile Identity octets. + * \param[in] mi_len Number of octets in mi_data. + * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. + * \returns 0 on success, negative on error: -EBADMSG = invalid length indication or invalid data, + * -EINVAL = unknown Mobile Identity type. + */ +int osmo_mobile_identity_decode(struct osmo_mobile_identity *mi, const uint8_t *mi_data, uint8_t mi_len, + bool allow_hex) +{ + int rc; + int nibbles_len; + char *str; + size_t str_size; + + if (!mi_data || mi_len < 1) + return -EBADMSG; + + nibbles_len = (mi_len - 1) * 2 + ((mi_data[0] & GSM_MI_ODD) ? 1 : 0); + + *mi = (struct osmo_mobile_identity){ + .type = mi_data[0] & GSM_MI_TYPE_MASK, + }; + + /* First do length checks */ + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + mi->tmsi = GSM_RESERVED_TMSI; + if (nibbles_len != (GSM23003_TMSI_NUM_BYTES * 2)) { + rc = -EBADMSG; + goto return_error; + } + break; + + case GSM_MI_TYPE_IMSI: + if (nibbles_len < GSM23003_IMSI_MIN_DIGITS || nibbles_len > GSM23003_IMSI_MAX_DIGITS) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imsi; + str_size = sizeof(mi->imsi); + break; + + case GSM_MI_TYPE_IMEI: + if (nibbles_len != GSM23003_IMEI_NUM_DIGITS && nibbles_len != GSM23003_IMEI_NUM_DIGITS_NO_CHK) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imei; + str_size = sizeof(mi->imei); + break; + + case GSM_MI_TYPE_IMEISV: + if (nibbles_len != GSM23003_IMEISV_NUM_DIGITS) { + rc = -EBADMSG; + goto return_error; + } + str = mi->imeisv; + str_size = sizeof(mi->imeisv); + break; + + default: + rc = -EINVAL; + goto return_error; + } + + /* Decode BCD digits */ + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + /* MI is a 32bit integer TMSI. Length has been checked above. */ + if ((mi_data[0] & 0xf0) != 0xf0) { + /* A TMSI always has the first nibble == 0xf */ + rc = -EBADMSG; + goto return_error; + } + mi->tmsi = osmo_load32be(&mi_data[1]); + return 0; + + case GSM_MI_TYPE_IMSI: + case GSM_MI_TYPE_IMEI: + case GSM_MI_TYPE_IMEISV: + /* If the length is even, the last nibble (higher nibble of last octet) must be 0xf */ + if (!(mi_data[0] & GSM_MI_ODD) + && ((mi_data[mi_len - 1] & 0xf0) != 0xf0)) { + rc = -EBADMSG; + goto return_error; + } + rc = osmo_bcd2str(str, str_size, mi_data, 1, 1 + nibbles_len, allow_hex); + /* rc checked below */ + break; + + default: + /* Already handled above, but as future bug paranoia: */ + rc = -EINVAL; + goto return_error; + } + + /* check mi->str printing rc */ + if (rc < 1 || rc >= str_size) { + rc = -EBADMSG; + goto return_error; + } + return 0; + +return_error: + *mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_NONE, + }; + return rc; +} + +/*! Return the number of encoded Mobile Identity octets, without actually encoding. + * Useful to write tag-length header before encoding the MI. + * \param[in] mi Mobile Identity. + * \param[out] mi_digits If not NULL, store the number of nibbles of used MI data (i.e. strlen(mi->string) or 8 for a TMSI). + * \return octets that osmo_mobile_identity_encode_msgb() will write for this mi. + */ +int osmo_mobile_identity_encoded_len(const struct osmo_mobile_identity *mi, int *mi_digits) +{ + int mi_nibbles; + if (!mi) + return -EINVAL; + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + mi_nibbles = GSM23003_TMSI_NUM_BYTES * 2; + break; + case GSM_MI_TYPE_IMSI: + mi_nibbles = strlen(mi->imsi); + if (mi_nibbles < GSM23003_IMSI_MIN_DIGITS + || mi_nibbles > GSM23003_IMSI_MAX_DIGITS) + return -EINVAL; + break; + case GSM_MI_TYPE_IMEI: + mi_nibbles = strlen(mi->imei); + if (mi_nibbles < GSM23003_IMEI_NUM_DIGITS_NO_CHK + || mi_nibbles > GSM23003_IMEI_NUM_DIGITS) + return -EINVAL; + break; + case GSM_MI_TYPE_IMEISV: + mi_nibbles = strlen(mi->imeisv); + if (mi_nibbles != GSM23003_IMEISV_NUM_DIGITS) + return -EINVAL; + break; + default: + return -ENOTSUP; + } + + if (mi_digits) + *mi_digits = mi_nibbles; + + /* one type nibble, plus the MI nibbles, plus a filler nibble to complete the last octet: + * mi_octets = ceil((float)(mi_nibbles + 1) / 2) + */ + return (mi_nibbles + 2) / 2; +} + +/*! Encode Mobile Identity from uint32_t (TMSI) or digits string (all others) (3GPP TS 24.008 10.5.1.4). + * + * \param[out] buf Return buffer for encoded Mobile Identity. + * \param[in] buflen sizeof(buf). + * \param[in] mi Mobile identity to encode. + * \param[in] allow_hex If false, hexadecimal digits (>9) result in an error return value. + * \returns Amount of bytes written to buf, or negative on error. + */ +int osmo_mobile_identity_encode_buf(uint8_t *buf, size_t buflen, const struct osmo_mobile_identity *mi, bool allow_hex) +{ + int rc; + int nibbles_len; + int mi_octets; + const char *mi_str; + + if (!buf || !buflen) + return -EIO; + + mi_octets = osmo_mobile_identity_encoded_len(mi, &nibbles_len); + if (mi_octets < 0) + return mi_octets; + if (mi_octets > buflen) + return -ENOSPC; + + buf[0] = (mi->type & GSM_MI_TYPE_MASK) | ((nibbles_len & 1) ? GSM_MI_ODD : 0); + + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + buf[0] |= 0xf0; + osmo_store32be(mi->tmsi, &buf[1]); + return mi_octets; + + case GSM_MI_TYPE_IMSI: + mi_str = mi->imsi; + break; + case GSM_MI_TYPE_IMEI: + mi_str = mi->imei; + break; + case GSM_MI_TYPE_IMEISV: + mi_str = mi->imeisv; + break; + default: + return -ENOTSUP; + } + rc = osmo_str2bcd(buf, buflen, mi_str, 1, -1, allow_hex); + if (rc != mi_octets) + return -EINVAL; + return mi_octets; +} + +/*! Encode Mobile Identity type and BCD digits, appended to a msgb. + * Example to add a GSM48_IE_MOBILE_ID IEI with tag and length to a msgb: + * + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, .tmsi = random_tmsi, }; + * uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); + * int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + * if (rc < 0) + * goto error; + * *l = rc; + * + * Example to add a BSSGP_IE_IMSI with tag and variable-size length, where the + * length needs to be known at the time of writing the IE tag-length header: + * + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, }; + * OSMO_STRLCPY_ARRAY(mi.imsi, pinfo->imsi); + * msgb_tvl_put(msg, BSSGP_IE_IMSI, osmo_mobile_identity_encoded_len(&mi, NULL)); + * if (osmo_mobile_identity_encode_msgb(msg, &mi, false) < 0) + * goto error; + */ +int osmo_mobile_identity_encode_msgb(struct msgb *msg, const struct osmo_mobile_identity *mi, bool allow_hex) +{ + int rc = osmo_mobile_identity_encode_buf(msg->tail, msgb_tailroom(msg), mi, allow_hex); + if (rc < 0) + return rc; + msgb_put(msg, rc); + return rc; +} + +/*! Extract Mobile Identity from a Complete Layer 3 message. + * + * Determine the Mobile Identity data and call osmo_mobile_identity_decode() to return a decoded struct + * osmo_mobile_identity. + * + * \param[out] mi Return buffer for decoded Mobile Identity. + * \param[in] msg The Complete Layer 3 message to extract from (LU, CM Service Req or Paging Resp). + * \returns 0 on success, negative on error: return codes as defined in osmo_mobile_identity_decode(), or + * -ENOTSUP = not a Complete Layer 3 message, + */ +int osmo_mobile_identity_decode_from_l3(struct osmo_mobile_identity *mi, struct msgb *msg, bool allow_hex) +{ + const struct gsm48_hdr *gh; + int8_t pdisc = 0; + uint8_t mtype = 0; + const struct gsm48_loc_upd_req *lu; + const uint8_t *cm2_buf; + uint8_t cm2_len; + const uint8_t *mi_start; + const struct gsm48_pag_resp *paging_response; + const uint8_t *mi_data; + uint8_t mi_len; + const struct gsm48_imsi_detach_ind *idi; + + *mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_NONE, + .tmsi = GSM_RESERVED_TMSI, + }; + + if (msgb_l3len(msg) < sizeof(*gh)) + return -EBADMSG; + + gh = msgb_l3(msg); + pdisc = gsm48_hdr_pdisc(gh); + mtype = gsm48_hdr_msg_type(gh); + + switch (pdisc) { + case GSM48_PDISC_MM: + + switch (mtype) { + case GSM48_MT_MM_LOC_UPD_REQUEST: + /* First make sure that lu-> can be dereferenced */ + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) + return -EBADMSG; + + /* Now we know there is enough msgb data to read a lu->mi_len, so also check that */ + lu = (struct gsm48_loc_upd_req*)gh->data; + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu) + lu->mi_len) + return -EBADMSG; + mi_data = lu->mi; + mi_len = lu->mi_len; + goto got_mi; + + case GSM48_MT_MM_CM_SERV_REQ: + case GSM48_MT_MM_CM_REEST_REQ: + /* Unfortunately in Phase1 the Classmark2 length is variable, so we cannot + * just use gsm48_service_request struct, and need to parse it manually. */ + if (msgb_l3len(msg) < sizeof(*gh) + 2) + return -EBADMSG; + + cm2_len = gh->data[1]; + cm2_buf = gh->data + 2; + goto got_cm2; + + case GSM48_MT_MM_IMSI_DETACH_IND: + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*idi)) + return -EBADMSG; + idi = (struct gsm48_imsi_detach_ind*) gh->data; + mi_data = idi->mi; + mi_len = idi->mi_len; + goto got_mi; + + case GSM48_MT_MM_ID_RESP: + if (msgb_l3len(msg) < sizeof(*gh) + 2) + return -EBADMSG; + mi_data = gh->data+1; + mi_len = gh->data[0]; + goto got_mi; + + default: + break; + } + break; + + case GSM48_PDISC_RR: + + switch (mtype) { + case GSM48_MT_RR_PAG_RESP: + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*paging_response)) + return -EBADMSG; + paging_response = (struct gsm48_pag_resp*)gh->data; + cm2_len = paging_response->cm2_len; + cm2_buf = (uint8_t*)&paging_response->cm2; + goto got_cm2; + + default: + break; + } + break; + } + + return -ENOTSUP; + +got_cm2: + /* MI (Mobile Identity) LV follows the Classmark2 */ + + /* There must be at least a mi_len byte after the CM2 */ + if (cm2_buf + cm2_len + 1 > msg->tail) + return -EBADMSG; + + mi_start = cm2_buf + cm2_len; + mi_len = mi_start[0]; + mi_data = mi_start + 1; + +got_mi: + /* mi_data points at the start of the Mobile Identity coding of mi_len bytes */ + if (mi_data + mi_len > msg->tail) + return -EBADMSG; + + return osmo_mobile_identity_decode(mi, mi_data, mi_len, allow_hex); +} + +/*! Return a human readable representation of a struct osmo_mobile_identity. + * Write a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". + * \param[out] buf String buffer to write to. + * \param[in] buflen sizeof(buf). + * \param[in] mi Decoded Mobile Identity data. + * \return the strlen() of the string written when buflen is sufficiently large, like snprintf(). + */ +int osmo_mobile_identity_to_str_buf(char *buf, size_t buflen, const struct osmo_mobile_identity *mi) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + if (!mi) + return snprintf(buf, buflen, "NULL"); + OSMO_STRBUF_PRINTF(sb, "%s", gsm48_mi_type_name(mi->type)); + switch (mi->type) { + case GSM_MI_TYPE_TMSI: + OSMO_STRBUF_PRINTF(sb, "-0x%08" PRIX32, mi->tmsi); + break; + case GSM_MI_TYPE_IMSI: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imsi); + break; + case GSM_MI_TYPE_IMEI: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imei); + break; + case GSM_MI_TYPE_IMEISV: + OSMO_STRBUF_PRINTF(sb, "-%s", mi->imeisv); + break; + default: + break; + } + return sb.chars_needed; +} + +/*! Like osmo_mobile_identity_to_str_buf(), but return the string in a talloc buffer. + * \param[in] ctx Talloc context to allocate from. + * \param[in] mi Decoded Mobile Identity data. + * \return a string like "IMSI-1234567", "TMSI-0x1234ABCD" or "NONE", "NULL". + */ +char *osmo_mobile_identity_to_str_c(void *ctx, const struct osmo_mobile_identity *mi) +{ + OSMO_NAME_C_IMPL(ctx, 32, "ERROR", osmo_mobile_identity_to_str_buf, mi) +} + +/*! Compare two osmo_mobile_identity structs, returning typical cmp() result. + * \param[in] a Left side osmo_mobile_identity. + * \param[in] b Right side osmo_mobile_identity. + * \returns 0 if both are equal, -1 if a < b, 1 if a > b. + */ +int osmo_mobile_identity_cmp(const struct osmo_mobile_identity *a, const struct osmo_mobile_identity *b) +{ + int cmp; + if (a == b) + return 0; + if (!a) + return -1; + if (!b) + return 1; + cmp = OSMO_CMP(a->type, b->type); + if (cmp) + return cmp; + switch (a->type) { + case GSM_MI_TYPE_TMSI: + return OSMO_CMP(a->tmsi, b->tmsi); + case GSM_MI_TYPE_IMSI: + return strncmp(a->imsi, b->imsi, sizeof(a->imsi)); + case GSM_MI_TYPE_IMEI: + return strncmp(a->imei, b->imei, sizeof(a->imei)); + case GSM_MI_TYPE_IMEISV: + return strncmp(a->imeisv, b->imeisv, sizeof(a->imeisv)); + default: + /* No known type, but both have the same type. */ + return 0; + } +} + /*! Checks is particular message is cipherable in A/Gb mode according to * 3GPP TS 24.008 ? 4.7.1.2 * \param[in] hdr Message header @@ -676,7 +1124,8 @@ } } -/*! Generate TS 04.08 Mobile ID from TMSI +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 04.08 Mobile ID from TMSI * \param[out] buf Caller-provided output buffer (7 bytes) * \param[in] tmsi TMSI to be encoded * \returns number of byes encoded (always 7) */ @@ -692,7 +1141,8 @@ return 7; } -/*! Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 24.008 ?10.5.1.4 Mobile ID of BCD type from ASCII string * \param[out] buf Caller-provided output buffer of at least GSM48_MID_MAX_SIZE bytes * \param[in] id Identity to be encoded * \param[in] mi_type Type of identity (e.g. GSM_MI_TYPE_IMSI, IMEI, IMEISV) @@ -724,7 +1174,8 @@ return 2 + buf[1]; } -/*! Generate TS 04.08 Mobile ID from IMSI +/*! Deprecated, see osmo_mobile_identity instead. + * Generate TS 04.08 Mobile ID from IMSI * \param[out] buf Caller-provided output buffer * \param[in] imsi IMSI to be encoded * \returns number of bytes used in \a buf */ @@ -733,7 +1184,8 @@ return gsm48_generate_mid(buf, imsi, GSM_MI_TYPE_IMSI); } -/*! Convert TS 04.08 Mobile Identity (10.5.1.4) to string. +/*! Deprecated, see osmo_mobile_identity instead. + * Convert TS 04.08 Mobile Identity (10.5.1.4) to string. * This function does not validate the Mobile Identity digits, i.e. digits > 9 are returned as 'A'-'F'. * \param[out] string Caller-provided buffer for output * \param[in] str_len Length of \a string in bytes diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ac9aeb2..742cec3 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -363,6 +363,14 @@ gsm48_generate_mid_from_imsi; gsm48_generate_mid_from_tmsi; gsm48_mi_to_string; +osmo_mobile_identity_to_str_buf; +osmo_mobile_identity_to_str_c; +osmo_mobile_identity_cmp; +osmo_mobile_identity_decode; +osmo_mobile_identity_decode_from_l3; +osmo_mobile_identity_encoded_len; +osmo_mobile_identity_encode_buf; +osmo_mobile_identity_encode_msgb; gsm48_mm_att_tlvdef; gsm48_number_of_paging_subchannels; gsm48_parse_ra; diff --git a/src/utils.c b/src/utils.c index 18e105f..3c4a8c9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -175,6 +175,65 @@ return OSMO_MAX(0, end_nibble - start_nibble); } +/*! Convert string to BCD. + * The given nibble offsets are interpreted in BCD order, i.e. nibble 0 is bcd[0] & 0x0f, nibble 1 is bcd[0] & 0xf0, nibble + * 3 is bcd[1] & 0x0f, etc.. + * \param[out] dst Output BCD buffer. + * \param[in] dst_size sizeof() the output string buffer. + * \param[in] digits String containing decimal or hexadecimal digits in upper or lower case. + * \param[in] start_nibble Offset to start from, in nibbles, typically 1 to skip the first (MI type) nibble. + * \param[in] end_nibble Negative to write all digits found in str, followed by 0xf nibbles to fill any started octet. + * If >= 0, stop before this offset in nibbles, e.g. to get default behavior, pass + * start_nibble + strlen(str) + ((start_nibble + strlen(str)) & 1? 1 : 0) + 1. + * \param[in] allow_hex If false, return error if there are hexadecimal digits (A-F). If true, write those to + * BCD. + * \returns The buffer size in octets that is used to place all bcd digits (including the skipped nibbles + * from 'start_nibble' and rounded up to full octets); -EINVAL on invalid digits; + * -ENOMEM if dst is NULL, if dst_size is too small to contain all nibbles, or if start_nibble is negative. + */ +int osmo_str2bcd(uint8_t *dst, size_t dst_size, const char *digits, int start_nibble, int end_nibble, bool allow_hex) +{ + const char *digit = digits; + int nibble_i; + + if (!dst || !dst_size || start_nibble < 0) + return -ENOMEM; + + if (end_nibble < 0) { + end_nibble = start_nibble + strlen(digits); + /* If the last octet is not complete, add another filler nibble */ + if (end_nibble & 1) + end_nibble++; + } + if ((end_nibble / 2) > dst_size) + return -ENOMEM; + + for (nibble_i = start_nibble; nibble_i < end_nibble; nibble_i++) { + uint8_t nibble = 0xf; + int octet = nibble_i >> 1; + if (*digit) { + char c = *digit; + digit++; + if (c >= '0' && c <= '9') + nibble = c - '0'; + else if (allow_hex && c >= 'A' && c <= 'F') + nibble = 0xa + (c - 'A'); + else if (allow_hex && c >= 'a' && c <= 'f') + nibble = 0xa + (c - 'a'); + else + return -EINVAL; + } + nibble &= 0xf; + if ((nibble_i & 1)) + dst[octet] = (nibble << 4) | (dst[octet] & 0x0f); + else + dst[octet] = (dst[octet] & 0xf0) | nibble; + } + + /* floor(float(end_nibble) / 2) */ + return end_nibble / 2; +} + /*! Parse a string containing hexadecimal digits * \param[in] str string containing ASCII encoded hexadecimal digits * \param[out] b output buffer diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 9617823..6fef186 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -611,6 +611,368 @@ printf("\n"); } +struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) +{ + struct msgb *msg = msgb_alloc_headroom(size, 4, label); + OSMO_ASSERT(msg); + msg->l3h = msgb_put(msg, osmo_hexparse(hex, msg->data, msgb_tailroom(msg))); + return msg; +} + +struct mobile_identity_tc { + const char *label; + const char *compl_l3_msg; + int expect_rc; + struct osmo_mobile_identity expect_mi; +}; + +/* Some Complete Layer 3 messages copied from real GSM network traces. */ +struct mobile_identity_tc mobile_identity_tests[] = { + { + .label = "LU with IMSI 901700000004620", + .compl_l3_msg = "050802008168000130" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "LU with TMSI 0x0980ad8a", + .compl_l3_msg = "05084262f224002a50" "05f40980ad8a", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x0980ad8a, + }, + }, + { + .label = "LU with invalid MI type", + .compl_l3_msg = "050802008168000130" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "LU with truncated IMSI MI", + .compl_l3_msg = "050802008168000130" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too short IMSI MI (12345)", + .compl_l3_msg = "050802008168000130" "03193254", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with just long enough IMSI MI 123456", + .compl_l3_msg = "050802008168000130" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "LU with max length IMSI MI 123456789012345", + .compl_l3_msg = "050802008168000130" "081932547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456789012345", + }, + }, + { + .label = "LU with just too long IMSI MI 1234567890123456", + .compl_l3_msg = "050802008168000130" "091132547698103254f6", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with truncated TMSI MI", + .compl_l3_msg = "05084262f224002a50" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with odd length TMSI", + .compl_l3_msg = "05084262f224002a50" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too long TMSI MI", + .compl_l3_msg = "05084262f224002a50" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "LU with too short TMSI", + .compl_l3_msg = "05084262f224002a50" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with IMSI 123456", + .compl_l3_msg = "052401035058a6" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with TMSI 0x5a42e404", + .compl_l3_msg = "052401035058a6" "05f45a42e404", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x5a42e404, + }, + }, + { + .label = "CM Service Request with shorter CM2, with IMSI 123456", + .compl_l3_msg = "052401025058" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with longer CM2, with IMSI 123456", + .compl_l3_msg = "052401055058a62342" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "CM Service Request with shorter CM2, with TMSI 0x00000000", + .compl_l3_msg = "052401025058" "05f400000000", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0, + }, + }, + { + .label = "CM Service Request with invalid MI type", + .compl_l3_msg = "052401035058a6" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "CM Service Request with truncated IMSI MI", + .compl_l3_msg = "052401035058a6" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with truncated TMSI MI", + .compl_l3_msg = "0524010150" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with odd length TMSI", + .compl_l3_msg = "052401045058a623" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with too long TMSI MI", + .compl_l3_msg = "052401035058a6" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Request with too short TMSI", + .compl_l3_msg = "052401035058a6" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "CM Service Reestablish Request with TMSI 0x5a42e404", + .compl_l3_msg = "052801035058a6" "05f45a42e404", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x5a42e404, + }, + }, + { + .label = "Paging Response with IMSI 1234567", + .compl_l3_msg = "06270003505886" "0419325476", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "1234567", + }, + }, + { + .label = "Paging Response with TMSI 0xb48883de", + .compl_l3_msg = "06270003505886" "05f4b48883de", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0xb48883de, + }, + }, + { + .label = "Paging Response with TMSI, with unused nibble not 0xf", + .compl_l3_msg = "06270003505886" "0504b48883de", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with too short IMEI (1234567)", + .compl_l3_msg = "06270003505886" "041a325476", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with IMEI 123456789012345", + .compl_l3_msg = "06270003505886" "081a32547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "123456789012345", + }, + }, + { + .label = "Paging Response with IMEI 12345678901234 (no Luhn checksum)", + .compl_l3_msg = "06270003505886" "0812325476981032f4", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "12345678901234", + }, + }, + { + .label = "Paging Response with IMEISV 1234567890123456", + .compl_l3_msg = "06270003505886" "091332547698103254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMEISV, + .imeisv = "1234567890123456", + }, + }, + { + .label = "Paging Response with too short IMEISV 123456789012345", + .compl_l3_msg = "06270003505886" "081b32547698103254", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with too long IMEISV 12345678901234567", + .compl_l3_msg = "06270003505886" "091b3254769810325476", + .expect_rc = -EBADMSG, + }, + { + .label = "Paging Response with IMSI 123456789012345 and flipped ODD bit", + .compl_l3_msg = "06270003505886" "081132547698103254", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with IMSI 901700000004620", + .compl_l3_msg = "050130" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "IMSI-Detach with TMSI 0x0980ad8a", + .compl_l3_msg = "050130" "05f40980ad8a", + .expect_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = 0x0980ad8a, + }, + }, + { + .label = "IMSI-Detach with invalid MI type", + .compl_l3_msg = "050130" "089d10070000006402", + .expect_rc = -EINVAL, + }, + { + .label = "IMSI-Detach with truncated IMSI MI", + .compl_l3_msg = "050130" "0899100700000064", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too short IMSI MI (12345)", + .compl_l3_msg = "050130" "03193254", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with just long enough IMSI MI 123456", + .compl_l3_msg = "050130" "04113254f6", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456", + }, + }, + { + .label = "IMSI-Detach with max length IMSI MI 123456789012345", + .compl_l3_msg = "050130" "081932547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "123456789012345", + }, + }, + { + .label = "IMSI-Detach with just too long IMSI MI 1234567890123456", + .compl_l3_msg = "050130" "091132547698103254f6", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with truncated TMSI MI", + .compl_l3_msg = "050130" "05f40980ad", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with odd length TMSI", + .compl_l3_msg = "050130" "05fc0980ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too long TMSI MI", + .compl_l3_msg = "050130" "06f40980ad23", + .expect_rc = -EBADMSG, + }, + { + .label = "IMSI-Detach with too short TMSI", + .compl_l3_msg = "050130" "04f480ad8a", + .expect_rc = -EBADMSG, + }, + { + .label = "Identity Response with IMSI 901700000004620", + .compl_l3_msg = "0519" "089910070000006402", + .expect_mi = { + .type = GSM_MI_TYPE_IMSI, + .imsi = "901700000004620", + }, + }, + { + .label = "Identity Response with IMEI 123456789012345", + .compl_l3_msg = "0519" "081a32547698103254", + .expect_mi = { + .type = GSM_MI_TYPE_IMEI, + .imei = "123456789012345", + }, + }, + { + .label = "Identity Response with IMEISV 9876543210987654", + .compl_l3_msg = "0519" "099378563412907856f4", + .expect_mi = { + .type = GSM_MI_TYPE_IMEISV, + .imeisv = "9876543210987654", + }, + }, +}; + +void test_struct_mobile_identity() +{ + struct mobile_identity_tc *t; + printf("%s()\n", __func__); + for (t = mobile_identity_tests; (t - mobile_identity_tests) < ARRAY_SIZE(mobile_identity_tests); t++) { + struct osmo_mobile_identity mi; + struct msgb *msg; + int rc; + memset(&mi, 0xff, sizeof(mi)); + + msg = msgb_from_hex(t->label, 1024, t->compl_l3_msg); + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + msgb_free(msg); + + printf("%s: rc = %d", t->label, rc); + if (!rc) { + printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); + } + + if (rc == t->expect_rc + && ((rc != 0) || !osmo_mobile_identity_cmp(&mi, &t->expect_mi))) { + printf(" ok"); + } else { + printf(" ERROR: Expected rc = %d", t->expect_rc); + if (!t->expect_rc) + printf(", mi = %s", osmo_mobile_identity_to_str_c(OTC_SELECT, &t->expect_mi)); + } + printf("\n"); + } + printf("\n"); +} + static const struct bcd_number_test { /* Human-readable test name */ const char *test_name; @@ -1182,6 +1544,7 @@ test_mid_from_imsi(); test_mid_encode_decode(); test_mid_decode_zero_length(); + test_struct_mobile_identity(); test_bcd_number_encode_decode(); test_ra_cap(); test_lai_encode_decode(); diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok index d343869..3e6ae1f 100644 --- a/tests/gsm0408/gsm0408_test.ok +++ b/tests/gsm0408/gsm0408_test.ok @@ -139,6 +139,57 @@ rc=1 returned empty string +test_struct_mobile_identity() +LU with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +LU with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok +LU with invalid MI type: rc = -22 ok +LU with truncated IMSI MI: rc = -74 ok +LU with too short IMSI MI (12345): rc = -74 ok +LU with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok +LU with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok +LU with just too long IMSI MI 1234567890123456: rc = -74 ok +LU with truncated TMSI MI: rc = -74 ok +LU with odd length TMSI: rc = -74 ok +LU with too long TMSI MI: rc = -74 ok +LU with too short TMSI: rc = -74 ok +CM Service Request with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok +CM Service Request with shorter CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with longer CM2, with IMSI 123456: rc = 0, mi = IMSI-123456 ok +CM Service Request with shorter CM2, with TMSI 0x00000000: rc = 0, mi = TMSI-0x00000000 ok +CM Service Request with invalid MI type: rc = -22 ok +CM Service Request with truncated IMSI MI: rc = -74 ok +CM Service Request with truncated TMSI MI: rc = -74 ok +CM Service Request with odd length TMSI: rc = -74 ok +CM Service Request with too long TMSI MI: rc = -74 ok +CM Service Request with too short TMSI: rc = -74 ok +CM Service Reestablish Request with TMSI 0x5a42e404: rc = 0, mi = TMSI-0x5A42E404 ok +Paging Response with IMSI 1234567: rc = 0, mi = IMSI-1234567 ok +Paging Response with TMSI 0xb48883de: rc = 0, mi = TMSI-0xB48883DE ok +Paging Response with TMSI, with unused nibble not 0xf: rc = -74 ok +Paging Response with too short IMEI (1234567): rc = -74 ok +Paging Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok +Paging Response with IMEI 12345678901234 (no Luhn checksum): rc = 0, mi = IMEI-12345678901234 ok +Paging Response with IMEISV 1234567890123456: rc = 0, mi = IMEI-SV-1234567890123456 ok +Paging Response with too short IMEISV 123456789012345: rc = -74 ok +Paging Response with too long IMEISV 12345678901234567: rc = -74 ok +Paging Response with IMSI 123456789012345 and flipped ODD bit: rc = -74 ok +IMSI-Detach with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +IMSI-Detach with TMSI 0x0980ad8a: rc = 0, mi = TMSI-0x0980AD8A ok +IMSI-Detach with invalid MI type: rc = -22 ok +IMSI-Detach with truncated IMSI MI: rc = -74 ok +IMSI-Detach with too short IMSI MI (12345): rc = -74 ok +IMSI-Detach with just long enough IMSI MI 123456: rc = 0, mi = IMSI-123456 ok +IMSI-Detach with max length IMSI MI 123456789012345: rc = 0, mi = IMSI-123456789012345 ok +IMSI-Detach with just too long IMSI MI 1234567890123456: rc = -74 ok +IMSI-Detach with truncated TMSI MI: rc = -74 ok +IMSI-Detach with odd length TMSI: rc = -74 ok +IMSI-Detach with too long TMSI MI: rc = -74 ok +IMSI-Detach with too short TMSI: rc = -74 ok +Identity Response with IMSI 901700000004620: rc = 0, mi = IMSI-901700000004620 ok +Identity Response with IMEI 123456789012345: rc = 0, mi = IMEI-123456789012345 ok +Identity Response with IMEISV 9876543210987654: rc = 0, mi = IMEI-SV-9876543210987654 ok + BSD number encoding / decoding test - Running test: regular 9-digit MSISDN - Encoding ASCII (buffer limit=0) '123456789'... diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index e87cb22..e15cf5f 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -487,6 +487,7 @@ { int i; uint8_t bcd[64]; + uint8_t bcd2[64]; int rc; printf("\nTesting bcd to string conversion\n"); @@ -511,6 +512,12 @@ printf(" ERROR: expected rc=%d\n", t->expect_rc); if (strcmp(str, t->expect_str)) printf(" ERROR: expected result %s\n", osmo_quote_str(t->expect_str, -1)); + + memset(bcd2, 0xff, sizeof(bcd2)); + rc = osmo_str2bcd(bcd2, sizeof(bcd2), str, t->start_nibble, -1, t->allow_hex); + printf("osmo_str2bcd(start_nibble=%d) -> rc=%d\n", t->start_nibble, rc); + if (rc > 0) + printf(" = %s\n", osmo_hexdump(bcd2, rc)); } printf("- zero output buffer\n"); diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index baa708e..cbab72a 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -181,27 +181,41 @@ - BCD-input='1a 32 54 76 98 f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234567890" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 54 76 98 f0 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=-22 -> "1234ABCD90" +osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 a4 cb 9d f0' nibbles=[1..11[ str_size=64 rc=10 -> "1234ABCD90" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 a4 cb 9d f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=-22 -> "1234567890F" +osmo_str2bcd(start_nibble=1) -> rc=-22 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=64 rc=11 -> "1234567890F" +osmo_str2bcd(start_nibble=1) -> rc=6 + = 1f 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[0..12[ str_size=64 rc=12 -> "A1234567890F" +osmo_str2bcd(start_nibble=0) -> rc=6 + = 1a 32 54 76 98 f0 - BCD-input='1a 32 54 76 98 f0' nibbles=[1..12[ str_size=5 rc=11 -> "1234" +osmo_str2bcd(start_nibble=1) -> rc=3 + = 1f 32 f4 - BCD-input='' nibbles=[1..1[ str_size=64 rc=0 -> "" +osmo_str2bcd(start_nibble=1) -> rc=1 + = ff - zero output buffer bcd2str(NULL, ...) -> -12 bcd2str(dst, 0, ...) -> -12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 Gerrit-Change-Number: 18858 Gerrit-PatchSet: 2 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 Tue Jun 16 19:44:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 19:44:21 +0000 Subject: Change in libosmocore[master]: gsm0408_test: allow deprecated API In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18859 ) Change subject: gsm0408_test: allow deprecated API ...................................................................... gsm0408_test: allow deprecated API This test knowingly calls deprecated functions -- allow that to squelch these warnings: warning: ?gsm48_generate_lai? is deprecated: Use gsm48_generate_lai2() instead, to not lose leading zeros in the MNC [-Wdeprecated-declarations] warning: ?gsm48_decode_lai? is deprecated: Use gsm48_decode_lai2() instead, to not lose leading zeros in the MNC [-Wdeprecated-declarations] Change-Id: Ifd618c1b9befa9c9ef0a338ab4aae2b0f796f4c2 --- M tests/gsm0408/gsm0408_test.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index 6fef186..d2ae6f6 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -18,6 +18,8 @@ * */ +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + #include #include #include -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifd618c1b9befa9c9ef0a338ab4aae2b0f796f4c2 Gerrit-Change-Number: 18859 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 19:46:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 19:46:20 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18714 ) Change subject: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 Gerrit-Change-Number: 18714 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 19:46: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 Jun 16 19:50:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 16 Jun 2020 19:50:19 +0000 Subject: Change in osmo-sgsn[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 Gerrit-Change-Number: 18716 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 19:50: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 Jun 16 21:05:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 21:05:32 +0000 Subject: Change in libosmocore[master]: gsm0502: add TDMA frame number constants and modular arithmetic References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18869 ) Change subject: gsm0502: add TDMA frame number constants and modular arithmetic ...................................................................... gsm0502: add TDMA frame number constants and modular arithmetic These TDMA constatns and modular arithmetic operations are used in a number of osmo-* projects, so it makes sense to have them all in a single header file, with minimalistic documentation. Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d --- M include/osmocom/gsm/gsm0502.h 1 file changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/18869/1 diff --git a/include/osmocom/gsm/gsm0502.h b/include/osmocom/gsm/gsm0502.h index cb993dc..189eab0 100644 --- a/include/osmocom/gsm/gsm0502.h +++ b/include/osmocom/gsm/gsm0502.h @@ -7,6 +7,30 @@ #include #include +/* 4.3.3 TDMA frame number : constants and modular arithmetic */ +#define GSM_TDMA_FN_DURATION_nS 4615384 /* in 1e?9 seconds (approx) */ +#define GSM_TDMA_FN_DURATION_uS 4615 /* in 1e-6 seconds (approx) */ + +#define GSM_TDMA_SUPERFRAME (26 * 51) +#define GSM_TDMA_HYPERFRAME (2048 * GSM_TDMA_SUPERFRAME) + +/*! Return the sum of two specified TDMA frame numbers (summation) */ +#define GSM_TDMA_FN_SUM(a, b) \ + ((a + b) % GSM_TDMA_HYPERFRAME) +/*! Return the difference of two specified TDMA frame numbers (subtraction) */ +#define GSM_TDMA_FN_SUB(a, b) \ + ((a + GSM_TDMA_HYPERFRAME - b) % GSM_TDMA_HYPERFRAME) +/*! Return the *minimum* difference of two specified TDMA frame numbers (distance) */ +#define GSM_TDMA_FN_DIFF(a, b) \ + OSMO_MIN(GSM_TDMA_FN_SUB(a, b), GSM_TDMA_FN_SUB(b, a)) + +/*! Increment the given TDMA frame number by 1 and return the result (like ++fn) */ +#define GSM_TDMA_FN_INC(fn) \ + (fn = GSM_TDMA_FN_SUM(fn, 1)) +/*! Decrement the given TDMA frame number by 1 and return the result (like --fn) */ +#define GSM_TDMA_FN_DEC(fn) \ + (fn = GSM_TDMA_FN_SUB(fn, 1)) + /* Table 5 Clause 7 TS 05.02 */ static inline unsigned int gsm0502_get_n_pag_blocks(struct gsm48_control_channel_descr *chan_desc) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d Gerrit-Change-Number: 18869 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 Jun 16 21:14:25 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 21:14:25 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18712 ) Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... Patch Set 4: Code-Review+2 re-apply +2: only diff in new patch set is the Depends in the commit log and an added entry in TODO-RELEASE -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 21: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 Tue Jun 16 21:15:33 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 21:15:33 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18713 ) Change subject: use osmo_mobile_identity API everywhere ...................................................................... Patch Set 5: Code-Review+2 re-apply +2: only diff is the 'Depends:' change-id in commit log -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 21: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 Tue Jun 16 21:27:12 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 21:27:12 +0000 Subject: Change in libosmocore[master]: gsm0502: add TDMA frame number constants and modular arithmetic In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/18869 to look at the new patch set (#2). Change subject: gsm0502: add TDMA frame number constants and modular arithmetic ...................................................................... gsm0502: add TDMA frame number constants and modular arithmetic These TDMA constatns and modular arithmetic operations are used in a number of osmo-* projects, so it makes sense to have them all in a single header file, with minimalistic documentation. Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d --- M include/osmocom/gsm/gsm0502.h 1 file changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/18869/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d Gerrit-Change-Number: 18869 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 21:27:48 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 21:27:48 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c at 2094 PS3, Line 2094: FIRST [LAST] > I'm not sure if this FIRST / LAST (generic variables that accept any kind of string) is the best her [?] I thought allowing hex is a neat idea, because you're dividing a number of MSC across a range of bits. So I thought one would assign 0-0x0ff and 0x100-0x2ff and so on. But of course dividing the range isn't always by a power of two, and writing those back in integer is a quirk. Yet this case is not like common vty range checking because the nri-bitlen is configurable: even if the vty says <0-32767> we will normally have only <0-1023> allowed (nri-bitlen == 10). I'm a bit undecided... what is more clear? nri add <0-32767> <0-32767> NRI_STR "add\n" "First value of NRI range, should be a number within nri-bitlen\n" "Last...\n" or nri add FIRST LAST I notice that the current patch also fails to explain the ranges... ...well, yeah, best remove ambiguity of hex vs decimal, it's a non-feature -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 21:27:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 21:38:43 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 21:38:43 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18870 ) Change subject: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t ...................................................................... trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t Change-Id: Idde328d176b4cbd89c62712e4a247095dd596105 --- M src/host/trxcon/scheduler.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/70/18870/1 diff --git a/src/host/trxcon/scheduler.h b/src/host/trxcon/scheduler.h index 36c64e5..3a97e9d 100644 --- a/src/host/trxcon/scheduler.h +++ b/src/host/trxcon/scheduler.h @@ -33,7 +33,7 @@ /*! \brief One scheduler instance */ struct trx_sched { /*! \brief Clock state */ - uint8_t state; + enum tdma_sched_clck_state state; /*! \brief Local clock source */ struct timespec clock; /*! \brief Count of processed frames */ -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Idde328d176b4cbd89c62712e4a247095dd596105 Gerrit-Change-Number: 18870 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 Jun 16 21:38:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 21:38:44 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: clarify lost frame counter description References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18871 ) Change subject: trxcon/scheduler: cosmetic: clarify lost frame counter description ...................................................................... trxcon/scheduler: cosmetic: clarify lost frame counter description Change-Id: Ied5ea8524f2ec6c324e9fd37256111d099c23e6c --- M src/host/trxcon/scheduler.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/71/18871/1 diff --git a/src/host/trxcon/scheduler.h b/src/host/trxcon/scheduler.h index 3a97e9d..e3c0cb0 100644 --- a/src/host/trxcon/scheduler.h +++ b/src/host/trxcon/scheduler.h @@ -40,7 +40,7 @@ uint32_t fn_counter_proc; /*! \brief Local frame counter advance */ uint32_t fn_counter_advance; - /*! \brief Frame counter */ + /*! \brief Count of lost frames */ uint32_t fn_counter_lost; /*! \brief Frame callback timer */ struct osmo_timer_list clock_timer; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ied5ea8524f2ec6c324e9fd37256111d099c23e6c Gerrit-Change-Number: 18871 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 Jun 16 21:38:45 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 21:38:45 +0000 Subject: Change in osmocom-bb[master]: trxcon: use libosmocore's TDMA frame number API References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18872 ) Change subject: trxcon: use libosmocore's TDMA frame number API ...................................................................... trxcon: use libosmocore's TDMA frame number API Depends: (libosmocore) Ic291fd3644f34964374227a191c7045d79d77e0d Change-Id: I49a043d8483e116cf2d91820edb511846175173f --- M src/host/trxcon/l1ctl.c M src/host/trxcon/sched_clck.c M src/host/trxcon/sched_lchan_tchh.c M src/host/trxcon/sched_trx.c M src/host/trxcon/scheduler.h 5 files changed, 22 insertions(+), 39 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/72/18872/1 diff --git a/src/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c index 192cdd1..aec304f 100644 --- a/src/host/trxcon/l1ctl.c +++ b/src/host/trxcon/l1ctl.c @@ -370,9 +370,9 @@ /* Start FBSB expire timer */ l1l->fbsb_timer.data = l1l; l1l->fbsb_timer.cb = fbsb_timer_cb; - LOGP(DL1C, LOGL_INFO, "Starting FBSB timer %u ms\n", timeout * FRAME_DURATION_uS / 1000); + LOGP(DL1C, LOGL_INFO, "Starting FBSB timer %u ms\n", timeout * GSM_TDMA_FN_DURATION_uS / 1000); osmo_timer_schedule(&l1l->fbsb_timer, 0, - timeout * FRAME_DURATION_uS); + timeout * GSM_TDMA_FN_DURATION_uS); exit: msgb_free(msg); diff --git a/src/host/trxcon/sched_clck.c b/src/host/trxcon/sched_clck.c index 7c814dc..9476ccd 100644 --- a/src/host/trxcon/sched_clck.c +++ b/src/host/trxcon/sched_clck.c @@ -50,7 +50,7 @@ struct trx_sched *sched = (struct trx_sched *) data; struct timespec tv_now, *tv_clock, elapsed; int64_t elapsed_us; - const struct timespec frame_duration = { .tv_sec = 0, .tv_nsec = FRAME_DURATION_uS * 1000 }; + const struct timespec frame_duration = { .tv_sec = 0, .tv_nsec = GSM_TDMA_FN_DURATION_nS }; /* Check if transceiver is still alive */ if (sched->fn_counter_lost++ == TRX_LOSS_FRAMES) { @@ -68,7 +68,7 @@ elapsed_us = (elapsed.tv_sec * 1000000) + (elapsed.tv_nsec / 1000); /* If someone played with clock, or if the process stalled */ - if (elapsed_us > FRAME_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { + if (elapsed_us > GSM_TDMA_FN_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { LOGP(DSCH, LOGL_NOTICE, "PC clock skew: " "elapsed uS %" PRId64 "\n", elapsed_us); @@ -78,11 +78,11 @@ } /* Schedule next FN clock */ - while (elapsed_us > FRAME_DURATION_uS / 2) { + while (elapsed_us > GSM_TDMA_FN_DURATION_uS / 2) { timespecadd(tv_clock, &frame_duration, tv_clock); - elapsed_us -= FRAME_DURATION_uS; + elapsed_us -= GSM_TDMA_FN_DURATION_uS; - TDMA_FN_INC(&sched->fn_counter_proc); + GSM_TDMA_FN_INC(sched->fn_counter_proc); /* Call frame callback */ if (sched->clock_cb) @@ -90,7 +90,7 @@ } osmo_timer_schedule(&sched->clock_timer, 0, - FRAME_DURATION_uS - elapsed_us); + GSM_TDMA_FN_DURATION_uS - elapsed_us); } static void sched_clck_correct(struct trx_sched *sched, @@ -108,7 +108,7 @@ sched->clock_timer.cb = sched_clck_tick; sched->clock_timer.data = sched; - osmo_timer_schedule(&sched->clock_timer, 0, FRAME_DURATION_uS); + osmo_timer_schedule(&sched->clock_timer, 0, GSM_TDMA_FN_DURATION_uS); } int sched_clck_handle(struct trx_sched *sched, uint32_t fn) @@ -140,10 +140,10 @@ /* Calculate elapsed time / frames since last processed fn */ timespecsub(&tv_now, tv_clock, &elapsed); elapsed_us = (elapsed.tv_sec * 1000000) + (elapsed.tv_nsec / 1000); - elapsed_fn = TDMA_FN_SUB(fn, sched->fn_counter_proc); + elapsed_fn = GSM_TDMA_FN_SUB(fn, sched->fn_counter_proc); if (elapsed_fn >= 135774) - elapsed_fn -= GSM_HYPERFRAME; + elapsed_fn -= GSM_TDMA_HYPERFRAME; /* Check for max clock skew */ if (elapsed_fn > MAX_FN_SKEW || elapsed_fn < -MAX_FN_SKEW) { @@ -155,7 +155,7 @@ } LOGP(DSCH, LOGL_INFO, "GSM clock jitter: %" PRId64 "\n", - elapsed_fn * FRAME_DURATION_uS - elapsed_us); + elapsed_fn * GSM_TDMA_FN_DURATION_uS - elapsed_us); /* Too many frames have been processed already */ if (elapsed_fn < 0) { @@ -164,21 +164,21 @@ * Set clock to the time or last FN should * have been transmitted */ - duration.tv_nsec = (0 - elapsed_fn) * FRAME_DURATION_uS * 1000; + duration.tv_nsec = (0 - elapsed_fn) * GSM_TDMA_FN_DURATION_nS; duration.tv_sec = duration.tv_nsec / 1000000000; duration.tv_nsec = duration.tv_nsec % 1000000000; timespecadd(&tv_now, &duration, tv_clock); /* Set time to the time our next FN has to be transmitted */ osmo_timer_schedule(&sched->clock_timer, 0, - FRAME_DURATION_uS * (1 - elapsed_fn)); + GSM_TDMA_FN_DURATION_uS * (1 - elapsed_fn)); return 0; } /* Transmit what we still need to transmit */ while (fn != sched->fn_counter_proc) { - TDMA_FN_INC(&sched->fn_counter_proc); + GSM_TDMA_FN_INC(sched->fn_counter_proc); /* Call frame callback */ if (sched->clock_cb) @@ -187,7 +187,7 @@ /* Schedule next FN to be transmitted */ *tv_clock = tv_now; - osmo_timer_schedule(&sched->clock_timer, 0, FRAME_DURATION_uS); + osmo_timer_schedule(&sched->clock_timer, 0, GSM_TDMA_FN_DURATION_uS); return 0; } diff --git a/src/host/trxcon/sched_lchan_tchh.c b/src/host/trxcon/sched_lchan_tchh.c index 5edbfcd..b6f0708 100644 --- a/src/host/trxcon/sched_lchan_tchh.c +++ b/src/host/trxcon/sched_lchan_tchh.c @@ -171,8 +171,8 @@ #define BLOCK_FIRST_FN(map) \ do { \ if (map[i][ARRAY_SIZE(map[i]) - 1] == fn_mf) { \ - fn_diff = TDMA_FN_DIFF(fn_mf, map[i][0]); \ - return TDMA_FN_SUB(last_fn, fn_diff); \ + fn_diff = GSM_TDMA_FN_DIFF(fn_mf, map[i][0]); \ + return GSM_TDMA_FN_SUB(last_fn, fn_diff); \ } \ } while (++i < ARRAY_SIZE(map)) diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c index e172610..b6087ef 100644 --- a/src/host/trxcon/sched_trx.c +++ b/src/host/trxcon/sched_trx.c @@ -68,8 +68,7 @@ * Advance frame number, giving the transceiver more * time until a burst must be transmitted... */ - fn = TDMA_FN_SUM(sched->fn_counter_proc, - sched->fn_counter_advance); + fn = GSM_TDMA_FN_SUM(sched->fn_counter_proc, sched->fn_counter_advance); /* Get frame from multiframe */ offset = fn % ts->mf_layout->period; @@ -636,7 +635,7 @@ mf = lchan->ts->mf_layout; /* How many frames elapsed since the last one? */ - elapsed = TDMA_FN_SUB(fn, lchan->tdma.last_proc); + elapsed = GSM_TDMA_FN_SUB(fn, lchan->tdma.last_proc); if (elapsed > mf->period) { LOGP(DSCHD, LOGL_NOTICE, "Too many (>%u) contiguous TDMA frames elapsed (%u) " "since the last processed fn=%u\n", mf->period, @@ -656,7 +655,7 @@ /* Traverse from fp till the current frame */ for (i = 0; i < elapsed - 1; i++) { - fp = &mf->frames[TDMA_FN_INC(&fake_meas.fn) % mf->period]; + fp = &mf->frames[GSM_TDMA_FN_INC(fake_meas.fn) % mf->period]; if (fp->dl_chan != lchan->type) continue; diff --git a/src/host/trxcon/scheduler.h b/src/host/trxcon/scheduler.h index e3c0cb0..43127cc 100644 --- a/src/host/trxcon/scheduler.h +++ b/src/host/trxcon/scheduler.h @@ -4,23 +4,7 @@ #include #include - -#define FRAME_DURATION_uS 4615 - -#define GSM_SUPERFRAME (26 * 51) -#define GSM_HYPERFRAME (2048 * GSM_SUPERFRAME) - -/* TDMA frame number arithmetics */ -#define TDMA_FN_SUM(a, b) \ - ((a + b) % GSM_HYPERFRAME) -#define TDMA_FN_SUB(a, b) \ - ((a + GSM_HYPERFRAME - b) % GSM_HYPERFRAME) -#define TDMA_FN_INC(fn) \ - (*fn = TDMA_FN_SUM(*fn, 1)) -#define TDMA_FN_MIN(a, b) \ - (a < b ? a : b) -#define TDMA_FN_DIFF(a, b) \ - TDMA_FN_MIN(TDMA_FN_SUB(a, b), TDMA_FN_SUB(b, a)) +#include enum tdma_sched_clck_state { SCH_CLCK_STATE_WAIT, -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I49a043d8483e116cf2d91820edb511846175173f Gerrit-Change-Number: 18872 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 Jun 16 21:46:31 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 21:46:31 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: Hello dexter, pespin, daniel, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 to look at the new patch set (#5). Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... MSC pooling: make NRI mappings VTY configurable Use the osmo_nri_ranges API to manage each MSC's NRI ranges by VTY configuration. Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c A tests/nri_cfg.vty 7 files changed, 368 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/18765/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 21:49:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 21:49:04 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18779 ) Change subject: mscpool: add user manual chapter ...................................................................... Patch Set 5: Code-Review+2 combining 2x +1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 21:49: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 Jun 16 21:54:12 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 21:54:12 +0000 Subject: Change in osmo-bsc[master]: vty: add 'mscpool roundrobin next' for ttcn3 tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18767 ) Change subject: vty: add 'mscpool roundrobin next' for ttcn3 tests ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18767/6/src/osmo-bsc/osmo_bsc_vty.c File src/osmo-bsc/osmo_bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18767/6/src/osmo-bsc/osmo_bsc_vty.c at 942 PS6, Line 942: DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, > maybe make that a hidden command with DEFUN_HIDDEN ? It's not something a normal user should ever us [?] Then again, if sysadmins would like to test a specific MSC, maybe it is useful to know that this command exists? (I've got the 'HIDDEN' patch set ready to submit, but now reconsidering) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c Gerrit-Change-Number: 18767 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 21:54:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 22:00:37 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:00:37 +0000 Subject: Change in osmo-bsc[master]: vty: add 'mscpool roundrobin next' for ttcn3 tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18767 ) Change subject: vty: add 'mscpool roundrobin next' for ttcn3 tests ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18767/6/src/osmo-bsc/osmo_bsc_vty.c File src/osmo-bsc/osmo_bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18767/6/src/osmo-bsc/osmo_bsc_vty.c at 942 PS6, Line 942: DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, > Then again, if sysadmins would like to test a specific MSC, maybe it is useful to know that this com [?] placing the change in a separate patch so we can decide later -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c Gerrit-Change-Number: 18767 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 22:00:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels 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 Jun 16 22:01:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:01:26 +0000 Subject: Change in osmo-bsc[master]: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18712 ) Change subject: remove extract_sub(), add bsc_subscr_find_or_create_by_mi() ...................................................................... remove extract_sub(), add bsc_subscr_find_or_create_by_mi() Use the new osmo_mobile_identity API to shed some code dup and simplify. gsm48_paging_extract_mi() is now unused, drop. (More refactoring to use osmo_mobile_identity follows in subsequent patch.) Depends: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 (libosmocore) Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b --- M TODO-RELEASE M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/gsm_04_08_rr.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/gsm_08_08.c 7 files changed, 55 insertions(+), 58 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index e2fa427..b822f8a 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -11,3 +11,5 @@ libosmocore struct gsm0808_diagnostics Depends on libosmocore > 1.3.0 libosmocore gsm0808_diagnostics_octet_location_str() Depends on libosmocore > 1.3.0 libosmocore gsm0808_diagnostics_bit_location_str() Depends on libosmocore > 1.3.0 +libosmocore osmo_mobile_identity Depends on libosmocore > 1.3.0 +osmo-bsc Mobile Identity Coding OsmoBSC is stricter in rejecting invalid coding of Mobile Identity IEs diff --git a/include/osmocom/bsc/bsc_subscriber.h b/include/osmocom/bsc/bsc_subscriber.h index 93b3539..53fa7be 100644 --- a/include/osmocom/bsc/bsc_subscriber.h +++ b/include/osmocom/bsc/bsc_subscriber.h @@ -6,6 +6,7 @@ #include #include +#include struct log_target; @@ -25,11 +26,13 @@ const char *imsi); struct bsc_subscr *bsc_subscr_find_or_create_by_tmsi(struct llist_head *list, uint32_t tmsi); +struct bsc_subscr *bsc_subscr_find_or_create_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi); struct bsc_subscr *bsc_subscr_find_by_imsi(struct llist_head *list, const char *imsi); struct bsc_subscr *bsc_subscr_find_by_tmsi(struct llist_head *list, uint32_t tmsi); +struct bsc_subscr *bsc_subscr_find_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi); void bsc_subscr_set_imsi(struct bsc_subscr *bsub, const char *imsi); diff --git a/include/osmocom/bsc/gsm_04_08_rr.h b/include/osmocom/bsc/gsm_04_08_rr.h index 06cefa9..d34e695 100644 --- a/include/osmocom/bsc/gsm_04_08_rr.h +++ b/include/osmocom/bsc/gsm_04_08_rr.h @@ -40,8 +40,6 @@ struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value); int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type); -int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, - char *mi_string, uint8_t *mi_type); struct msgb *gsm48_create_loc_upd_rej(uint8_t cause); struct msgb *gsm48_create_rr_status(uint8_t cause); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index be7c575..bc4c017 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -52,8 +52,6 @@ #define OBSC_LINKID_CB(__msgb) (__msgb)->cb[3] -#define tmsi_from_string(str) strtoul(str, NULL, 10) - /* 3-bit long values */ #define EARFCN_PRIO_INVALID 8 #define EARFCN_MEAS_BW_INVALID 8 diff --git a/src/osmo-bsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c index 38b532a..9ddfcaa 100644 --- a/src/osmo-bsc/bsc_subscriber.c +++ b/src/osmo-bsc/bsc_subscriber.c @@ -75,6 +75,20 @@ return NULL; } +struct bsc_subscr *bsc_subscr_find_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi) +{ + if (!mi) + return NULL; + switch (mi->type) { + case GSM_MI_TYPE_IMSI: + return bsc_subscr_find_by_imsi(list, mi->imsi); + case GSM_MI_TYPE_TMSI: + return bsc_subscr_find_by_tmsi(list, mi->tmsi); + default: + return NULL; + } +} + void bsc_subscr_set_imsi(struct bsc_subscr *bsub, const char *imsi) { if (!bsub) @@ -110,6 +124,20 @@ return bsc_subscr_get(bsub); } +struct bsc_subscr *bsc_subscr_find_or_create_by_mi(struct llist_head *list, const struct osmo_mobile_identity *mi) +{ + if (!mi) + return NULL; + switch (mi->type) { + case GSM_MI_TYPE_IMSI: + return bsc_subscr_find_or_create_by_imsi(list, mi->imsi); + case GSM_MI_TYPE_TMSI: + return bsc_subscr_find_or_create_by_tmsi(list, mi->tmsi); + default: + return NULL; + } +} + const char *bsc_subscr_name(struct bsc_subscr *bsub) { static char buf[32]; diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 4e5a307..4630b47 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -842,16 +842,6 @@ return gsm48_mi_to_string(mi_string, GSM48_MI_SIZE, mi_lv+1, *mi_lv); } -int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, - char *mi_string, uint8_t *mi_type) -{ - static const uint32_t classmark_offset = - offsetof(struct gsm48_pag_resp, classmark2); - uint8_t *classmark2_lv = (uint8_t *) &resp->classmark2; - return gsm48_extract_mi(classmark2_lv, length - classmark_offset, - mi_string, mi_type); -} - /* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ uint64_t str_to_imsi(const char *imsi_str) { diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index a252203..7f54fe6 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -122,46 +122,6 @@ return cm->cm_service_type == GSM48_CMSERV_EMERGENCY; } -/* extract a subscriber from the paging response */ -static struct bsc_subscr *extract_sub(struct gsm_subscriber_connection *conn, - struct msgb *msg) -{ - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - struct gsm48_hdr *gh; - struct gsm48_pag_resp *resp; - struct bsc_subscr *subscr; - - if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*resp)) { - LOGP(DMSC, LOGL_ERROR, "PagingResponse too small: %u\n", msgb_l3len(msg)); - return NULL; - } - - gh = msgb_l3(msg); - resp = (struct gsm48_pag_resp *) &gh->data[0]; - - gsm48_paging_extract_mi(resp, msgb_l3len(msg) - sizeof(*gh), - mi_string, &mi_type); - DEBUGP(DRR, "PAGING RESPONSE: MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); - - switch (mi_type) { - case GSM_MI_TYPE_TMSI: - subscr = bsc_subscr_find_by_tmsi(conn->network->bsc_subscribers, - tmsi_from_string(mi_string)); - break; - case GSM_MI_TYPE_IMSI: - subscr = bsc_subscr_find_by_imsi(conn->network->bsc_subscribers, - mi_string); - break; - default: - subscr = NULL; - break; - } - - return subscr; -} - static bool is_msc_usable(struct bsc_msc_data *msc, bool is_emerg) { if (is_emerg && !msc->allow_emerg) @@ -184,6 +144,7 @@ struct gsm48_hdr *gh; int8_t pdisc; uint8_t mtype; + struct osmo_mobile_identity mi; struct bsc_msc_data *msc; struct bsc_msc_data *msc_target = NULL; struct bsc_msc_data *msc_round_robin_next = NULL; @@ -203,9 +164,19 @@ is_emerg = (pdisc == GSM48_PDISC_MM && mtype == GSM48_MT_MM_CM_SERV_REQ) && is_cm_service_for_emerg(msg); + if (osmo_mobile_identity_decode_from_l3(&mi, msg, false)) { + LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "Cannot extract Mobile Identity: %s\n", + msgb_hexdump_c(OTC_SELECT, msg)); + /* There is no Mobile Identity to pick a matching MSC from. Likely this is an invalid Complete Layer 3 + * message that deserves to be rejected. However, the current state of our ttcn3 tests does send invalid + * Layer 3 Info in some tests and expects osmo-bsc to not care about that. So, changing the behavior to + * rejecting on missing MI causes test failure and, if at all, should happen in a separate patch. + * See e.g. BSC_Tests.TC_chan_rel_rll_rel_ind: "dt := f_est_dchan('23'O, 23, '00010203040506'O);" */ + } + /* Has the subscriber been paged from a connected MSC? */ if (pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) { - subscr = extract_sub(conn, msg); + subscr = bsc_subscr_find_by_mi(conn->network->bsc_subscribers, &mi); if (subscr) { msc_target = paging_get_msc(conn_get_bts(conn), subscr); bsc_subscr_put(subscr); @@ -241,8 +212,8 @@ * them are usable -- wrap to the start. */ msc_target = msc_round_robin_next ? : msc_round_robin_first; if (!msc_target) { - LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "%sNo suitable MSC for this Complete Layer 3 request found\n", - is_emerg ? "FOR EMERGENCY CALL: " : ""); + LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "%s%s: No suitable MSC for this Complete Layer 3 request found\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), is_emerg ? " FOR EMERGENCY CALL" : ""); return NULL; } @@ -256,8 +227,15 @@ static int handle_page_resp(struct gsm_subscriber_connection *conn, struct msgb *msg) { - struct bsc_subscr *subscr = extract_sub(conn, msg); + struct osmo_mobile_identity mi; + struct bsc_subscr *subscr = NULL; + if (osmo_mobile_identity_decode_from_l3(&mi, msg, false)) { + LOGP(DRSL, LOGL_ERROR, "Unable to extract Mobile Identity from Paging Response\n"); + return -1; + } + + subscr = bsc_subscr_find_by_mi(conn->network->bsc_subscribers, &mi); if (!subscr) { LOGP(DMSC, LOGL_ERROR, "Non active subscriber got paged.\n"); rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_PAGING_NO_ACTIVE_PAGING]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id6cccaac64392b737b3bba8f3a22a88009adb23b Gerrit-Change-Number: 18712 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Tue Jun 16 22:01:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:01:27 +0000 Subject: Change in osmo-bsc[master]: use osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18713 ) Change subject: use osmo_mobile_identity API everywhere ...................................................................... use osmo_mobile_identity API everywhere Depends: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 (libosmocore) Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/gsm_04_08_rr.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c 7 files changed, 64 insertions(+), 53 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index b43e3ae..2611a3d 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -43,8 +43,9 @@ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref); int rsl_chan_mode_modify_req(struct gsm_lchan *ts); int rsl_encryption_cmd(struct msgb *msg); -int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, - uint8_t *ms_ident, uint8_t chan_needed, bool is_gprs); +int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, + const struct osmo_mobile_identity *mi, + uint8_t chan_needed, bool is_gprs); int rsl_imm_assign_cmd(struct gsm_bts *bts, uint8_t len, uint8_t *val); int rsl_tx_imm_assignment(struct gsm_lchan *lchan); int rsl_tx_imm_ass_rej(struct gsm_bts *bts, struct gsm48_req_ref *rqd_ref); diff --git a/include/osmocom/bsc/gsm_04_08_rr.h b/include/osmocom/bsc/gsm_04_08_rr.h index d34e695..8821251 100644 --- a/include/osmocom/bsc/gsm_04_08_rr.h +++ b/include/osmocom/bsc/gsm_04_08_rr.h @@ -39,7 +39,6 @@ enum gsm48_reject_value value); struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value); -int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type); struct msgb *gsm48_create_loc_upd_rej(uint8_t cause); struct msgb *gsm48_create_rr_status(uint8_t cause); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 705e759..2fb1a22 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -664,18 +664,29 @@ return abis_rsl_sendmsg(msg); } -int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, - uint8_t *ms_ident, uint8_t chan_needed, bool is_gprs) +int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, + const struct osmo_mobile_identity *mi, + uint8_t chan_needed, bool is_gprs) { struct abis_rsl_dchan_hdr *dh; struct msgb *msg = rsl_msgb_alloc(); + uint8_t *l; + int rc; dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh)); init_dchan_hdr(dh, RSL_MT_PAGING_CMD); dh->chan_nr = RSL_CHAN_PCH_AGCH; msgb_tv_put(msg, RSL_IE_PAGING_GROUP, paging_group); - msgb_tlv_put(msg, RSL_IE_MS_IDENTITY, len-2, ms_ident+2); + + l = msgb_tl_put(msg, RSL_IE_MS_IDENTITY); + rc = osmo_mobile_identity_encode_msgb(msg, mi, false); + if (rc < 0) { + msgb_free(msg); + return -EINVAL; + } + *l = rc; + msgb_tv_put(msg, RSL_IE_CHAN_NEEDED, chan_needed); /* Ericsson wants to have this IE in case a paging message diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 4630b47..8a74aab 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -828,20 +828,6 @@ return msg; } -int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type) -{ - /* Check the size for the classmark */ - if (length < 1 + *classmark2_lv) - return -1; - - uint8_t *mi_lv = classmark2_lv + *classmark2_lv + 1; - if (length < 2 + *classmark2_lv + mi_lv[0]) - return -2; - - *mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - return gsm48_mi_to_string(mi_string, GSM48_MI_SIZE, mi_lv+1, *mi_lv); -} - /* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ uint64_t str_to_imsi(const char *imsi_str) { diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 864d96d..6b225e4 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -293,7 +293,7 @@ struct msgb *msg, unsigned int payload_length) { struct tlv_parsed tp; - char mi_string[GSM48_MI_SIZE]; + struct osmo_mobile_identity mi_imsi; uint32_t tmsi = GSM_RESERVED_TMSI; uint8_t data_length; int remain; @@ -332,8 +332,11 @@ /* * parse the IMSI */ - gsm48_mi_to_string(mi_string, sizeof(mi_string), - TLVP_VAL(&tp, GSM0808_IE_IMSI), TLVP_LEN(&tp, GSM0808_IE_IMSI)); + 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) { + LOGP(DMSC, LOGL_ERROR, "Paging: could not parse IMSI\n"); + return -1; + } /* * There are various cell identifier list types defined at 3GPP TS ? 08.08, we don't support all @@ -343,8 +346,8 @@ data_length = TLVP_LEN(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); data = TLVP_VAL(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); if (gsm0808_dec_cell_id_list2(&cil, data, data_length) < 0) { - LOGP(DMSC, LOGL_ERROR, "Paging IMSI %s: Could not parse Cell Identifier List\n", - mi_string); + LOGP(DMSC, LOGL_ERROR, "Paging %s: Could not parse Cell Identifier List\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi_imsi)); return -1; } remain = 0; @@ -360,43 +363,45 @@ switch (cil.id_discr) { case CELL_IDENT_NO_CELL: - page_all_bts(msc, tmsi, mi_string, chan_needed); + page_all_bts(msc, tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_WHOLE_GLOBAL: - page_cgi(msc, &cil, tmsi, mi_string, chan_needed); + page_cgi(msc, &cil, tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_LAC_AND_CI: - page_lac_and_ci(msc, &cil, tmsi, mi_string, chan_needed); + page_lac_and_ci(msc, &cil, tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_CI: - page_ci(msc, &cil, tmsi, mi_string, chan_needed); + page_ci(msc, &cil, tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_LAI_AND_LAC: - page_lai_and_lac(msc, &cil, tmsi, mi_string, chan_needed); + page_lai_and_lac(msc, &cil, tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_LAC: - page_lac(msc, &cil, tmsi, mi_string, chan_needed); + page_lac(msc, &cil, tmsi, mi_imsi.imsi, chan_needed); break; case CELL_IDENT_BSS: if (data_length != 1) { - LOGP(DMSC, LOGL_ERROR, "Paging IMSI %s: Cell Identifier List for BSS (0x%x)" + LOGP(DMSC, LOGL_ERROR, "Paging %s: Cell Identifier List for BSS (0x%x)" " has invalid length: %u, paging entire BSS anyway (%s)\n", - mi_string, CELL_IDENT_BSS, data_length, osmo_hexdump(data, data_length)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi_imsi), + CELL_IDENT_BSS, data_length, osmo_hexdump(data, data_length)); } - page_all_bts(msc, tmsi, mi_string, chan_needed); + page_all_bts(msc, tmsi, mi_imsi.imsi, chan_needed); break; default: - LOGP(DMSC, LOGL_NOTICE, "Paging IMSI %s: unimplemented Cell Identifier List (0x%x)," + LOGP(DMSC, LOGL_NOTICE, "Paging %s: unimplemented Cell Identifier List (0x%x)," " paging entire BSS instead (%s)\n", - mi_string, cil.id_discr, osmo_hexdump(data, data_length)); - page_all_bts(msc, tmsi, mi_string, chan_needed); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi_imsi), + cil.id_discr, osmo_hexdump(data, data_length)); + page_all_bts(msc, tmsi, mi_imsi.imsi, chan_needed); break; } diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index 7b89dad..7859c69 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -78,10 +78,9 @@ static void page_ms(struct gsm_paging_request *request) { - uint8_t mi[128]; - unsigned int mi_len; unsigned int page_group; struct gsm_bts *bts = request->bts; + struct osmo_mobile_identity mi; log_set_context(LOG_CTX_BSC_SUBSCR, request->bsub); @@ -89,14 +88,21 @@ "0x%08x for ch. type %d (attempt %d)\n", request->bsub->imsi, request->bsub->tmsi, request->chan_type, request->attempts); - if (request->bsub->tmsi == GSM_RESERVED_TMSI) - mi_len = gsm48_generate_mid_from_imsi(mi, request->bsub->imsi); - else - mi_len = gsm48_generate_mid_from_tmsi(mi, request->bsub->tmsi); + if (request->bsub->tmsi == GSM_RESERVED_TMSI) { + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_IMSI, + }; + OSMO_STRLCPY_ARRAY(mi.imsi, request->bsub->imsi); + } else { + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_TMSI, + .tmsi = request->bsub->tmsi, + }; + } page_group = gsm0502_calc_paging_group(&bts->si_common.chan_desc, str_to_imsi(request->bsub->imsi)); - rsl_paging_cmd(bts, page_group, mi_len, mi, request->chan_type, false); + rsl_paging_cmd(bts, page_group, &mi, request->chan_type, false); log_set_context(LOG_CTX_BSC_SUBSCR, NULL); } diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index b041402..bb18746 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -290,27 +290,30 @@ { struct gsm48_paging1 *p1 = (struct gsm48_paging1 *) raw_rr_msg; uint8_t chan_needed; - unsigned int mi_len; - uint8_t *mi; + struct osmo_mobile_identity mi; int rc; switch (p1->msg_type) { case GSM48_MT_RR_PAG_REQ_1: chan_needed = (p1->cneed2 << 2) | p1->cneed1; - mi_len = p1->data[0]; - mi = p1->data+1; + rc = osmo_mobile_identity_decode(&mi, p1->data+1, p1->data[0], false); + if (rc) { + LOGP(DPCU, LOGL_ERROR, "PCU Sends paging " + "request type %02x (chan_needed=%02x): Unable to decode Mobile Identity\n", + p1->msg_type, chan_needed); + rc = -EINVAL; + break; + } LOGP(DPCU, LOGL_ERROR, "PCU Sends paging " - "request type %02x (chan_needed=%02x, mi_len=%u, mi=%s)\n", - p1->msg_type, chan_needed, mi_len, - osmo_hexdump_nospc(mi,mi_len)); + "request type %02x (chan_needed=%02x, mi=%s)\n", + p1->msg_type, chan_needed, osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); /* NOTE: We will have to add 2 to mi_len and subtract 2 from * the mi pointer because rsl_paging_cmd() will perform the * reverse operations. This is because rsl_paging_cmd() is * normally expected to chop off the element identifier (0xC0) * and the length field. In our parameter, we do not have * those fields included. */ - rc = rsl_paging_cmd(bts, paging_group, mi_len+2, mi-2, - chan_needed, true); + rc = rsl_paging_cmd(bts, paging_group, &mi, chan_needed, true); break; case GSM48_MT_RR_PAG_REQ_2: case GSM48_MT_RR_PAG_REQ_3: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I71c3b4c65dbfdfa51409e09d4868aea83225338a Gerrit-Change-Number: 18713 Gerrit-PatchSet: 5 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 Jun 16 22:01:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:01:27 +0000 Subject: Change in osmo-bsc[master]: tweak log category for Compl L3 error In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18764 ) Change subject: tweak log category for Compl L3 error ...................................................................... tweak log category for Compl L3 error At this time, no MSC has been selected for handling this subscriber, so DMSC is clearly the wrong logging category. Change-Id: I9c6373e5f28c9c69a0609889188ef28ade11da3d --- M src/osmo-bsc/gsm_08_08.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-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 7f54fe6..a5f7493 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -154,7 +154,7 @@ bool is_emerg = false; if (msgb_l3len(msg) < sizeof(*gh)) { - LOGP(DMSC, LOGL_ERROR, "There is no GSM48 header here.\n"); + LOGP(DRSL, LOGL_ERROR, "There is no GSM48 header here.\n"); return NULL; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9c6373e5f28c9c69a0609889188ef28ade11da3d Gerrit-Change-Number: 18764 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 22:01:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:01:39 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18873 ) Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... vty: hide 'mscpool roundrobin next' The 'mscpool roundrobin next' command is intended for use only by ttcn3 tests. Hide it. Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 8 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/18873/1 diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 71dff1b..2c43fd2 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -939,13 +939,14 @@ return CMD_SUCCESS; } -DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, - "mscpool roundrobin next " MSC_NR_RANGE, - "MSC pooling: load balancing across multiple MSCs.\n" - "Adjust current state of the MSC round-robin algorithm (for testing).\n" - "Set the MSC nr to direct the next new subscriber to (for testing).\n" - "MSC number, as in the config file; if the number does not exist," - " the round-robin continues to the next valid number.\n") +/* Hidden since it exists only for use by ttcn3 tests */ +DEFUN_HIDDEN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, + "mscpool roundrobin next " MSC_NR_RANGE, + "MSC pooling: load balancing across multiple MSCs.\n" + "Adjust current state of the MSC round-robin algorithm (for testing).\n" + "Set the MSC nr to direct the next new subscriber to (for testing).\n" + "MSC number, as in the config file; if the number does not exist," + " the round-robin continues to the next valid number.\n") { bsc_gsmnet->mscs_round_robin_next_nr = atoi(argv[0]); return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 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 Jun 16 22:04:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:04:55 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18873 ) Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... Patch Set 1: Code-Review-1 Hiding this command was requested by code review. But I think it could be handy to sysadmins to test their setups, and knowing that it exists is not a bad thing. Leaving this up to CR whether we should merge this and hide the command, or not merge it and just leave the command in plain sight. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 16 Jun 2020 22:04:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 22:07:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:07:20 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 5: note that the osmo_nri_ranges_vty_add/del() implementations still accept hex arguments, but that doesn't matter really. It's up to the DEFUN to define the actual cmd arguments. We could drop the hex parsing from the libosmocore impl, but that's already merged, so ... whatever. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 22:07: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 Tue Jun 16 22:09:48 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 22:09:48 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18874 ) Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Use libosmocore's TDMA frame number API (constatns & arithmetic) Depends: (libosmocore) Ic291fd3644f34964374227a191c7045d79d77e0d Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-virtual/scheduler_virtbts.c 6 files changed, 30 insertions(+), 48 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/18874/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 1de5edd..155cd9b 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -16,9 +17,6 @@ #define GSM_HR_BYTES 14 /* TS 101318 Chapter 5.2: 112 bits, no sig */ #define GSM_EFR_BYTES 31 /* TS 101318 Chapter 5.3: 244 bits + 4bit sig */ -#define GSM_SUPERFRAME (26*51) /* 1326 TDMA frames */ -#define GSM_HYPERFRAME (2048*GSM_SUPERFRAME) /* GSM_HYPERFRAME frames */ - #define GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DEFAULT 41 #define GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DISABLE 999999 #define GSM_BTS_AGCH_QUEUE_LOW_LEVEL_DEFAULT 41 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index dad1b49..17a6c5d 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -621,7 +621,7 @@ /* increment number of RACH slots that have passed by since the * last time indication */ for (i = 0; i < frames_expired; i++) { - uint32_t fn = (info_time_ind->fn + GSM_HYPERFRAME - i) % GSM_HYPERFRAME; + uint32_t fn = GSM_TDMA_FN_SUB(info_time_ind->fn, i); bts->load.rach.total += calc_exprd_rach_frames(bts, fn); } @@ -891,7 +891,7 @@ static void l1sap_update_fnstats(struct gsm_bts *bts, uint32_t rts_fn) { - int32_t delta = (rts_fn + GSM_HYPERFRAME - bts->gsm_time.fn) % GSM_HYPERFRAME; + int32_t delta = GSM_TDMA_FN_SUB(rts_fn, bts->gsm_time.fn); if (delta < bts->fn_stats.min) bts->fn_stats.min = delta; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ed7d412..93b0526 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -661,7 +661,7 @@ LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong type.\n"); goto free_msg; } - prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); + prim_fn = GSM_TDMA_FN_SUB(l1sap_fn, fn); if (prim_fn > 100) { /* l1sap_fn < fn */ LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Prim %u is out of range (%u vs exp %u), or channel %s with " @@ -1225,12 +1225,6 @@ } } -#define TDMA_FN_SUM(a, b) \ - ((a + GSM_HYPERFRAME + b) % GSM_HYPERFRAME) - -#define TDMA_FN_SUB(a, b) \ - ((a + GSM_HYPERFRAME - b) % GSM_HYPERFRAME) - static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t, struct l1sched_chan_state *l1cs, uint8_t tn, uint32_t fn) { @@ -1268,7 +1262,7 @@ } /* How many frames elapsed since the last one? */ - elapsed_fs = TDMA_FN_SUB(fn, l1cs->last_tdma_fn); + elapsed_fs = GSM_TDMA_FN_SUB(fn, l1cs->last_tdma_fn); if (elapsed_fs > l1ts->mf_period) { /* Too many! */ LOGL1S(DL1P, LOGL_ERROR, l1t, tn, frame_head->ul_chan, fn, "Too many (>%u) contiguous TDMA frames=%u elapsed " @@ -1287,7 +1281,7 @@ * Start counting from the last_fn + 1. */ for (i = 1; i < elapsed_fs; i++) { - fn_i = TDMA_FN_SUM(l1cs->last_tdma_fn, i); + fn_i = GSM_TDMA_FN_SUM(l1cs->last_tdma_fn, i); offset = fn_i % l1ts->mf_period; frame = l1ts->mf_frames + offset; @@ -1320,7 +1314,7 @@ }; for (i = 1; i < elapsed_fs; i++) { - fn_i = TDMA_FN_SUM(l1cs->last_tdma_fn, i); + fn_i = GSM_TDMA_FN_SUM(l1cs->last_tdma_fn, i); offset = fn_i % l1ts->mf_period; frame = l1ts->mf_frames + offset; func = trx_chan_desc[frame->ul_chan].ul_fn; diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index d4a38b6..233c0b9 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -74,7 +74,7 @@ /* advance frame number, so the transceiver has more * time until it must be transmitted. */ - fn = (fn + plink->u.osmotrx.clock_advance) % GSM_HYPERFRAME; + fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); /* we don't schedule, if power is off */ if (!trx_if_powered(l1h)) @@ -83,8 +83,7 @@ /* process every TS of TRX */ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { /* ready-to-send */ - _sched_rts(l1t, tn, - (fn + plink->u.osmotrx.rts_advance) % GSM_HYPERFRAME); + _sched_rts(l1t, tn, GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.rts_advance)); /* All other parameters to be set by _sched_dl_burst() */ br = (struct trx_dl_burst_req) { @@ -105,10 +104,6 @@ return 0; } -/*! duration of a GSM frame in nano-seconds. (120ms/26) */ -#define FRAME_DURATION_nS 4615384 -/*! duration of a GSM frame in micro-seconds (120s/26) */ -#define FRAME_DURATION_uS (FRAME_DURATION_nS/1000) /*! maximum number of 'missed' frame periods we can tolerate of OS doesn't schedule us*/ #define MAX_FN_SKEW 50 /*! maximum number of frame periods we can tolerate without TRX Clock Indication*/ @@ -126,9 +121,9 @@ /*! compute the number of frame number intervals elapsed between \a last and \a now */ static inline int compute_elapsed_fn(const uint32_t last, const uint32_t now) { - int elapsed_fn = (now + GSM_HYPERFRAME - last) % GSM_HYPERFRAME; + int elapsed_fn = GSM_TDMA_FN_SUB(now, last); if (elapsed_fn >= 135774) - elapsed_fn -= GSM_HYPERFRAME; + elapsed_fn -= GSM_TDMA_HYPERFRAME; return elapsed_fn; } @@ -139,9 +134,6 @@ ts->tv_nsec = ts->tv_nsec % 1000000000; } -/*! Increment a GSM frame number modulo GSM_HYPERFRAME */ -#define INCREMENT_FN(fn) (fn) = (((fn) + 1) % GSM_HYPERFRAME) - extern int quit; /*! this is the timerfd-callback firing for every FN to be processed */ @@ -178,7 +170,7 @@ /* compute actual elapsed time and resulting OS scheduling error */ clock_gettime(CLOCK_MONOTONIC, &tv_now); elapsed_us = compute_elapsed_us(&tcs->last_fn_timer.tv, &tv_now); - error_us = elapsed_us - FRAME_DURATION_uS; + error_us = elapsed_us - GSM_TDMA_FN_DURATION_uS; #ifdef DEBUG_CLOCK printf("%s(): %09ld, elapsed_us=%05" PRId64 ", error_us=%-d: fn=%d\n", __func__, tv_now.tv_nsec, elapsed_us, error_us, tcs->last_fn_timer.fn+1); @@ -186,7 +178,7 @@ tcs->last_fn_timer.tv = tv_now; /* if someone played with clock, or if the process stalled */ - if (elapsed_us > FRAME_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { + if (elapsed_us > GSM_TDMA_FN_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { LOGP(DL1C, LOGL_ERROR, "PC clock skew: elapsed_us=%" PRId64 ", error_us=%" PRId64 "\n", elapsed_us, error_us); goto no_clock; @@ -194,7 +186,7 @@ /* call trx_sched_fn() for all expired FN */ for (i = 0; i < expire_count; i++) { - INCREMENT_FN(tcs->last_fn_timer.fn); + GSM_TDMA_FN_INC(tcs->last_fn_timer.fn); trx_sched_fn(bts, tcs->last_fn_timer.fn); } @@ -281,7 +273,7 @@ int elapsed_fn; int64_t elapsed_us, elapsed_us_since_clk, elapsed_fn_since_clk, error_us_since_clk; unsigned int fn_caught_up = 0; - const struct timespec interval = { .tv_sec = 0, .tv_nsec = FRAME_DURATION_nS }; + const struct timespec interval = { .tv_sec = 0, .tv_nsec = GSM_TDMA_FN_DURATION_nS }; if (quit) return 0; @@ -307,7 +299,7 @@ elapsed_us_since_clk = compute_elapsed_us(&tcs->last_clk_ind.tv, &tv_now); elapsed_fn_since_clk = compute_elapsed_fn(tcs->last_clk_ind.fn, fn); /* error (delta) between local clock since last CLK and CLK based on FN clock at TRX */ - error_us_since_clk = elapsed_us_since_clk - (FRAME_DURATION_uS * elapsed_fn_since_clk); + error_us_since_clk = elapsed_us_since_clk - (GSM_TDMA_FN_DURATION_uS * elapsed_fn_since_clk); LOGP(DL1C, LOGL_INFO, "TRX Clock Ind: elapsed_us=%7"PRId64", " "elapsed_fn=%3"PRId64", error_us=%+5"PRId64"\n", elapsed_us_since_clk, elapsed_fn_since_clk, error_us_since_clk); @@ -328,14 +320,14 @@ } LOGP(DL1C, LOGL_INFO, "GSM clock jitter: %" PRId64 "us (elapsed_fn=%d)\n", - elapsed_fn * FRAME_DURATION_uS - elapsed_us, elapsed_fn); + elapsed_fn * GSM_TDMA_FN_DURATION_uS - elapsed_us, elapsed_fn); /* too many frames have been processed already */ if (elapsed_fn < 0) { struct timespec first = interval; /* set clock to the time or last FN should have been * transmitted. */ - first.tv_nsec += (0 - elapsed_fn) * FRAME_DURATION_nS; + first.tv_nsec += (0 - elapsed_fn) * GSM_TDMA_FN_DURATION_nS; normalize_timespec(&first); LOGP(DL1C, LOGL_NOTICE, "We were %d FN faster than TRX, compensating\n", -elapsed_fn); /* set time to the time our next FN has to be transmitted */ @@ -345,7 +337,7 @@ /* transmit what we still need to transmit */ while (fn != tcs->last_fn_timer.fn) { - INCREMENT_FN(tcs->last_fn_timer.fn); + GSM_TDMA_FN_INC(tcs->last_fn_timer.fn); trx_sched_fn(bts, tcs->last_fn_timer.fn); fn_caught_up++; } diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 1953f71..a148f6a 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -121,8 +121,8 @@ LOGPPHI(pinst, DTRX, LOGL_INFO, "Clock indication: fn=%u\n", fn); - if (fn >= GSM_HYPERFRAME) { - fn %= GSM_HYPERFRAME; + if (fn >= GSM_TDMA_HYPERFRAME) { + fn %= GSM_TDMA_HYPERFRAME; LOGPPHI(pinst, DTRX, LOGL_ERROR, "Indicated clock's FN is not " "wrapping correctly, correcting to fn=%u\n", fn); } @@ -734,7 +734,7 @@ bi->rssi = -(int8_t)buf[5]; bi->toa256 = (int16_t) osmo_load16be(buf + 6); - if (bi->fn >= GSM_HYPERFRAME) { + if (bi->fn >= GSM_TDMA_HYPERFRAME) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Illegal TDMA fn=%u\n", bi->fn); return -EINVAL; diff --git a/src/osmo-bts-virtual/scheduler_virtbts.c b/src/osmo-bts-virtual/scheduler_virtbts.c index d3fdf1a..1c2b057 100644 --- a/src/osmo-bts-virtual/scheduler_virtbts.c +++ b/src/osmo-bts-virtual/scheduler_virtbts.c @@ -532,7 +532,6 @@ ***********************************************************************/ #define RTS_ADVANCE 5 /* about 20ms */ -#define FRAME_DURATION_uS 4615 static int vbts_sched_fn(struct gsm_bts *bts, uint32_t fn) { @@ -558,7 +557,7 @@ * --> Handle and process non-transparent RSL-Messages (activate channel, ) * --> Forward transparent RSL-DATA-Messages to the ms by appending them to * the l1-dl-queue */ - _sched_rts(l1t, br.tn, (fn + RTS_ADVANCE) % GSM_HYPERFRAME); + _sched_rts(l1t, br.tn, GSM_TDMA_FN_SUM(fn, RTS_ADVANCE)); /* schedule transmit backend functions */ /* Process data in the l1-dlqueue and forward it * to MS */ @@ -587,28 +586,27 @@ + (tv_now.tv_usec - tv_clock->tv_usec); /* not so good somehow a lot of time passed between two timer callbacks */ - if (elapsed_us > 2 *FRAME_DURATION_uS) + if (elapsed_us > 2 *GSM_TDMA_FN_DURATION_uS) LOGP(DL1P, LOGL_NOTICE, "vbts_fn_timer_cb after %d us\n", elapsed_us); /* schedule the current frame/s (fn = frame number) * this loop will be called at least once, but can also be executed * multiple times if more than one frame duration (4615us) passed till the last callback */ - while (elapsed_us > FRAME_DURATION_uS / 2) { + while (elapsed_us > GSM_TDMA_FN_DURATION_uS / 2) { const struct timeval tv_frame = { .tv_sec = 0, - .tv_usec = FRAME_DURATION_uS, + .tv_usec = GSM_TDMA_FN_DURATION_uS, }; timeradd(tv_clock, &tv_frame, tv_clock); /* increment the frame number in the BTS model instance */ - bts_virt->last_fn = (bts_virt->last_fn + 1) % GSM_HYPERFRAME; - vbts_sched_fn(bts, bts_virt->last_fn); - elapsed_us -= FRAME_DURATION_uS; + vbts_sched_fn(bts, GSM_TDMA_FN_INC(bts_virt->last_fn)); + elapsed_us -= GSM_TDMA_FN_DURATION_uS; } /* re-schedule the timer */ /* timer is set to frame duration - elapsed time to guarantee that this cb method will be * periodically executed every 4.615ms */ - osmo_timer_schedule(&bts_virt->fn_timer, 0, FRAME_DURATION_uS - elapsed_us); + osmo_timer_schedule(&bts_virt->fn_timer, 0, GSM_TDMA_FN_DURATION_uS - elapsed_us); } int vbts_sched_start(struct gsm_bts *bts) @@ -622,7 +620,7 @@ gettimeofday(&bts_virt->tv_clock, NULL); /* trigger the first timer after 4615us (a frame duration) */ - osmo_timer_schedule(&bts_virt->fn_timer, 0, FRAME_DURATION_uS); + osmo_timer_schedule(&bts_virt->fn_timer, 0, GSM_TDMA_FN_DURATION_uS); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 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 Jun 16 22:13:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:13:19 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 to look at the new patch set (#5). Change subject: add rudimentary NRI support for MSC pooling ...................................................................... add rudimentary NRI support for MSC pooling This patch served for a manual testing counterpart for osmo-bsc to implement MSC pooling. This enables a basic MSC pooling setup, but for a production setup, osmo-msc would still lack various features related to unloading subscribers to another MSC as explained in 3GPP TS 23.236. Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 --- M include/osmocom/msc/vlr.h M src/libmsc/msc_vty.c M src/libvlr/vlr.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_hlr_timeout.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/test_nodes.vty 17 files changed, 217 insertions(+), 122 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/70/18770/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 22:16:15 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 16 Jun 2020 22:16:15 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: Hello dexter, pespin, daniel, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 to look at the new patch set (#6). Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... MSC pooling: make NRI mappings VTY configurable Use the osmo_nri_ranges API to manage each MSC's NRI ranges by VTY configuration. Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c A tests/nri_cfg.vty 7 files changed, 367 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/18765/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 22:18:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 22:18:52 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 to look at the new patch set (#2). Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Use libosmocore's TDMA frame number API (constatns & arithmetic) Depends: (libosmocore) Ic291fd3644f34964374227a191c7045d79d77e0d Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-virtual/scheduler_virtbts.c 6 files changed, 31 insertions(+), 51 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/18874/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 22:20:17 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 22:20:17 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 to look at the new patch set (#3). Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Use libosmocore's TDMA frame number API (constatns & arithmetic) Depends: (libosmocore) Ic291fd3644f34964374227a191c7045d79d77e0d Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-virtual/scheduler_virtbts.c 6 files changed, 31 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/18874/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 16 22:22:31 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 16 Jun 2020 22:22:31 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18874 ) Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18874/3/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18874/3/src/osmo-bts-trx/scheduler_trx.c at a130 PS3, Line 130: 135774 Does anyone know the meaning/origin of this magic number BTW? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 16 Jun 2020 22:22: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 Wed Jun 17 01:09:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 01:09:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 5: Code-Review-2 Oof, I lost a lot of important changes after patch set 2, must have gotten mixed up with my branch across the two machines... -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 01:09: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 Jun 17 01:34:37 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 17 Jun 2020 01:34:37 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ee97344a1257_e962b0071b305f02338225@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.04/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 166s] [1938/2112] rm -f src/pcrf/libpcrf.a && gcc-ar csrD src/pcrf/libpcrf.a 'src/pcrf/pcrf at sta/pcrf-init.c.o' 'src/pcrf/pcrf at sta/pcrf-context.c.o' 'src/pcrf/pcrf at sta/pcrf-fd-path.c.o' 'src/pcrf/pcrf at sta/pcrf-gx-path.c.o' 'src/pcrf/pcrf at sta/pcrf-rx-path.c.o' [ 166s] [1939/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 166s] FAILED: src/udm/udm at sta/context.c.o [ 166s] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/context.c.o' -MF 'src/udm/udm at sta/context.c.o.d' -o 'src/udm/udm at sta/context.c.o' -c ../src/udm/context.c [ 166s] ../src/udm/context.c: In function ?udm_ue_add?: [ 166s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 166s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 166s] ~~^ [ 166s] %d [ 166s] cc1: some warnings being treated as errors [ 166s] [1940/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nnrf-handler.c.o' -MF 'src/udm/udm at sta/nnrf-handler.c.o.d' -o 'src/udm/udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 166s] [1941/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nudr-handler.c.o' -MF 'src/udm/udm at sta/nudr-handler.c.o.d' -o 'src/udm/udm at sta/nudr-handler.c.o' -c ../src/udm/nudr-handler.c [ 166s] [1942/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/ue-sm.c.o' -MF 'src/udm/udm at sta/ue-sm.c.o.d' -o 'src/udm/udm at sta/ue-sm.c.o' -c ../src/udm/ue-sm.c [ 166s] [1943/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/nf-sm.c.o' -MF 'src/udm/udm at sta/nf-sm.c.o.d' -o 'src/udm/udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 166s] [1944/2112] cc -Isrc/udm/udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/udm at sta/sbi-path.c.o' -MF 'src/udm/udm at sta/sbi-path.c.o.d' -o 'src/udm/udm at sta/sbi-path.c.o' -c ../src/udm/sbi-path.c [ 166s] [1945/2112] cc -o src/pcrf/open5gs-pcrfd 'src/pcrf/open5gs-pcrfd at exe/app-init.c.o' 'src/pcrf/open5gs-pcrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/pcrf/libpcrf.a lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/diameter/rx/libogsdiameter-rx.so.1.2.5 lib/diameter/common/libogsdiameter-common.so.1.2.5 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 lib/diameter/gx/libogsdiameter-gx.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -lidn -ldl -lsctp -lgcrypt -lgnutls -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lidn -ldl -lsctp -lgcrypt -lgnutls -lidn -ldl -lsctp -lgcrypt -lgnutls '-Wl,-rpath,$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto:$ORIGIN/../../lib/diameter/gx' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/gx [ 166s] [1946/2112] cc -o src/udr/open5gs-udrd 'src/udr/open5gs-udrd at exe/app.c.o' 'src/udr/open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 -pthread -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl -Wl,--end-group -lyaml -lmongoc-1.0 -lssl -lcrypto -lrt -lresolv -lz -lsnappy -lbson-1.0 -lyaml -lgnutls -lmicrohttpd -lcurl '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 166s] ninja: build stopped: subcommand failed. [ 166s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 166s] debian/rules:11: recipe for target 'binary' failed [ 166s] make: *** [binary] Error 1 [ 166s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 166s] ### VM INTERACTION START ### [ 169s] [ 160.947484] sysrq: SysRq : Power Off [ 169s] [ 160.954440] reboot: Power down [ 169s] ### VM INTERACTION END ### [ 169s] [ 170s] lamb13 failed "build open5gs_1.2.5.20200617.dsc" at Wed Jun 17 01:34:33 UTC 2020. [ 170s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 17 01:34:55 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 17 Jun 2020 01:34:55 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ee973455a7a1_e962b0071b305f02338353@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: eturn-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 178s] [1923/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/nf-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 178s] [1924/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/f570ec2@@open5gs-nrfd at exe/app.c.o' 'src/nrf/f570ec2@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/src/nrf:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 178s] [1925/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 178s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 178s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 178s] ../src/udm/context.c: In function ?udm_ue_add?: [ 178s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 178s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 178s] ~~^ [ 178s] %d [ 178s] cc1: some warnings being treated as errors [ 178s] [1926/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 178s] [1927/2112] cc -Isrc/pgw/34dbbb0@@pgw at sta -Isrc/pgw -I../src/pgw -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/diameter/gx -I../lib/diameter/gx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/gtp -I../lib/gtp -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o' -MF 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o.d' -o 'src/pgw/34dbbb0@@pgw at sta/pgw-context.c.o' -c ../src/pgw/pgw-context.c [ 178s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 178s] [1929/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 178s] [1930/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -c ../src/main.c [ 178s] [1931/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 179s] [1932/2112] cc -Isrc/pcrf/9bf4e44@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/9bf4e44@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 179s] ninja: build stopped: subcommand failed. [ 179s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 179s] make: *** [debian/rules:11: binary] Error 1 [ 179s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 179s] ### VM INTERACTION START ### [ 182s] [ 171.782703] sysrq: SysRq : Power Off [ 182s] [ 171.785891] reboot: Power down [ 182s] ### VM INTERACTION END ### [ 182s] [ 182s] lamb51 failed "build open5gs_1.2.5.20200617.dsc" at Wed Jun 17 01:34:47 UTC 2020. [ 182s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 17 01:34:55 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 17 Jun 2020 01:34:55 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in xUbuntu_18.10/i586 In-Reply-To: References: Message-ID: <5ee97345ba351_e962b0071b305f02338457@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/xUbuntu_18.10/i586 Package network:osmocom:nightly/open5gs failed to build in xUbuntu_18.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: oat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nf-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/nf-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/nf-sm.c.o' -c ../src/udr/nf-sm.c [ 177s] [1922/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/timer.c.o' -MF 'src/udr/src at udr@@udr at sta/timer.c.o.d' -o 'src/udr/src at udr@@udr at sta/timer.c.o' -c ../src/udr/timer.c [ 177s] [1923/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/context.c.o' -MF 'src/udr/src at udr@@udr at sta/context.c.o.d' -o 'src/udr/src at udr@@udr at sta/context.c.o' -c ../src/udr/context.c [ 177s] [1924/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 177s] FAILED: src/udm/src at udm@@udm at sta/context.c.o [ 177s] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/context.c.o' -MF 'src/udm/src at udm@@udm at sta/context.c.o.d' -o 'src/udm/src at udm@@udm at sta/context.c.o' -c ../src/udm/context.c [ 177s] ../src/udm/context.c: In function ?udm_ue_add?: [ 177s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 177s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 177s] ~~^ [ 177s] %d [ 177s] cc1: some warnings being treated as errors [ 177s] [1925/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/src at udm@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 177s] [1926/2112] cc -Isrc/udm/src at udm@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -MF 'src/udm/src at udm@@udm at sta/nf-sm.c.o.d' -o 'src/udm/src at udm@@udm at sta/nf-sm.c.o' -c ../src/udm/nf-sm.c [ 177s] [1927/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -MF 'src/udr/src at udr@@udr at sta/sbi-path.c.o.d' -o 'src/udr/src at udr@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 177s] [1928/2112] cc -o src/nrf/open5gs-nrfd 'src/nrf/src at nrf@@open5gs-nrfd at exe/app.c.o' 'src/nrf/src at nrf@@open5gs-nrfd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/nrf/libnrf.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/i386-linux-gnu/libmongoc-1.0.so /usr/lib/i386-linux-gnu/libssl.so /usr/lib/i386-linux-gnu/libcrypto.so -lrt /usr/lib/i386-linux-gnu/libresolv.so /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/libsnappy.so /usr/lib/i386-linux-gnu/libbson-1.0.so -lgnutls /usr/lib/i386-linux-gnu/libmicrohttpd.so /usr/lib/i386-linux-gnu/libcurl.so -lrt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ipfw:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sbi/openapi [ 177s] [1929/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -MF 'src/udr/src at udr@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/src at udr@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 177s] [1930/2112] cc -Isrc/udr/src at udr@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/i386-linux-gnu -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -MF 'src/udr/src at udr@@udr at sta/udr-sm.c.o.d' -o 'src/udr/src at udr@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 178s] [1931/2112] cc -Isrc/pcrf/src at pcrf@@pcrf at sta -Isrc/pcrf -I../src/pcrf -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/diameter/rx -I../lib/diameter/rx -Ilib/diameter/common -I../lib/diameter/common -Isubprojects/freeDiameter/include -I../subprojects/freeDiameter/include -Isubprojects/freeDiameter -I../subprojects/freeDiameter -Ilib/diameter/gx -I../lib/diameter/gx -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -MF 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o.d' -o 'src/pcrf/src at pcrf@@pcrf at sta/pcrf-gx-path.c.o' -c ../src/pcrf/pcrf-gx-path.c [ 178s] ninja: build stopped: subcommand failed. [ 178s] dh_auto_build: cd obj-i686-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1 [ 178s] make: *** [debian/rules:11: binary] Error 1 [ 178s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 178s] ### VM INTERACTION START ### [ 181s] [ 172.629097] sysrq: SysRq : Power Off [ 181s] [ 172.635487] reboot: Power down [ 181s] ### VM INTERACTION END ### [ 181s] [ 181s] lamb18 failed "build open5gs_1.2.5.20200617.dsc" at Wed Jun 17 01:34:48 UTC 2020. [ 181s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Jun 17 03:05:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 03:05:54 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add rate counters References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18875 ) Change subject: MSC pooling: add rate counters ...................................................................... MSC pooling: add rate counters Tests for these counters are added in I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f (osmo-ttcn3-hacks). Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/osmo_bsc_msc.c 4 files changed, 67 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/75/18875/1 diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index f19b9a0..b1fe14d 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -96,6 +96,13 @@ MSC_CTR_BSSMAP_TX_DT1_HANDOVER_COMPLETE, MSC_CTR_BSSMAP_TX_DT1_HANDOVER_FAILURE, MSC_CTR_BSSMAP_TX_DT1_DTAP, + + MSC_CTR_MSCPOOL_SUBSCR_NEW, + MSC_CTR_MSCPOOL_SUBSCR_REATTACH, + MSC_CTR_MSCPOOL_SUBSCR_KNOWN, + MSC_CTR_MSCPOOL_SUBSCR_PAGED, + MSC_CTR_MSCPOOL_SUBSCR_ATTACH_LOST, + MSC_CTR_MSCPOOL_EMERG_FORWARDED, }; /* Constants for the MSC stats */ diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 38047d2..9874706 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1558,6 +1558,9 @@ BSC_CTR_PAGING_RESPONDED, BSC_CTR_PAGING_NO_ACTIVE_PAGING, BSC_CTR_UNKNOWN_UNIT_ID, + BSC_CTR_MSCPOOL_SUBSCR_NO_MSC, + BSC_CTR_MSCPOOL_EMERG_FORWARDED, + BSC_CTR_MSCPOOL_EMERG_LOST, }; static const struct rate_ctr_desc bsc_ctr_description[] = { @@ -1604,6 +1607,13 @@ [BSC_CTR_PAGING_NO_ACTIVE_PAGING] = {"paging:no_active_paging", "Paging response without an active paging request (arrived after paging expiration?)."}, [BSC_CTR_UNKNOWN_UNIT_ID] = {"abis:unknown_unit_id", "Connection attempts from unknown IPA CCM Unit ID."}, + + [BSC_CTR_MSCPOOL_SUBSCR_NO_MSC] = {"mscpool:subscr:no_msc", + "Complete Layer 3 requests lost because no connected MSC is found available."}, + [BSC_CTR_MSCPOOL_EMERG_FORWARDED] = {"mscpool:emerg:forwarded", + "Emergency call requests forwarded to an MSC (see also per-MSC counters)"}, + [BSC_CTR_MSCPOOL_EMERG_LOST] = {"mscpool:emerg:lost", + "Emergency call requests lost because no MSC was found available."}, }; diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 32363eb..3703c76 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -228,6 +228,7 @@ if (is_msc_usable(msc_target, is_emerg)) { LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, "%s matches earlier Paging from msc %d\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_PAGED]); return msc_target; } else { LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, @@ -268,9 +269,11 @@ bool nri_matches_msc = (nri_v >= 0 && osmo_nri_v_matches_ranges(nri_v, msc->nri_ranges)); if (!is_msc_usable(msc, is_emerg)) { - if (nri_matches_msc) + if (nri_matches_msc) { LOG_NRI(LOGL_DEBUG, "matches msc %d, but this MSC is currently not connected\n", msc->nr); + rate_ctr_inc(&msc->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_ATTACH_LOST]); + } continue; } @@ -281,6 +284,11 @@ msc->nr); } else { LOG_NRI(LOGL_DEBUG, "matches msc %d\n", msc->nr); + rate_ctr_inc(&msc->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_KNOWN]); + if (is_emerg) { + rate_ctr_inc(&msc->msc_ctrs->ctr[MSC_CTR_MSCPOOL_EMERG_FORWARDED]); + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_EMERG_FORWARDED]); + } return msc; } } @@ -316,12 +324,25 @@ if (!msc_target) { LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "%s%s: No suitable MSC for this Complete Layer 3 request found\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), is_emerg ? " FOR EMERGENCY CALL" : ""); + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_SUBSCR_NO_MSC]); + if (is_emerg) + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_EMERG_LOST]); return NULL; } LOGP(DMSC, LOGL_DEBUG, "New subscriber %s: MSC round-robin selects msc %d\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + if (is_null_nri) + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_REATTACH]); + else + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_NEW]); + + if (is_emerg) { + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_EMERG_FORWARDED]); + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_EMERG_FORWARDED]); + } + /* An MSC was picked by round-robin, so update the next round-robin nr to pick */ if (is_emerg) net->mscs_round_robin_next_emerg_nr = msc_target->nr + 1; diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index 157808e..9b00ffc 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -100,6 +100,34 @@ [MSC_CTR_BSSMAP_TX_DT1_HANDOVER_COMPLETE] = {"bssmap:tx:dt1:handover:complete", "Number of transmitted BSSMAP DT1 HANDOVER COMPLETE messages"}, [MSC_CTR_BSSMAP_TX_DT1_HANDOVER_FAILURE] = {"bssmap:tx:dt1:handover:failure", "Number of transmitted BSSMAP DT1 HANDOVER FAILURE messages"}, [MSC_CTR_BSSMAP_TX_DT1_DTAP] = {"bssmap:tx:dt1:dtap", "Number of transmitted BSSMAP DT1 DTAP messages"}, + + /* Indicators for MSC pool usage */ + [MSC_CTR_MSCPOOL_SUBSCR_NEW] = { + "mscpool:subscr:new", + "Complete Layer 3 requests assigned to this MSC by round-robin (no NRI was assigned yet).", + }, + [MSC_CTR_MSCPOOL_SUBSCR_REATTACH] = { + "mscpool:subscr:reattach", + "Complete Layer 3 requests assigned to this MSC by round-robin because the subscriber indicates a" + " NULL-NRI (previously assigned by another MSC).", + }, + [MSC_CTR_MSCPOOL_SUBSCR_KNOWN] = { + "mscpool:subscr:known", + "Complete Layer 3 requests directed to this MSC because the subscriber indicates an NRI of this MSC.", + }, + [MSC_CTR_MSCPOOL_SUBSCR_PAGED] = { + "mscpool:subscr:paged", + "Paging Response directed to this MSC because the subscriber was recently paged by this MSC.", + }, + [MSC_CTR_MSCPOOL_SUBSCR_ATTACH_LOST] = { + "mscpool:subscr:attach_lost", + "A subscriber indicates an NRI value matching this MSC, but the MSC is not connected:" + " a re-attach to another MSC (if available) was forced, with possible service failure.", + }, + [MSC_CTR_MSCPOOL_EMERG_FORWARDED] = { + "mscpool:emerg:forwarded", + "Emergency call requests forwarded to this MSC.", + }, }; static const struct rate_ctr_group_desc msc_ctrg_desc = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 Gerrit-Change-Number: 18875 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 Jun 17 03:07:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 03:07:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 to look at the new patch set (#6). Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 732 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/18763/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 03:07:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 03:07:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... bsc: MSC pooling: also test rate counters Add some generic ways of checking rate counters in bulk, and use that to verify the MSC pool rate counters. This nicely also verifies the intended effect of each test in detail. Depends: I2ded757958dfa62b502efbab765203bcadf899e2 (osmo-bsc) Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f --- M bsc/BSC_Tests.ttcn 1 file changed, 191 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/76/18876/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 78fc8ec..0980e1f 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -75,6 +75,31 @@ IPA_Client rsl } +/* One counter value, e.g. { "name", 23 } */ +type record CounterNameVal { + charstring name, + integer val +} + +/* List of one instance's counters, + * e.g. { {"foo",23}, {"bar",42} } + */ +type record of CounterNameVal CounterNameVals; + +/* List of numerous instances' counters, + * e.g. { { {"foo",23}, {"bar",42} }, + * { {"foo",23}, {"bar",42} } } */ +type record of CounterNameVals CounterNameValsList; + +/* Default list of counters for an 'msc' entity. */ +const CounterNameVals counternames_msc_mscpool := { + { "mscpool:subscr:new", 0 }, + { "mscpool:subscr:known", 0 }, + { "mscpool:subscr:reattach", 0 }, + { "mscpool:subscr:attach_lost", 0 }, + { "mscpool:subscr:paged", 0 } +}; + type component test_CT extends CTRL_Adapter_CT { /* Array of per-BTS state */ var BTS_State bts[NUM_BTS]; @@ -107,6 +132,7 @@ /* global test case guard timer */ timer T_guard := 30.0; + var CounterNameValsList g_ctr_msc; } modulepar { @@ -179,6 +205,105 @@ return pars; } +/* Retrieve and verify rate counter values in bulk */ + +private function f_counter_name_vals_add(CounterNameVals vals, charstring countername, integer val := 1) return CounterNameVals{ + for (var integer i := 0; i < lengthof(vals); i := i + 1) { + if (vals[i].name == countername) { + vals[i].val := vals[i].val + val; + return vals; + } + } + /* name not found, append */ + vals[lengthof(vals)] := { + name := countername, + val := val + } + return vals; +} + +private function f_counter_name_vals_list_add(CounterNameValsList vals, integer idx, charstring countername, integer val := 1) return CounterNameValsList { + vals[idx] := f_counter_name_vals_add(vals[idx], countername, val); + return vals; +} + +private function f_counter_name_vals_get(charstring instance_name, integer instance_nr, CounterNameVals counternames := counternames_msc_mscpool) runs on test_CT return CounterNameVals { + var CounterNameVals vals; + for (var integer i := 0; i < lengthof(counternames); i := i + 1) { + vals[i] := { + name := counternames[i].name, + val := f_ctrl_get_ratectr_abs(IPA_CTRL, instance_name, instance_nr, counternames[i].name) + }; + } + return vals; +} + +private function f_counter_name_vals_get_n(charstring instance_name := "msc", integer instance_count := NUM_MSC, CounterNameVals counternames := counternames_msc_mscpool) runs on test_CT return CounterNameValsList { + var CounterNameValsList valslist; + for (var integer instance_nr := 0; instance_nr < instance_count; instance_nr := instance_nr + 1) { + valslist[instance_nr] := f_counter_name_vals_get(instance_name, instance_nr, counternames); + } + log("retrieved rate counters: ", valslist); + return valslist; +} + +private function f_counter_name_vals_expect(charstring instance_name, integer instance_nr, CounterNameVals vals) runs on test_CT { + var CounterNameVals now := f_counter_name_vals_get(instance_name, instance_nr, vals); + for (var integer i := 0; i < lengthof(vals); i := i + 1) { + if (now[i].name != vals[i].name) { + setverdict(fail, "Internal error"); + } + if (now[i].val != vals[i].val) { + setverdict(fail, "Rate counter mismatch: ", instance_name, " ", instance_nr, " ", vals[i].name, " is at ", now[i].val, " but expected ", vals[i].val); + } + } + setverdict(pass); +} + +private function f_counter_name_vals_expect_n(charstring instance_name, CounterNameValsList valslist) runs on test_CT { + for (var integer instance_nr := 0; instance_nr < lengthof(valslist); instance_nr := instance_nr + 1) { + f_counter_name_vals_expect(instance_name, instance_nr, valslist[instance_nr]); + } +} + + +/* Convenience functions for rate counters using g_ctr_msc. */ + +private function f_ctrs_msc_init(integer mscs_count := NUM_MSC, CounterNameVals counternames := counternames_msc_mscpool) runs on test_CT { + g_ctr_msc := f_counter_name_vals_get_n("msc", mscs_count, counternames); + log("initial msc rate counters: ", g_ctr_msc); +} + +private function f_ctrs_msc_add(integer msc_nr, charstring countername, integer val := 1) runs on test_CT { + g_ctr_msc := f_counter_name_vals_list_add(g_ctr_msc, msc_nr, countername, val); +} + +/* f_ctrs_msc_init(); + * f_do_thing(on_msc := 0); + * f_do_thing(on_msc := 0); + * f_do_other(on_msc := 1); + * f_ctrs_msc_add(0, "thing", 2); + * f_ctrs_msc_add(1, "other"); + * f_ctrs_msc_verify(); + */ +private function f_ctrs_msc_verify() runs on test_CT { + log("verifying msc rate counters: ", g_ctr_msc); + f_counter_name_vals_expect_n("msc", g_ctr_msc); +} + +/* convenience: f_ctrs_msc_add() and f_ctrs_msc_verify() in one call. + * f_ctrs_msc_init(); + * f_do_thing(on_msc := 0); + * f_do_thing(on_msc := 0); + * f_do_thing(on_msc := 0); + * f_ctrs_msc_expect(0, "thing", 3); + */ +private function f_ctrs_msc_expect(integer msc_nr, charstring countername, integer val := 1) runs on test_CT { + f_ctrs_msc_add(msc_nr, countername, val); + f_ctrs_msc_verify(); +} + + private function f_shutdown_helper() runs on test_CT { all component.stop; setverdict(pass); @@ -4590,8 +4715,13 @@ f_sleep(1.0); var MSC_ConnHdlr vc_conn; var TestHdlrParams pars := f_gen_test_hdlr_pars(); + + f_ctrs_msc_init(); + vc_conn := f_start_handler(refers(f_tc_mscpool_L3Compl_on_1_msc), pars); vc_conn.done; + + f_ctrs_msc_expect(0, "mscpool:subscr:new", 4); } /* Three Layer 3 Complete by IMSI are round-robin'ed across two connected MSCs */ @@ -4606,12 +4736,15 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4619,6 +4752,7 @@ pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:new"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4627,6 +4761,7 @@ pars3.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); } /* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 0 @@ -4642,12 +4777,15 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4655,6 +4793,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:reattach"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4663,6 +4802,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); } /* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 1 @@ -4679,12 +4819,15 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4692,6 +4835,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:reattach"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4700,6 +4844,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); } /* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI not @@ -4715,6 +4860,8 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -4722,6 +4869,7 @@ pars1.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(1023)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4730,6 +4878,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(768)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:new"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4739,6 +4888,7 @@ pars3.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_SS_ACT, valueof(ts_MI_TMSI_NRI_LV(819)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); } /* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI @@ -4754,6 +4904,8 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -4761,6 +4913,9 @@ pars1.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(512)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_add(2, "mscpool:subscr:attach_lost"); + f_ctrs_msc_add(0, "mscpool:subscr:new"); + f_ctrs_msc_verify(); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4769,6 +4924,9 @@ pars2.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(767)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_add(2, "mscpool:subscr:attach_lost"); + f_ctrs_msc_add(1, "mscpool:subscr:new"); + f_ctrs_msc_verify(); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4778,6 +4936,9 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(750)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_add(2, "mscpool:subscr:attach_lost"); + f_ctrs_msc_add(0, "mscpool:subscr:new"); + f_ctrs_msc_verify(); } /* Three Layer 3 Complete by TMSI with valid NRI for the second MSC are all directed to the second MSC (configured in @@ -4793,6 +4954,8 @@ * this is not using round-robin. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 1); pars1.mscpool.rsl_idx := 0; @@ -4800,6 +4963,7 @@ pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(256)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4808,6 +4972,7 @@ pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(260)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn3; var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4816,6 +4981,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(511)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); } /* Layer 3 Complete by TMSI with valid NRI for the third MSC are directed to the third MSC (configured in osmo-bsc.cfg), @@ -4831,6 +4997,8 @@ * this is not using round-robin. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 2); pars1.mscpool.rsl_idx := 0; @@ -4838,6 +5006,7 @@ pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(512)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(2, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); @@ -4846,6 +5015,7 @@ pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(678)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(2, "mscpool:subscr:known"); /* The above forwardings to third MSC have not affected the round robin, which still points at the second MSC */ var MSC_ConnHdlr vc_conn3; @@ -4854,6 +5024,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000013'H)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(1, "mscpool:subscr:new"); } /* LU with a TMSI but indicating a different PLMN in its previous LAI: ignore the NRI. */ @@ -4868,6 +5039,8 @@ * instead, and hits msc 0. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + /* An NRI of the second MSC's range (256-511), but a PLMN that doesn't match with osmo-bsc.cfg */ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); @@ -4875,6 +5048,7 @@ pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(260)), '99F999'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); /* An NRI of the third MSC's range (512-767) and a matching PLMN gets directed by NRI. */ var MSC_ConnHdlr vc_conn2; @@ -4883,6 +5057,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(555)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(2, "mscpool:subscr:known"); } /* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by IMSI, which would be @@ -4923,6 +5098,8 @@ * second MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -4930,6 +5107,7 @@ pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_imsi), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:paged"); } /* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by TMSI with an NRI value @@ -4972,6 +5150,8 @@ * third MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 2"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -4979,6 +5159,7 @@ pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_tmsi), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:paged"); } /* For round-robin, skip an MSC that has 'no allow-attach' set. */ @@ -4999,12 +5180,15 @@ f_vty_transceive(BSCVTY, "exit"); f_vty_transceive(BSCVTY, "exit"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); @@ -5012,6 +5196,7 @@ pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(2, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn3; var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); @@ -5019,6 +5204,7 @@ pars3.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); f_vty_enter_cfg_msc(BSCVTY, 1); f_vty_transceive(BSCVTY, "allow-attach"); @@ -5043,6 +5229,8 @@ f_vty_transceive(BSCVTY, "exit"); f_vty_transceive(BSCVTY, "exit"); + f_ctrs_msc_init(); + /* Round robin points at msc 0, but the valid NRI directs to msc 1, even though msc 1 has 'no allow-attach'. */ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -5051,6 +5239,7 @@ pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_TMSI_NRI_LV(260)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 0); @@ -5058,6 +5247,7 @@ pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn3; var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 2); @@ -5065,6 +5255,7 @@ pars3.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000003'H)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(2, "mscpool:subscr:new"); f_vty_enter_cfg_msc(BSCVTY, 1); f_vty_transceive(BSCVTY, "allow-attach"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 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 Jun 17 03:07:37 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 03:07:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: neels has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Removed Code-Review-2 by neels -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 03:09:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 03:09:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 to look at the new patch set (#7). Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 732 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/18763/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 03:09:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 03:09:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 7: ok, now everything is back in order here. sorry about that. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 03:09: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 Wed Jun 17 03:13:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 03:13:00 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add rate counters In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18875 ) Change subject: MSC pooling: add rate counters ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18875/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18875/1//COMMIT_MSG at 9 PS1, Line 9: Tests for these counters are added in I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f (well, for *some* of these counters, at least) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 Gerrit-Change-Number: 18875 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 17 Jun 2020 03:13:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Jun 17 07:11:59 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 17 Jun 2020 07:11:59 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ee9c25d31b6e_e962b0071b305f02356055@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 1226s] [1927/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -MF 'src/udr/e340f29@@udr at sta/nudr-handler.c.o.d' -o 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' -c ../src/udr/nudr-handler.c [ 1226s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 1227s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 1228s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 1228s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 1228s] [1932/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 1228s] [1933/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 1229s] [1934/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 1229s] [1935/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 1230s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1230s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 1230s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 1230s] ../src/udm/context.c: In function ?udm_ue_add?: [ 1230s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 1230s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 1230s] ~~^ [ 1230s] %d [ 1230s] cc1: some warnings being treated as errors [ 1230s] ninja: build stopped: subcommand failed. [ 1230s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 [ 1230s] make: *** [debian/rules:11: binary] Error 1 [ 1230s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 1230s] ### VM INTERACTION START ### [ 1233s] [ 1202.062903] sysrq: SysRq : Power Off [ 1233s] [ 1202.064694] reboot: Power down [ 1234s] ### VM INTERACTION END ### [ 1234s] [ 1234s] armbuild10 failed "build open5gs_1.2.5.20200617.dsc" at Wed Jun 17 07:11:51 UTC 2020. [ 1234s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 17 07:13:25 2020 From: admin at opensuse.org (OBS Notification) Date: Wed, 17 Jun 2020 07:13:25 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ee9c2b82cc76_e962b0071b305f0235627e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Raspbian_10/armv7l Package network:osmocom:nightly/open5gs failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 591s] [1928/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -MF 'src/udr/e340f29@@udr at sta/sbi-path.c.o.d' -o 'src/udr/e340f29@@udr at sta/sbi-path.c.o' -c ../src/udr/sbi-path.c [ 591s] [1929/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -MF 'src/udr/e340f29@@udr at sta/udr-sm.c.o.d' -o 'src/udr/e340f29@@udr at sta/udr-sm.c.o' -c ../src/udr/udr-sm.c [ 591s] [1930/2112] cc -Isrc/udr/e340f29@@udr at sta -Isrc/udr -I../src/udr -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udr/e340f29@@udr at sta/init.c.o' -MF 'src/udr/e340f29@@udr at sta/init.c.o.d' -o 'src/udr/e340f29@@udr at sta/init.c.o' -c ../src/udr/init.c [ 591s] [1931/2112] rm -f src/udr/libudr.a && gcc-ar csrD src/udr/libudr.a 'src/udr/e340f29@@udr at sta/context.c.o' 'src/udr/e340f29@@udr at sta/event.c.o' 'src/udr/e340f29@@udr at sta/timer.c.o' 'src/udr/e340f29@@udr at sta/nnrf-handler.c.o' 'src/udr/e340f29@@udr at sta/nf-sm.c.o' 'src/udr/e340f29@@udr at sta/nudr-handler.c.o' 'src/udr/e340f29@@udr at sta/sbi-path.c.o' 'src/udr/e340f29@@udr at sta/udr-sm.c.o' 'src/udr/e340f29@@udr at sta/init.c.o' [ 592s] [1932/2112] cc -Isrc/udr/e340f29@@open5gs-udrd at exe -Isrc/udr -I../src/udr -Isrc -I../src -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/dbi -I../lib/dbi -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/libmongoc-1.0 -I/usr/include/libbson-1.0 -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pthread '-DDEFAULT_CONFIG_FILENAME="/etc/open5gs/udr.yaml"' -MD -MQ 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -MF 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o.d' -o 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' -c ../src/udr/app.c [ 592s] [1933/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/timer.c.o' -MF 'src/udm/3eca12a@@udm at sta/timer.c.o.d' -o 'src/udm/3eca12a@@udm at sta/timer.c.o' -c ../src/udm/timer.c [ 592s] [1934/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/event.c.o' -MF 'src/udm/3eca12a@@udm at sta/event.c.o.d' -o 'src/udm/3eca12a@@udm at sta/event.c.o' -c ../src/udm/event.c [ 592s] [1935/2112] cc -o src/udr/open5gs-udrd 'src/udr/e340f29@@open5gs-udrd at exe/app.c.o' 'src/udr/e340f29@@open5gs-udrd at exe/.._main.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group src/udr/libudr.a lib/ipfw/libogsipfw.so.1.2.5 lib/app/libogsapp.so.1.2.5 lib/core/libogscore.so.1.2.5 lib/dbi/libogsdbi.so.1.2.5 lib/crypt/libogscrypt.so.1.2.5 lib/sbi/libogssbi.so.1.2.5 lib/sbi/openapi/libogssbi-openapi.so.1.2.5 /usr/lib/arm-linux-gnueabihf/libyaml.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libmongoc-1.0.so /usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libbson-1.0.so -lgnutls /usr/lib/arm-linux-gnueabihf/libmicrohttpd.so /usr/lib/arm-linux-gnueabihf/libcurl.so -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../lib/ipfw:$ORIGIN/../../lib/app:$ORIGIN/../../lib/core:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sbi:$ORIGIN/../../lib/sbi/openapi' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/src/udr:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/ipfw:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/app:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/core:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/dbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/crypt:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi:/usr/src/packages/BUILD/obj-arm-linux-gnueabihf/lib/sbi/openapi [ 593s] [1936/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 593s] FAILED: src/udm/3eca12a@@udm at sta/context.c.o [ 593s] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/context.c.o' -MF 'src/udm/3eca12a@@udm at sta/context.c.o.d' -o 'src/udm/3eca12a@@udm at sta/context.c.o' -c ../src/udm/context.c [ 593s] ../src/udm/context.c: In function ?udm_ue_add?: [ 593s] ../src/udm/context.c:129:38: error: format ?%ld? expects argument of type ?long int?, but argument 2 has type ?int? [-Werror=format=] [ 593s] udm_ue->ctx_id = ogs_msprintf("%ld", ogs_pool_index(&udm_ue_pool, udm_ue)); [ 593s] ~~^ [ 593s] %d [ 593s] cc1: some warnings being treated as errors [ 593s] [1937/2112] cc -Isrc/udm/3eca12a@@udm at sta -Isrc/udm -I../src/udm -Ilib/app -I../lib/app -Ilib -I../lib -Ilib/core -I../lib/core -Ilib/crypt -I../lib/crypt -Ilib/sbi -I../lib/sbi -Ilib/sbi/openapi -I../lib/sbi/openapi -I/usr/include/p11-kit-1 -I/usr/include/arm-linux-gnueabihf -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=gnu89 -Wextra -Wlogical-op -Werror=missing-include-dirs -Werror=pointer-arith -Werror=init-self -Wfloat-equal -Wsuggest-attribute=noreturn -Werror=missing-prototypes -Werror=missing-declarations -Werror=implicit-function-declaration -Werror=return-type -Werror=incompatible-pointer-types -Werror=format=2 -Wstrict-prototypes -Wredundant-decls -Wimplicit-fallthrough=5 -Wendif-labels -Wstrict-aliasing=3 -Wwrite-strings -Werror=overflow -Werror=shift-count-overflow -Werror=shift-overflow=2 -Wdate-time -Wnested-externs -Wunused -Wduplicated-branches -Wmisleading-indentation -Wno-sign-compare -Wno-unused-parameter -ffast-math -fdiagnostics-show-option -fstack-protector -fstack-protector-strong --param=ssp-buffer-size=4 -ffunction-sections -fdata-sections -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -pthread -MD -MQ 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -MF 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o.d' -o 'src/udm/3eca12a@@udm at sta/nnrf-handler.c.o' -c ../src/udm/nnrf-handler.c [ 593s] ninja: build stopped: subcommand failed. [ 593s] dh_auto_build: cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1 [ 593s] make: *** [debian/rules:11: binary] Error 1 [ 593s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 593s] ### VM INTERACTION START ### [ 596s] [ 575.352558] sysrq: SysRq : Power Off [ 596s] [ 575.367301] reboot: Power down [ 596s] ### VM INTERACTION END ### [ 596s] [ 596s] armbuild02 failed "build open5gs_1.2.5.20200617.dsc" at Wed Jun 17 07:13:08 UTC 2020. [ 596s] -- 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 Jun 17 08:33:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 08:33:14 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Treat RAU as implicit RESUME if GMM is suspended We so far only resumed from suspend upon receiving an explicit BSSGP RESUME message from the BSS. The latter is only possible in BSC-colocated PCU, where the BSC can trigger the message when releasing the dedicated channel. In BTS-colocated PCUs, this is not possible, and we have to rely on the MS resuming by RAU. See 3GPP TS 23.060 section 16.2.1.1.1 clause 6: The MS shall resume GPRS services by sending a Routeing Area Update Request message to the SGSN: * if the BSS did not successfully request the SGSN to resume GPRS services, * if the RR Channel Release message was not received before the MS left dedicated mode, * if the MS locally determines that the conditions for the GPRS suspension have disappeared Without this patch, the GMM state would forever be stuck in SUSPEND, which in turn causes the SGSN to page the MS all the time. Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Related: OS4616 --- M src/sgsn/gprs_gmm_fsm.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/77/18877/1 diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c index 37ea904..cf1f4c5 100644 --- a/src/sgsn/gprs_gmm_fsm.c +++ b/src/sgsn/gprs_gmm_fsm.c @@ -69,7 +69,8 @@ static void st_gmm_registered_suspended(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch(event) { - case E_GMM_RESUME: + case E_GMM_RESUME: /* explicit BSSGP RESUME from BSS */ + case E_GMM_ATTACH_SUCCESS: /* implicit resume from MS */ gmm_fsm_state_chg(fi, ST_GMM_REGISTERED_NORMAL); break; } @@ -123,7 +124,8 @@ .action = st_gmm_registered_normal, }, [ST_GMM_REGISTERED_SUSPENDED] = { - .in_event_mask = X(E_GMM_RESUME), + .in_event_mask = X(E_GMM_RESUME) | + X(E_GMM_ATTACH_SUCCESS), .out_state_mask = X(ST_GMM_DEREGISTERED) | X(ST_GMM_REGISTERED_NORMAL), -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 Gerrit-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 Jun 17 08:54:08 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Wed, 17 Jun 2020 08:54:08 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb.cfg.tmpl: expose log options In-Reply-To: References: Message-ID: srs_andre has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18864 ) Change subject: amarisoft_enb.cfg.tmpl: expose log options ...................................................................... amarisoft_enb.cfg.tmpl: expose log options this allows to alter the log options through a modifier Change-Id: Iecd24afe6b242fbebc8463c9e1fa1c3b60b27d01 --- M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl M sysmocom/defaults.conf 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index 5690da9..c02192c 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -29,8 +29,7 @@ - 'max_size': set the maximum size of the hex dump. 0 means no hex dump. -1 means no limit. */ - //log_options: "all.level=debug,all.max_size=32", - log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1", + log_options: "${enb.log_options}", log_filename: "${enb.log_filename}", /* Enable remote API and Web interface */ diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index 6694652..b113545 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -149,6 +149,7 @@ enable_pcap: false tx_gain: 89 rx_gain: 60 + log_options: all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1 srsue: enable_pcap: false -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18864 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: Iecd24afe6b242fbebc8463c9e1fa1c3b60b27d01 Gerrit-Change-Number: 18864 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:30:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:30:05 +0000 Subject: Change in osmo-gsm-tester[master]: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 ) Change subject: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods ...................................................................... ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods Change-Id: Icddab08c84ef97924d10801d7128158f515bcd01 --- M src/osmo_gsm_tester/obj/ms_osmo_mobile.py 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/78/18878/1 diff --git a/src/osmo_gsm_tester/obj/ms_osmo_mobile.py b/src/osmo_gsm_tester/obj/ms_osmo_mobile.py index f497772..cc54174 100644 --- a/src/osmo_gsm_tester/obj/ms_osmo_mobile.py +++ b/src/osmo_gsm_tester/obj/ms_osmo_mobile.py @@ -32,3 +32,9 @@ if not ki: return "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" return ki + + def get_assigned_addr(self, ipv6=False): + raise log.Error('API not implemented!') + + def is_registered(self, mcc_mnc=None): + raise log.Error('API not implemented!') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 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: Icddab08c84ef97924d10801d7128158f515bcd01 Gerrit-Change-Number: 18878 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 Jun 17 10:32:59 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 10:32:59 +0000 Subject: Change in osmo-gsm-tester[master]: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 ) Change subject: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 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: Icddab08c84ef97924d10801d7128158f515bcd01 Gerrit-Change-Number: 18878 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 17 Jun 2020 10: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 Jun 17 10:34:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:34:50 +0000 Subject: Change in osmo-gsm-tester[master]: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 ) Change subject: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 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: Icddab08c84ef97924d10801d7128158f515bcd01 Gerrit-Change-Number: 18878 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 17 Jun 2020 10:34: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 Jun 17 10:34:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:34:52 +0000 Subject: Change in osmo-gsm-tester[master]: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 ) Change subject: ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods ...................................................................... ms_osmo_mobile.py: Fix missing sublcass implementation of abstract MS methods Change-Id: Icddab08c84ef97924d10801d7128158f515bcd01 --- M src/osmo_gsm_tester/obj/ms_osmo_mobile.py 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved; Verified diff --git a/src/osmo_gsm_tester/obj/ms_osmo_mobile.py b/src/osmo_gsm_tester/obj/ms_osmo_mobile.py index f497772..cc54174 100644 --- a/src/osmo_gsm_tester/obj/ms_osmo_mobile.py +++ b/src/osmo_gsm_tester/obj/ms_osmo_mobile.py @@ -32,3 +32,9 @@ if not ki: return "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" return ki + + def get_assigned_addr(self, ipv6=False): + raise log.Error('API not implemented!') + + def is_registered(self, mcc_mnc=None): + raise log.Error('API not implemented!') -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18878 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: Icddab08c84ef97924d10801d7128158f515bcd01 Gerrit-Change-Number: 18878 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:36:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:36:13 +0000 Subject: Change in libosmocore[master]: gsm0502: add TDMA frame number constants and modular arithmetic In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18869 ) Change subject: gsm0502: add TDMA frame number constants and modular arithmetic ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d Gerrit-Change-Number: 18869 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:36:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:36:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:36:35 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18870 ) Change subject: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Idde328d176b4cbd89c62712e4a247095dd596105 Gerrit-Change-Number: 18870 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:36: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 Jun 17 10:36:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:36:51 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: clarify lost frame counter description In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18871 ) Change subject: trxcon/scheduler: cosmetic: clarify lost frame counter description ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ied5ea8524f2ec6c324e9fd37256111d099c23e6c Gerrit-Change-Number: 18871 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:36: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 Jun 17 10:38:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:38:40 +0000 Subject: Change in osmocom-bb[master]: trxcon: use libosmocore's TDMA frame number API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18872 ) Change subject: trxcon: use libosmocore's TDMA frame number API ...................................................................... Patch Set 1: Please update TODO_RELEASE specifying we need libosmocore/libosmogsm > $(current_last_release) This way I know I need to bump dependencies right away with needing to investigate. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I49a043d8483e116cf2d91820edb511846175173f Gerrit-Change-Number: 18872 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:38:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:42:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:42:01 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18873 ) Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... Patch Set 3: Code-Review+1 agree to hide it -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:42:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:43:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 10:43:09 +0000 Subject: Change in osmocom-bb[master]: trxcon: use libosmocore's TDMA frame number API In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18872 ) Change subject: trxcon: use libosmocore's TDMA frame number API ...................................................................... Patch Set 1: > Patch Set 1: > > Please update TODO_RELEASE specifying we need libosmocore/libosmogsm > $(current_last_release) > This way I know I need to bump dependencies right away with needing to investigate. I am not sure if I understand you here, sorry. Neither there is TODO_RELEASE, nor we do releases for OsmocomBB. Maybe you meant configure.ac where we check the minimum version of libosmogsm? Or should I update TODO_RELEASE in libosmocore? -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I49a043d8483e116cf2d91820edb511846175173f Gerrit-Change-Number: 18872 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:43: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 Jun 17 10:43:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:43:30 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18770 ) Change subject: add rudimentary NRI support for MSC pooling ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:43:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:49:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:49:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876/2/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876/2/bsc/BSC_Tests.ttcn at 210 PS2, Line 210: private function f_counter_name_vals_add(CounterNameVals vals, charstring countername, integer val := 1) return CounterNameVals{ All these functions look generic to test rate_ctrs. What about moving them to library/Osmo_*? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:49: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 Wed Jun 17 10:53:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:53:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 7: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/7/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/7/bsc/BSC_Tests.ttcn at 4501 PS7, Line 4501: //RSL_Emulation.f_chan_est(g_pars.ra, l3_enc, g_pars.link_id, g_pars.fn); why are these commented out? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763/7/bsc/BSC_Tests.ttcn at 4508 PS7, Line 4508: //rx_rsl := f_rx_or_fail(tr_RSL_IMM_ASSIGN); and this -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:53: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 Wed Jun 17 10:54:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:54:28 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add rate counters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18875 ) Change subject: MSC pooling: add rate counters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 Gerrit-Change-Number: 18875 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:54:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:55:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:55:49 +0000 Subject: Change in osmocom-bb[master]: trxcon: use libosmocore's TDMA frame number API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18872 ) Change subject: trxcon: use libosmocore's TDMA frame number API ...................................................................... Patch Set 1: Code-Review+1 > I am not sure if I understand you here, sorry. Neither there is TODO_RELEASE, nor we do releases for OsmocomBB. Maybe you meant configure.ac where we check the minimum version of libosmogsm? Or should I update TODO_RELEASE in libosmocore? Ah sorry my bad, I thought first this was in osmo-bts. It's fine then. -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I49a043d8483e116cf2d91820edb511846175173f Gerrit-Change-Number: 18872 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:55:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 10:58:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 10:58:31 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Patch Set 1: Thanks, I'll give it a try today -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 10:58: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 Jun 17 11:19:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 11:19:46 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Patch Set 1: I still see the issue with this patch applied, will continue investigation -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 11:19: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 Jun 17 11:30:34 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 11:30:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 ) Change subject: RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() ...................................................................... RSL_Emulation: fix rx of tr_RSL_PAGING_CMD() For tr_RSL_PAGING_CMD, also check comp_ref against null. Upon receiving a tr_RSL_PAGING_CMD, the code tries to dispatch the Paging Command to all valid clients. However, the ConnectionTable[*].comp_ref is *always* present, and actually null for unconnected clients. So, before this patch, a Paging Command from osmo-bsc gets sent to a null client, which disconnects the RSL emulation and aborts the test. There is currently no test using this, but the upcoming MSC pool tests will: see I21cbab193cd0de2e5692665442eae113d5f61904. Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 --- M library/RSL_Emulation.ttcn 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/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index bb11340..618cf11 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -548,7 +548,7 @@ [bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD(?, ?), sid := ?)) -> value rx_rsl { /* broadcast to all clients? */ for (i := 0; i < sizeof(ConnectionTable); i := i + 1) { - if (ispresent(ConnectionTable[i].comp_ref)) { + if (ispresent(ConnectionTable[i].comp_ref) and ConnectionTable[i].comp_ref != null) { CLIENT_PT.send(rx_rsl.rsl) to ConnectionTable[i].comp_ref; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5 Gerrit-Change-Number: 18761 Gerrit-PatchSet: 6 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 Wed Jun 17 11:30:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 11:30:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 ) Change subject: RAN_Emulation: allow sending UnitData from MSC_ConnHdlr ...................................................................... RAN_Emulation: allow sending UnitData from MSC_ConnHdlr Add BSSAP_N_UNITDATA_req to RAN_Conn_PT, so that we are able to send a Paging from a test function that runs on MSC_ConnHdlr. This will be needed by upcoming MSC pool tests, see I21cbab193cd0de2e5692665442eae113d5f61904. Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930 --- M library/RAN_Emulation.ttcnpp 1 file changed, 6 insertions(+), 0 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/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index 7e98b8b..5450706 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -162,6 +162,7 @@ inout #ifdef RAN_EMULATION_BSSAP PDU_BSSAP, + BSSAP_N_UNITDATA_req, /* Client requests us to create SCCP Connection */ BSSAP_Conn_Req, #endif @@ -839,6 +840,7 @@ var BSSAP_N_DISCONNECT_ind disc_ind; var BSSAP_Conn_Req creq; var PDU_BSSAP bssap; + var BSSAP_N_UNITDATA_req bssap_ud; var RAN_ConnHdlr vc_conn; var integer targetPointCode; var N_Sd_Array last_n_sd; @@ -898,6 +900,10 @@ BSSAP.send(ts_BSSAP_DATA_req(conn_id, bssap)); } + [] CLIENT.receive(BSSAP_N_UNITDATA_req:?) -> value bssap_ud sender vc_conn { + BSSAP.send(bssap_ud); + } + /* Disconnect request client -> SCCP */ [] CLIENT.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { var integer conn_id := f_conn_id_by_comp(vc_conn); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I36d486db05169b0fc3f19112b5a9008248d62930 Gerrit-Change-Number: 18762 Gerrit-PatchSet: 6 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 Jun 17 11:36:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 11:36:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 to look at the new patch set (#8). Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 736 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/18763/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 12:22:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 12:22:11 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2) to the change originally created by laforge. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Treat RAU as implicit RESUME if GMM is suspended We so far only resumed from suspend upon receiving an explicit BSSGP RESUME message from the BSS. The latter is only possible in BSC-colocated PCU, where the BSC can trigger the message when releasing the dedicated channel. In BTS-colocated PCUs, this is not possible, and we have to rely on the MS resuming by RAU. See 3GPP TS 23.060 section 16.2.1.1.1 clause 6: The MS shall resume GPRS services by sending a Routeing Area Update Request message to the SGSN: * if the BSS did not successfully request the SGSN to resume GPRS services, * if the RR Channel Release message was not received before the MS left dedicated mode, * if the MS locally determines that the conditions for the GPRS suspension have disappeared Without this patch, the GMM state would forever be stuck in SUSPEND, which in turn causes the SGSN to page the MS all the time. Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Related: OS4616 --- M src/sgsn/gprs_gmm_fsm.c 1 file changed, 8 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/77/18877/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 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 Wed Jun 17 12:45:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 12:45:02 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix length indicator in Set Channel Attributes In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18829 ) Change subject: abis_nm: fix length indicator in Set Channel Attributes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Gerrit-Change-Number: 18829 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 12:45:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 13:07:34 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 13:07:34 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 13:07: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 Jun 17 13:10:29 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 13:10:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/17766/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/17766/3//COMMIT_MSG at 13 PS3, Line 13: The default of 25 are around 115ms which is clearly too much. With (code says default was 20. but whatever) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 3 Gerrit-Owner: daniel 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, 17 Jun 2020 13:10: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 Jun 17 13:12:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 13:12:11 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18861 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path ...................................................................... Patch Set 1: Code-Review+1 seems purely cosmetic, would be nice to read in the commit log why you are driven to bother -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 Gerrit-Change-Number: 18861 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 17 Jun 2020 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 Wed Jun 17 13:24:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 13:24:24 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c at 570 PS2, Line 570: (ws) https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c at 603 PS2, Line 603: l1ts->ctrs = rate_ctr_group_alloc(trx, &l1sched_ts_ctrg_desc, (trx->nr + 1) * 10 + tn); hmm, so an index + 10 is used to store counters that do not reflect an actual instance's index? can't we somehow logically nest the rate counters as trx N tn M? using 10 (or 100) seems so "human"/"arbitrary" and gut feeling is that it will need refactoring later... https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c at 605 PS2, Line 605: (ws) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Wed, 17 Jun 2020 13:24:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 13:27:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 13:27:44 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about Dl block not found In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18863 ) Change subject: scheduler: Add rate_ctr informing about Dl block not found ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 13:27: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 Jun 17 13:29:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 13:29:18 +0000 Subject: Change in osmo-trx[master]: RPM spec file: Require uhd-firmware for osmo-trx-uhd References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18879 ) Change subject: RPM spec file: Require uhd-firmware for osmo-trx-uhd ...................................................................... RPM spec file: Require uhd-firmware for osmo-trx-uhd The automatic dependency will only depend on the UHD library package. The user will then fail to start osmo-trx-uhd due to missing firmware. So let's include an explicit 'Requires' to the uhd-firmware package to solve this. Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 --- M contrib/osmo-trx.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/79/18879/1 diff --git a/contrib/osmo-trx.spec.in b/contrib/osmo-trx.spec.in index 535e375..fa46b74 100644 --- a/contrib/osmo-trx.spec.in +++ b/contrib/osmo-trx.spec.in @@ -69,6 +69,7 @@ %package uhd Summary: SDR transceiver that implements Layer 1 of a GSM BTS (UHD) Group: Productivity/Telephony/Servers +Requires: uhd-firmware %description uhd OsmoTRX is a software-defined radio transceiver that implements the Layer 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 Gerrit-Change-Number: 18879 Gerrit-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 Jun 17 13:31:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 13:31:51 +0000 Subject: Change in osmo-trx[master]: RPM spec file: Require uhd-firmware for osmo-trx-uhd In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18879 ) Change subject: RPM spec file: Require uhd-firmware for osmo-trx-uhd ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 Gerrit-Change-Number: 18879 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 17 Jun 2020 13: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 Wed Jun 17 13:32:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 13:32:43 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18861 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path ...................................................................... Patch Set 1: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 Gerrit-Change-Number: 18861 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 17 Jun 2020 13:32: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 Jun 17 13:32:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 13:32:51 +0000 Subject: Change in osmo-bts[master]: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18861 ) Change subject: scheduler: _sched_dequeue_prim(): Refactor found_msg goto path ...................................................................... scheduler: _sched_dequeue_prim(): Refactor found_msg goto path Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 --- M src/common/scheduler.c 1 file changed, 11 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve neels: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ed7d412..c1bd19f 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -679,24 +679,21 @@ return NULL; /* l1sap_fn == fn */ - goto found_msg; + if ((chan_nr ^ (trx_chan_desc[chan].chan_nr | tn)) + || ((link_id & 0xc0) ^ trx_chan_desc[chan].link_id)) { + LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong chan_nr=0x%02x link_id=%02x, " + "expecting chan_nr=0x%02x link_id=%02x.\n", chan_nr, link_id, + trx_chan_desc[chan].chan_nr | tn, trx_chan_desc[chan].link_id); + goto free_msg; + } + + /* unlink and return message */ + llist_del(&msg->list); + return msg; } return NULL; -found_msg: - if ((chan_nr ^ (trx_chan_desc[chan].chan_nr | tn)) - || ((link_id & 0xc0) ^ trx_chan_desc[chan].link_id)) { - LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong chan_nr=0x%02x link_id=%02x, " - "expecting chan_nr=0x%02x link_id=%02x.\n", chan_nr, link_id, - trx_chan_desc[chan].chan_nr | tn, trx_chan_desc[chan].link_id); - goto free_msg; - } - - /* unlink and return message */ - llist_del(&msg->list); - return msg; - free_msg: /* unlink and free message */ llist_del(&msg->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icf7414d9fb17bbc3eb384329f587b3042ba0fcd5 Gerrit-Change-Number: 18861 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels 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 Wed Jun 17 13:39:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 13:39:32 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c at 603 PS2, Line 603: l1ts->ctrs = rate_ctr_group_alloc(trx, &l1sched_ts_ctrg_desc, (trx->nr + 1) * 10 + tn); > hmm, so an index + 10 is used to store counters that do not reflect an actual instance's index? [?] I couldn't find any way to nest rate counters, if you can tell me a way I'm happy to use it. https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c at 605 PS2, Line 605: > (ws) I added this one on purpose, it's more clear since it seprates initialization of l1ts from chan_state. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Wed, 17 Jun 2020 13:39:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 13:40:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 13:40:11 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: Hello fixeria, daniel, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 to look at the new patch set (#3). Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... scheduler: Add rate_ctr informing about too low rts-advance Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c 2 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/62/18862/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 13:40:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 13:40:11 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#4) to the change originally created by daniel. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... osmo-bts-trx: Change default for clock_advance to 2 osmotrx fn-advance (which is the clock_advance variable here) and osmotrx rtx-advance together make up the minimum delay the BTS can react to a channel request, etc. The default of 20 are around 92ms which is clearly too much. With modern hardware and using SCHED_RR a lower value should not be an issue. Fixes: OS#4487 Fixes: SYS#4885 Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Related: SYS#4881 --- M doc/manuals/chapters/bts-models.adoc M src/osmo-bts-trx/main.c 2 files changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/66/17766/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 13:41:21 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Wed, 17 Jun 2020 13:41:21 +0000 Subject: Change in osmo-trx[master]: RPM spec file: Require uhd-firmware for osmo-trx-uhd In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18879 ) Change subject: RPM spec file: Require uhd-firmware for osmo-trx-uhd ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 Gerrit-Change-Number: 18879 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 17 Jun 2020 13:41: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 Jun 17 13:49:06 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 13:49:06 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 12: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c at 882 PS11, Line 882: continue; > please still explain, as in previous comment: [?] after asking twice already, now i took the time to investigate myself. I see now that the DEFUN for e.g. rtp keep-alive are duplicated (one for virtual trunk and one for the other trunks), so these options still apply to other trunks apparently. and that the virt trunk is written in config_write_mgcp() directly on the 'mgcp' level. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 13:49:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 13:55:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 13:55:08 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/3/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/3/src/libosmo-mgcp/mgcp_trunk.c at 143 PS3, Line 143: trunk_nr = strtol(epname+prefix_len, NULL, 10); > If you are looking for an unsigned int, then simply use strtoul(). [?] what he said: errno and endptr -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 13:55:08 +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 Jun 17 14:00:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 14:00:53 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 6: this is the last patch needing CR to be able to merge MSC pooling. Only reason that I'd be reluctant to merge right now are weird failures in osmo-bsc SCCPlite tests. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 14:00: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 Wed Jun 17 14:34:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 14:34:58 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18880 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() ...................................................................... libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() This function calls mgcp_client_pending_add(), that in its turn allocates a 'mgcp_response_pending' and appends it to the queue. In case of an error, it calls mgcp_client_handle_response() that would free the 'mgcp_response_pending', but this structure would still remain in the linked list (the queue). Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/80/18880/1 diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 74bdf4d..e9b3ec0 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -959,6 +959,8 @@ return 0; mgcp_tx_error: + /* Dequeue pending response, it's going to be free()d */ + llist_del(&pending->entry); /* Pass NULL to response cb to indicate an error */ mgcp_client_handle_response(mgcp, pending, NULL); return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b Gerrit-Change-Number: 18880 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 Jun 17 14:54:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 14:54:22 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18880 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18880/1/src/libosmo-mgcp-client/mgcp_client.c File src/libosmo-mgcp-client/mgcp_client.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18880/1/src/libosmo-mgcp-client/mgcp_client.c at 963 PS1, Line 963: llist_del(&pending->entry); Shouldn't this be done in mgcp_client_handle_response()? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b Gerrit-Change-Number: 18880 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 14:54: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 Jun 17 14:56:46 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 14:56:46 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18880 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18880/1/src/libosmo-mgcp-client/mgcp_client.c File src/libosmo-mgcp-client/mgcp_client.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18880/1/src/libosmo-mgcp-client/mgcp_client.c at 963 PS1, Line 963: llist_del(&pending->entry); > Shouldn't this be done in mgcp_client_handle_response()? No, because in other cases the message is already dequeued. See mgcp_client_response_pending_get(). -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b Gerrit-Change-Number: 18880 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 14:56:46 +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 Jun 17 15:03:48 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 15:03:48 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix memleak: clear pending queue References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18881 ) Change subject: libosmo-mgcp-client: fix memleak: clear pending queue ...................................................................... libosmo-mgcp-client: fix memleak: clear pending queue If the remote MGCP peer closes connection (or simply crashes), the existing 'mgcp_response_pending' entities will never be removed from the queue (mgcp->responses_pending). This problem was noticed while running several LCLS test cases from ttcn3-bsc-test. Every test case makes osmo-bsc leak two messages. I found those messages suspicious and assumed that they're related: DLMGCP ERROR mgcp_client.c:700 Failed to read: r=127.0.0.1:2427<->l=127.0.0.1:2727: 111='Connection refused' DLMGCP ERROR mgcp_client.c:700 Failed to read: r=127.0.0.1:2427<->l=127.0.0.1:2727: 111='Connection refused' Let's flush the pending response queue in such cases. Change-Id: Ia2e89f31685a0822e5cb147a06cc1fc68efc1ec4 Related: OS#4619 --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/81/18881/1 diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index e9b3ec0..3df32aa 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -683,6 +683,19 @@ return rc; } +static void mgcp_pending_flush(struct mgcp_client *mgcp) +{ + struct mgcp_response_pending *e; + + while (!llist_empty(&mgcp->responses_pending)) { + e = llist_entry(mgcp->responses_pending.next, + struct mgcp_response_pending, + entry); + llist_del(&e->entry); + talloc_free(e); + } +} + static int mgcp_do_read(struct osmo_fd *fd) { struct mgcp_client *mgcp = fd->data; @@ -700,6 +713,10 @@ LOGP(DLMGCP, LOGL_ERROR, "Failed to read: %s: %d='%s'\n", osmo_sock_get_name2(fd->fd), errno, strerror(errno)); + /* Handle loss of connection (clear the queues) */ + if (errno == ECONNREFUSED) + mgcp_pending_flush(mgcp); + msgb_free(msg); return -1; } else if (ret > 4096 - 128) { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia2e89f31685a0822e5cb147a06cc1fc68efc1ec4 Gerrit-Change-Number: 18881 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 Jun 17 15:05:26 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 15:05:26 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix memleak: flush pending response queue In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-mgw/+/18881 ) Change subject: libosmo-mgcp-client: fix memleak: flush pending response queue ...................................................................... libosmo-mgcp-client: fix memleak: flush pending response queue If the remote MGCP peer closes connection (or simply crashes), the existing 'mgcp_response_pending' entities will never be removed from the queue (mgcp->responses_pending). This problem was noticed while running several LCLS test cases from ttcn3-bsc-test. Every test case makes osmo-bsc leak two messages. I found those messages suspicious and assumed that they're related: DLMGCP ERROR mgcp_client.c:700 Failed to read: r=127.0.0.1:2427<->l=127.0.0.1:2727: 111='Connection refused' DLMGCP ERROR mgcp_client.c:700 Failed to read: r=127.0.0.1:2427<->l=127.0.0.1:2727: 111='Connection refused' Let's flush the pending response queue in such cases. Change-Id: Ia2e89f31685a0822e5cb147a06cc1fc68efc1ec4 Related: OS#4619 --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/81/18881/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia2e89f31685a0822e5cb147a06cc1fc68efc1ec4 Gerrit-Change-Number: 18881 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 15:16:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 15:16:38 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18880 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b Gerrit-Change-Number: 18880 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 15:16:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 15:29:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 15:29:11 +0000 Subject: Change in osmo-bts[master]: cosmetic: common/Makefile.am: split each source file in one line References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18882 ) Change subject: cosmetic: common/Makefile.am: split each source file in one line ...................................................................... cosmetic: common/Makefile.am: split each source file in one line Change-Id: I9c4d78fb80446fa4142950d947dad20856573275 --- M src/common/Makefile.am 1 file changed, 29 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/82/18882/1 diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 0a10abf..cd22f7b 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -7,11 +7,34 @@ endif noinst_LIBRARIES = libbts.a libl1sched.a -libbts_a_SOURCES = gsm_data_shared.c sysinfo.c logging.c abis.c oml.c bts.c \ - rsl.c vty.c paging.c measurement.c amr.c lchan.c \ - load_indication.c pcu_sock.c handover.c msg_utils.c \ - tx_power.c bts_ctrl_commands.c bts_ctrl_lookup.c \ - l1sap.c cbch.c power_control.c main.c phy_link.c \ - dtx_dl_amr_fsm.c scheduler_mframe.c ta_control.c +libbts_a_SOURCES = \ + gsm_data_shared.c \ + sysinfo.c \ + logging.c \ + abis.c \ + oml.c \ + bts.c \ + rsl.c \ + vty.c \ + paging.c \ + measurement.c \ + amr.c \ + lchan.c \ + load_indication.c \ + pcu_sock.c \ + handover.c \ + msg_utils.c \ + tx_power.c \ + bts_ctrl_commands.c \ + bts_ctrl_lookup.c \ + l1sap.c \ + cbch.c \ + power_control.c \ + main.c \ + phy_link.c \ + dtx_dl_amr_fsm.c \ + scheduler_mframe.c \ + ta_control.c \ + $(NULL) libl1sched_a_SOURCES = scheduler.c -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9c4d78fb80446fa4142950d947dad20856573275 Gerrit-Change-Number: 18882 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 Jun 17 15:29:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 15:29:12 +0000 Subject: Change in osmo-bts[master]: cosmetic: include/osmo-bts/Makefile.am: split each header file in one... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18883 ) Change subject: cosmetic: include/osmo-bts/Makefile.am: split each header file in one line ...................................................................... cosmetic: include/osmo-bts/Makefile.am: split each header file in one line Change-Id: I58d86a8c2e8846f683d4414fcd2a3bf7f89049ce --- M include/osmo-bts/Makefile.am 1 file changed, 29 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/83/18883/1 diff --git a/include/osmo-bts/Makefile.am b/include/osmo-bts/Makefile.am index 668db32..d5e989a 100644 --- a/include/osmo-bts/Makefile.am +++ b/include/osmo-bts/Makefile.am @@ -1,5 +1,29 @@ -noinst_HEADERS = abis.h bts.h bts_model.h gsm_data.h gsm_data_shared.h logging.h measurement.h \ - oml.h paging.h rsl.h signal.h vty.h amr.h pcu_if.h pcuif_proto.h \ - handover.h msg_utils.h tx_power.h control_if.h cbch.h l1sap.h \ - power_control.h scheduler.h scheduler_backend.h phy_link.h \ - dtx_dl_amr_fsm.h ta_control.h +noinst_HEADERS = \ + abis.h \ + bts.h \ + bts_model.h \ + gsm_data.h \ + gsm_data_shared.h \ + logging.h \ + measurement.h \ + oml.h \ + paging.h \ + rsl.h \ + signal.h \ + vty.h \ + amr.h \ + pcu_if.h \ + pcuif_proto.h \ + handover.h \ + msg_utils.h \ + tx_power.h \ + control_if.h \ + cbch.h \ + l1sap.h \ + power_control.h \ + scheduler.h \ + scheduler_backend.h \ + phy_link.h \ + dtx_dl_amr_fsm.h \ + ta_control.h \ + $(NULL) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I58d86a8c2e8846f683d4414fcd2a3bf7f89049ce Gerrit-Change-Number: 18883 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 Jun 17 15:51:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 15:51:02 +0000 Subject: Change in osmo-bts[master]: Merge gsm_data_shared.h into gsm_data.h References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18884 ) Change subject: Merge gsm_data_shared.h into gsm_data.h ...................................................................... Merge gsm_data_shared.h into gsm_data.h Old _shared one comes from time where we shared header with other componenets. It's no longer the case sine a logn time ago. The gsm_data_shared.h is only being included by gsm_data.h nowadays, so let's simply merge it to simplify header dependency and struct definitions. Similarly, gsm_data_shared.c is renamed to gsm_data.c Change-Id: Id60e7582e3a32dbc5e3531b87b2b49f07aee734d --- M include/osmo-bts/Makefile.am M include/osmo-bts/gsm_data.h D include/osmo-bts/gsm_data_shared.h M src/common/Makefile.am R src/common/gsm_data.c 5 files changed, 762 insertions(+), 772 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/84/18884/1 diff --git a/include/osmo-bts/Makefile.am b/include/osmo-bts/Makefile.am index d5e989a..4999ab4 100644 --- a/include/osmo-bts/Makefile.am +++ b/include/osmo-bts/Makefile.am @@ -3,7 +3,6 @@ bts.h \ bts_model.h \ gsm_data.h \ - gsm_data_shared.h \ logging.h \ measurement.h \ oml.h \ diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 1de5edd..80cc0be 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -1,10 +1,29 @@ #ifndef _GSM_DATA_H #define _GSM_DATA_H +#include +#include + #include +#include +#include +#include #include +#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include #include #include @@ -42,7 +61,748 @@ LCHAN_CIPH_RXTX_CONF, }; -#include +/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018 Table 10.5.2.33b.1: + 4-bit index is used (2#1111 = 10#15) */ +#define SI2Q_MAX_NUM 16 +/* length in bits (for single SI2quater message) */ +#define SI2Q_MAX_LEN 160 +#define SI2Q_MIN_LEN 18 + +/* lchans 0..3 are SDCCH in combined channel configuration, + use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */ +#define CCCH_LCHAN 4 + +#define TRX_NR_TS 8 +#define TS_MAX_LCHAN 8 + +#define MAX_VERSION_LENGTH 64 + +struct gsm_lchan; +struct osmo_rtp_socket; +struct pcu_sock_state; +struct smscb_msg; + +/* Network Management State */ +struct gsm_nm_state { + uint8_t operational; + uint8_t administrative; + uint8_t availability; +}; + +struct gsm_abis_mo { + /* A-bis OML Object Class */ + uint8_t obj_class; + /* is there still some procedure pending? */ + uint8_t procedure_pending; + /* A-bis OML Object Instance */ + struct abis_om_obj_inst obj_inst; + /* human-readable name */ + const char *name; + /* NM State */ + struct gsm_nm_state nm_state; + /* Attributes configured in this MO */ + struct tlv_parsed *nm_attr; + /* BTS to which this MO belongs */ + struct gsm_bts *bts; +}; + +#define MAX_A5_KEY_LEN (128/8) +#define RSL_ENC_ALG_A5(x) (x+1) + +/* state of a logical channel */ +enum gsm_lchan_state { + LCHAN_S_NONE, /* channel is not active */ + LCHAN_S_ACT_REQ, /* channel activation requested */ + LCHAN_S_ACTIVE, /* channel is active and operational */ + LCHAN_S_REL_REQ, /* channel release has been requested */ + LCHAN_S_REL_ERR, /* channel is in an error state */ + LCHAN_S_BROKEN, /* channel is somehow unusable */ + LCHAN_S_INACTIVE, /* channel is set inactive */ +}; + +#define MAX_NUM_UL_MEAS 104 +#define LC_UL_M_F_L1_VALID (1 << 0) +#define LC_UL_M_F_RES_VALID (1 << 1) +#define LC_UL_M_F_OSMO_EXT_VALID (1 << 2) + +struct bts_ul_meas { + /* BER in units of 0.01%: 10.000 == 100% ber, 0 == 0% ber */ + uint16_t ber10k; + /* timing advance offset (in 1/256 bits) */ + int16_t ta_offs_256bits; + /* C/I ratio in dB */ + float c_i; + /* flags */ + uint8_t is_sub:1; + /* RSSI in dBm * -1 */ + uint8_t inv_rssi; +}; + +struct amr_mode { + uint8_t mode; + uint8_t threshold; + uint8_t hysteresis; +}; + +struct amr_multirate_conf { + uint8_t gsm48_ie[2]; + struct amr_mode ms_mode[4]; + struct amr_mode bts_mode[4]; + uint8_t num_modes; +}; + +enum lchan_csd_mode { + LCHAN_CSD_M_NT, + LCHAN_CSD_M_T_1200_75, + LCHAN_CSD_M_T_600, + LCHAN_CSD_M_T_1200, + LCHAN_CSD_M_T_2400, + LCHAN_CSD_M_T_9600, + LCHAN_CSD_M_T_14400, + LCHAN_CSD_M_T_29000, + LCHAN_CSD_M_T_32000, +}; + +/* State of the SAPIs in the lchan */ +enum lchan_sapi_state { + LCHAN_SAPI_S_NONE, + LCHAN_SAPI_S_REQ, + LCHAN_SAPI_S_ASSIGNED, + LCHAN_SAPI_S_REL, + LCHAN_SAPI_S_ERROR, +}; + +struct gsm_lchan { + /* The TS that we're part of */ + struct gsm_bts_trx_ts *ts; + /* The logical subslot number in the TS */ + uint8_t nr; + /* The logical channel type */ + enum gsm_chan_t type; + /* RSL channel mode */ + enum rsl_cmod_spd rsl_cmode; + /* If TCH, traffic channel mode */ + enum gsm48_chan_mode tch_mode; + enum lchan_csd_mode csd_mode; + /* State */ + enum gsm_lchan_state state; + const char *broken_reason; + /* Encryption information */ + struct { + uint8_t alg_id; + uint8_t key_len; + uint8_t key[MAX_A5_KEY_LEN]; + } encr; + + struct { + uint32_t bound_ip; + uint32_t connect_ip; + uint16_t bound_port; + uint16_t connect_port; + uint16_t conn_id; + uint8_t rtp_payload; + uint8_t rtp_payload2; + uint8_t speech_mode; + struct osmo_rtp_socket *rtp_socket; + } abis_ip; + + uint8_t rqd_ta; + + char *name; + + /* Number of different GsmL1_Sapi_t used in osmo_bts_sysmo is 23. + * Currently we don't share these headers so this is a magic number. */ + struct llist_head sapi_cmds; + uint8_t sapis_dl[23]; + uint8_t sapis_ul[23]; + struct lapdm_channel lapdm_ch; + struct llist_head dl_tch_queue; + struct { + /* bitmask of all SI that are present/valid in si_buf */ + uint32_t valid; + /* bitmask of all SI that do not mirror the BTS-global SI values */ + uint32_t overridden; + uint32_t last; + /* buffers where we put the pre-computed SI: + SI2Q_MAX_NUM is the max number of SI2quater messages (see 3GPP TS 44.018) */ + sysinfo_buf_t buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; + } si; + struct { + uint8_t flags; + /* RSL measurement result number, 0 at lchan_act */ + uint8_t res_nr; + /* number of measurements stored in array below */ + uint8_t num_ul_meas; + struct bts_ul_meas uplink[MAX_NUM_UL_MEAS]; + /* last L1 header from the MS */ + uint8_t l1_info[2]; + struct gsm_meas_rep_unidir ul_res; + int16_t ms_toa256; + /* Frame number of the last measurement indication receceived */ + uint32_t last_fn; + /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ + struct { + /* minimum value of toa256 during measurement period */ + int16_t toa256_min; + /* maximum value of toa256 during measurement period */ + int16_t toa256_max; + /* standard deviation of toa256 value during measurement period */ + uint16_t toa256_std_dev; + } ext; + } meas; + struct { + struct amr_multirate_conf amr_mr; + struct { + struct osmo_fsm_inst *dl_amr_fsm; + /* TCH cache */ + uint8_t cache[20]; + /* FACCH cache */ + uint8_t facch[GSM_MACBLOCK_LEN]; + uint8_t len; + uint32_t fn; + bool is_update; + /* set for each SID frame to detect talkspurt for codecs + without explicit ONSET event */ + bool ul_sid; + /* indicates if DTXd was active during DL measurement + period */ + bool dl_active; + /* last UL SPEECH resume flag */ + bool is_speech_resume; + } dtx; + uint8_t last_cmr; + uint32_t last_fn; + } tch; + + /* 3GPP TS 48.058 ? 9.3.37: [0; 255] ok, -1 means invalid*/ + int16_t ms_t_offs; + /* 3GPP TS 45.010 ? 1.2 round trip propagation delay (in symbols) or -1 */ + int16_t p_offs; + + /* BTS-side ciphering state (rx only, bi-directional, ...) */ + uint8_t ciph_state; + uint8_t ciph_ns; + uint8_t loopback; + struct { + uint8_t active; + uint8_t ref; + /* T3105: PHYS INF retransmission */ + struct osmo_timer_list t3105; + /* counts up to Ny1 */ + unsigned int phys_info_count; + } ho; + /* S counter for link loss */ + int s; + /* Kind of the release/activation. E.g. RSL or PCU */ + int rel_act_kind; + /* RTP header Marker bit to indicate beginning of speech after pause */ + bool rtp_tx_marker; + /* power handling */ + struct { + uint8_t current; + uint8_t max; + bool fixed; + } ms_power_ctrl; + + /* BTS power reduction (in dB) */ + uint8_t bs_power_red; + + struct msgb *pending_rel_ind_msg; + + /* ECU (Error Concealment Unit) state */ + struct osmo_ecu_state *ecu_state; +}; + +static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) +{ + return lchan->meas.l1_info[1]; +} + +extern const struct value_string lchan_ciph_state_names[]; +static inline const char *lchan_ciph_state_name(uint8_t state) { + return get_value_string(lchan_ciph_state_names, state); +} + +enum gsm_bts_trx_ts_flags { + TS_F_PDCH_ACTIVE = 0x1000, + TS_F_PDCH_ACT_PENDING = 0x2000, + TS_F_PDCH_DEACT_PENDING = 0x4000, + TS_F_PDCH_PENDING_MASK = 0x6000 /*< + TS_F_PDCH_ACT_PENDING | TS_F_PDCH_DEACT_PENDING */ +}; + +/* One Timeslot in a TRX */ +struct gsm_bts_trx_ts { + struct gsm_bts_trx *trx; + /* number of this timeslot at the TRX */ + uint8_t nr; + + enum gsm_phys_chan_config pchan; + + struct { + enum gsm_phys_chan_config pchan_is; + enum gsm_phys_chan_config pchan_want; + struct msgb *pending_chan_activ; + } dyn; + + unsigned int flags; + struct gsm_abis_mo mo; + struct tlv_parsed nm_attr; + uint8_t nm_chan_comb; + int tsc; /* -1 == use BTS TSC */ + + struct { + /* Parameters below are configured by VTY */ + int enabled; + uint8_t maio; + uint8_t hsn; + struct bitvec arfcns; + uint8_t arfcns_data[1024/8]; + /* This is the pre-computed MA for channel assignments */ + struct bitvec ma; + uint8_t ma_len; /* part of ma_data that is used */ + uint8_t ma_data[8]; /* 10.5.2.21: max 8 bytes value part */ + } hopping; + + struct gsm_lchan lchan[TS_MAX_LCHAN]; +}; + +/* One TRX in a BTS */ +struct gsm_bts_trx { + /* list header in bts->trx_list */ + struct llist_head list; + + 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? */ + uint8_t rsl_tei; + struct e1inp_sign_link *rsl_link; + + /* Some BTS (specifically Ericsson RBS) have a per-TRX OML Link */ + struct e1inp_sign_link *oml_link; + + struct gsm_abis_mo mo; + struct tlv_parsed nm_attr; + struct { + struct gsm_abis_mo mo; + } bb_transc; + + uint16_t arfcn; + int nominal_power; /* in dBm */ + unsigned int max_power_red; /* in actual dB */ + uint8_t max_power_backoff_8psk; /* in actual dB OC-2G only */ + uint8_t c0_idle_power_red; /* in actual dB OC-2G only */ + + + struct trx_power_params power_params; + bool ms_pwr_ctl_soft; /* is power control loop done by osmocom software? */ + + struct { + void *l1h; + } role_bts; + + union { + struct { + unsigned int test_state; + uint8_t test_nr; + struct rxlev_stats rxlev_stat; + } ipaccess; + }; + struct gsm_bts_trx_ts ts[TRX_NR_TS]; +}; + +#define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) +#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i)) +#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i][0]) +#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i][0]) + +enum gsm_bts_type_variant { + BTS_UNKNOWN, + BTS_OSMO_LITECELL15, + BTS_OSMO_OC2G, + BTS_OSMO_OCTPHY, + BTS_OSMO_SYSMO, + BTS_OSMO_TRX, + BTS_OSMO_VIRTUAL, + BTS_OSMO_OMLDUMMY, + _NUM_BTS_VARIANT +}; + +/* Used by OML layer for BTS Attribute reporting */ +enum bts_attribute { + BTS_TYPE_VARIANT, + BTS_SUB_MODEL, + TRX_PHY_VERSION, +}; + +/* BTS implementation flags (internal use, not exposed via OML) */ +#define bts_internal_flag_get(bts, flag) \ + ((bts->flags & (typeof(bts->flags)) flag) != 0) +#define bts_internal_flag_set(bts, flag) \ + bts->flags |= (typeof(bts->flags)) flag + +/* TODO: add a brief description of this flag */ +#define BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP (1 << 0) +/* When this flag is set then the measurement data is included in + * (PRIM_PH_DATA) and struct ph_tch_param (PRIM_TCH). Otherwise the + * measurement data is passed using a separate MPH INFO MEAS IND. + * (See also ticket: OS#2977) */ +#define BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB (1 << 1) + +extern const struct value_string bts_impl_flag_desc[]; + +struct gsm_bts_gprs_nsvc { + struct gsm_bts *bts; + /* data read via VTY config file, to configure the BTS + * via OML from BSC */ + int id; + uint16_t nsvci; + uint16_t local_port; /* on the BTS */ + uint16_t remote_port; /* on the SGSN */ + uint32_t remote_ip; /* on the SGSN */ + + struct gsm_abis_mo mo; +}; + +enum gprs_rlc_par { + RLC_T3142, + RLC_T3169, + RLC_T3191, + RLC_T3193, + RLC_T3195, + RLC_N3101, + RLC_N3103, + RLC_N3105, + CV_COUNTDOWN, + T_DL_TBF_EXT, /* ms */ + T_UL_TBF_EXT, /* ms */ + _NUM_RLC_PAR +}; + +enum gprs_cs { + GPRS_CS1, + GPRS_CS2, + GPRS_CS3, + GPRS_CS4, + GPRS_MCS1, + GPRS_MCS2, + GPRS_MCS3, + GPRS_MCS4, + GPRS_MCS5, + GPRS_MCS6, + GPRS_MCS7, + GPRS_MCS8, + GPRS_MCS9, + _NUM_GRPS_CS +}; + +struct gprs_rlc_cfg { + uint16_t parameter[_NUM_RLC_PAR]; + struct { + uint16_t repeat_time; /* ms */ + uint8_t repeat_count; + } paging; + uint32_t cs_mask; /* bitmask of gprs_cs */ + uint8_t initial_cs; + uint8_t initial_mcs; +}; + +struct bts_smscb_state { + struct llist_head queue; /* list of struct smscb_msg */ + int queue_len; + struct rate_ctr_group *ctrs; + struct smscb_msg *cur_msg; /* current SMS-CB */ + struct smscb_msg *default_msg; /* default broadcast message; NULL if none */ +}; + +/* The amount of time within which a sudden disconnect of a newly established + * OML connection will cause a special warning to be logged. */ +#define OSMO_BTS_OML_CONN_EARLY_DISCONNECT 10 /* in seconds */ + +/* One BTS */ +struct gsm_bts { + /* list header in net->bts_list */ + struct llist_head list; + + /* number of the BTS in network */ + uint8_t nr; + /* human readable name / description */ + char *description; + /* Cell Identity */ + uint16_t cell_identity; + /* location area code of this BTS */ + uint16_t location_area_code; + /* Base Station Identification Code (BSIC), lower 3 bits is BCC, + * which is used as TSC for the CCCH */ + uint8_t bsic; + /* type of BTS */ + enum gsm_bts_type_variant variant; + enum gsm_band band; + char version[MAX_VERSION_LENGTH]; + char sub_model[MAX_VERSION_LENGTH]; + + /* public features of a given BTS (set/reported via OML) */ + struct bitvec *features; + /* implementation flags of a given BTS (not exposed via OML) */ + uint16_t flags; + + /* Connected PCU version (if any) */ + char pcu_version[MAX_VERSION_LENGTH]; + + /* maximum Tx power that the MS is permitted to use in this cell */ + int ms_max_power; + + /* how do we talk OML with this TRX? */ + struct e1inp_sign_link *oml_link; + struct timespec oml_conn_established_timestamp; + + /* Abis network management O&M handle */ + struct gsm_abis_mo mo; + + /* number of this BTS on given E1 link */ + uint8_t bts_nr; + + /* DTX features of this BTS */ + bool dtxd; + + /* CCCH is on C0 */ + struct gsm_bts_trx *c0; + + struct { + struct gsm_abis_mo mo; + } site_mgr; + + /* bitmask of all SI that are present/valid in si_buf */ + uint32_t si_valid; + /* 3GPP TS 44.018 Table 10.5.2.33b.1 INDEX and COUNT for SI2quater */ + uint8_t si2q_index; /* distinguish individual SI2quater messages */ + uint8_t si2q_count; /* si2q_index for the last (highest indexed) individual SI2quater message */ + /* buffers where we put the pre-computed SI */ + sysinfo_buf_t si_buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; + /* offsets used while generating SI2quater */ + size_t e_offset; + size_t u_offset; + /* decoded SI3 rest octets - *unmodified* as received from BSC */ + struct osmo_gsm48_si_ro_info si3_ro_decoded; + /* is SI3 GPRS Indicator currently disabled due to lack of PCU connection? */ + bool si3_gprs_ind_disabled; + + /* ip.access Unit ID's have Site/BTS/TRX layout */ + union { + struct { + uint16_t site_id; + uint16_t bts_id; + uint32_t flags; + uint32_t rsl_ip; + } ip_access; + }; + + /* Not entirely sure how ip.access specific this is */ + struct { + struct { + struct gsm_abis_mo mo; + uint16_t nsei; + uint8_t timer[7]; + } nse; + struct { + struct gsm_abis_mo mo; + uint16_t bvci; + uint8_t timer[11]; + struct gprs_rlc_cfg rlc_cfg; + } cell; + struct gsm_bts_gprs_nsvc nsvc[2]; + uint8_t rac; + } gprs; + + /* transceivers */ + int num_trx; + struct llist_head trx_list; + + struct rate_ctr_group *ctrs; + bool supp_meas_toa256; + + struct { + /* Interference Boundaries for OML */ + int16_t boundary[6]; + uint8_t intave; + } interference; + unsigned int t200_ms[7]; + unsigned int t3105_ms; + struct { + uint8_t overload_period; + struct { + /* Input parameters from OML */ + uint8_t load_ind_thresh; /* percent */ + uint8_t load_ind_period; /* seconds */ + /* Internal data */ + struct osmo_timer_list timer; + unsigned int pch_total; + unsigned int pch_used; + } ccch; + struct { + /* Input parameters from OML */ + int16_t busy_thresh; /* in dBm */ + uint16_t averaging_slots; + /* Internal data */ + unsigned int total; /* total nr */ + unsigned int busy; /* above busy_thresh */ + unsigned int access; /* access bursts */ + } rach; + } load; + uint8_t ny1; + uint8_t max_ta; + + /* AGCH queuing */ + struct { + struct llist_head queue; + int length; + int max_length; + + int thresh_level; /* Cleanup threshold in percent of max len */ + int low_level; /* Low water mark in percent of max len */ + int high_level; /* High water mark in percent of max len */ + + /* TODO: Use a rate counter group instead */ + uint64_t dropped_msgs; + uint64_t merged_msgs; + uint64_t rejected_msgs; + uint64_t agch_msgs; + uint64_t pch_msgs; + } agch_queue; + + struct { + uint8_t *prim_notif; /* ETWS primary notification (NULL if none) */ + ssize_t prim_notif_len; /* Length of prim_notif; expected 56 bytes */ + uint8_t page_size; + uint8_t num_pages; /* total number of pages */ + uint8_t next_page; /* next page number to be sent */ + bool pni; /* Primary Notification Identifier */ + } etws; + + struct paging_state *paging_state; + char *bsc_oml_host; + struct llist_head oml_queue; + unsigned int rtp_jitter_buf_ms; + bool rtp_jitter_adaptive; + + uint16_t rtp_port_range_start; + uint16_t rtp_port_range_end; + uint16_t rtp_port_range_next; + int rtp_ip_dscp; + + struct { + uint8_t ciphers; /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */ + } support; + struct { + uint8_t tc4_ctr; + } si; + struct gsm_time gsm_time; + /* frame number statistics (FN in PH-RTS.ind vs. PH-DATA.ind */ + struct { + int32_t min; /* minimum observed */ + int32_t max; /* maximum observed */ + int32_t avg256; /* accumulator */ + uint32_t avg_count; /* number of samples accumulated in avg256 */ + uint32_t avg_window; /* number of averages in avg_count */ + } fn_stats; + /* Radio Link Timeout counter. -1 disables timeout for + * lab/measurement purpose */ + int radio_link_timeout; + + int ul_power_target; /* Uplink Rx power target */ + + /* used by the sysmoBTS to adjust band */ + uint8_t auto_band; + + /* State for SMSCB (Cell Broadcast) for BASIC and EXTENDED channel */ + struct bts_smscb_state smscb_basic; + struct bts_smscb_state smscb_extended; + int smscb_queue_tgt_len; /* ideal/target queue length */ + int smscb_queue_max_len; /* maximum queue length */ + int smscb_queue_hyst; /* hysteresis for CBCH load indications */ + + int16_t min_qual_rach; /* minimum link quality (in centiBels) for Access Bursts */ + int16_t min_qual_norm; /* minimum link quality (in centiBels) for Normal Bursts */ + uint16_t max_ber10k_rach; /* Maximum permitted RACH BER in 0.01% */ + + struct { + char *sock_path; + } pcu; + + void *model_priv; /* Allocated by bts_model, contains model specific data pointer */ +}; + + +struct gsm_bts *gsm_bts_alloc(void *talloc_ctx, uint8_t bts_num); +struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); + +struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts); +struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num); + +enum bts_attribute str2btsattr(const char *s); +const char *btsatttr2str(enum bts_attribute v); + +enum gsm_bts_type_variant str2btsvariant(const char *arg); +const char *btsvariant2str(enum gsm_bts_type_variant v); + +extern const struct value_string gsm_pchant_names[13]; +extern const struct value_string gsm_pchant_descs[13]; +const char *gsm_pchan_name(enum gsm_phys_chan_config c); +enum gsm_phys_chan_config gsm_pchan_parse(const char *name); +const char *gsm_lchant_name(enum gsm_chan_t c); +char *gsm_trx_name(const struct gsm_bts_trx *trx); +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); +const char *gsm_lchans_name(enum gsm_lchan_state s); + +static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) +{ + return lchan->name; +} + +void gsm_abis_mo_reset(struct gsm_abis_mo *mo); + +struct gsm_abis_mo * +gsm_objclass2mo(struct gsm_bts *bts, uint8_t obj_class, + const struct abis_om_obj_inst *obj_inst); + +struct gsm_nm_state * +gsm_objclass2nmstate(struct gsm_bts *bts, uint8_t obj_class, + const struct abis_om_obj_inst *obj_inst); +void * +gsm_objclass2obj(struct gsm_bts *bts, uint8_t obj_class, + const struct abis_om_obj_inst *obj_inst); + +uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan); +uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, + enum gsm_phys_chan_config as_pchan); + +/* return the gsm_lchan for the CBCH (if it exists at all) */ +struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts); + +#define BSIC2BCC(bsic) ((bsic) & 0x3) + +static inline uint8_t gsm_ts_tsc(const struct gsm_bts_trx_ts *ts) +{ + if (ts->tsc != -1) + return ts->tsc; + else + return ts->trx->bts->bsic & 7; +} + +struct gsm_lchan *rsl_lchan_lookup(struct gsm_bts_trx *trx, uint8_t chan_nr, + int *rc); + +enum gsm_phys_chan_config ts_pchan(struct gsm_bts_trx_ts *ts); +uint8_t ts_subslots(struct gsm_bts_trx_ts *ts); +bool ts_is_tch(struct gsm_bts_trx_ts *ts); +const char *gsm_trx_unit_id(struct gsm_bts_trx *trx); + +int lchan2ecu_codec(const struct gsm_lchan *lchan); void lchan_set_state(struct gsm_lchan *lchan, enum gsm_lchan_state state); int conf_lchans_as_pchan(struct gsm_bts_trx_ts *ts, diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h deleted file mode 100644 index bbc1bd4..0000000 --- a/include/osmo-bts/gsm_data_shared.h +++ /dev/null @@ -1,769 +0,0 @@ -#ifndef _GSM_DATA_SHAREDH -#define _GSM_DATA_SHAREDH - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018 Table 10.5.2.33b.1: - 4-bit index is used (2#1111 = 10#15) */ -#define SI2Q_MAX_NUM 16 -/* length in bits (for single SI2quater message) */ -#define SI2Q_MAX_LEN 160 -#define SI2Q_MIN_LEN 18 - -/* lchans 0..3 are SDCCH in combined channel configuration, - use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */ -#define CCCH_LCHAN 4 - -#define TRX_NR_TS 8 -#define TS_MAX_LCHAN 8 - -#define MAX_VERSION_LENGTH 64 - -struct gsm_lchan; -struct osmo_rtp_socket; -struct pcu_sock_state; -struct smscb_msg; - -/* Network Management State */ -struct gsm_nm_state { - uint8_t operational; - uint8_t administrative; - uint8_t availability; -}; - -struct gsm_abis_mo { - /* A-bis OML Object Class */ - uint8_t obj_class; - /* is there still some procedure pending? */ - uint8_t procedure_pending; - /* A-bis OML Object Instance */ - struct abis_om_obj_inst obj_inst; - /* human-readable name */ - const char *name; - /* NM State */ - struct gsm_nm_state nm_state; - /* Attributes configured in this MO */ - struct tlv_parsed *nm_attr; - /* BTS to which this MO belongs */ - struct gsm_bts *bts; -}; - -#define MAX_A5_KEY_LEN (128/8) -#define RSL_ENC_ALG_A5(x) (x+1) - -/* state of a logical channel */ -enum gsm_lchan_state { - LCHAN_S_NONE, /* channel is not active */ - LCHAN_S_ACT_REQ, /* channel activation requested */ - LCHAN_S_ACTIVE, /* channel is active and operational */ - LCHAN_S_REL_REQ, /* channel release has been requested */ - LCHAN_S_REL_ERR, /* channel is in an error state */ - LCHAN_S_BROKEN, /* channel is somehow unusable */ - LCHAN_S_INACTIVE, /* channel is set inactive */ -}; - -#define MAX_NUM_UL_MEAS 104 -#define LC_UL_M_F_L1_VALID (1 << 0) -#define LC_UL_M_F_RES_VALID (1 << 1) -#define LC_UL_M_F_OSMO_EXT_VALID (1 << 2) - -struct bts_ul_meas { - /* BER in units of 0.01%: 10.000 == 100% ber, 0 == 0% ber */ - uint16_t ber10k; - /* timing advance offset (in 1/256 bits) */ - int16_t ta_offs_256bits; - /* C/I ratio in dB */ - float c_i; - /* flags */ - uint8_t is_sub:1; - /* RSSI in dBm * -1 */ - uint8_t inv_rssi; -}; - -struct amr_mode { - uint8_t mode; - uint8_t threshold; - uint8_t hysteresis; -}; - -struct amr_multirate_conf { - uint8_t gsm48_ie[2]; - struct amr_mode ms_mode[4]; - struct amr_mode bts_mode[4]; - uint8_t num_modes; -}; - -enum lchan_csd_mode { - LCHAN_CSD_M_NT, - LCHAN_CSD_M_T_1200_75, - LCHAN_CSD_M_T_600, - LCHAN_CSD_M_T_1200, - LCHAN_CSD_M_T_2400, - LCHAN_CSD_M_T_9600, - LCHAN_CSD_M_T_14400, - LCHAN_CSD_M_T_29000, - LCHAN_CSD_M_T_32000, -}; - -/* State of the SAPIs in the lchan */ -enum lchan_sapi_state { - LCHAN_SAPI_S_NONE, - LCHAN_SAPI_S_REQ, - LCHAN_SAPI_S_ASSIGNED, - LCHAN_SAPI_S_REL, - LCHAN_SAPI_S_ERROR, -}; - -struct gsm_lchan { - /* The TS that we're part of */ - struct gsm_bts_trx_ts *ts; - /* The logical subslot number in the TS */ - uint8_t nr; - /* The logical channel type */ - enum gsm_chan_t type; - /* RSL channel mode */ - enum rsl_cmod_spd rsl_cmode; - /* If TCH, traffic channel mode */ - enum gsm48_chan_mode tch_mode; - enum lchan_csd_mode csd_mode; - /* State */ - enum gsm_lchan_state state; - const char *broken_reason; - /* Encryption information */ - struct { - uint8_t alg_id; - uint8_t key_len; - uint8_t key[MAX_A5_KEY_LEN]; - } encr; - - struct { - uint32_t bound_ip; - uint32_t connect_ip; - uint16_t bound_port; - uint16_t connect_port; - uint16_t conn_id; - uint8_t rtp_payload; - uint8_t rtp_payload2; - uint8_t speech_mode; - struct osmo_rtp_socket *rtp_socket; - } abis_ip; - - uint8_t rqd_ta; - - char *name; - - /* Number of different GsmL1_Sapi_t used in osmo_bts_sysmo is 23. - * Currently we don't share these headers so this is a magic number. */ - struct llist_head sapi_cmds; - uint8_t sapis_dl[23]; - uint8_t sapis_ul[23]; - struct lapdm_channel lapdm_ch; - struct llist_head dl_tch_queue; - struct { - /* bitmask of all SI that are present/valid in si_buf */ - uint32_t valid; - /* bitmask of all SI that do not mirror the BTS-global SI values */ - uint32_t overridden; - uint32_t last; - /* buffers where we put the pre-computed SI: - SI2Q_MAX_NUM is the max number of SI2quater messages (see 3GPP TS 44.018) */ - sysinfo_buf_t buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; - } si; - struct { - uint8_t flags; - /* RSL measurement result number, 0 at lchan_act */ - uint8_t res_nr; - /* number of measurements stored in array below */ - uint8_t num_ul_meas; - struct bts_ul_meas uplink[MAX_NUM_UL_MEAS]; - /* last L1 header from the MS */ - uint8_t l1_info[2]; - struct gsm_meas_rep_unidir ul_res; - int16_t ms_toa256; - /* Frame number of the last measurement indication receceived */ - uint32_t last_fn; - /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ - struct { - /* minimum value of toa256 during measurement period */ - int16_t toa256_min; - /* maximum value of toa256 during measurement period */ - int16_t toa256_max; - /* standard deviation of toa256 value during measurement period */ - uint16_t toa256_std_dev; - } ext; - } meas; - struct { - struct amr_multirate_conf amr_mr; - struct { - struct osmo_fsm_inst *dl_amr_fsm; - /* TCH cache */ - uint8_t cache[20]; - /* FACCH cache */ - uint8_t facch[GSM_MACBLOCK_LEN]; - uint8_t len; - uint32_t fn; - bool is_update; - /* set for each SID frame to detect talkspurt for codecs - without explicit ONSET event */ - bool ul_sid; - /* indicates if DTXd was active during DL measurement - period */ - bool dl_active; - /* last UL SPEECH resume flag */ - bool is_speech_resume; - } dtx; - uint8_t last_cmr; - uint32_t last_fn; - } tch; - - /* 3GPP TS 48.058 ? 9.3.37: [0; 255] ok, -1 means invalid*/ - int16_t ms_t_offs; - /* 3GPP TS 45.010 ? 1.2 round trip propagation delay (in symbols) or -1 */ - int16_t p_offs; - - /* BTS-side ciphering state (rx only, bi-directional, ...) */ - uint8_t ciph_state; - uint8_t ciph_ns; - uint8_t loopback; - struct { - uint8_t active; - uint8_t ref; - /* T3105: PHYS INF retransmission */ - struct osmo_timer_list t3105; - /* counts up to Ny1 */ - unsigned int phys_info_count; - } ho; - /* S counter for link loss */ - int s; - /* Kind of the release/activation. E.g. RSL or PCU */ - int rel_act_kind; - /* RTP header Marker bit to indicate beginning of speech after pause */ - bool rtp_tx_marker; - /* power handling */ - struct { - uint8_t current; - uint8_t max; - bool fixed; - } ms_power_ctrl; - - /* BTS power reduction (in dB) */ - uint8_t bs_power_red; - - struct msgb *pending_rel_ind_msg; - - /* ECU (Error Concealment Unit) state */ - struct osmo_ecu_state *ecu_state; -}; - -static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) -{ - return lchan->meas.l1_info[1]; -} - -extern const struct value_string lchan_ciph_state_names[]; -static inline const char *lchan_ciph_state_name(uint8_t state) { - return get_value_string(lchan_ciph_state_names, state); -} - -enum gsm_bts_trx_ts_flags { - TS_F_PDCH_ACTIVE = 0x1000, - TS_F_PDCH_ACT_PENDING = 0x2000, - TS_F_PDCH_DEACT_PENDING = 0x4000, - TS_F_PDCH_PENDING_MASK = 0x6000 /*< - TS_F_PDCH_ACT_PENDING | TS_F_PDCH_DEACT_PENDING */ -}; - -/* One Timeslot in a TRX */ -struct gsm_bts_trx_ts { - struct gsm_bts_trx *trx; - /* number of this timeslot at the TRX */ - uint8_t nr; - - enum gsm_phys_chan_config pchan; - - struct { - enum gsm_phys_chan_config pchan_is; - enum gsm_phys_chan_config pchan_want; - struct msgb *pending_chan_activ; - } dyn; - - unsigned int flags; - struct gsm_abis_mo mo; - struct tlv_parsed nm_attr; - uint8_t nm_chan_comb; - int tsc; /* -1 == use BTS TSC */ - - struct { - /* Parameters below are configured by VTY */ - int enabled; - uint8_t maio; - uint8_t hsn; - struct bitvec arfcns; - uint8_t arfcns_data[1024/8]; - /* This is the pre-computed MA for channel assignments */ - struct bitvec ma; - uint8_t ma_len; /* part of ma_data that is used */ - uint8_t ma_data[8]; /* 10.5.2.21: max 8 bytes value part */ - } hopping; - - struct gsm_lchan lchan[TS_MAX_LCHAN]; -}; - -/* One TRX in a BTS */ -struct gsm_bts_trx { - /* list header in bts->trx_list */ - struct llist_head list; - - 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? */ - uint8_t rsl_tei; - struct e1inp_sign_link *rsl_link; - - /* Some BTS (specifically Ericsson RBS) have a per-TRX OML Link */ - struct e1inp_sign_link *oml_link; - - struct gsm_abis_mo mo; - struct tlv_parsed nm_attr; - struct { - struct gsm_abis_mo mo; - } bb_transc; - - uint16_t arfcn; - int nominal_power; /* in dBm */ - unsigned int max_power_red; /* in actual dB */ - uint8_t max_power_backoff_8psk; /* in actual dB OC-2G only */ - uint8_t c0_idle_power_red; /* in actual dB OC-2G only */ - - - struct trx_power_params power_params; - bool ms_pwr_ctl_soft; /* is power control loop done by osmocom software? */ - - struct { - void *l1h; - } role_bts; - - union { - struct { - unsigned int test_state; - uint8_t test_nr; - struct rxlev_stats rxlev_stat; - } ipaccess; - }; - struct gsm_bts_trx_ts ts[TRX_NR_TS]; -}; - -#define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) -#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i)) -#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i][0]) -#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i][0]) - -enum gsm_bts_type_variant { - BTS_UNKNOWN, - BTS_OSMO_LITECELL15, - BTS_OSMO_OC2G, - BTS_OSMO_OCTPHY, - BTS_OSMO_SYSMO, - BTS_OSMO_TRX, - BTS_OSMO_VIRTUAL, - BTS_OSMO_OMLDUMMY, - _NUM_BTS_VARIANT -}; - -/* Used by OML layer for BTS Attribute reporting */ -enum bts_attribute { - BTS_TYPE_VARIANT, - BTS_SUB_MODEL, - TRX_PHY_VERSION, -}; - -/* BTS implementation flags (internal use, not exposed via OML) */ -#define bts_internal_flag_get(bts, flag) \ - ((bts->flags & (typeof(bts->flags)) flag) != 0) -#define bts_internal_flag_set(bts, flag) \ - bts->flags |= (typeof(bts->flags)) flag - -/* TODO: add a brief description of this flag */ -#define BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP (1 << 0) -/* When this flag is set then the measurement data is included in - * (PRIM_PH_DATA) and struct ph_tch_param (PRIM_TCH). Otherwise the - * measurement data is passed using a separate MPH INFO MEAS IND. - * (See also ticket: OS#2977) */ -#define BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB (1 << 1) - -extern const struct value_string bts_impl_flag_desc[]; - -struct gsm_bts_gprs_nsvc { - struct gsm_bts *bts; - /* data read via VTY config file, to configure the BTS - * via OML from BSC */ - int id; - uint16_t nsvci; - uint16_t local_port; /* on the BTS */ - uint16_t remote_port; /* on the SGSN */ - uint32_t remote_ip; /* on the SGSN */ - - struct gsm_abis_mo mo; -}; - -enum gprs_rlc_par { - RLC_T3142, - RLC_T3169, - RLC_T3191, - RLC_T3193, - RLC_T3195, - RLC_N3101, - RLC_N3103, - RLC_N3105, - CV_COUNTDOWN, - T_DL_TBF_EXT, /* ms */ - T_UL_TBF_EXT, /* ms */ - _NUM_RLC_PAR -}; - -enum gprs_cs { - GPRS_CS1, - GPRS_CS2, - GPRS_CS3, - GPRS_CS4, - GPRS_MCS1, - GPRS_MCS2, - GPRS_MCS3, - GPRS_MCS4, - GPRS_MCS5, - GPRS_MCS6, - GPRS_MCS7, - GPRS_MCS8, - GPRS_MCS9, - _NUM_GRPS_CS -}; - -struct gprs_rlc_cfg { - uint16_t parameter[_NUM_RLC_PAR]; - struct { - uint16_t repeat_time; /* ms */ - uint8_t repeat_count; - } paging; - uint32_t cs_mask; /* bitmask of gprs_cs */ - uint8_t initial_cs; - uint8_t initial_mcs; -}; - -struct bts_smscb_state { - struct llist_head queue; /* list of struct smscb_msg */ - int queue_len; - struct rate_ctr_group *ctrs; - struct smscb_msg *cur_msg; /* current SMS-CB */ - struct smscb_msg *default_msg; /* default broadcast message; NULL if none */ -}; - -/* The amount of time within which a sudden disconnect of a newly established - * OML connection will cause a special warning to be logged. */ -#define OSMO_BTS_OML_CONN_EARLY_DISCONNECT 10 /* in seconds */ - -/* One BTS */ -struct gsm_bts { - /* list header in net->bts_list */ - struct llist_head list; - - /* number of the BTS in network */ - uint8_t nr; - /* human readable name / description */ - char *description; - /* Cell Identity */ - uint16_t cell_identity; - /* location area code of this BTS */ - uint16_t location_area_code; - /* Base Station Identification Code (BSIC), lower 3 bits is BCC, - * which is used as TSC for the CCCH */ - uint8_t bsic; - /* type of BTS */ - enum gsm_bts_type_variant variant; - enum gsm_band band; - char version[MAX_VERSION_LENGTH]; - char sub_model[MAX_VERSION_LENGTH]; - - /* public features of a given BTS (set/reported via OML) */ - struct bitvec *features; - /* implementation flags of a given BTS (not exposed via OML) */ - uint16_t flags; - - /* Connected PCU version (if any) */ - char pcu_version[MAX_VERSION_LENGTH]; - - /* maximum Tx power that the MS is permitted to use in this cell */ - int ms_max_power; - - /* how do we talk OML with this TRX? */ - struct e1inp_sign_link *oml_link; - struct timespec oml_conn_established_timestamp; - - /* Abis network management O&M handle */ - struct gsm_abis_mo mo; - - /* number of this BTS on given E1 link */ - uint8_t bts_nr; - - /* DTX features of this BTS */ - bool dtxd; - - /* CCCH is on C0 */ - struct gsm_bts_trx *c0; - - struct { - struct gsm_abis_mo mo; - } site_mgr; - - /* bitmask of all SI that are present/valid in si_buf */ - uint32_t si_valid; - /* 3GPP TS 44.018 Table 10.5.2.33b.1 INDEX and COUNT for SI2quater */ - uint8_t si2q_index; /* distinguish individual SI2quater messages */ - uint8_t si2q_count; /* si2q_index for the last (highest indexed) individual SI2quater message */ - /* buffers where we put the pre-computed SI */ - sysinfo_buf_t si_buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; - /* offsets used while generating SI2quater */ - size_t e_offset; - size_t u_offset; - /* decoded SI3 rest octets - *unmodified* as received from BSC */ - struct osmo_gsm48_si_ro_info si3_ro_decoded; - /* is SI3 GPRS Indicator currently disabled due to lack of PCU connection? */ - bool si3_gprs_ind_disabled; - - /* ip.access Unit ID's have Site/BTS/TRX layout */ - union { - struct { - uint16_t site_id; - uint16_t bts_id; - uint32_t flags; - uint32_t rsl_ip; - } ip_access; - }; - - /* Not entirely sure how ip.access specific this is */ - struct { - struct { - struct gsm_abis_mo mo; - uint16_t nsei; - uint8_t timer[7]; - } nse; - struct { - struct gsm_abis_mo mo; - uint16_t bvci; - uint8_t timer[11]; - struct gprs_rlc_cfg rlc_cfg; - } cell; - struct gsm_bts_gprs_nsvc nsvc[2]; - uint8_t rac; - } gprs; - - /* transceivers */ - int num_trx; - struct llist_head trx_list; - - struct rate_ctr_group *ctrs; - bool supp_meas_toa256; - - struct { - /* Interference Boundaries for OML */ - int16_t boundary[6]; - uint8_t intave; - } interference; - unsigned int t200_ms[7]; - unsigned int t3105_ms; - struct { - uint8_t overload_period; - struct { - /* Input parameters from OML */ - uint8_t load_ind_thresh; /* percent */ - uint8_t load_ind_period; /* seconds */ - /* Internal data */ - struct osmo_timer_list timer; - unsigned int pch_total; - unsigned int pch_used; - } ccch; - struct { - /* Input parameters from OML */ - int16_t busy_thresh; /* in dBm */ - uint16_t averaging_slots; - /* Internal data */ - unsigned int total; /* total nr */ - unsigned int busy; /* above busy_thresh */ - unsigned int access; /* access bursts */ - } rach; - } load; - uint8_t ny1; - uint8_t max_ta; - - /* AGCH queuing */ - struct { - struct llist_head queue; - int length; - int max_length; - - int thresh_level; /* Cleanup threshold in percent of max len */ - int low_level; /* Low water mark in percent of max len */ - int high_level; /* High water mark in percent of max len */ - - /* TODO: Use a rate counter group instead */ - uint64_t dropped_msgs; - uint64_t merged_msgs; - uint64_t rejected_msgs; - uint64_t agch_msgs; - uint64_t pch_msgs; - } agch_queue; - - struct { - uint8_t *prim_notif; /* ETWS primary notification (NULL if none) */ - ssize_t prim_notif_len; /* Length of prim_notif; expected 56 bytes */ - uint8_t page_size; - uint8_t num_pages; /* total number of pages */ - uint8_t next_page; /* next page number to be sent */ - bool pni; /* Primary Notification Identifier */ - } etws; - - struct paging_state *paging_state; - char *bsc_oml_host; - struct llist_head oml_queue; - unsigned int rtp_jitter_buf_ms; - bool rtp_jitter_adaptive; - - uint16_t rtp_port_range_start; - uint16_t rtp_port_range_end; - uint16_t rtp_port_range_next; - int rtp_ip_dscp; - - struct { - uint8_t ciphers; /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */ - } support; - struct { - uint8_t tc4_ctr; - } si; - struct gsm_time gsm_time; - /* frame number statistics (FN in PH-RTS.ind vs. PH-DATA.ind */ - struct { - int32_t min; /* minimum observed */ - int32_t max; /* maximum observed */ - int32_t avg256; /* accumulator */ - uint32_t avg_count; /* number of samples accumulated in avg256 */ - uint32_t avg_window; /* number of averages in avg_count */ - } fn_stats; - /* Radio Link Timeout counter. -1 disables timeout for - * lab/measurement purpose */ - int radio_link_timeout; - - int ul_power_target; /* Uplink Rx power target */ - - /* used by the sysmoBTS to adjust band */ - uint8_t auto_band; - - /* State for SMSCB (Cell Broadcast) for BASIC and EXTENDED channel */ - struct bts_smscb_state smscb_basic; - struct bts_smscb_state smscb_extended; - int smscb_queue_tgt_len; /* ideal/target queue length */ - int smscb_queue_max_len; /* maximum queue length */ - int smscb_queue_hyst; /* hysteresis for CBCH load indications */ - - int16_t min_qual_rach; /* minimum link quality (in centiBels) for Access Bursts */ - int16_t min_qual_norm; /* minimum link quality (in centiBels) for Normal Bursts */ - uint16_t max_ber10k_rach; /* Maximum permitted RACH BER in 0.01% */ - - struct { - char *sock_path; - } pcu; - - void *model_priv; /* Allocated by bts_model, contains model specific data pointer */ -}; - - -struct gsm_bts *gsm_bts_alloc(void *talloc_ctx, uint8_t bts_num); -struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); - -struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts); -struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num); - -enum bts_attribute str2btsattr(const char *s); -const char *btsatttr2str(enum bts_attribute v); - -enum gsm_bts_type_variant str2btsvariant(const char *arg); -const char *btsvariant2str(enum gsm_bts_type_variant v); - -extern const struct value_string gsm_pchant_names[13]; -extern const struct value_string gsm_pchant_descs[13]; -const char *gsm_pchan_name(enum gsm_phys_chan_config c); -enum gsm_phys_chan_config gsm_pchan_parse(const char *name); -const char *gsm_lchant_name(enum gsm_chan_t c); -char *gsm_trx_name(const struct gsm_bts_trx *trx); -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); -const char *gsm_lchans_name(enum gsm_lchan_state s); - -static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) -{ - return lchan->name; -} - -void gsm_abis_mo_reset(struct gsm_abis_mo *mo); - -struct gsm_abis_mo * -gsm_objclass2mo(struct gsm_bts *bts, uint8_t obj_class, - const struct abis_om_obj_inst *obj_inst); - -struct gsm_nm_state * -gsm_objclass2nmstate(struct gsm_bts *bts, uint8_t obj_class, - const struct abis_om_obj_inst *obj_inst); -void * -gsm_objclass2obj(struct gsm_bts *bts, uint8_t obj_class, - const struct abis_om_obj_inst *obj_inst); - -uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan); -uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, - enum gsm_phys_chan_config as_pchan); - -/* return the gsm_lchan for the CBCH (if it exists at all) */ -struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts); - -#define BSIC2BCC(bsic) ((bsic) & 0x3) - -static inline uint8_t gsm_ts_tsc(const struct gsm_bts_trx_ts *ts) -{ - if (ts->tsc != -1) - return ts->tsc; - else - return ts->trx->bts->bsic & 7; -} - -struct gsm_lchan *rsl_lchan_lookup(struct gsm_bts_trx *trx, uint8_t chan_nr, - int *rc); - -enum gsm_phys_chan_config ts_pchan(struct gsm_bts_trx_ts *ts); -uint8_t ts_subslots(struct gsm_bts_trx_ts *ts); -bool ts_is_tch(struct gsm_bts_trx_ts *ts); -const char *gsm_trx_unit_id(struct gsm_bts_trx *trx); - -int lchan2ecu_codec(const struct gsm_lchan *lchan); - -#endif diff --git a/src/common/Makefile.am b/src/common/Makefile.am index cd22f7b..85b7038 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -8,7 +8,7 @@ noinst_LIBRARIES = libbts.a libl1sched.a libbts_a_SOURCES = \ - gsm_data_shared.c \ + gsm_data.c \ sysinfo.c \ logging.c \ abis.c \ diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data.c similarity index 100% rename from src/common/gsm_data_shared.c rename to src/common/gsm_data.c -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id60e7582e3a32dbc5e3531b87b2b49f07aee734d Gerrit-Change-Number: 18884 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 Jun 17 17:52:27 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 17:52:27 +0000 Subject: Change in osmo-bts[master]: cosmetic: common/Makefile.am: split each source file in one line In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18882 ) Change subject: cosmetic: common/Makefile.am: split each source file in one line ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18882/1/src/common/Makefile.am File src/common/Makefile.am: https://gerrit.osmocom.org/c/osmo-bts/+/18882/1/src/common/Makefile.am at 3 PS1, Line 3: LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOTRAU_LIBS) $(LIBOSMOCODEC_LIBS) Would be nice to split these lines too ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9c4d78fb80446fa4142950d947dad20856573275 Gerrit-Change-Number: 18882 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 17: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 Wed Jun 17 17:52:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 17:52:49 +0000 Subject: Change in osmo-bts[master]: cosmetic: include/osmo-bts/Makefile.am: split each header file in one... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18883 ) Change subject: cosmetic: include/osmo-bts/Makefile.am: split each header file in one line ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I58d86a8c2e8846f683d4414fcd2a3bf7f89049ce Gerrit-Change-Number: 18883 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 17: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 Wed Jun 17 17:56:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 17:56:10 +0000 Subject: Change in osmo-bts[master]: Merge gsm_data_shared.h into gsm_data.h In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18884 ) Change subject: Merge gsm_data_shared.h into gsm_data.h ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id60e7582e3a32dbc5e3531b87b2b49f07aee734d Gerrit-Change-Number: 18884 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 17:56: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 Jun 17 18:00:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 18:00:09 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Wed, 17 Jun 2020 18:00: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 Jun 17 18:00:32 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 18:00:32 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about Dl block not found In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18863 ) Change subject: scheduler: Add rate_ctr informing about Dl block not found ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 18:00:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 18:01:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 18:01:34 +0000 Subject: Change in osmo-trx[master]: RPM spec file: Require uhd-firmware for osmo-trx-uhd In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18879 ) Change subject: RPM spec file: Require uhd-firmware for osmo-trx-uhd ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 Gerrit-Change-Number: 18879 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 18:01: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 Jun 17 18:02:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 18:02:34 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 18:02: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 Jun 17 18:44:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 18:44:14 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 6: (5 comments) Mostly cosmetic comments. https://gerrit.osmocom.org/c/osmo-bsc/+/18765/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/6/src/osmo-bsc/bsc_vty.c at 2074 PS6, Line 2074: for MSC pooling Idea: maybe it makes sense to group all NRI related parameters into a separate node, like 'msc-pooling'? So there would be no need to clarify that this particular option is 'for MSC pooling'. https://gerrit.osmocom.org/c/osmo-bsc/+/18765/6/src/osmo-bsc/bsc_vty.c at 2085 PS6, Line 2085: (always starting just after the TMSI's most significant octet) IMHO, such technical details should not be here. If the NRI position is defined by the specs., then it's definitely redundant information. https://gerrit.osmocom.org/c/osmo-bsc/+/18765/6/src/osmo-bsc/bsc_vty.c at 2086 PS6, Line 2086: bit Cosmetic: s/bit/Bit/ https://gerrit.osmocom.org/c/osmo-bsc/+/18765/6/src/osmo-bsc/osmo_bsc_vty.c File src/osmo-bsc/osmo_bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/6/src/osmo-bsc/osmo_bsc_vty.c at 801 PS6, Line 801: LOGP Does it really make sense to duplicate the logging? This is not something we usually do. https://gerrit.osmocom.org/c/osmo-bsc/+/18765/6/src/osmo-bsc/osmo_bsc_vty.c at 904 PS6, Line 904: CMD_SUCCESS CMD_WARNING? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 18:44: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 Wed Jun 17 18:58:54 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 18:58:54 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18768 ) Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 Gerrit-PatchSet: 9 Gerrit-Owner: neels 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, 17 Jun 2020 18:58: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 Jun 17 19:03:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 19:03:01 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add rate counters In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18875 ) Change subject: MSC pooling: add rate counters ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 Gerrit-Change-Number: 18875 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 19:03: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 Jun 17 20:15:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 20:15:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Fix comment [cosmetic] References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18885 ) Change subject: sgsn: Fix comment [cosmetic] ...................................................................... sgsn: Fix comment [cosmetic] Change-Id: I320bce9af64edf0cfb6f600d9a4c19b73153c805 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/18885/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 9d191cc..84902a4 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1475,7 +1475,7 @@ } } -/* Transceive given 'payload' as MT message from Gb -> OsmoSGSN -> GTP */ +/* Transceive given 'payload' as MO message from Gb -> OsmoSGSN -> GTP */ private function f_gtpu_xceive_mo(inout PdpActPars apars, octetstring payload, integer ran_index := 0) runs on BSSGP_ConnHdlr { /* Send PDU via SNDCP/LLC/BSSGP/NS via simulated MS/PCU to the SGSN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I320bce9af64edf0cfb6f600d9a4c19b73153c805 Gerrit-Change-Number: 18885 Gerrit-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 Jun 17 20:15:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 20:15:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add BSSGP_SIG port to ConnHdlr References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 ) Change subject: sgsn: Add BSSGP_SIG port to ConnHdlr ...................................................................... sgsn: Add BSSGP_SIG port to ConnHdlr So far, the ConnHdlr components were only able to exchange BSSGP PDUs on the PTP BVC, but not on the SIGNALING BVC. For this, we need to actually connect to the BSSGP_SP_SIG that BSSGP_Emulation provides. Change-Id: I4482a24e4808ac2fe04401224f628606d8207416 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/18886/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 84902a4..57c9e02 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -414,10 +414,13 @@ vc_conn := BSSGP_ConnHdlr.create(id); connect(vc_conn:BSSGP[0], gb[0].vc_BSSGP:BSSGP_SP); + connect(vc_conn:BSSGP_SIG[0], gb[0].vc_BSSGP:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[0], gb[0].vc_BSSGP:BSSGP_PROC); connect(vc_conn:BSSGP[1], gb[1].vc_BSSGP:BSSGP_SP); + connect(vc_conn:BSSGP_SIG[1], gb[1].vc_BSSGP:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[1], gb[1].vc_BSSGP:BSSGP_PROC); connect(vc_conn:BSSGP[2], gb[2].vc_BSSGP:BSSGP_SP); + connect(vc_conn:BSSGP_SIG[2], gb[2].vc_BSSGP:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[2], gb[2].vc_BSSGP:BSSGP_PROC); /* FIXME: support multiple RNCs */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4482a24e4808ac2fe04401224f628606d8207416 Gerrit-Change-Number: 18886 Gerrit-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 Jun 17 20:15:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 20:15:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 ) Change subject: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments ...................................................................... Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments Change-Id: I7d0110e6f26fd407e11b2c60d78f4cd16f0d45af --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/18887/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9a7c8d1..a518268 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1349,7 +1349,7 @@ } } - template PDU_BSSGP tr_BSSGP_PS_PAGING(BssgpBvci bvci) := { + template PDU_BSSGP tr_BSSGP_PS_PAGING(template BssgpBvci bvci) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, iMSI := ?, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7d0110e6f26fd407e11b2c60d78f4cd16f0d45af Gerrit-Change-Number: 18887 Gerrit-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 Jun 17 20:15:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 20:15:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... sgsn: Add functions for BSSGP suspend + resume procedure Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 36 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/18888/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 57c9e02..eeb4015 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -799,6 +799,42 @@ f_sleep(0.05); } +friend function f_bssgp_suspend(integer ran_idx := 0) runs on BSSGP_ConnHdlr return OCT1 { + timer T := 5.0; + var PDU_BSSGP rx_pdu; + BSSGP_SIG[ran_idx].send(ts_BSSGP_SUSPEND(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + T.start; + alt { + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value; + } + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); + } + [] T.timeout { + setverdict(fail, "No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli); + } + } + return '00'O; +} + +friend function f_bssgp_resume(OCT1 susp_ref, integer ran_idx := 0) runs on BSSGP_ConnHdlr { + timer T := 5.0; + BSSGP_SIG[ran_idx].send(ts_BSSGP_RESUME(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, susp_ref)); + T.start; + alt { + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, +?)) { + setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli); + } + [] T.timeout { + setverdict(fail, "No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli); + } + } +} + + private function f_TC_attach(charstring id) runs on BSSGP_ConnHdlr { f_gmm_attach(false, false); setverdict(pass); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-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 Jun 17 20:15:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 20:15:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 ) Change subject: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case ...................................................................... sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In some scenarios we do not expect a PDU from GTP to show up on the Gb side. Let's add support for this. Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 11 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/18889/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index eeb4015..c157d39 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1502,15 +1502,24 @@ } /* Transceive given 'payload' as MT message from GTP -> OsmoSGSN -> Gb */ -private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0) +private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0, boolean expect_fwd := true) runs on BSSGP_ConnHdlr { + timer T := 5.0; /* Send PDU via GTP from our simulated GGSN to the SGSN */ f_gtpu_send(apars, payload); + T.start; /* Expect PDU via BSSGP/LLC on simulated PCU from SGSN */ alt { [] as_xid(apars, ran_index); //[] BSSGP[ran_index].receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload))); - [] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)); + [expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)); + [expect_fwd] T.timeout { + setverdict(fail, "Timeout waiting for GTP-U to appear on BSSGP"); + } + [not expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)) { + setverdict(fail, "GTP-U forwarded to BSSGP but not expected") + } + [not expect_fwd] T.timeout {} } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Gerrit-Change-Number: 18889 Gerrit-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 Jun 17 20:15:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 20:15:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add series of tests on suspend/resume and paging behavior References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 ) Change subject: sgsn: Add series of tests on suspend/resume and paging behavior ...................................................................... sgsn: Add series of tests on suspend/resume and paging behavior Let's test whether paging si triggered after T3314 expiration, as well as suspend and explicit and implicit resume work as expected Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 162 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/90/18890/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index c157d39..7a405ca 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -2901,6 +2901,163 @@ f_cleanup(); } +private altstep as_nopaging_ps(integer ran_idx := 0) runs on BSSGP_ConnHdlr { +var PDU_BSSGP rx; +[] BSSGP_SIG[ran_idx].receive(tr_BSSGP_PS_PAGING(?)) -> value rx { + setverdict(fail, "Received unexpected PS PAGING: ", rx); + } +} + +/* SUSPEND, then DL traffic: should not pass + no paging expected */ +private function f_TC_suspend_nopaging(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now suspend GPRS */ + f_bssgp_suspend(); + + d := activate(as_nopaging_ps()); + + /* at this point we don't expect any downlink traffic at all, neither actual LLC/SNDCP data, + * nor any related paging requests */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), expect_fwd := false); + + deactivate(d); +} +testcase TC_suspend_nopaging() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_suspend_nopaging), testcasename(), g_gb, 48); + vc_conn.done; + f_cleanup(); +} + + +/* SUSPEND, then RESUME: data expected to flow after explicit resume */ +private function f_TC_suspend_resume(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var OCT1 susp_ref; + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now suspend GPRS */ + susp_ref := f_bssgp_suspend(); + + d := activate(as_nopaging_ps()); + + /* at this point we don't expect any downlink traffic at all, neither actual LLC/SNDCP data, + * nor any related paging requests */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), expect_fwd := false); + + deactivate(d); + + /* resume GPRS */ + f_bssgp_resume(susp_ref); + + /* now data should be flowing again */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); +} +testcase TC_suspend_resume() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_suspend_resume), testcasename(), g_gb, 49); + vc_conn.done; + f_cleanup(); +} + +/* SUSPEND, then RAU: data expected to flow after implicit resume */ +private function f_TC_suspend_rau(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now suspend GPRS */ + f_bssgp_suspend(); + + d := activate(as_nopaging_ps()); + + /* at this point we don't expect any downlink traffic at all, neither actual LLC/SNDCP data, + * nor any related paging requests */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), expect_fwd := false); + + deactivate(d); + + /* perform RAU (implicit RESUME) */ + f_routing_area_update(g_pars.ra); + + /* now data should be flowing again */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + +} +testcase TC_suspend_rau() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_suspend_rau), testcasename(), g_gb, 50); + vc_conn.done; + f_cleanup(); +} + + +/* wait for T3314 expiration and check that PS PAGING is created on DL PDU */ +private function f_TC_paging_ps(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now wait for T3314 expiration (test_CT below has reduced it to 3s) */ + f_sleep(5.0); + + /* now data should be flowing again, but with PS PAGING */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + BSSGP_SIG[0].receive(tr_BSSGP_PS_PAGING(?)); + + /* FIXME: simulate paging response */ + /* FIXME: verify PDU actually arrives only after paging response was successful */ + +} +testcase TC_paging_ps() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_vty_config(SGSNVTY, "sgsn", "timer 3314 3"); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_paging_ps), testcasename(), g_gb, 51); + vc_conn.done; + f_vty_config(SGSNVTY, "sgsn", "timer 3314 default"); + f_cleanup(); +} + + + + + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -2958,6 +3115,11 @@ execute( TC_llc_sabm_dm_llgmm() ); execute( TC_llc_sabm_dm_ll5() ); + execute( TC_suspend_nopaging() ); + execute( TC_suspend_resume() ); + execute( TC_suspend_rau() ); + execute( TC_paging_ps() ); + /* At the end, may crash osmo-sgsn, see OS#3957, OS#4245 */ execute( TC_attach_req_id_req_ra_update() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Gerrit-Change-Number: 18890 Gerrit-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 Jun 17 20:20:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 20:20:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Fix comment [cosmetic] In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18885 ) Change subject: sgsn: Fix comment [cosmetic] ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I320bce9af64edf0cfb6f600d9a4c19b73153c805 Gerrit-Change-Number: 18885 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 20:20:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 20:20:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 20:20:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add BSSGP_SIG port to ConnHdlr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 ) Change subject: sgsn: Add BSSGP_SIG port to ConnHdlr ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4482a24e4808ac2fe04401224f628606d8207416 Gerrit-Change-Number: 18886 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 20:20: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 Jun 17 20:23:47 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 20:23:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 ) Change subject: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7d0110e6f26fd407e11b2c60d78f4cd16f0d45af Gerrit-Change-Number: 18887 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 20:23:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 20:27:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 17 Jun 2020 20:27:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 20:27:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 21:08:41 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 21:08:41 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Patch Set 2: Verified+1 Code-Review+2 this passes the TTCN3 test case that I wrote and just pushed -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 21:08: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 Jun 17 21:08:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 21:08:56 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Improve ps-paging logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 ) Change subject: sgsn_libgtp: Improve ps-paging logging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 Gerrit-Change-Number: 18868 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 17 Jun 2020 21:08: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 Jun 17 21:09:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 21:09:15 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Improve ps-paging logging In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 ) Change subject: sgsn_libgtp: Improve ps-paging logging ...................................................................... Removed Code-Review+2 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 Gerrit-Change-Number: 18868 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 21:09:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 21:09:48 +0000 Subject: Change in libosmocore[master]: gsm0502: add TDMA frame number constants and modular arithmetic In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18869 ) Change subject: gsm0502: add TDMA frame number constants and modular arithmetic ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d Gerrit-Change-Number: 18869 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 21:09: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 Jun 17 21:09:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 21:09:51 +0000 Subject: Change in libosmocore[master]: gsm0502: add TDMA frame number constants and modular arithmetic In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18869 ) Change subject: gsm0502: add TDMA frame number constants and modular arithmetic ...................................................................... gsm0502: add TDMA frame number constants and modular arithmetic These TDMA constatns and modular arithmetic operations are used in a number of osmo-* projects, so it makes sense to have them all in a single header file, with minimalistic documentation. Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d --- M include/osmocom/gsm/gsm0502.h 1 file changed, 24 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0502.h b/include/osmocom/gsm/gsm0502.h index cb993dc..1be2cc3 100644 --- a/include/osmocom/gsm/gsm0502.h +++ b/include/osmocom/gsm/gsm0502.h @@ -7,6 +7,30 @@ #include #include +/* 4.3.3 TDMA frame number : constants and modular arithmetic */ +#define GSM_TDMA_FN_DURATION_nS 4615384 /* in 1e?9 seconds (approx) */ +#define GSM_TDMA_FN_DURATION_uS 4615 /* in 1e-6 seconds (approx) */ + +#define GSM_TDMA_SUPERFRAME (26 * 51) +#define GSM_TDMA_HYPERFRAME (2048 * GSM_TDMA_SUPERFRAME) + +/*! Return the sum of two specified TDMA frame numbers (summation) */ +#define GSM_TDMA_FN_SUM(a, b) \ + ((a + b) % GSM_TDMA_HYPERFRAME) +/*! Return the difference of two specified TDMA frame numbers (subtraction) */ +#define GSM_TDMA_FN_SUB(a, b) \ + ((a + GSM_TDMA_HYPERFRAME - b) % GSM_TDMA_HYPERFRAME) +/*! Return the *minimum* difference of two specified TDMA frame numbers (distance) */ +#define GSM_TDMA_FN_DIFF(a, b) \ + OSMO_MIN(GSM_TDMA_FN_SUB(a, b), GSM_TDMA_FN_SUB(b, a)) + +/*! Increment the given TDMA frame number by 1 and return the result (like ++fn) */ +#define GSM_TDMA_FN_INC(fn) \ + ((fn) = GSM_TDMA_FN_SUM((fn), 1)) +/*! Decrement the given TDMA frame number by 1 and return the result (like --fn) */ +#define GSM_TDMA_FN_DEC(fn) \ + ((fn) = GSM_TDMA_FN_SUB((fn), 1)) + /* Table 5 Clause 7 TS 05.02 */ static inline unsigned int gsm0502_get_n_pag_blocks(struct gsm48_control_channel_descr *chan_desc) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic291fd3644f34964374227a191c7045d79d77e0d Gerrit-Change-Number: 18869 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 21:12:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 21:12:36 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c at 2094 PS3, Line 2094: FIRST [LAST] > I thought allowing hex is a neat idea, because you're dividing a number of MSC across a range of bit [?] If you really wanted to, you could probably change the vty command syntax string on-the-fly when the bitlen is set. Similar to how we generate the VTY strings for log categories at runtime. I'm not saying you should, but if you are worried enough about it... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 21:12:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels 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 Jun 17 21:14:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 17 Jun 2020 21:14:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 21:14:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 21:26:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 21:26:13 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Improve ps-paging logging In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 ) Change subject: sgsn_libgtp: Improve ps-paging logging ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/18868/1/src/sgsn/sgsn_libgtp.c File src/sgsn/sgsn_libgtp.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/18868/1/src/sgsn/sgsn_libgtp.c at 671 PS1, Line 671: gb.mm_state_fsm > Hmm, there is also 'iu.mm_state_fsm'. I am wondering why it's not handled here... Most probably because it's not yet implemented, but it's unrelated to this patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 Gerrit-Change-Number: 18868 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 21:26:13 +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 Jun 17 21:26:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 17 Jun 2020 21:26:40 +0000 Subject: Change in osmo-sgsn[master]: Treat RAU as implicit RESUME if GMM is suspended In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 ) Change subject: Treat RAU as implicit RESUME if GMM is suspended ...................................................................... Treat RAU as implicit RESUME if GMM is suspended We so far only resumed from suspend upon receiving an explicit BSSGP RESUME message from the BSS. The latter is only possible in BSC-colocated PCU, where the BSC can trigger the message when releasing the dedicated channel. In BTS-colocated PCUs, this is not possible, and we have to rely on the MS resuming by RAU. See 3GPP TS 23.060 section 16.2.1.1.1 clause 6: The MS shall resume GPRS services by sending a Routeing Area Update Request message to the SGSN: * if the BSS did not successfully request the SGSN to resume GPRS services, * if the RR Channel Release message was not received before the MS left dedicated mode, * if the MS locally determines that the conditions for the GPRS suspension have disappeared Without this patch, the GMM state would forever be stuck in SUSPEND, which in turn causes the SGSN to page the MS all the time. Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Related: OS4616 --- M src/sgsn/gprs_gmm_fsm.c 1 file changed, 8 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, but someone else must approve fixeria: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c index 37ea904..11b4e4e 100644 --- a/src/sgsn/gprs_gmm_fsm.c +++ b/src/sgsn/gprs_gmm_fsm.c @@ -69,9 +69,12 @@ static void st_gmm_registered_suspended(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch(event) { - case E_GMM_RESUME: + case E_GMM_RESUME: /* explicit BSSGP RESUME from BSS */ gmm_fsm_state_chg(fi, ST_GMM_REGISTERED_NORMAL); break; + case E_GMM_COMMON_PROC_INIT_REQ: /* implicit resume from MS */ + gmm_fsm_state_chg(fi, ST_GMM_COMMON_PROC_INIT); + break; } } @@ -123,10 +126,12 @@ .action = st_gmm_registered_normal, }, [ST_GMM_REGISTERED_SUSPENDED] = { - .in_event_mask = X(E_GMM_RESUME), + .in_event_mask = X(E_GMM_RESUME) | + X(E_GMM_COMMON_PROC_INIT_REQ), .out_state_mask = X(ST_GMM_DEREGISTERED) | - X(ST_GMM_REGISTERED_NORMAL), + X(ST_GMM_REGISTERED_NORMAL) | + X(ST_GMM_COMMON_PROC_INIT), .name = "Registered.SUSPENDED", .action = st_gmm_registered_suspended, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3c09187a27483d95fa0070bbb467f94a2ea3978f Gerrit-Change-Number: 18877 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 21:40:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 21:40:39 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18765/3/src/osmo-bsc/bsc_vty.c at 2094 PS3, Line 2094: FIRST [LAST] > If you really wanted to, you could probably change the vty command syntax string on-the-fly when the [?] I'd rather not do that, since it could hinder working with the configuration flexibly. There could be ranges configured that end up being unparseable because the bitlen has changed ... rather leave it up to the user. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 17 Jun 2020 21:40:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels 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 Jun 17 21:44:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 21:44:20 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add rate counters In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18875 ) Change subject: MSC pooling: add rate counters ...................................................................... Patch Set 1: Code-Review+2 combining 2x +1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 Gerrit-Change-Number: 18875 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 21:44:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 17 21:48:30 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 21:48:30 +0000 Subject: Change in osmocom-bb[master]: firmware/apps/rssi: enlarge text buffer in refresh_display() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18747 ) Change subject: firmware/apps/rssi: enlarge text buffer in refresh_display() ...................................................................... Patch Set 1: i also think snprintf is best here -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7980727b78f7622d792d82170f73c90ac5770397 Gerrit-Change-Number: 18747 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Wed, 17 Jun 2020 21:48: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 Jun 17 21:49:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 17 Jun 2020 21:49:20 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: cosmetic: add missing comma to debug print In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18748 ) Change subject: firmware/layer1: cosmetic: add missing comma to debug print ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Icfc403e500c24628da722ab378fba31923afd1a1 Gerrit-Change-Number: 18748 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 17 Jun 2020 21:49:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Jun 18 03:10:41 2020 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 18 Jun 2020 03:10:41 +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_#2436?= Message-ID: <1362588248.1452.1592449841231.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Thu Jun 18 03:45:59 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 18 Jun 2020 03:45:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: fix TC_pcu_socket_verify_info_ind References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18893 ) Change subject: bts: fix TC_pcu_socket_verify_info_ind ...................................................................... bts: fix TC_pcu_socket_verify_info_ind The verify info ind is failing because a race condition while the TC is connecting to the BTS. Change-Id: I46b58e8e74d75cd5321f3cc9cabcc795ae42f88d --- M bts/BTS_Tests.ttcn 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/18893/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index f98419d..1574fed 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -5160,6 +5160,21 @@ f_init(); + /* We do a disconnect + reconnect to ensure si3 has been received by the bts. + * We can not do sleep() + recv and expect a second info_ind will be received, because it could be received + * by bts before f_init() connects to the pcu. + */ + f_pcuif_close(PCU, g_pcu_conn_id); + g_pcu_conn_id := -1; + + f_sleep(1.0); + + /* re-connect */ + PCU.clear; + f_init_pcu(PCU, testcasename(), g_pcu_conn_id, g_pcu_last_info); + + f_sleep(2.0); + /* Verify cell_id */ var uint16_t cell_id_si3 := si3.payload.si3.cell_id; var uint16_t cell_id_pcu := g_pcu_last_info.u.info_ind.cell_id; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I46b58e8e74d75cd5321f3cc9cabcc795ae42f88d Gerrit-Change-Number: 18893 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 Jun 18 03:49:32 2020 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 18 Jun 2020 03:49:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: fix TC_pcu_socket_verify_info_ind 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/+/18893 to look at the new patch set (#2). Change subject: BTS_Tests: fix TC_pcu_socket_verify_info_ind ...................................................................... BTS_Tests: fix TC_pcu_socket_verify_info_ind The test case is failing because a race condition when the test case is connecting to the pcu socket. Change-Id: I46b58e8e74d75cd5321f3cc9cabcc795ae42f88d --- M bts/BTS_Tests.ttcn M bts/expected-results.xml 2 files changed, 16 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/18893/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I46b58e8e74d75cd5321f3cc9cabcc795ae42f88d Gerrit-Change-Number: 18893 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 09:16:58 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 09:16:58 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 12: (16 comments) Apparently gerrit does not work the way it should. Apparantly pending comments are not sent, even after pushing the changes. Please do not merge this or comment any further until I get back to you again. https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_endp.c at a100 PS4, Line 100: if (strlen(epname) <= prefix_len) > unrelated? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_osmux.c File src/libosmo-mgcp/mgcp_osmux.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_osmux.c at 207 PS4, Line 207: for (i=0; inumber_endpoints; i++) { > since you are changing the line you could fix the missing spacing too. Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_trunk.c at 34 PS4, Line 34: int mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) > alloc returning something than a pointer is confusing. Better return the pointer or NULL. Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/4/src/libosmo-mgcp/mgcp_vty.c at 852 PS4, Line 852: * parameters, so wie restrict the access to trunks with id numbers > typo we Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 557 PS10, Line 557: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > OSMO_ASSERT(trunk)? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 572 PS10, Line 572: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > OSMO_ASSERT(trunk)? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 582 PS10, Line 582: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > OSMO_ASSERT(trunk)? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 620 PS10, Line 620: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > OSMO_ASSERT(trunk)? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 631 PS10, Line 631: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > OSMO_ASSERT(trunk)? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 642 PS10, Line 642: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > OSMO_ASSERT(trunk)? Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 653 PS10, Line 653: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > ... Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 880 PS10, Line 880: continue; > so, where/how is the virtual trunk written to config? The config for the virtual trunk is written in config_write_mgcp(). https://gerrit.osmocom.org/c/osmo-mgw/+/18590/10/src/libosmo-mgcp/mgcp_vty.c at 891 PS10, Line 891: vty_out(vty, " rtp keep-alive %d%s", > ... [?] There are vty commands with the same name, but on different nodes. See mgcp_vty_init(). This is very confusing, I got confused too. I have removed those fixme notes now. https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c at 751 PS11, Line 751: OSMO_ASSERT(trunk); > thanks for applying here... Done https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c at 760 PS11, Line 760: struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); > ...and there are still many more of these below [?] Thanks for catching this. I overlooked the remaining ones, probably my search string was too distinctive. https://gerrit.osmocom.org/c/osmo-mgw/+/18590/11/src/libosmo-mgcp/mgcp_vty.c at 882 PS11, Line 882: continue; > please still explain, as in previous comment: [?] I would love to eliminate config_write_mgcp() completely, but I think this changes the syntax of the configuration file too much. Also I think the time is not right for that yet. When the E1 support is done we have two different trunk sets, and then we can see much better how we can find a more meaningful configuration scheme. I think it would also be very nice to be able to create multiple virtual trunks. Think of one MGW that handles BSC and MSC on two different virtual trunks. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 09:16:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels 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 Jun 18 10:35:00 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:00 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: Hello neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 to look at the new patch set (#7). Change subject: endp: add name generator function for E1 endpoints ...................................................................... endp: add name generator function for E1 endpoints Currently the endpoint name that is generated for an E1 endpoint is not correct. Let's add an endpoint name generator function that derives a full endpoint name for a given E1 index Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Related: OS#2547 --- M src/libosmo-mgcp/mgcp_endp.c 1 file changed, 39 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:35:00 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:00 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 to look at the new patch set (#5). Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:35:00 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:00 +0000 Subject: Change in osmo-mgw[master]: endp: add typeset for e1-endpoints In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 to look at the new patch set (#2). Change subject: endp: add typeset for e1-endpoints ...................................................................... endp: add typeset for e1-endpoints Add an endpoint typeset for E1 support, also lets add dummy callbacks for the cleanup and rtp dispatch functionality. Related: OS#2547 Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c 4 files changed, 41 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/55/18755/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 Gerrit-Change-Number: 18755 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:35:05 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:05 +0000 Subject: Change in osmo-mgw[master]: ratectr: move rate counter definitions into mgcp_ratectr.h References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18894 ) Change subject: ratectr: move rate counter definitions into mgcp_ratectr.h ...................................................................... ratectr: move rate counter definitions into mgcp_ratectr.h The rate counter definition (enums) are still in mgcp.h. Lets move them to mgcp_ratectr.h since it makes more sense to keep them there. Change-Id: Id37f66673bc20f9c2cc47a6b44cdfe75f728b936 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_ratectr.h 2 files changed, 60 insertions(+), 59 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/94/18894/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 3811991..989d138 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -120,65 +120,6 @@ #define MGCP_KEEPALIVE_ONCE (-1) #define MGCP_KEEPALIVE_NEVER 0 -/* Global MCGP general rate counters */ -enum { - MGCP_GENERAL_RX_MSGS_TOTAL, - MGCP_GENERAL_RX_MSGS_RETRANSMITTED, - MGCP_GENERAL_RX_MSGS_HANDLED, - MGCP_GENERAL_RX_MSGS_UNHANDLED, - MGCP_GENERAL_RX_FAIL_MSG_PARSE, - MGCP_GENERAL_RX_FAIL_NO_ENDPOINT, -}; - -/* Global MCGP CRCX related rate counters */ -enum { - MGCP_CRCX_SUCCESS, - MGCP_CRCX_FAIL_BAD_ACTION, - MGCP_CRCX_FAIL_UNHANDLED_PARAM, - MGCP_CRCX_FAIL_MISSING_CALLID, - MGCP_CRCX_FAIL_INVALID_MODE, - MGCP_CRCX_FAIL_LIMIT_EXCEEDED, - MGCP_CRCX_FAIL_UNKNOWN_CALLID, - MGCP_CRCX_FAIL_ALLOC_CONN, - MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC, - MGCP_CRCX_FAIL_START_RTP, - MGCP_CRCX_FAIL_REJECTED_BY_POLICY, - MGCP_CRCX_FAIL_NO_OSMUX, - MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS, - MGCP_CRCX_FAIL_CODEC_NEGOTIATION, - MGCP_CRCX_FAIL_BIND_PORT, -}; - -/* Global MCGP MDCX related rate counters */ -enum { - MGCP_MDCX_SUCCESS, - MGCP_MDCX_FAIL_WILDCARD, - MGCP_MDCX_FAIL_NO_CONN, - MGCP_MDCX_FAIL_INVALID_CALLID, - MGCP_MDCX_FAIL_INVALID_CONNID, - MGCP_MDCX_FAIL_UNHANDLED_PARAM, - MGCP_MDCX_FAIL_NO_CONNID, - MGCP_MDCX_FAIL_CONN_NOT_FOUND, - MGCP_MDCX_FAIL_INVALID_MODE, - MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS, - MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC, - MGCP_MDCX_FAIL_START_RTP, - MGCP_MDCX_FAIL_REJECTED_BY_POLICY, - MGCP_MDCX_DEFERRED_BY_POLICY -}; - -/* Global MCGP DLCX related rate counters */ -enum { - MGCP_DLCX_SUCCESS, - MGCP_DLCX_FAIL_WILDCARD, - MGCP_DLCX_FAIL_NO_CONN, - MGCP_DLCX_FAIL_INVALID_CALLID, - MGCP_DLCX_FAIL_INVALID_CONNID, - MGCP_DLCX_FAIL_UNHANDLED_PARAM, - MGCP_DLCX_FAIL_REJECTED_BY_POLICY, - MGCP_DLCX_DEFERRED_BY_POLICY, -}; - enum mgcp_role { MGCP_BSC = 0, MGCP_BSC_NAT, diff --git a/include/osmocom/mgcp/mgcp_ratectr.h b/include/osmocom/mgcp/mgcp_ratectr.h index e05b70c..a579f5b 100644 --- a/include/osmocom/mgcp/mgcp_ratectr.h +++ b/include/osmocom/mgcp/mgcp_ratectr.h @@ -1,5 +1,65 @@ #pragma once + +/* Global MCGP general rate counters */ +enum { + MGCP_GENERAL_RX_MSGS_TOTAL, + MGCP_GENERAL_RX_MSGS_RETRANSMITTED, + MGCP_GENERAL_RX_MSGS_HANDLED, + MGCP_GENERAL_RX_MSGS_UNHANDLED, + MGCP_GENERAL_RX_FAIL_MSG_PARSE, + MGCP_GENERAL_RX_FAIL_NO_ENDPOINT, +}; + +/* Global MCGP CRCX related rate counters */ +enum { + MGCP_CRCX_SUCCESS, + MGCP_CRCX_FAIL_BAD_ACTION, + MGCP_CRCX_FAIL_UNHANDLED_PARAM, + MGCP_CRCX_FAIL_MISSING_CALLID, + MGCP_CRCX_FAIL_INVALID_MODE, + MGCP_CRCX_FAIL_LIMIT_EXCEEDED, + MGCP_CRCX_FAIL_UNKNOWN_CALLID, + MGCP_CRCX_FAIL_ALLOC_CONN, + MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC, + MGCP_CRCX_FAIL_START_RTP, + MGCP_CRCX_FAIL_REJECTED_BY_POLICY, + MGCP_CRCX_FAIL_NO_OSMUX, + MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS, + MGCP_CRCX_FAIL_CODEC_NEGOTIATION, + MGCP_CRCX_FAIL_BIND_PORT, +}; + +/* Global MCGP MDCX related rate counters */ +enum { + MGCP_MDCX_SUCCESS, + MGCP_MDCX_FAIL_WILDCARD, + MGCP_MDCX_FAIL_NO_CONN, + MGCP_MDCX_FAIL_INVALID_CALLID, + MGCP_MDCX_FAIL_INVALID_CONNID, + MGCP_MDCX_FAIL_UNHANDLED_PARAM, + MGCP_MDCX_FAIL_NO_CONNID, + MGCP_MDCX_FAIL_CONN_NOT_FOUND, + MGCP_MDCX_FAIL_INVALID_MODE, + MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS, + MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC, + MGCP_MDCX_FAIL_START_RTP, + MGCP_MDCX_FAIL_REJECTED_BY_POLICY, + MGCP_MDCX_DEFERRED_BY_POLICY +}; + +/* Global MCGP DLCX related rate counters */ +enum { + MGCP_DLCX_SUCCESS, + MGCP_DLCX_FAIL_WILDCARD, + MGCP_DLCX_FAIL_NO_CONN, + MGCP_DLCX_FAIL_INVALID_CALLID, + MGCP_DLCX_FAIL_INVALID_CONNID, + MGCP_DLCX_FAIL_UNHANDLED_PARAM, + MGCP_DLCX_FAIL_REJECTED_BY_POLICY, + MGCP_DLCX_DEFERRED_BY_POLICY, +}; + /* NOTE: When adding counters, also the dump_ratectr_* routines in vty.c must be updated. */ struct mgcp_ratectr_global { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id37f66673bc20f9c2cc47a6b44cdfe75f728b936 Gerrit-Change-Number: 18894 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 Jun 18 10:35:05 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:05 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18895 ) Change subject: cosmetic: fix doxygen ...................................................................... cosmetic: fix doxygen Change-Id: Icd757befce68fd12aa0832b7790ca118103a102c --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 13 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/95/18895/1 diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 96c5318..024db03 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -25,12 +25,12 @@ #include #include -/*! allocate trunk and add it (if required) to the trunk list - * (called once at startup by VTY) - * \param[in] cfg mgcp configuration - * \param[in] nr trunk number - * \param[in] ttype trunk type - * \returns pointer to allocated trunk, NULL on failure */ +/*! allocate trunk and add it (if required) to the trunk list. + * (called once at startup by VTY). + * \param[in] cfg mgcp configuration. + * \param[in] nr trunk number. + * \param[in] ttype trunk type. + * \returns pointer to allocated trunk, NULL on failure. */ struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) { struct mgcp_trunk *trunk; @@ -63,10 +63,10 @@ return trunk; } -/*! allocate endpoints and set default values. - * (called once at startup by VTY) - * \param[in] trunk trunk configuration - * \returns 0 on success, -1 on failure */ +/*! allocate endpoints and set default values + * (called once at startup by VTY). + * \param[in] trunk trunk configuration. + * \returns 0 on success, -1 on failure. */ int mgcp_trunk_alloc_endpts(struct mgcp_trunk *trunk) { int i; @@ -124,9 +124,9 @@ } /*! get trunk configuration by trunk number (index). - * \param[in] cfg mgcp configuration - * \param[in] index trunk number - * \returns pointer to trunk configuration, NULL on error */ + * \param[in] cfg mgcp configuration. + * \param[in] index trunk number. + * \returns pointer to trunk configuration, NULL on error. */ struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, int index) { struct mgcp_trunk *trunk; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icd757befce68fd12aa0832b7790ca118103a102c Gerrit-Change-Number: 18895 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 Jun 18 10:35:05 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:05 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18896 ) Change subject: cosmetic: fix doxygen ...................................................................... cosmetic: fix doxygen Change-Id: I31f7ccf748d09062dbb82f3e921a90e77db02a3d --- M src/libosmo-mgcp/mgcp_network.c 1 file changed, 46 insertions(+), 46 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/96/18896/1 diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 8efc6b7..1ad9c1a 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -75,8 +75,8 @@ } /*! Determine the local rtp bind IP-address. - * \param[out] addr caller provided memory to store the resulting IP-Address - * \param[in] endp mgcp endpoint, that holds a copy of the VTY parameters + * \param[out] addr caller provided memory to store the resulting IP-Address. + * \param[in] endp mgcp endpoint, that holds a copy of the VTY parameters. * * The local bind IP-address is automatically selected by probing the * IP-Address of the interface that is pointing towards the remote IP-Address, @@ -145,12 +145,12 @@ } /*! send udp packet. - * \param[in] fd associated file descriptor - * \param[in] addr destination ip-address - * \param[in] port destination UDP port (network byte order) - * \param[in] buf buffer that holds the data to be send - * \param[in] len length of the data to be sent - * \returns bytes sent, -1 on error */ + * \param[in] fd associated file descriptor. + * \param[in] addr destination ip-address. + * \param[in] port destination UDP port (network byte order). + * \param[in] buf buffer that holds the data to be send. + * \param[in] len length of the data to be sent. + * \returns bytes sent, -1 on error. */ int mgcp_udp_send(int fd, struct in_addr *addr, int port, char *buf, int len) { struct sockaddr_in out; @@ -167,9 +167,9 @@ } /*! send RTP dummy packet (to keep NAT connection open). - * \param[in] endp mcgp endpoint that holds the RTP connection - * \param[in] conn associated RTP connection - * \returns bytes sent, -1 on error */ + * \param[in] endp mcgp endpoint that holds the RTP connection. + * \param[in] conn associated RTP connection. + * \returns bytes sent, -1 on error. */ int mgcp_send_dummy(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn) { static char buf[] = { MGCP_DUMMY_LOAD }; @@ -395,12 +395,12 @@ } /*! dummy callback to disable transcoding (see also cfg->rtp_processing_cb). - * \param[in] associated endpoint - * \param[in] destination RTP end - * \param[in,out] pointer to buffer with voice data - * \param[in] voice data length - * \param[in] maximum size of caller provided voice data buffer - * \returns ignores input parameters, return always 0 */ + * \param[in] associated endpoint. + * \param[in] destination RTP end. + * \param[in,out] pointer to buffer with voice data. + * \param[in] voice data length. + * \param[in] maximum size of caller provided voice data buffer. + * \returns ignores input parameters, return always 0. */ int mgcp_rtp_processing_default(struct mgcp_endpoint *endp, struct mgcp_rtp_end *dst_end, char *data, int *len, int buf_size) @@ -410,10 +410,10 @@ } /*! dummy callback to disable transcoding (see also cfg->setup_rtp_processing_cb). - * \param[in] associated endpoint - * \param[in] destination RTP connnection - * \param[in] source RTP connection - * \returns ignores input parameters, return always 0 */ + * \param[in] associated endpoint. + * \param[in] destination RTP connnection. + * \param[in] source RTP connection. + * \returns ignores input parameters, return always 0. */ int mgcp_setup_rtp_processing_default(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn_dst, struct mgcp_conn_rtp *conn_src) @@ -803,14 +803,14 @@ } /*! Send RTP/RTCP data to a specified destination connection. - * \param[in] endp associated endpoint (for configuration, logging) - * \param[in] is_rtp flag to specify if the packet is of type RTP or RTCP - * \param[in] spoofed source address (set to NULL to disable) - * \param[in] buf buffer that contains the RTP/RTCP data - * \param[in] len length of the buffer that contains the RTP/RTCP data - * \param[in] conn_src associated source connection - * \param[in] conn_dst associated destination connection - * \returns 0 on success, -1 on ERROR */ + * \param[in] endp associated endpoint (for configuration, logging). + * \param[in] is_rtp flag to specify if the packet is of type RTP or RTCP. + * \param[in] spoofed source address (set to NULL to disable). + * \param[in] buf buffer that contains the RTP/RTCP data. + * \param[in] len length of the buffer that contains the RTP/RTCP data. + * \param[in] conn_src associated source connection. + * \param[in] conn_dst associated destination connection. + * \returns 0 on success, -1 on ERROR. */ int mgcp_send(struct mgcp_endpoint *endp, int is_rtp, struct sockaddr_in *addr, char *buf, int len, struct mgcp_conn_rtp *conn_src, struct mgcp_conn_rtp *conn_dst) @@ -1259,12 +1259,12 @@ } /*! dispatch incoming RTP packet to opposite RTP connection. - * \param[in] proto protocol (MGCP_CONN_TYPE_RTP or MGCP_CONN_TYPE_RTCP) - * \param[in] addr socket address where the RTP packet has been received from - * \param[in] buf buffer that hold the RTP payload - * \param[in] buf_size size data length of buf - * \param[in] conn originating connection - * \returns 0 on success, -1 on ERROR */ + * \param[in] proto protocol (MGCP_CONN_TYPE_RTP or MGCP_CONN_TYPE_RTCP). + * \param[in] addr socket address where the RTP packet has been received from. + * \param[in] buf buffer that hold the RTP payload. + * \param[in] buf_size size data length of buf. + * \param[in] conn originating connection. + * \returns 0 on success, -1 on ERROR. */ int mgcp_dispatch_rtp_bridge_cb(int proto, struct sockaddr_in *addr, char *buf, unsigned int buf_size, struct mgcp_conn *conn) { @@ -1399,9 +1399,9 @@ } /*! set IP Type of Service parameter. - * \param[in] fd associated file descriptor - * \param[in] tos dscp value - * \returns 0 on success, -1 on ERROR */ + * \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; @@ -1413,10 +1413,10 @@ } /*! bind RTP port to osmo_fd. - * \param[in] source_addr source (local) address to bind on - * \param[in] fd associated file descriptor - * \param[in] port to bind on - * \returns 0 on success, -1 on ERROR */ + * \param[in] source_addr source (local) address to bind on. + * \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 rc; @@ -1492,10 +1492,10 @@ } /*! bind RTP port to endpoint/connection. - * \param[in] endp endpoint that holds the RTP connection - * \param[in] rtp_port port number to bind on - * \param[in] conn associated RTP connection - * \returns 0 on success, -1 on ERROR */ + * \param[in] endp endpoint that holds the RTP connection. + * \param[in] rtp_port port number to bind on. + * \param[in] conn associated RTP connection. + * \returns 0 on success, -1 on ERROR. */ int mgcp_bind_net_rtp_port(struct mgcp_endpoint *endp, int rtp_port, struct mgcp_conn_rtp *conn) { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31f7ccf748d09062dbb82f3e921a90e77db02a3d Gerrit-Change-Number: 18896 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 Jun 18 10:35:05 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:05 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18897 ) Change subject: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() ...................................................................... cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() Change-Id: I231b9026402a0f0d3aa23c8de748fc7e88b8bb36 --- M src/libosmo-mgcp/mgcp_network.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/97/18897/1 diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 1ad9c1a..3d01918 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1330,8 +1330,7 @@ /*! cleanup an endpoint when a connection on an RTP bridge endpoint is removed. * \param[in] endp Endpoint on which the connection resides. - * \param[in] conn Connection that is about to be removed (ignored). - * \returns 0 on success, -1 on ERROR. */ + * \param[in] conn Connection that is about to be removed (ignored). */ void mgcp_cleanup_rtp_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn) { struct mgcp_conn *conn_cleanup; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I231b9026402a0f0d3aa23c8de748fc7e88b8bb36 Gerrit-Change-Number: 18897 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 Jun 18 10:35:06 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:06 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... endp: add E1 endpoint interlocking E1 endpoint names also represent different rates, this may mean that some rate / subslot combinations are not possible because they overlap withi nthe timeslot. When the equipment (BSC) is properly configured, this will be no problem, however invalid configuration may cause the selection of overlapping endpoints and this needs to be prevented, and logged. Also rate counters need to be in place. Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Related: OS#2547 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_ratectr.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_vty.c 6 files changed, 279 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/98/18898/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 0f9110c..a58053a 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -110,3 +110,4 @@ const struct mgcp_trunk *trunk); struct mgcp_endpoint *mgcp_endp_by_name(int *cause, const char *epname, struct mgcp_config *cfg); +bool mgcp_endp_avail(struct mgcp_endpoint *endp); diff --git a/include/osmocom/mgcp/mgcp_ratectr.h b/include/osmocom/mgcp/mgcp_ratectr.h index a579f5b..d0bc628 100644 --- a/include/osmocom/mgcp/mgcp_ratectr.h +++ b/include/osmocom/mgcp/mgcp_ratectr.h @@ -28,6 +28,7 @@ MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS, MGCP_CRCX_FAIL_CODEC_NEGOTIATION, MGCP_CRCX_FAIL_BIND_PORT, + MGCP_CRCX_FAIL_AVAIL, }; /* Global MCGP MDCX related rate counters */ @@ -45,7 +46,8 @@ MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC, MGCP_MDCX_FAIL_START_RTP, MGCP_MDCX_FAIL_REJECTED_BY_POLICY, - MGCP_MDCX_DEFERRED_BY_POLICY + MGCP_MDCX_DEFERRED_BY_POLICY, + MGCP_MDCX_FAIL_AVAIL, }; /* Global MCGP DLCX related rate counters */ @@ -58,6 +60,7 @@ MGCP_DLCX_FAIL_UNHANDLED_PARAM, MGCP_DLCX_FAIL_REJECTED_BY_POLICY, MGCP_DLCX_DEFERRED_BY_POLICY, + MGCP_DLCX_FAIL_AVAIL, }; /* NOTE: When adding counters, also the dump_ratectr_* routines in vty.c must be updated. */ diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 94d4083..5607c31 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -25,6 +25,10 @@ #include #include +#define E1_TIMESLOTS 32 +#define E1_RATE_MAX 64 +#define E1_OFFS_MAX 8 + /* Endpoint typeset definition */ const struct mgcp_endpoint_typeset ep_typeset = { /* Specify endpoint properties for RTP endpoint */ @@ -213,7 +217,9 @@ for (i = 0; i < trunk->number_endpoints; i++) { endp = trunk->endpoints[i]; - if (endp->callid == NULL) + /* A free endpoint must not serve a call already and it must + * be available. */ + if (endp->callid == NULL && mgcp_endp_avail(endp)) return endp; } @@ -362,3 +368,251 @@ *cause = 0; return endp; } + +/* Get the E1 timeslot number from a given E1 endpoint name + (e.g. ds/e1-0/s-30/su16-4), returns 0xff on error. */ +static uint8_t e1_ts_nr_from_epname(char *epname) +{ + char buf[MGCP_ENDPOINT_MAXLEN + 1]; + char *save_ptr = NULL; + char *buf_ptr = buf; + char *token; + unsigned long int res = 0; + + strncpy(buf, epname, MGCP_ENDPOINT_MAXLEN); + + while (1) { + token = strtok_r(buf_ptr, "/", &save_ptr); + buf_ptr = NULL; + if (!token) + break; + if (strncmp(token, "s-", 2) == 0) { + res = strtoul(token + 2, NULL, 10); + if (errno == ERANGE || res > E1_TIMESLOTS) + return 0xff; + return (uint8_t) res; + } + } + + return 0xff; +} + +/* Get the E1 timeslot number from a given E1 endpoint name + (e.g. ds/e1-0/s-30/su16-4), returns 0xff on error. */ +static uint8_t e1_rate_from_epname(char *epname) +{ + char buf[MGCP_ENDPOINT_MAXLEN + 1]; + char *save_ptr = NULL; + char *buf_ptr = buf; + char *token; + unsigned long int res = 0; + static const uint8_t rates[] = { 64, 32, 16, 16, 8 }; + unsigned int i; + + strncpy(buf, epname, MGCP_ENDPOINT_MAXLEN); + + while (1) { + token = strtok_r(buf_ptr, "/", &save_ptr); + buf_ptr = NULL; + if (!token) + break; + if (strncmp(token, "su", 2) == 0) { + res = strtoul(token + 2, NULL, 10); + if (errno == ERANGE || res > E1_RATE_MAX) + return 0xff; + /* Make sure the rate is a valid rate */ + for (i = 0; i < sizeof(rates); i++) { + if (res == rates[i]) + return (uint8_t) res; + } + return 0xff; + } + } + + return 0xff; +} + +/* Get the E1 bitstream offset from a given E1 endpoint name + (e.g. ds/e1-0/s-30/su16-4), returns 0xff on error. */ +static uint8_t e1_offs_from_epname(char *epname) +{ + char buf[MGCP_ENDPOINT_MAXLEN + 1]; + char *save_ptr = NULL; + char *buf_ptr = buf; + char *token; + unsigned long int res = 0; + + strncpy(buf, epname, MGCP_ENDPOINT_MAXLEN); + + while (1) { + token = strtok_r(buf_ptr, "/", &save_ptr); + buf_ptr = NULL; + if (!token) + break; + if (strncmp(token, "su", 2) == 0) { + token = strstr(token, "-"); + if (!token) + return 0xff; + token += 1; + res = strtoul(token, NULL, 10); + if (errno == ERANGE || res > E1_OFFS_MAX) + return 0xff; + return (uint8_t) res; + } + } + + return 0xff; +} + +/* Get the E1 subslot number (internal) from a given E1 endpoint name + (e.g. ds/e1-0/s-30/su16-4), returns 0xff on error. */ +static uint8_t e1_ss_nr_from_epname(char *epname) +{ + uint8_t rate; + uint8_t offs; + unsigned int i; + + rate = e1_rate_from_epname(epname); + offs = e1_offs_from_epname(epname); + + /* See also comment in gen_e1_epname() */ + static const uint8_t rates[] = + { 64, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 8, 8 }; + static const uint8_t offsets[] = + { 0, 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; + + OSMO_ASSERT(sizeof(rates) == sizeof(offsets)); + + for (i = 0; i < sizeof(rates); i++) { + if ((rates[i] == rate) && (offsets[i] == offs)) + return i; + } + + return 0xff; +} + +/* Check if the selected E1 endpoint is avalable, which means that none of + * the overlapping endpoints are currently serving a call. (if the system + * is properly configured such a situation should never ocurr!) */ +static bool endp_avail_e1(struct mgcp_endpoint *endp) +{ + /* The following map shows the overlapping of the subslots and their + * respective rates. The numbers on the right running from top to bottom + * are the bit offsets in the whole 64k timeslot. The numbers inside the + * boxes symbolize the internal subsolt number (array index) and the + * rate in the form: i:r where i is the subsolt number and r the + * respective rate. + * + * +--------+--------+--------+--------+ 0 + * | | | | 7:8k | + * | | + 3:16k +--------+ 1 + * | | | | 8:8k | + * | | 1:32k +--------+--------+ 2 + * | | | | 9:8k | + * | | + 4:16k +--------+ 3 + * | | | | 10:8k | + * | 0:64k +--------+--------+--------+ 4 + * | | | | 11:8k | + * | | + 5:16k +--------+ 5 + * | | | | 12:8k | + * | | 2:32k +--------+--------+ 6 + * | | | | 13:8k | + * | | + 6:16k +--------+ 7 + * | | | | 14:8k | + * +--------+--------+--------+--------+ 8 + * + * The following array contains tables with the subslot numbers that must be + * unused for each subslot. During this test we do not have to check the + * endpoint we need to verify, only the overlaps need to be checked. This is + * also the reason why the related subslot number is missing from each each + * line. */ + static const int8_t interlock_tab[15][16] = + { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1 }, + { 0, 3, 4, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 5, 6, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 1, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 1, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 2, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 2, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 2, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 2, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, + { 0, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } + }; + + const int8_t *interlock; + unsigned int i; + uint8_t ts_nr = 0; + uint8_t ss_nr = 0; + char *epname_check; + struct mgcp_endpoint *endp_check; + bool available = true; + + /* This function must only be used with E1 type endpoints! */ + OSMO_ASSERT(endp->trunk->trunk_type == MGCP_TRUNK_E1); + + ts_nr = e1_ts_nr_from_epname(endp->name); + ss_nr = e1_ss_nr_from_epname(endp->name); + if (ts_nr == 0xff || ss_nr == 0xff) { + LOGPENDP(endp, DLMGCP, LOGL_ERROR, + "cannot check endpoint availability, endpoint name not parseable!\n"); + return false; + } + + interlock = interlock_tab[ss_nr]; + + for(i=0;i<15;i++) { + /* Detect table end */ + if (interlock[i] == -1) + break; + + /* Pick overlapping endpoint to check */ + epname_check = + gen_e1_epname(endp, endp->trunk->trunk_nr, ts_nr, + interlock[i]); + endp_check = find_specific_endpoint(epname_check, endp->trunk); + if (!endp_check) { + LOGPENDP(endp, DLMGCP, LOGL_ERROR, + "cannot check endpoint availability, overlapping endpoint:%s not found!\n", epname_check); + talloc_free(epname_check); + continue; + } + talloc_free(epname_check); + + /* Check if overlapping endpoint currently serves another call + * (This is an exceptional situation, that should not occurr + * in a properly configured environment!) */ + if (endp_check->callid) { + LOGPENDP(endp, DLMGCP, LOGL_ERROR, + "endpoint unavailable - overlapping endpoint:%s already serves a call!\n", + endp_check->name); + available = false; + } + } + + return available; +} + +/*! check if an endpoint is available for any kind of operation. + * \param[in] endp endpoint to check. + * \returns true if endpoint is avalable, false it is blocked for any reason. */ +bool mgcp_endp_avail(struct mgcp_endpoint *endp) +{ + switch (endp->trunk->trunk_type) { + case MGCP_TRUNK_VIRTUAL: + /* There are no obsticels that may render a virtual trunk + * endpoint unusable, so virtual trunk endpoints are always + * available */ + return true; + case MGCP_TRUNK_E1: + return endp_avail_e1(endp); + default: + OSMO_ASSERT(false); + } + + return false; +} diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 1e393e2..f2fc20c 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -747,6 +747,10 @@ int rc; LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "CRCX: creating new connection ...\n"); + if (!mgcp_endp_avail(endp)) { + rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_AVAIL]); + return create_err_response(NULL, 501, "CRCX", p->trans); + } /* parse CallID C: and LocalParameters L: */ for_each_line(line, p->save) { @@ -1004,6 +1008,11 @@ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "MDCX: modifying existing connection ...\n"); + if (!mgcp_endp_avail(endp)) { + rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_AVAIL]); + return create_err_response(NULL, 501, "MDCX", p->trans); + } + /* Prohibit wildcarded requests */ if (endp->wildcarded_req) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, @@ -1224,6 +1233,11 @@ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "DLCX: deleting connection ...\n"); + if (!mgcp_endp_avail(endp)) { + rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_FAIL_AVAIL]); + return create_err_response(NULL, 501, "DLCX", p->trans); + } + /* Prohibit wildcarded requests */ if (endp->wildcarded_req) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, diff --git a/src/libosmo-mgcp/mgcp_ratectr.c b/src/libosmo-mgcp/mgcp_ratectr.c index 302786f..52fbf6e 100644 --- a/src/libosmo-mgcp/mgcp_ratectr.c +++ b/src/libosmo-mgcp/mgcp_ratectr.c @@ -63,6 +63,7 @@ [MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS] = { "crcx:conn_opt", "connection options invalid." }, [MGCP_CRCX_FAIL_CODEC_NEGOTIATION] = { "crcx:codec_nego", "codec negotiation failure." }, [MGCP_CRCX_FAIL_BIND_PORT] = { "crcx:bind_port", "port bind failure." }, + [MGCP_CRCX_FAIL_AVAIL] = { "crcx:availability", "endpoint unavailable." }, }; const static struct rate_ctr_group_desc mgcp_crcx_ctr_group_desc = { @@ -90,6 +91,7 @@ [MGCP_MDCX_FAIL_START_RTP] = { "mdcx:start_rtp_failure", "failure to start RTP processing." }, [MGCP_MDCX_FAIL_REJECTED_BY_POLICY] = { "mdcx:conn_rejected", "connection rejected by policy." }, [MGCP_MDCX_DEFERRED_BY_POLICY] = { "mdcx:conn_deferred", "connection deferred by policy." }, + [MGCP_MDCX_FAIL_AVAIL] = { "mdcx:availability", "endpoint unavailable." }, }; const static struct rate_ctr_group_desc mgcp_mdcx_ctr_group_desc = { @@ -111,6 +113,7 @@ [MGCP_DLCX_FAIL_UNHANDLED_PARAM] = { "dlcx:unhandled_param", "unhandled parameter in DLCX command." }, [MGCP_DLCX_FAIL_REJECTED_BY_POLICY] = { "dlcx:rejected", "connection deletion rejected by policy." }, [MGCP_DLCX_DEFERRED_BY_POLICY] = { "dlcx:deferred", "connection deletion deferred by policy." }, + [MGCP_DLCX_FAIL_AVAIL] = { "dlcx:availability", "endpoint unavailable." }, }; const static struct rate_ctr_group_desc mgcp_dlcx_ctr_group_desc = { diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 938eef5..cbff700 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -199,6 +199,8 @@ vty_out(vty, "%s trunk %d endpoint %s:%s", trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", trunk_nr, endp->name, VTY_NEWLINE); + vty_out(vty, " Availability: %s%s", + mgcp_endp_avail(endp) ? "available" : "not in service", VTY_NEWLINE); if (llist_empty(&endp->conns)) { vty_out(vty, " No active connections%s", VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 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 Jun 18 10:35:48 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:35:48 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 13: (i hope it works now) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10: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 Thu Jun 18 10:38:01 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:38:01 +0000 Subject: Change in osmo-mgw[master]: endp: add typeset for e1-endpoints In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18755 ) Change subject: endp: add typeset for e1-endpoints ...................................................................... Patch Set 2: (3 comments) (ensuring all replies are sent) https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/include/osmocom/mgcp/mgcp_internal.h File include/osmocom/mgcp/mgcp_internal.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/include/osmocom/mgcp/mgcp_internal.h at 277 PS1, Line 277: void mgcp_cleanup_e1_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn); > personally I'd put the e1 functions in a separate block, not interleaved in the rtp ones. Done https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_network.c at 1332 PS1, Line 1332: * \param[in] proto protocol (MGCP_CONN_TYPE_RTP or MGCP_CONN_TYPE_RTCP) > please explain how E1 and RTP / RTCP go together. [?] Thats an interesting questions. We probably will have to generate our own RTCP packets. RTCP terminates on E1 endpoint, thats for sure. These things are not very clear yet. When we integrate the E1 support from libosmabis we will work on this. For now we need to go with a fixme note. https://gerrit.osmocom.org/c/osmo-mgw/+/18755/1/src/libosmo-mgcp/mgcp_network.c at 1368 PS1, Line 1368: * \returns 0 on success, -1 on ERROR. */ > there is no return Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 Gerrit-Change-Number: 18755 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 10:38:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:39:20 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 10:39:20 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 5: (3 comments) (ensuring all replies are sent) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c at 138 PS2, Line 138: prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_E1_TRUNK) - 1; > yes (the atoi() below is my -1 reason) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18752/2/src/libosmo-mgcp/mgcp_trunk.c at 140 PS2, Line 140: return mgcp_trunk_by_num(cfg, atoi(epname+prefix_len)); > this needs validity checks. [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18752/3/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/3/src/libosmo-mgcp/mgcp_trunk.c at 143 PS3, Line 143: trunk_nr = strtol(epname+prefix_len, NULL, 10); > If you are looking for an unsigned int, then simply use strtoul(). [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10:39:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:43:59 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 10:43:59 +0000 Subject: Change in osmo-bsc[master]: merge files: absorb osmo_bsc_vty.c into bsc_vty.c In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18892 ) Change subject: merge files: absorb osmo_bsc_vty.c into bsc_vty.c ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 Gerrit-Change-Number: 18892 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 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 Thu Jun 18 10:45:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 10:45:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add BSSGP_SIG port to ConnHdlr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 ) Change subject: sgsn: Add BSSGP_SIG port to ConnHdlr ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4482a24e4808ac2fe04401224f628606d8207416 Gerrit-Change-Number: 18886 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10:45: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 Jun 18 10:46:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 10:46:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 ) Change subject: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7d0110e6f26fd407e11b2c60d78f4cd16f0d45af Gerrit-Change-Number: 18887 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10:46:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:49:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 10:49:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn at 812 PS1, Line 812: setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); mtc.stop; missing in all failures. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10:49: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 Jun 18 10:50:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 10:50:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 ) Change subject: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889/1/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889/1/sgsn/SGSN_Tests.ttcn at 1517 PS1, Line 1517: setverdict(fail, "Timeout waiting for GTP-U to appear on BSSGP"); mtc.stop; missing. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Gerrit-Change-Number: 18889 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10:50:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:56:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 10:56:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add series of tests on suspend/resume and paging behavior In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 ) Change subject: sgsn: Add series of tests on suspend/resume and paging behavior ...................................................................... Patch Set 1: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890/1//COMMIT_MSG at 9 PS1, Line 9: Let's test whether paging si triggered after T3314 expiration, as well typo: is https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890/1/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890/1/sgsn/SGSN_Tests.ttcn at 2907 PS1, Line 2907: setverdict(fail, "Received unexpected PS PAGING: ", rx); mtc.stop https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890/1/sgsn/SGSN_Tests.ttcn at 3038 PS1, Line 3038: /* now data should be flowing again, but with PS PAGING */ Is it correct to forward the data to the pcu if the MS is not paged? or should we ideally store it in SGSN or drop it there? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Gerrit-Change-Number: 18890 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10:56:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 10:58:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 10:58:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 10:58: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 Jun 18 11:02:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:02:24 +0000 Subject: Change in osmo-mgw[master]: ratectr: move rate counter definitions into mgcp_ratectr.h In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18894 ) Change subject: ratectr: move rate counter definitions into mgcp_ratectr.h ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id37f66673bc20f9c2cc47a6b44cdfe75f728b936 Gerrit-Change-Number: 18894 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:02: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 Jun 18 11:02:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:02:39 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18895 ) Change subject: cosmetic: fix doxygen ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icd757befce68fd12aa0832b7790ca118103a102c Gerrit-Change-Number: 18895 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:02: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 Jun 18 11:02:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:02:52 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18896 ) Change subject: cosmetic: fix doxygen ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31f7ccf748d09062dbb82f3e921a90e77db02a3d Gerrit-Change-Number: 18896 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:02: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 Jun 18 11:03:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:03:12 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18897 ) Change subject: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I231b9026402a0f0d3aa23c8de748fc7e88b8bb36 Gerrit-Change-Number: 18897 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:03: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 Jun 18 11:08:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:08:33 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/5/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/5/src/libosmo-mgcp/mgcp_trunk.c at 142 PS5, Line 142: if (errno == ERANGE || trunk_nr > 64 || trunk_nr == 0) I recommended checking existing uses of strtoul in osmo-mgw since correctness checking is a bit tricky but seems you didn't follow it? 135: char *pt_end; 161- errno = 0; 162- pt = strtoul(pt_str, &pt_end, 0); 163: if ((errno == ERANGE && pt == ULONG_MAX) || (errno && !pt) || 164- pt_str == pt_end) 165- goto error; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:08:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:09:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:09:26 +0000 Subject: Change in osmo-mgw[master]: endp: add typeset for e1-endpoints In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18755 ) Change subject: endp: add typeset for e1-endpoints ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 Gerrit-Change-Number: 18755 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11: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 Thu Jun 18 11:11:58 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 18 Jun 2020 11:11:58 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: tnt Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:11: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 Jun 18 11:15:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:15:36 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... Patch Set 1: Code-Review-1 (4 comments) I don't really see the point in storing a bunch of properties in a string and then having to parse them from there everytime. Am I missing something which really requires this way of doing stuff? https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1//COMMIT_MSG at 11 PS1, Line 11: withi nthe timeslot. When the equipment (BSC) is properly configured, typo: within the https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c at 374 PS1, Line 374: static uint8_t e1_ts_nr_from_epname(char *epname) Did you think about simply storing all this information as integers in the endp struct during endp creation instead of having to do string processing everytime? https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c at 568 PS1, Line 568: for(i=0;i<15;i++) { spacing https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c at 607 PS1, Line 607: /* There are no obsticels that may render a virtual trunk typo: obsticels -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:15:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:17:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:17:54 +0000 Subject: Change in osmo-mgw[master]: ratectr: move rate counter definitions into mgcp_ratectr.h In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18894 ) Change subject: ratectr: move rate counter definitions into mgcp_ratectr.h ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id37f66673bc20f9c2cc47a6b44cdfe75f728b936 Gerrit-Change-Number: 18894 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:17:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:18:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:18:06 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18895 ) Change subject: cosmetic: fix doxygen ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icd757befce68fd12aa0832b7790ca118103a102c Gerrit-Change-Number: 18895 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:18: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 Jun 18 11:18:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:18:17 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 13: > Apparently gerrit does not work the way it should. Apparantly pending comments are not sent, even after pushing the changes. Please do not merge this or comment any further until I get back to you again. You mean gerrit should submit commits every time you submit a new version of the patch? I think I have never seen that behavior you describe and I'de say iut's definetly not the indented way of working. You need to take care of always submitting the comments manually by pressing the button when after you write them. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:18:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:18:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:18:21 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18896 ) Change subject: cosmetic: fix doxygen ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31f7ccf748d09062dbb82f3e921a90e77db02a3d Gerrit-Change-Number: 18896 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:18:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:18:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:18:53 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18897 ) Change subject: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I231b9026402a0f0d3aa23c8de748fc7e88b8bb36 Gerrit-Change-Number: 18897 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:18:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:19:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:19:35 +0000 Subject: Change in osmo-bsc[master]: merge files: absorb osmo_bsc_vty.c into bsc_vty.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18892 ) Change subject: merge files: absorb osmo_bsc_vty.c into bsc_vty.c ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 Gerrit-Change-Number: 18892 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:19:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:19:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:19:53 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... Patch Set 13: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:19: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 Jun 18 11:21:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:01 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:21:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:21:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:13 +0000 Subject: Change in osmo-mgw[master]: ratectr: move rate counter definitions into mgcp_ratectr.h In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18894 ) Change subject: ratectr: move rate counter definitions into mgcp_ratectr.h ...................................................................... ratectr: move rate counter definitions into mgcp_ratectr.h The rate counter definition (enums) are still in mgcp.h. Lets move them to mgcp_ratectr.h since it makes more sense to keep them there. Change-Id: Id37f66673bc20f9c2cc47a6b44cdfe75f728b936 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_ratectr.h 2 files changed, 60 insertions(+), 59 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 3811991..989d138 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -120,65 +120,6 @@ #define MGCP_KEEPALIVE_ONCE (-1) #define MGCP_KEEPALIVE_NEVER 0 -/* Global MCGP general rate counters */ -enum { - MGCP_GENERAL_RX_MSGS_TOTAL, - MGCP_GENERAL_RX_MSGS_RETRANSMITTED, - MGCP_GENERAL_RX_MSGS_HANDLED, - MGCP_GENERAL_RX_MSGS_UNHANDLED, - MGCP_GENERAL_RX_FAIL_MSG_PARSE, - MGCP_GENERAL_RX_FAIL_NO_ENDPOINT, -}; - -/* Global MCGP CRCX related rate counters */ -enum { - MGCP_CRCX_SUCCESS, - MGCP_CRCX_FAIL_BAD_ACTION, - MGCP_CRCX_FAIL_UNHANDLED_PARAM, - MGCP_CRCX_FAIL_MISSING_CALLID, - MGCP_CRCX_FAIL_INVALID_MODE, - MGCP_CRCX_FAIL_LIMIT_EXCEEDED, - MGCP_CRCX_FAIL_UNKNOWN_CALLID, - MGCP_CRCX_FAIL_ALLOC_CONN, - MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC, - MGCP_CRCX_FAIL_START_RTP, - MGCP_CRCX_FAIL_REJECTED_BY_POLICY, - MGCP_CRCX_FAIL_NO_OSMUX, - MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS, - MGCP_CRCX_FAIL_CODEC_NEGOTIATION, - MGCP_CRCX_FAIL_BIND_PORT, -}; - -/* Global MCGP MDCX related rate counters */ -enum { - MGCP_MDCX_SUCCESS, - MGCP_MDCX_FAIL_WILDCARD, - MGCP_MDCX_FAIL_NO_CONN, - MGCP_MDCX_FAIL_INVALID_CALLID, - MGCP_MDCX_FAIL_INVALID_CONNID, - MGCP_MDCX_FAIL_UNHANDLED_PARAM, - MGCP_MDCX_FAIL_NO_CONNID, - MGCP_MDCX_FAIL_CONN_NOT_FOUND, - MGCP_MDCX_FAIL_INVALID_MODE, - MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS, - MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC, - MGCP_MDCX_FAIL_START_RTP, - MGCP_MDCX_FAIL_REJECTED_BY_POLICY, - MGCP_MDCX_DEFERRED_BY_POLICY -}; - -/* Global MCGP DLCX related rate counters */ -enum { - MGCP_DLCX_SUCCESS, - MGCP_DLCX_FAIL_WILDCARD, - MGCP_DLCX_FAIL_NO_CONN, - MGCP_DLCX_FAIL_INVALID_CALLID, - MGCP_DLCX_FAIL_INVALID_CONNID, - MGCP_DLCX_FAIL_UNHANDLED_PARAM, - MGCP_DLCX_FAIL_REJECTED_BY_POLICY, - MGCP_DLCX_DEFERRED_BY_POLICY, -}; - enum mgcp_role { MGCP_BSC = 0, MGCP_BSC_NAT, diff --git a/include/osmocom/mgcp/mgcp_ratectr.h b/include/osmocom/mgcp/mgcp_ratectr.h index e05b70c..a579f5b 100644 --- a/include/osmocom/mgcp/mgcp_ratectr.h +++ b/include/osmocom/mgcp/mgcp_ratectr.h @@ -1,5 +1,65 @@ #pragma once + +/* Global MCGP general rate counters */ +enum { + MGCP_GENERAL_RX_MSGS_TOTAL, + MGCP_GENERAL_RX_MSGS_RETRANSMITTED, + MGCP_GENERAL_RX_MSGS_HANDLED, + MGCP_GENERAL_RX_MSGS_UNHANDLED, + MGCP_GENERAL_RX_FAIL_MSG_PARSE, + MGCP_GENERAL_RX_FAIL_NO_ENDPOINT, +}; + +/* Global MCGP CRCX related rate counters */ +enum { + MGCP_CRCX_SUCCESS, + MGCP_CRCX_FAIL_BAD_ACTION, + MGCP_CRCX_FAIL_UNHANDLED_PARAM, + MGCP_CRCX_FAIL_MISSING_CALLID, + MGCP_CRCX_FAIL_INVALID_MODE, + MGCP_CRCX_FAIL_LIMIT_EXCEEDED, + MGCP_CRCX_FAIL_UNKNOWN_CALLID, + MGCP_CRCX_FAIL_ALLOC_CONN, + MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC, + MGCP_CRCX_FAIL_START_RTP, + MGCP_CRCX_FAIL_REJECTED_BY_POLICY, + MGCP_CRCX_FAIL_NO_OSMUX, + MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS, + MGCP_CRCX_FAIL_CODEC_NEGOTIATION, + MGCP_CRCX_FAIL_BIND_PORT, +}; + +/* Global MCGP MDCX related rate counters */ +enum { + MGCP_MDCX_SUCCESS, + MGCP_MDCX_FAIL_WILDCARD, + MGCP_MDCX_FAIL_NO_CONN, + MGCP_MDCX_FAIL_INVALID_CALLID, + MGCP_MDCX_FAIL_INVALID_CONNID, + MGCP_MDCX_FAIL_UNHANDLED_PARAM, + MGCP_MDCX_FAIL_NO_CONNID, + MGCP_MDCX_FAIL_CONN_NOT_FOUND, + MGCP_MDCX_FAIL_INVALID_MODE, + MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS, + MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC, + MGCP_MDCX_FAIL_START_RTP, + MGCP_MDCX_FAIL_REJECTED_BY_POLICY, + MGCP_MDCX_DEFERRED_BY_POLICY +}; + +/* Global MCGP DLCX related rate counters */ +enum { + MGCP_DLCX_SUCCESS, + MGCP_DLCX_FAIL_WILDCARD, + MGCP_DLCX_FAIL_NO_CONN, + MGCP_DLCX_FAIL_INVALID_CALLID, + MGCP_DLCX_FAIL_INVALID_CONNID, + MGCP_DLCX_FAIL_UNHANDLED_PARAM, + MGCP_DLCX_FAIL_REJECTED_BY_POLICY, + MGCP_DLCX_DEFERRED_BY_POLICY, +}; + /* NOTE: When adding counters, also the dump_ratectr_* routines in vty.c must be updated. */ struct mgcp_ratectr_global { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id37f66673bc20f9c2cc47a6b44cdfe75f728b936 Gerrit-Change-Number: 18894 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:21:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:13 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18895 ) Change subject: cosmetic: fix doxygen ...................................................................... cosmetic: fix doxygen Change-Id: Icd757befce68fd12aa0832b7790ca118103a102c --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 13 insertions(+), 13 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/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 96c5318..024db03 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -25,12 +25,12 @@ #include #include -/*! allocate trunk and add it (if required) to the trunk list - * (called once at startup by VTY) - * \param[in] cfg mgcp configuration - * \param[in] nr trunk number - * \param[in] ttype trunk type - * \returns pointer to allocated trunk, NULL on failure */ +/*! allocate trunk and add it (if required) to the trunk list. + * (called once at startup by VTY). + * \param[in] cfg mgcp configuration. + * \param[in] nr trunk number. + * \param[in] ttype trunk type. + * \returns pointer to allocated trunk, NULL on failure. */ struct mgcp_trunk *mgcp_trunk_alloc(struct mgcp_config *cfg, enum mgcp_trunk_type ttype, int nr) { struct mgcp_trunk *trunk; @@ -63,10 +63,10 @@ return trunk; } -/*! allocate endpoints and set default values. - * (called once at startup by VTY) - * \param[in] trunk trunk configuration - * \returns 0 on success, -1 on failure */ +/*! allocate endpoints and set default values + * (called once at startup by VTY). + * \param[in] trunk trunk configuration. + * \returns 0 on success, -1 on failure. */ int mgcp_trunk_alloc_endpts(struct mgcp_trunk *trunk) { int i; @@ -124,9 +124,9 @@ } /*! get trunk configuration by trunk number (index). - * \param[in] cfg mgcp configuration - * \param[in] index trunk number - * \returns pointer to trunk configuration, NULL on error */ + * \param[in] cfg mgcp configuration. + * \param[in] index trunk number. + * \returns pointer to trunk configuration, NULL on error. */ struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, int index) { struct mgcp_trunk *trunk; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icd757befce68fd12aa0832b7790ca118103a102c Gerrit-Change-Number: 18895 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:21:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:13 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18896 ) Change subject: cosmetic: fix doxygen ...................................................................... cosmetic: fix doxygen Change-Id: I31f7ccf748d09062dbb82f3e921a90e77db02a3d --- M src/libosmo-mgcp/mgcp_network.c 1 file changed, 46 insertions(+), 46 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/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 8efc6b7..1ad9c1a 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -75,8 +75,8 @@ } /*! Determine the local rtp bind IP-address. - * \param[out] addr caller provided memory to store the resulting IP-Address - * \param[in] endp mgcp endpoint, that holds a copy of the VTY parameters + * \param[out] addr caller provided memory to store the resulting IP-Address. + * \param[in] endp mgcp endpoint, that holds a copy of the VTY parameters. * * The local bind IP-address is automatically selected by probing the * IP-Address of the interface that is pointing towards the remote IP-Address, @@ -145,12 +145,12 @@ } /*! send udp packet. - * \param[in] fd associated file descriptor - * \param[in] addr destination ip-address - * \param[in] port destination UDP port (network byte order) - * \param[in] buf buffer that holds the data to be send - * \param[in] len length of the data to be sent - * \returns bytes sent, -1 on error */ + * \param[in] fd associated file descriptor. + * \param[in] addr destination ip-address. + * \param[in] port destination UDP port (network byte order). + * \param[in] buf buffer that holds the data to be send. + * \param[in] len length of the data to be sent. + * \returns bytes sent, -1 on error. */ int mgcp_udp_send(int fd, struct in_addr *addr, int port, char *buf, int len) { struct sockaddr_in out; @@ -167,9 +167,9 @@ } /*! send RTP dummy packet (to keep NAT connection open). - * \param[in] endp mcgp endpoint that holds the RTP connection - * \param[in] conn associated RTP connection - * \returns bytes sent, -1 on error */ + * \param[in] endp mcgp endpoint that holds the RTP connection. + * \param[in] conn associated RTP connection. + * \returns bytes sent, -1 on error. */ int mgcp_send_dummy(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn) { static char buf[] = { MGCP_DUMMY_LOAD }; @@ -395,12 +395,12 @@ } /*! dummy callback to disable transcoding (see also cfg->rtp_processing_cb). - * \param[in] associated endpoint - * \param[in] destination RTP end - * \param[in,out] pointer to buffer with voice data - * \param[in] voice data length - * \param[in] maximum size of caller provided voice data buffer - * \returns ignores input parameters, return always 0 */ + * \param[in] associated endpoint. + * \param[in] destination RTP end. + * \param[in,out] pointer to buffer with voice data. + * \param[in] voice data length. + * \param[in] maximum size of caller provided voice data buffer. + * \returns ignores input parameters, return always 0. */ int mgcp_rtp_processing_default(struct mgcp_endpoint *endp, struct mgcp_rtp_end *dst_end, char *data, int *len, int buf_size) @@ -410,10 +410,10 @@ } /*! dummy callback to disable transcoding (see also cfg->setup_rtp_processing_cb). - * \param[in] associated endpoint - * \param[in] destination RTP connnection - * \param[in] source RTP connection - * \returns ignores input parameters, return always 0 */ + * \param[in] associated endpoint. + * \param[in] destination RTP connnection. + * \param[in] source RTP connection. + * \returns ignores input parameters, return always 0. */ int mgcp_setup_rtp_processing_default(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn_dst, struct mgcp_conn_rtp *conn_src) @@ -803,14 +803,14 @@ } /*! Send RTP/RTCP data to a specified destination connection. - * \param[in] endp associated endpoint (for configuration, logging) - * \param[in] is_rtp flag to specify if the packet is of type RTP or RTCP - * \param[in] spoofed source address (set to NULL to disable) - * \param[in] buf buffer that contains the RTP/RTCP data - * \param[in] len length of the buffer that contains the RTP/RTCP data - * \param[in] conn_src associated source connection - * \param[in] conn_dst associated destination connection - * \returns 0 on success, -1 on ERROR */ + * \param[in] endp associated endpoint (for configuration, logging). + * \param[in] is_rtp flag to specify if the packet is of type RTP or RTCP. + * \param[in] spoofed source address (set to NULL to disable). + * \param[in] buf buffer that contains the RTP/RTCP data. + * \param[in] len length of the buffer that contains the RTP/RTCP data. + * \param[in] conn_src associated source connection. + * \param[in] conn_dst associated destination connection. + * \returns 0 on success, -1 on ERROR. */ int mgcp_send(struct mgcp_endpoint *endp, int is_rtp, struct sockaddr_in *addr, char *buf, int len, struct mgcp_conn_rtp *conn_src, struct mgcp_conn_rtp *conn_dst) @@ -1259,12 +1259,12 @@ } /*! dispatch incoming RTP packet to opposite RTP connection. - * \param[in] proto protocol (MGCP_CONN_TYPE_RTP or MGCP_CONN_TYPE_RTCP) - * \param[in] addr socket address where the RTP packet has been received from - * \param[in] buf buffer that hold the RTP payload - * \param[in] buf_size size data length of buf - * \param[in] conn originating connection - * \returns 0 on success, -1 on ERROR */ + * \param[in] proto protocol (MGCP_CONN_TYPE_RTP or MGCP_CONN_TYPE_RTCP). + * \param[in] addr socket address where the RTP packet has been received from. + * \param[in] buf buffer that hold the RTP payload. + * \param[in] buf_size size data length of buf. + * \param[in] conn originating connection. + * \returns 0 on success, -1 on ERROR. */ int mgcp_dispatch_rtp_bridge_cb(int proto, struct sockaddr_in *addr, char *buf, unsigned int buf_size, struct mgcp_conn *conn) { @@ -1399,9 +1399,9 @@ } /*! set IP Type of Service parameter. - * \param[in] fd associated file descriptor - * \param[in] tos dscp value - * \returns 0 on success, -1 on ERROR */ + * \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; @@ -1413,10 +1413,10 @@ } /*! bind RTP port to osmo_fd. - * \param[in] source_addr source (local) address to bind on - * \param[in] fd associated file descriptor - * \param[in] port to bind on - * \returns 0 on success, -1 on ERROR */ + * \param[in] source_addr source (local) address to bind on. + * \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 rc; @@ -1492,10 +1492,10 @@ } /*! bind RTP port to endpoint/connection. - * \param[in] endp endpoint that holds the RTP connection - * \param[in] rtp_port port number to bind on - * \param[in] conn associated RTP connection - * \returns 0 on success, -1 on ERROR */ + * \param[in] endp endpoint that holds the RTP connection. + * \param[in] rtp_port port number to bind on. + * \param[in] conn associated RTP connection. + * \returns 0 on success, -1 on ERROR. */ int mgcp_bind_net_rtp_port(struct mgcp_endpoint *endp, int rtp_port, struct mgcp_conn_rtp *conn) { -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31f7ccf748d09062dbb82f3e921a90e77db02a3d Gerrit-Change-Number: 18896 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:21:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:13 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18897 ) Change subject: cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() ...................................................................... cosmetic: fix doxygen for mgcp_cleanup_rtp_bridge_cb() Change-Id: I231b9026402a0f0d3aa23c8de748fc7e88b8bb36 --- M src/libosmo-mgcp/mgcp_network.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/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 1ad9c1a..3d01918 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1330,8 +1330,7 @@ /*! cleanup an endpoint when a connection on an RTP bridge endpoint is removed. * \param[in] endp Endpoint on which the connection resides. - * \param[in] conn Connection that is about to be removed (ignored). - * \returns 0 on success, -1 on ERROR. */ + * \param[in] conn Connection that is about to be removed (ignored). */ void mgcp_cleanup_rtp_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn) { struct mgcp_conn *conn_cleanup; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I231b9026402a0f0d3aa23c8de748fc7e88b8bb36 Gerrit-Change-Number: 18897 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:21:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:14 +0000 Subject: Change in osmo-mgw[master]: trunk: get rid of virt_trunk pointer In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18590 ) Change subject: trunk: get rid of virt_trunk pointer ...................................................................... trunk: get rid of virt_trunk pointer The virtual trunk is a pre-configured trunk that always exists. It is kept separate from the trunk list using a separate pointer. This makes thinks unecessarly complicated. Lets organize the trunk in the trunk list like any other trunk, except that we automatically create it on startup and assign it always the trunk id number 0. Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Related: OS#2659 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_trunk.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 7 files changed, 155 insertions(+), 105 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved neels: Looks good to me, but someone else must approve diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 989d138..33bfe71 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -152,11 +152,7 @@ uint32_t last_call_id; - /* trunk handling */ - - /* virtual trunk for RTP - RTP endpoints */ - struct mgcp_trunk *virt_trunk; - /* physical trunks with underlying E1 endpoints */ + /* list holding the trunks */ struct llist_head trunks; enum mgcp_role role; diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h index c230e9f..78d65e4 100644 --- a/include/osmocom/mgcp/mgcp_trunk.h +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -45,3 +45,8 @@ int mgcp_trunk_alloc_endpts(struct mgcp_trunk *tcfg); struct mgcp_trunk *mgcp_trunk_by_num(const struct mgcp_config *cfg, int index); struct mgcp_trunk *mgcp_trunk_by_name(const struct mgcp_config *cfg, const char *epname); + +/* The virtual trunk is always created on trunk id 0 for historical reasons, + * use this define constant as ID when allocating a virtual trunk. Other + * trunks may be assigned with arbritrary id numbers */ +#define MGCP_VIRT_TRUNK_ID 0 diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index ca8b5f0..9715e70 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -198,14 +198,15 @@ osmux_conn_lookup(struct mgcp_config *cfg, uint8_t cid, struct in_addr *from_addr) { + struct mgcp_trunk *trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); struct mgcp_endpoint *endp; struct mgcp_conn *conn = NULL; struct mgcp_conn_rtp * conn_rtp; int i; - for (i=0; ivirt_trunk->number_endpoints; i++) { + for (i = 0; i < trunk->number_endpoints; i++) { - endp = cfg->virt_trunk->endpoints[i]; + endp = trunk->endpoints[i]; llist_for_each_entry(conn, &endp->conns, entry) { if (conn->type != MGCP_CONN_TYPE_RTP) diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 1d25c45..1e393e2 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -1498,16 +1498,14 @@ cfg->get_net_downlink_format_cb = &mgcp_get_net_downlink_format_default; + INIT_LLIST_HEAD(&cfg->trunks); + /* Allocate virtual trunk */ - cfg->virt_trunk = mgcp_trunk_alloc(cfg, MGCP_TRUNK_VIRTUAL, 0); - if (!cfg->virt_trunk) { + if (!mgcp_trunk_alloc(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID)) { talloc_free(cfg); return NULL; } - /* Initalize list head for user configurable trunks */ - INIT_LLIST_HEAD(&cfg->trunks); - mgcp_ratectr_global_alloc(cfg, &cfg->ratectr); return cfg; diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 024db03..208604a 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -52,11 +52,7 @@ mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); - /* Note: Trunk Nr.0 is reserved as "virtual trunk", - * it is not stored using a separate pointer and - * not in the trunk list. */ - if (nr > 0) - llist_add_tail(&trunk->entry, &cfg->trunks); + llist_add_tail(&trunk->entry, &cfg->trunks); mgcp_ratectr_trunk_alloc(cfg, &trunk->ratectr); @@ -152,7 +148,7 @@ prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, prefix_len) == 0) { - return cfg->virt_trunk; + return mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); } /* E1 trunks are not implemented yet, so we deny any request for an @@ -175,7 +171,7 @@ if ((epname[0] >= '0' && epname[0] <= '9') || (epname[0] >= 'a' && epname[0] <= 'f')) { LOGP(DLMGCP, LOGL_ERROR, "missing trunk prefix in endpoint name \"%s\", assuming trunk \"%s\"!\n", epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK); - return cfg->virt_trunk; + return mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); } LOGP(DLMGCP, LOGL_ERROR, "unable to find trunk for endpoint name \"%s\"!\n", epname); diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 4cfe3b5..938eef5 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -43,18 +43,6 @@ static struct mgcp_config *g_cfg = NULL; -static struct mgcp_trunk *find_trunk(struct mgcp_config *cfg, int nr) -{ - struct mgcp_trunk *trunk; - - if (nr == 0) - trunk = cfg->virt_trunk; - else - trunk = mgcp_trunk_by_num(cfg, nr); - - return trunk; -} - struct cmd_node mgcp_node = { MGCP_NODE, "%s(config-mgcp)# ", @@ -69,7 +57,8 @@ static int config_write_mgcp(struct vty *vty) { - struct mgcp_trunk *trunk = g_cfg->virt_trunk; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); vty_out(vty, "mgcp%s", VTY_NEWLINE); vty_out(vty, " domain %s%s", g_cfg->domain, VTY_NEWLINE); @@ -328,8 +317,6 @@ struct mgcp_trunk *trunk; int show_stats = argc >= 1; - dump_trunk(vty, g_cfg->virt_trunk, show_stats); - llist_for_each_entry(trunk, &g_cfg->trunks, entry) dump_trunk(vty, trunk, show_stats); @@ -388,7 +375,7 @@ struct mgcp_trunk *trunk; int trunkidx = atoi(argv[0]); - trunk = find_trunk(g_cfg, trunkidx); + trunk = mgcp_trunk_by_num(g_cfg, trunkidx); if (!trunk) { vty_out(vty, "trunk %d not found%s", trunkidx, VTY_NEWLINE); return CMD_WARNING; @@ -578,11 +565,13 @@ "Add extra fmtp for the SDP file\n" "Audio\n" "Fmtp-extra\n" "Extra Information\n") { + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); char *txt = argv_concat(argv, argc, 0); if (!txt) return CMD_WARNING; - osmo_talloc_replace_string(g_cfg, &g_cfg->virt_trunk->audio_fmtp_extra, txt); + osmo_talloc_replace_string(g_cfg, &trunk->audio_fmtp_extra, txt); talloc_free(txt); return CMD_SUCCESS; } @@ -591,7 +580,9 @@ cfg_mgcp_allow_transcoding_cmd, "allow-transcoding", "Allow transcoding\n") { - g_cfg->virt_trunk->no_audio_transcoding = 0; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->no_audio_transcoding = 0; return CMD_SUCCESS; } @@ -599,7 +590,9 @@ cfg_mgcp_no_allow_transcoding_cmd, "no allow-transcoding", NO_STR "Allow transcoding\n") { - g_cfg->virt_trunk->no_audio_transcoding = 1; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->no_audio_transcoding = 1; return CMD_SUCCESS; } @@ -635,7 +628,9 @@ "sdp audio-payload send-ptime", SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n") { - g_cfg->virt_trunk->audio_send_ptime = 1; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->audio_send_ptime = 1; return CMD_SUCCESS; } @@ -644,7 +639,9 @@ "no sdp audio-payload send-ptime", NO_STR SDP_STR AUDIO_STR "Send SDP ptime (packet duration) attribute\n") { - g_cfg->virt_trunk->audio_send_ptime = 0; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->audio_send_ptime = 0; return CMD_SUCCESS; } @@ -653,7 +650,9 @@ "sdp audio-payload send-name", SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n") { - g_cfg->virt_trunk->audio_send_name = 1; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->audio_send_name = 1; return CMD_SUCCESS; } @@ -662,7 +661,9 @@ "no sdp audio-payload send-name", NO_STR SDP_STR AUDIO_STR "Send SDP rtpmap with the audio name\n") { - g_cfg->virt_trunk->audio_send_name = 0; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->audio_send_name = 0; return CMD_SUCCESS; } @@ -671,11 +672,13 @@ "loop (0|1)", "Loop audio for all endpoints on main trunk\n" "Don't Loop\n" "Loop\n") { + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); if (g_cfg->osmux) { vty_out(vty, "Cannot use `loop' with `osmux'.%s", VTY_NEWLINE); return CMD_WARNING; } - g_cfg->virt_trunk->audio_loop = atoi(argv[0]); + trunk->audio_loop = atoi(argv[0]); return CMD_SUCCESS; } @@ -685,7 +688,9 @@ "Force endpoint reallocation when the endpoint is still seized\n" "Don't force reallocation\n" "force reallocation\n") { - g_cfg->virt_trunk->force_realloc = atoi(argv[0]); + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->force_realloc = atoi(argv[0]); return CMD_SUCCESS; } @@ -695,7 +700,9 @@ "Accept all RTP packets, even when the originating IP/Port does not match\n" "enable filter\n" "disable filter\n") { - g_cfg->virt_trunk->rtp_accept_all = atoi(argv[0]); + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->rtp_accept_all = atoi(argv[0]); return CMD_SUCCESS; } @@ -704,21 +711,26 @@ "number endpoints <0-65534>", "Number options\n" "Endpoints available\n" "Number endpoints\n") { + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); /* + 1 as we start counting at one */ - g_cfg->virt_trunk->vty_number_endpoints = atoi(argv[0]) + 1; + trunk->vty_number_endpoints = atoi(argv[0]) + 1; return CMD_SUCCESS; } DEFUN(cfg_mgcp_omit_rtcp, cfg_mgcp_omit_rtcp_cmd, "rtcp-omit", RTCP_OMIT_STR) { - g_cfg->virt_trunk->omit_rtcp = 1; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, 0); + trunk->omit_rtcp = 1; return CMD_SUCCESS; } DEFUN(cfg_mgcp_no_omit_rtcp, cfg_mgcp_no_omit_rtcp_cmd, "no rtcp-omit", NO_STR RTCP_OMIT_STR) { - g_cfg->virt_trunk->omit_rtcp = 0; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->omit_rtcp = 0; return CMD_SUCCESS; } @@ -726,7 +738,9 @@ cfg_mgcp_patch_rtp_ssrc_cmd, "rtp-patch ssrc", RTP_PATCH_STR "Force a fixed SSRC\n") { - g_cfg->virt_trunk->force_constant_ssrc = 1; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->force_constant_ssrc = 1; return CMD_SUCCESS; } @@ -734,7 +748,9 @@ cfg_mgcp_no_patch_rtp_ssrc_cmd, "no rtp-patch ssrc", NO_STR RTP_PATCH_STR "Force a fixed SSRC\n") { - g_cfg->virt_trunk->force_constant_ssrc = 0; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->force_constant_ssrc = 0; return CMD_SUCCESS; } @@ -742,7 +758,9 @@ cfg_mgcp_patch_rtp_ts_cmd, "rtp-patch timestamp", RTP_PATCH_STR "Adjust RTP timestamp\n") { - g_cfg->virt_trunk->force_aligned_timing = 1; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->force_aligned_timing = 1; return CMD_SUCCESS; } @@ -750,7 +768,9 @@ cfg_mgcp_no_patch_rtp_ts_cmd, "no rtp-patch timestamp", NO_STR RTP_PATCH_STR "Adjust RTP timestamp\n") { - g_cfg->virt_trunk->force_aligned_timing = 0; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->force_aligned_timing = 0; return CMD_SUCCESS; } @@ -758,7 +778,9 @@ cfg_mgcp_patch_rtp_rfc5993hr_cmd, "rtp-patch rfc5993hr", RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) { - g_cfg->virt_trunk->rfc5993_hr_convert = true; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->rfc5993_hr_convert = true; return CMD_SUCCESS; } @@ -766,16 +788,20 @@ cfg_mgcp_no_patch_rtp_rfc5993hr_cmd, "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) { - g_cfg->virt_trunk->rfc5993_hr_convert = false; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->rfc5993_hr_convert = false; return CMD_SUCCESS; } DEFUN(cfg_mgcp_no_patch_rtp, cfg_mgcp_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { - g_cfg->virt_trunk->force_constant_ssrc = 0; - g_cfg->virt_trunk->force_aligned_timing = 0; - g_cfg->virt_trunk->rfc5993_hr_convert = false; + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + trunk->force_constant_ssrc = 0; + trunk->force_aligned_timing = 0; + trunk->rfc5993_hr_convert = false; return CMD_SUCCESS; } @@ -784,7 +810,9 @@ "rtp keep-alive <1-120>", RTP_STR RTP_KEEPALIVE_STR "Keep alive interval in secs\n") { - mgcp_trunk_set_keepalive(g_cfg->virt_trunk, atoi(argv[0])); + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + mgcp_trunk_set_keepalive(trunk, atoi(argv[0])); return CMD_SUCCESS; } @@ -793,7 +821,9 @@ "rtp keep-alive once", RTP_STR RTP_KEEPALIVE_STR "Send dummy packet only once after CRCX/MDCX\n") { - mgcp_trunk_set_keepalive(g_cfg->virt_trunk, MGCP_KEEPALIVE_ONCE); + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); return CMD_SUCCESS; } @@ -801,7 +831,9 @@ cfg_mgcp_no_rtp_keepalive_cmd, "no rtp keep-alive", NO_STR RTP_STR RTP_KEEPALIVE_STR) { - mgcp_trunk_set_keepalive(g_cfg->virt_trunk, MGCP_KEEPALIVE_NEVER); + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_NEVER); return CMD_SUCCESS; } @@ -826,6 +858,11 @@ struct mgcp_trunk *trunk; int index = atoi(argv[0]); + /* Due to historical reasons, the trunk id number 0 is reserved for the + * virtual trunk. This trunk is configured with separate VTY + * parameters, so we restrict the access to trunks with id numbers + * greater than 0. */ + trunk = mgcp_trunk_by_num(g_cfg, index); if (!trunk) { trunk = mgcp_trunk_alloc(g_cfg, MGCP_TRUNK_E1, index); @@ -846,6 +883,15 @@ struct mgcp_trunk *trunk; llist_for_each_entry(trunk, &g_cfg->trunks, entry) { + + /* Due to historical reasons, the virtual trunk is configured + using separate VTY parameters, so we omit writing the trunk + config of trunk 0 here. The configuration for the virtual + trunk is written by config_write_mgcp(). */ + + if (trunk->trunk_nr == MGCP_VIRT_TRUNK_ID) + continue; + vty_out(vty, " trunk %d%s", trunk->trunk_nr, VTY_NEWLINE); vty_out(vty, " %ssdp audio-payload send-ptime%s", trunk->audio_send_ptime ? "" : "no ", VTY_NEWLINE); @@ -869,7 +915,7 @@ else vty_out(vty, " no rtcp-omit%s", VTY_NEWLINE); if (trunk->force_constant_ssrc || trunk->force_aligned_timing - || g_cfg->virt_trunk->rfc5993_hr_convert) { + || trunk->rfc5993_hr_convert) { vty_out(vty, " %srtp-patch ssrc%s", trunk->force_constant_ssrc ? "" : "no ", VTY_NEWLINE); @@ -1123,7 +1169,7 @@ struct mgcp_endpoint *endp; struct mgcp_conn *conn; - trunk = find_trunk(g_cfg, atoi(argv[0])); + trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0])); if (!trunk) { vty_out(vty, "%%Trunk %d not found in the config.%s", atoi(argv[0]), VTY_NEWLINE); @@ -1182,7 +1228,7 @@ struct mgcp_conn_rtp *conn; const char *conn_id = NULL; - trunk = find_trunk(g_cfg, atoi(argv[0])); + trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0])); if (!trunk) { vty_out(vty, "%%Trunk %d not found in the config.%s", atoi(argv[0]), VTY_NEWLINE); @@ -1235,7 +1281,7 @@ struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; - trunk = find_trunk(g_cfg, atoi(argv[0])); + trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0])); if (!trunk) { vty_out(vty, "%%Trunk %d not found in the config.%s", atoi(argv[0]), VTY_NEWLINE); @@ -1268,7 +1314,7 @@ struct mgcp_endpoint *endp; int endp_no, rc; - trunk = find_trunk(g_cfg, atoi(argv[0])); + trunk = mgcp_trunk_by_num(g_cfg, atoi(argv[0])); if (!trunk) { vty_out(vty, "%%Trunk %d not found in the config.%s", atoi(argv[0]), VTY_NEWLINE); @@ -1317,6 +1363,9 @@ "osmux (on|off|only)", OSMUX_STR "Enable OSMUX\n" "Disable OSMUX\n" "Only use OSMUX\n") { + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + if (strcmp(argv[0], "off") == 0) { g_cfg->osmux = OSMUX_USAGE_OFF; return CMD_SUCCESS; @@ -1325,7 +1374,7 @@ else if (strcmp(argv[0], "only") == 0) g_cfg->osmux = OSMUX_USAGE_ONLY; - if (g_cfg->virt_trunk->audio_loop) { + if (trunk->audio_loop) { vty_out(vty, "Cannot use `loop' with `osmux'.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -1526,13 +1575,6 @@ return -1; } - if (mgcp_trunk_alloc_endpts(g_cfg->virt_trunk) != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Failed to initialize the virtual trunk (%d endpoints)\n", - g_cfg->virt_trunk->number_endpoints); - return -1; - } - llist_for_each_entry(trunk, &g_cfg->trunks, entry) { if (mgcp_trunk_alloc_endpts(trunk) != 0) { LOGP(DLMGCP, LOGL_ERROR, diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index d0da18b..56a17b1 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -760,6 +760,7 @@ { struct mgcp_config *cfg; struct mgcp_endpoint *endp; + struct mgcp_trunk *trunk; struct mgcp_trunk *trunk2; int i; struct mgcp_conn_rtp *conn = NULL; @@ -767,9 +768,10 @@ int rc; cfg = mgcp_config_alloc(); + trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); - cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_trunk_alloc_endpts(cfg->virt_trunk); + trunk->vty_number_endpoints = 64; + mgcp_trunk_alloc_endpts(trunk); cfg->policy_cb = mgcp_test_policy_cb; memset(last_conn_id, 0, sizeof(last_conn_id)); @@ -788,7 +790,7 @@ last_endpoint = -1; dummy_packets = 0; - osmo_talloc_replace_string(cfg, &cfg->virt_trunk->audio_fmtp_extra, + osmo_talloc_replace_string(cfg, &trunk->audio_fmtp_extra, t->extra_fmtp); inp = create_msg(t->req, last_conn_id); @@ -821,7 +823,7 @@ printf("Dummy packets: %d\n", dummy_packets); if (last_endpoint != -1) { - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, "1"); if (conn) { @@ -877,7 +879,7 @@ /* Check detected payload type */ if (conn && t->ptype != PTYPE_IGNORE) { OSMO_ASSERT(last_endpoint != -1); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; fprintf(stderr, "endpoint 0x%x: " "payload type %d (expected %d)\n", @@ -894,22 +896,24 @@ } mgcp_endpoints_release(trunk2); - mgcp_endpoints_release(cfg->virt_trunk); + mgcp_endpoints_release(trunk); talloc_free(cfg); } static void test_retransmission(void) { struct mgcp_config *cfg; + struct mgcp_trunk *trunk; struct mgcp_trunk *trunk2; int i; char last_conn_id[256]; int rc; cfg = mgcp_config_alloc(); + trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); - cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_trunk_alloc_endpts(cfg->virt_trunk); + trunk->vty_number_endpoints = 64; + mgcp_trunk_alloc_endpts(trunk); memset(last_conn_id, 0, sizeof(last_conn_id)); @@ -955,7 +959,7 @@ } mgcp_endpoints_release(trunk2); - mgcp_endpoints_release(cfg->virt_trunk); + mgcp_endpoints_release(trunk); talloc_free(cfg); } @@ -969,15 +973,17 @@ static void test_rqnt_cb(void) { struct mgcp_config *cfg; + struct mgcp_trunk *trunk; struct mgcp_trunk *trunk2; struct msgb *inp, *msg; char conn_id[256]; cfg = mgcp_config_alloc(); + trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); cfg->rqnt_cb = rqnt_cb; - cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_trunk_alloc_endpts(cfg->virt_trunk); + trunk->vty_number_endpoints = 64; + mgcp_trunk_alloc_endpts(trunk); trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); mgcp_trunk_alloc_endpts(trunk2); @@ -1010,7 +1016,7 @@ msgb_free(mgcp_handle_message(cfg, inp)); msgb_free(inp); mgcp_endpoints_release(trunk2); - mgcp_endpoints_release(cfg->virt_trunk); + mgcp_endpoints_release(trunk); talloc_free(cfg); } @@ -1376,6 +1382,7 @@ static void test_multilple_codec(void) { struct mgcp_config *cfg; + struct mgcp_trunk *trunk; struct mgcp_trunk *trunk2; struct mgcp_endpoint *endp; struct msgb *inp, *resp; @@ -1386,8 +1393,9 @@ printf("Testing multiple payload types\n"); cfg = mgcp_config_alloc(); - cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_trunk_alloc_endpts(cfg->virt_trunk); + trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); + trunk->vty_number_endpoints = 64; + mgcp_trunk_alloc_endpts(trunk); cfg->policy_cb = mgcp_test_policy_cb; trunk2 = mgcp_trunk_alloc(cfg, MGCP_TRUNK_E1, 1); @@ -1403,7 +1411,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 1); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1418,7 +1426,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 2); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1438,7 +1446,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 3); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 0); @@ -1453,7 +1461,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 4); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 18); @@ -1461,7 +1469,7 @@ /* Allocate 5 at mgw and let osmo-mgw pick a codec from the list */ last_endpoint = -1; inp = create_msg(CRCX_MULT_GSM_EXACT, NULL); - cfg->virt_trunk->no_audio_transcoding = 1; + trunk->no_audio_transcoding = 1; resp = mgcp_handle_message(cfg, inp); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); @@ -1469,7 +1477,7 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 0); @@ -1480,7 +1488,7 @@ msgb_free(inp); msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 3); @@ -1502,7 +1510,7 @@ last_endpoint = -1; inp = create_msg(CRCX_MULT_GSM_EXACT, NULL); - cfg->virt_trunk->no_audio_transcoding = 0; + trunk->no_audio_transcoding = 0; resp = mgcp_handle_message(cfg, inp); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); @@ -1510,13 +1518,13 @@ msgb_free(resp); OSMO_ASSERT(last_endpoint == 5); - endp = cfg->virt_trunk->endpoints[last_endpoint]; + endp = trunk->endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); OSMO_ASSERT(conn->end.codec->payload_type == 0); mgcp_endpoints_release(trunk2); - mgcp_endpoints_release(cfg->virt_trunk); + mgcp_endpoints_release(trunk); talloc_free(cfg); } @@ -1526,14 +1534,16 @@ struct mgcp_endpoint *endp; struct mgcp_conn_rtp *conn = NULL; struct mgcp_conn *_conn = NULL; + struct mgcp_trunk *trunk; printf("Testing no sequence flow on initial packet\n"); cfg = mgcp_config_alloc(); - cfg->virt_trunk->vty_number_endpoints = 64; - mgcp_trunk_alloc_endpts(cfg->virt_trunk); + trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); + trunk->vty_number_endpoints = 64; + mgcp_trunk_alloc_endpts(trunk); - endp = cfg->virt_trunk->endpoints[1]; + endp = trunk->endpoints[1]; _conn = mgcp_conn_alloc(NULL, endp, MGCP_CONN_TYPE_RTP, "test-connection"); @@ -1565,22 +1575,24 @@ OSMO_ASSERT(conn->state.stats.cycles == UINT16_MAX + 1); OSMO_ASSERT(conn->state.stats.max_seq == 0); - mgcp_endpoints_release(cfg->virt_trunk); + mgcp_endpoints_release(trunk); talloc_free(cfg); } static void test_no_name(void) { + struct mgcp_trunk *trunk; struct mgcp_trunk *trunk2; struct mgcp_config *cfg; struct msgb *inp, *msg; printf("Testing no rtpmap name\n"); cfg = mgcp_config_alloc(); + trunk = mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); - cfg->virt_trunk->vty_number_endpoints = 64; - cfg->virt_trunk->audio_send_name = 0; - mgcp_trunk_alloc_endpts(cfg->virt_trunk); + trunk->vty_number_endpoints = 64; + trunk->audio_send_name = 0; + mgcp_trunk_alloc_endpts(trunk); cfg->policy_cb = mgcp_test_policy_cb; @@ -1599,7 +1611,7 @@ msgb_free(msg); mgcp_endpoints_release(trunk2); - mgcp_endpoints_release(cfg->virt_trunk); + mgcp_endpoints_release(trunk); talloc_free(cfg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18590 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I81934fbd211b225ab7920e78510729c8e22607b3 Gerrit-Change-Number: 18590 Gerrit-PatchSet: 13 Gerrit-Owner: dexter 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 Jun 18 11:21:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:14 +0000 Subject: Change in osmo-mgw[master]: cosmetic: remove excess space In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18831 ) Change subject: cosmetic: remove excess space ...................................................................... cosmetic: remove excess space Change-Id: I3620efea2f809fb822c5b8f0a68036066dc6aa95 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 208604a..6736145 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -148,7 +148,7 @@ prefix_len = sizeof(MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK) - 1; if (strncmp(epname, MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, prefix_len) == 0) { - return mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); + return mgcp_trunk_by_num(cfg, MGCP_VIRT_TRUNK_ID); } /* E1 trunks are not implemented yet, so we deny any request for an -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3620efea2f809fb822c5b8f0a68036066dc6aa95 Gerrit-Change-Number: 18831 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:21:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:14 +0000 Subject: Change in osmo-mgw[master]: endp: move endpoint name generation into mgcp_endp.c In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18754 ) Change subject: endp: move endpoint name generation into mgcp_endp.c ...................................................................... endp: move endpoint name generation into mgcp_endp.c When the trunk allocates its endpoints by using mgcp_endp_alloc() ist passes the name for each endpoint as a parameter. In order to generate the name endpoint specific knowlege is required. This process can be simplified, since all what mgcp_trunk_alloc_endpts() does is calling mgcp_endp_alloc() in a loop in order to generate a consecuitve series of endpoints. The endpoint names are generated from the index of the for loop. When we just pass the index instead of the endpoint name to mgcp_endp_alloc(), then we can greatly simplify the code since all the knowledge about the name generation can go into mgcp_endp.c. The endpoint will name itsself by the trunk properties and the index number we pass with the allocator function. Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Related: OS#2659 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_trunk.c 3 files changed, 18 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 5737cd2..8fb8d2c 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -103,7 +103,7 @@ uint32_t x_osmo_ign; }; -struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name); +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, unsigned int index); void mgcp_endp_release(struct mgcp_endpoint *endp); struct mgcp_endpoint *mgcp_endp_by_name_trunk(int *cause, const char *epname, const struct mgcp_trunk *trunk); diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 6c78de2..3f1213b 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -33,11 +33,20 @@ .rtp.cleanup_cb = mgcp_cleanup_rtp_bridge_cb }; +/* Generate virtual endpoint name from given parameters */ +static char *gen_virtual_epname(void *ctx, const char *domain, + unsigned int index) +{ + return talloc_asprintf(ctx, "%s%x@%s", + MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, index, domain); +} + /*! allocate an endpoint and set default values. * \param[in] trunk configuration. - * \param[in] name endpoint name. + * \param[in] name endpoint index. * \returns endpoint on success, NULL on failure. */ -struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, char *name) +struct mgcp_endpoint *mgcp_endp_alloc(struct mgcp_trunk *trunk, + unsigned int index) { struct mgcp_endpoint *endp; @@ -48,15 +57,18 @@ INIT_LLIST_HEAD(&endp->conns); endp->cfg = trunk->cfg; endp->trunk = trunk; - endp->name = talloc_strdup(endp, name); switch (trunk->trunk_type) { case MGCP_TRUNK_VIRTUAL: endp->type = &ep_typeset.rtp; + endp->name = gen_virtual_epname(endp, trunk->cfg->domain, index); break; case MGCP_TRUNK_E1: - /* FIXME: Implement E1 allocation */ + /* FIXME: E1 trunk implementation is work in progress, this endpoint + * name is incomplete (subslots) */ + endp->name = talloc_asprintf(endp, "%s-1/%x", MGCP_ENDPOINT_PREFIX_E1_TRUNK, index); LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); + endp->type = &ep_typeset.rtp; break; default: osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 6736145..3692351 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -66,7 +66,6 @@ int mgcp_trunk_alloc_endpts(struct mgcp_trunk *trunk) { int i; - char ep_name_buf[MGCP_ENDPOINT_MAXLEN]; struct mgcp_endpoint *endp; /* Make sure the amount of requested endpoints does not execeed @@ -90,22 +89,7 @@ /* create endpoints */ for (i = 0; i < trunk->vty_number_endpoints; ++i) { - switch (trunk->trunk_type) { - case MGCP_TRUNK_VIRTUAL: - snprintf(ep_name_buf, sizeof(ep_name_buf), "%s%x@%s", MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, i, - trunk->cfg->domain); - break; - case MGCP_TRUNK_E1: - /* FIXME: E1 trunk implementation is work in progress, this endpoint - * name is incomplete (subslots) */ - snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x", MGCP_ENDPOINT_PREFIX_E1_TRUNK, i); - break; - default: - osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", - trunk->trunk_type, __FILE__, __LINE__); - } - - endp = mgcp_endp_alloc(trunk, ep_name_buf); + endp = mgcp_endp_alloc(trunk, i); if (!endp) { talloc_free(trunk->endpoints); return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I8dee07f1c63037d1f73113f69c612d1f2703cee5 Gerrit-Change-Number: 18754 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:21:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:21:15 +0000 Subject: Change in osmo-mgw[master]: endp: add name generator function for E1 endpoints In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18745 ) Change subject: endp: add name generator function for E1 endpoints ...................................................................... endp: add name generator function for E1 endpoints Currently the endpoint name that is generated for an E1 endpoint is not correct. Let's add an endpoint name generator function that derives a full endpoint name for a given E1 index Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Related: OS#2547 --- M src/libosmo-mgcp/mgcp_endp.c 1 file changed, 39 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 3f1213b..db8898b 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -41,6 +41,44 @@ MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, index, domain); } +/* Generate E1 endpoint name from given numeric parameters */ +static char *gen_e1_epname(void *ctx, uint8_t trunk_nr, uint8_t ts_nr, + uint8_t ss_nr) +{ + /* A 64k timeslot on an E1 line can be subdevied into the following + * subslot combinations: + * + * subslot: offset: + * [ ][ ][ 16k ][8k_subslot] 0 + * [ ][ 32k ][_subslot__][8k_subslot] 1 + * [ ][ subslot ][ 16k ][8k_subslot] 2 + * [ 64k ][__________][_subslot__][8k_subslot] 3 + * [ timeslot ][ ][ 16k ][8k_subslot] 4 + * [ ][ 32K ][_subslot__][8k_subslot] 5 + * [ ][ subslot ][ 16k ][8k_subslot] 6 + * [ ][ ][ subslot ][8k_subslot] 7 + * + * Since overlapping assignment of subsolts is not possible there is + * a limited set of subsolt assignments possible. The rates array + * lists the possible assignments as depicted above. Also each subslot + * assignment comes along with a bit offset in the E1 bitstream. The + * offsets arrays lists the bit offsets. */ + static const uint8_t rates[] = + { 64, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 8, 8 }; + static const uint8_t offsets[] = + { 0, 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; + unsigned int rate; + unsigned int offset; + + OSMO_ASSERT(ss_nr < sizeof(rates)); + + rate = rates[ss_nr]; + offset = offsets[ss_nr]; + + return talloc_asprintf(ctx, "%s%u/s-%u/su%u-%u", + MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, rate, offset); +} + /*! allocate an endpoint and set default values. * \param[in] trunk configuration. * \param[in] name endpoint index. @@ -64,11 +102,8 @@ endp->name = gen_virtual_epname(endp, trunk->cfg->domain, index); break; case MGCP_TRUNK_E1: - /* FIXME: E1 trunk implementation is work in progress, this endpoint - * name is incomplete (subslots) */ - endp->name = talloc_asprintf(endp, "%s-1/%x", MGCP_ENDPOINT_PREFIX_E1_TRUNK, index); - LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n"); endp->type = &ep_typeset.rtp; + endp->name = gen_e1_epname(endp, trunk->trunk_nr, index / 15, index % 15); break; default: osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57 Gerrit-Change-Number: 18745 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:23:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:23:09 +0000 Subject: Change in osmo-gsm-manuals[master]: bibliography, glossary: add MSC pooling related bits In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 ) Change subject: bibliography, glossary: add MSC pooling related bits ...................................................................... bibliography, glossary: add MSC pooling related bits Add 3GPP TS 23.236, "NRI" and "MSC pool". Depends: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e (osmo-bsc) Change-Id: I0640db26dc85ab7723c7160e405fc73f412fd706 --- M common/chapters/bibliography.adoc M common/chapters/glossary.adoc 2 files changed, 11 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/common/chapters/bibliography.adoc b/common/chapters/bibliography.adoc index 623f648..ad86ac2 100644 --- a/common/chapters/bibliography.adoc +++ b/common/chapters/bibliography.adoc @@ -41,6 +41,9 @@ - [[[3gpp-ts-23-048]]] 3GPP TS 23.048: Security mechanisms for the (U)SIM application toolkit; Stage 2 http://www.3gpp.org/DynaReport/23048.htm +- [[[3gpp-ts-23-236]]] 3GPP TS 23.236: Intra-domain connection of Radio Access + Network (RAN) nodes to multiple Core Network (CN) nodes + http://www.3gpp.org/DynaReport/23236.htm - [[[3gpp-ts-24-007]]] 3GPP TS 24.007: Mobile radio interface signalling layer 3; General Aspects http://www.3gpp.org/DynaReport/24007.htm diff --git a/common/chapters/glossary.adoc b/common/chapters/glossary.adoc index 0c914cb..d6a6c2d 100644 --- a/common/chapters/glossary.adoc +++ b/common/chapters/glossary.adoc @@ -201,6 +201,10 @@ MSC:: Mobile Switching Center; network element in the circuit-switched core network +MSC pool:: + A number of redundant MSCs serving the same core network, which a BSC / RNC + distributes load across; see also the "MSC Pooling" chapter in OsmoBSC's user + manual <> and _3GPP TS 23.236_ <<3gpp-ts-23-236>> MSISDN:: Mobile Subscriber ISDN Number; telephone number of the subscriber MT:: @@ -214,6 +218,10 @@ NITB:: Network In The Box; combines functionality traditionally provided by BSC, MSC, VLR, HLR, SMSC functions; see OsmoNITB +NRI:: + Network Resource Indicator, typically 10 bits of a TMSI indicating which MSC + of an MSC pool attached the subscriber; see also the "MSC Pooling" chapter in + OsmoBSC's user manual <> and _3GPP TS 23.236_ <<3gpp-ts-23-236>> NSEI:: NS Entity Identifier NVCI:: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/18780 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: I0640db26dc85ab7723c7160e405fc73f412fd706 Gerrit-Change-Number: 18780 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:23:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:23:35 +0000 Subject: Change in osmo-sgsn[master]: gbproxy_test.c: fix mobile identity test data In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18585 ) Change subject: gbproxy_test.c: fix mobile identity test data ...................................................................... gbproxy_test.c: fix mobile identity test data Fix the final nibble of all IMSI BCD digits to 0xf, since it is a filler digit. The encoded IMSI has an even amount of digits (14) and must contain a 0xf filler nibble at the end. The test data looked correct due to repeated '1' digits. wrong hex: 11 12 13 14 15 16 17 18 correct: 11 12 13 14 15 16 17 f8 order: 1T 32 54 76 98 ba dc Xe T = type, X = filler, 1..e = 14 digits This error was found when applying the new osmo_mobile_identity API. Change-Id: Ia006a3da6779ad1984f642e8ea29790a4daeb8b9 --- M tests/gbproxy/gbproxy_test.c M tests/gbproxy/gbproxy_test.ok 2 files changed, 271 insertions(+), 271 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index f5c730d..6dfe2c5 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -260,7 +260,7 @@ static const unsigned char dtap_attach_req4[] = { 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, 0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, 0x19, + 0xf8, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, 0x19, 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba, 0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, @@ -275,19 +275,19 @@ /* DTAP - Identity Response */ static const unsigned char dtap_identity_resp[] = { 0x08, 0x16, 0x08, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18 + 0x16, 0x17, 0xf8 }; /* DTAP - Identity Response, IMSI 2 */ static const unsigned char dtap_identity2_resp[] = { 0x08, 0x16, 0x08, 0x11, 0x12, 0x99, 0x99, 0x99, - 0x16, 0x17, 0x18 + 0x16, 0x17, 0xf8 }; /* DTAP - Identity Response, IMSI 3 */ static const unsigned char dtap_identity3_resp[] = { 0x08, 0x16, 0x08, 0x11, 0x12, 0x99, 0x99, 0x99, - 0x26, 0x27, 0x28 + 0x26, 0x27, 0xf8 }; /* DTAP - Attach Accept */ @@ -1650,7 +1650,7 @@ const uint32_t local_tlli = 0xefe2b700; const uint32_t foreign_tlli = 0xbbc54679; const uint32_t foreign_tlli2 = 0xbb00beef; - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; + const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; const char *patch_re = "^9898|^121314"; struct gbproxy_link_info *link_info; struct gbproxy_peer *peer; @@ -1992,8 +1992,8 @@ const uint32_t foreign_tlli1 = 0x8000dead; const uint32_t foreign_tlli2 = 0x8000beef; - const uint8_t imsi1[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - const uint8_t imsi2[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x16, 0x17, 0x18}; + const uint8_t imsi1[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; + const uint8_t imsi2[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info, *link_info2; struct gbproxy_peer *peer; @@ -2224,7 +2224,7 @@ const uint32_t foreign_bss_tlli = 0x8000dead; - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; + const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info; struct gbproxy_peer *peer; unsigned bss_nu = 0; @@ -2550,7 +2550,7 @@ const uint32_t foreign_bss_tlli = 0x8000dead; - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; + const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info; struct gbproxy_peer *peer; unsigned bss_nu = 0; @@ -2737,7 +2737,7 @@ const uint32_t foreign_bss_tlli = 0x8000dead; const uint32_t other_bss_tlli = 0x8000beef; - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; + const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info; struct gbproxy_peer *peer; unsigned bss_nu = 0; @@ -3058,9 +3058,9 @@ const uint32_t local_bss_tlli3 = 0xc0dead05; const uint32_t foreign_bss_tlli3 = 0x8000feed; - const uint8_t imsi1[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - const uint8_t imsi2[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x16, 0x17, 0x18}; - const uint8_t imsi3[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x26, 0x27, 0x28}; + const uint8_t imsi1[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; + const uint8_t imsi2[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x16, 0x17, 0xf8}; + const uint8_t imsi3[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x26, 0x27, 0xf8}; struct gbproxy_link_info *link_info; struct gbproxy_link_info *other_info; struct gbproxy_peer *peer; @@ -3542,7 +3542,7 @@ const uint32_t local_tlli = 0xefe2b700; const uint32_t foreign_tlli = 0xafe2b700; - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; + const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xf8}; struct gbproxy_link_info *link_info, *link_info2; struct gbproxy_peer *peer; unsigned bss_nu = 0; @@ -4532,8 +4532,8 @@ struct gbproxy_config cfg = {0}; struct gbproxy_peer *peer; const char *err_msg = NULL; - const uint8_t imsi1[] = { GSM_MI_TYPE_IMSI, 0x23, 0x24, 0x25, 0x26 }; - const uint8_t imsi2[] = { GSM_MI_TYPE_IMSI, 0x26, 0x27, 0x28, 0x29 }; + const uint8_t imsi1[] = { GSM_MI_TYPE_IMSI, 0x23, 0x24, 0x25, 0xf6 }; + const uint8_t imsi2[] = { GSM_MI_TYPE_IMSI, 0x26, 0x27, 0x28, 0xf9 }; const uint8_t imsi3[] = { GSM_MI_TYPE_IMSI | 0x10, 0x32, 0x54, 0x76, 0xf8 }; const uint32_t tlli1 = 1234 | 0xc0000000; const uint32_t tlli2 = 5678 | 0xc0000000; diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok index 75f31ab..03de12e 100644 --- a/tests/gbproxy/gbproxy_test.ok +++ b/tests/gbproxy/gbproxy_test.ok @@ -1822,14 +1822,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 8000dead, IMSI (none), AGE 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae result (IDENT RESPONSE) = 0 @@ -1840,14 +1840,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 8000dead, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 result (ATTACH ACCEPT) = 0 @@ -1879,14 +1879,14 @@ TLLI-Cache: 1 TLLI 8000dead/efe2b700 -> 8000dead/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d result (GMM INFO) = 0 @@ -1943,14 +1943,14 @@ TLLI 8000beef -> 8000beef, IMSI (none), AGE 0 TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 +00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 f8 15 36 87 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 +00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 f8 15 36 87 NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 +00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 f8 15 36 87 result (IDENT RESPONSE) = 0 @@ -1964,14 +1964,14 @@ TLLI 8000beef -> 8000beef, IMSI 12199999961718, AGE 0 TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 +00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 +00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 +00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 result (ATTACH ACCEPT) = 0 @@ -2004,14 +2004,14 @@ TLLI-Cache: 1 TLLI 8000beef/efe2b700 -> 8000beef/efe2b700, IMSI 12199999961718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 result (GMM INFO) = 0 @@ -2210,26 +2210,26 @@ result (IDENT REQUEST) = 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a +00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 f8 1d ff 1c CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a +00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 f8 1d ff 1c NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a +00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 f8 1d ff 1c result (IDENT RESPONSE) = 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 be 38 c0 +00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 be 38 c0 result (ATTACH ACCEPT) = 0 @@ -2258,14 +2258,14 @@ result (ACT PDP CTX REQ (REPLACE APN)) = 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d result (GMM INFO) = 0 @@ -2319,14 +2319,14 @@ result (DETACH REQ) = 0 PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 result (DETACH ACC) = 0 @@ -2358,14 +2358,14 @@ result (RA UPD REQ) = 0 PROCESSING RA UPD ACC from 0x05060708:32000 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 +00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 +00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 3a 03 54 +00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 19 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 3a 03 54 result (RA UPD ACC) = 0 @@ -2652,14 +2652,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI (none), AGE 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae result (IDENT RESPONSE) = 0 @@ -2673,14 +2673,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 result (ATTACH ACCEPT) = 0 @@ -2722,14 +2722,14 @@ TLLI-Cache: 1 TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d result (GMM INFO) = 0 @@ -2786,14 +2786,14 @@ result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e result (XID (DL)) = 0 @@ -2810,14 +2810,14 @@ result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 result (LL11 DNS RESP (DL)) = 0 @@ -2849,14 +2849,14 @@ result (RA UPD REQ (P-TMSI 2)) = 0 PROCESSING RA UDP ACC (P-TMSI 2) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 0d 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 02 17 16 bb 4d a0 +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 0d 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 02 17 16 bb 4d a0 result (RA UDP ACC (P-TMSI 2)) = 0 @@ -2890,14 +2890,14 @@ result (RA UPD REQ (P-TMSI 3)) = 0 PROCESSING RA UDP ACC (P-TMSI 3) from 0x05060708:32000 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 c0 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 +00 00 10 02 00 c0 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 result (RA UDP ACC (P-TMSI 3)) = 0 @@ -2931,14 +2931,14 @@ result (RA UPD COMPLETE) = 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 result (GMM INFO) = 0 @@ -3051,14 +3051,14 @@ TLLI-Cache: 1 TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 PROCESSING PAGING_PS from 0x05060708:32000 -00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 e0 54 32 10 +00 00 00 00 06 0d 88 11 12 13 14 15 16 17 f8 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 e0 54 32 10 CALLBACK, event 0, msg length 34, bvci 0x0000 -00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 e0 54 32 10 +00 00 00 00 06 0d 88 11 12 13 14 15 16 17 f8 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 e0 54 32 10 NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 34 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 38 -00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 c0 de ad 03 +00 00 00 00 06 0d 88 11 12 13 14 15 16 17 f8 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 c0 de ad 03 result (PAGING_PS) = 0 @@ -3136,14 +3136,14 @@ result (GMM INFO) = 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b +00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b +00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b +00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b result (GMM INFO) = 0 @@ -3181,14 +3181,14 @@ TLLI-Cache: 1 TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 +00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 +00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 +00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 result (DETACH ACC) = 0 @@ -3380,14 +3380,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI (none), AGE 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae result (IDENT RESPONSE) = 0 @@ -3401,14 +3401,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 result (ATTACH ACCEPT) = 0 @@ -3425,14 +3425,14 @@ TLLI-Cache: 1 TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT (duplicated) from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 1d 9e 24 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 1d 9e 24 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 1d 9e 24 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 1d 9e 24 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 42 f6 fc +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 42 f6 fc result (ATTACH ACCEPT (duplicated)) = 0 @@ -3474,14 +3474,14 @@ TLLI-Cache: 1 TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b result (GMM INFO) = 0 @@ -3525,14 +3525,14 @@ TLLI-Cache: 1 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 result (DETACH ACC) = 0 @@ -3693,10 +3693,10 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 79 @@ -3734,14 +3734,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 result (IDENT RESPONSE) = 0 @@ -3755,14 +3755,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 result (ATTACH ACCEPT) = 0 @@ -3804,14 +3804,14 @@ TLLI-Cache: 1 TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d result (GMM INFO) = 0 @@ -3841,14 +3841,14 @@ result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e result (XID (DL)) = 0 @@ -3865,14 +3865,14 @@ result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 result (LL11 DNS RESP (DL)) = 0 @@ -4062,14 +4062,14 @@ TLLI-Cache: 1 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee result (DETACH ACC) = 0 @@ -4099,10 +4099,10 @@ result (RA UPD REQ) = 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 13 14 15 16 17 18 35 23 fc +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 13 14 15 16 17 f8 9f c7 7a CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 13 14 15 16 17 18 35 23 fc +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 13 14 15 16 17 f8 9f c7 7a NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 85 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 89 @@ -4127,14 +4127,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead02, IMSI 12131415161718, AGE 0 PROCESSING RA UDP ACC from 0x05060708:32000 -00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 36 98 77 +00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 36 98 77 CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 36 98 77 +00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 36 98 77 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 result (RA UDP ACC) = 0 @@ -4185,14 +4185,14 @@ TLLI-Cache: 1 TLLI 8000dead/c0dead03 -> 78dead02/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 +00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 result (DETACH ACC) = 0 @@ -4603,10 +4603,10 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress, SGSN NSEI 65535 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 79 @@ -4644,14 +4644,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 result (IDENT RESPONSE) = 0 @@ -4665,14 +4665,14 @@ TLLI-Cache: 1 TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 +00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 result (ATTACH ACCEPT) = 0 @@ -4714,14 +4714,14 @@ TLLI-Cache: 1 TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d result (GMM INFO) = 0 @@ -4751,14 +4751,14 @@ result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e result (XID (DL)) = 0 @@ -4775,14 +4775,14 @@ result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 result (LL11 DNS RESP (DL)) = 0 @@ -4928,10 +4928,10 @@ TLLI 8000beef -> 78dead02, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress, SGSN NSEI 65535 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 15 08 16 08 11 12 99 99 99 16 17 18 b2 dd 58 +00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 15 08 16 08 11 12 99 99 99 16 17 f8 18 39 de CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 15 08 16 08 11 12 99 99 99 16 17 18 b2 dd 58 +00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 15 08 16 08 11 12 99 99 99 16 17 f8 18 39 de NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN 2 at 0x15161718:32001, msg length 79 @@ -4980,14 +4980,14 @@ TLLI 8000beef -> 78dead02, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 18 a5 cc b3 +00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 f8 0f 28 35 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 18 a5 cc b3 +00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 f8 0f 28 35 NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN 2 at 0x15161718:32001, msg length 44 -00 00 10 02 01 78 de ad 02 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 18 a5 cc b3 +00 00 10 02 01 78 de ad 02 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 f8 0f 28 35 result (IDENT RESPONSE) = 0 @@ -5006,14 +5006,14 @@ TLLI 8000beef -> 78dead02, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING ATTACH ACCEPT from 0x15161718:32001 -00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 e0 98 76 54 cb 1c 5b +00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 e0 98 76 54 cb 1c 5b CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 e0 98 76 54 cb 1c 5b +00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 e0 98 76 54 cb 1c 5b NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 03 32 40 fa +00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 03 32 40 fa result (ATTACH ACCEPT) = 0 @@ -5058,14 +5058,14 @@ TLLI 8000beef/c0dead03 -> 78dead02/e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING GMM INFO from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 +00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 result (GMM INFO) = 0 @@ -5096,14 +5096,14 @@ result (XID (UL)) = 0 PROCESSING XID (DL) from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e +00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e result (XID (DL)) = 0 @@ -5120,14 +5120,14 @@ result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 +00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 result (LL11 DNS RESP (DL)) = 0 @@ -5279,10 +5279,10 @@ TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 25 08 16 08 11 12 99 99 99 26 27 28 58 c7 cb +00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 25 08 16 08 11 12 99 99 99 26 27 f8 94 16 f5 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 25 08 16 08 11 12 99 99 99 26 27 28 58 c7 cb +00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 25 08 16 08 11 12 99 99 99 26 27 f8 94 16 f5 NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN 2 at 0x15161718:32001, msg length 79 @@ -5333,14 +5333,14 @@ TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 28 4f d6 20 +00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 f8 83 07 1e CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 28 4f d6 20 +00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 f8 83 07 1e NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN 2 at 0x15161718:32001, msg length 44 -00 00 10 02 01 78 de ad 04 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 28 4f d6 20 +00 00 10 02 01 78 de ad 04 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 f8 83 07 1e result (IDENT RESPONSE) = 0 @@ -5360,14 +5360,14 @@ TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING ATTACH ACCEPT (P-TMSI 1) from 0x15161718:32001 -00 00 10 02 00 78 de ad 04 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 74 91 01 +00 00 10 02 00 78 de ad 04 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 74 91 01 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 04 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 74 91 01 +00 00 10 02 00 78 de ad 04 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 74 91 01 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 05 3e 78 6e +00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 05 3e 78 6e result (ATTACH ACCEPT (P-TMSI 1)) = 0 @@ -5414,14 +5414,14 @@ TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 PROCESSING GMM INFO from 0x15161718:32001 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 +00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 result (GMM INFO) = 0 @@ -5471,14 +5471,14 @@ TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd +00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd result (DETACH ACC) = 0 @@ -5530,14 +5530,14 @@ TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 PROCESSING DETACH ACC from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f +00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f +00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 f8 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f result (DETACH ACC) = 0 @@ -5588,14 +5588,14 @@ TLLI-Cache: 1 TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 PROCESSING DETACH ACC from 0x15161718:32001 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 +00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 f8 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 result (DETACH ACC) = 0 @@ -5758,10 +5758,10 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 f8 07 e1 ae NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 79 @@ -5794,14 +5794,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 result (IDENT RESPONSE) = 0 @@ -5812,14 +5812,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 result (ATTACH ACCEPT) = 0 @@ -5851,14 +5851,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d result (GMM INFO) = 0 @@ -5892,14 +5892,14 @@ TLLI-Cache: 1 TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee result (DETACH ACC) = 0 @@ -5936,14 +5936,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 result (ATTACH ACCEPT) = 0 @@ -5980,14 +5980,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH REQ (re-attach) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 result (DETACH REQ (re-attach)) = 0 @@ -6046,14 +6046,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 result (ATTACH ACCEPT) = 0 @@ -6090,14 +6090,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c result (DETACH REQ) = 0 @@ -6134,14 +6134,14 @@ TLLI-Cache: 1 TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED PROCESSING ATTACH REQUEST (IMSI) from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 a5 85 76 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 f8 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 f0 f7 35 CALLBACK, event 0, msg length 78, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 a5 85 76 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 f8 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 f0 f7 35 NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 78 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 82 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 a5 85 76 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 f8 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 f0 f7 35 result (ATTACH REQUEST (IMSI)) = 0 @@ -6156,14 +6156,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e result (ATTACH ACCEPT) = 0 @@ -6200,14 +6200,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 result (DETACH REQ) = 0 @@ -6266,14 +6266,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e result (ATTACH ACCEPT) = 0 @@ -6322,14 +6322,14 @@ result (RA UPD REQ) = 0 PROCESSING RA UDP REJ from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 CALLBACK, event 0, msg length 68, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 68 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 72 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 result (RA UDP REJ) = 0 @@ -6371,10 +6371,10 @@ TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 49 08 16 08 11 12 13 14 15 16 17 18 86 ca 3f +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 49 08 16 08 11 12 13 14 15 16 17 f8 2c 2e b9 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 49 08 16 08 11 12 13 14 15 16 17 18 86 ca 3f +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 49 08 16 08 11 12 13 14 15 16 17 f8 2c 2e b9 NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 79 @@ -6395,14 +6395,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce result (ATTACH ACCEPT) = 0 @@ -6443,14 +6443,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 result (DETACH REQ) = 0 @@ -6515,14 +6515,14 @@ TLLI-Cache: 1 TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e result (ATTACH ACCEPT) = 0 @@ -6563,14 +6563,14 @@ TLLI-Cache: 1 TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH REQ (re-attach) from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad result (DETACH REQ (re-attach)) = 0 @@ -6635,14 +6635,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 result (ATTACH ACCEPT) = 0 @@ -6683,14 +6683,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 result (GMM INFO) = 0 @@ -6707,14 +6707,14 @@ TLLI-Cache: 1 TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH REQUEST (unexpected, IMSI) from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e1 11 8e +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 f8 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 b4 63 cd CALLBACK, event 0, msg length 78, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e1 11 8e +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 f8 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 b4 63 cd NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 78 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 82 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e1 11 8e +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 f8 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 b4 63 cd result (ATTACH REQUEST (unexpected, IMSI)) = 0 @@ -6731,14 +6731,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 result (ATTACH ACCEPT) = 0 @@ -6779,14 +6779,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b result (DETACH REQ) = 0 @@ -6851,14 +6851,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 result (ATTACH ACCEPT) = 0 @@ -6899,14 +6899,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 result (GMM INFO) = 0 @@ -6947,14 +6947,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 result (ATTACH ACCEPT) = 0 @@ -6995,14 +6995,14 @@ TLLI-Cache: 1 TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 +00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 result (DETACH REQ) = 0 @@ -7067,10 +7067,10 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 8d 08 16 08 11 12 13 14 15 16 17 18 74 ac 38 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 8d 08 16 08 11 12 13 14 15 16 17 f8 de 48 be CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 8d 08 16 08 11 12 13 14 15 16 17 18 74 ac 38 +00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 8d 08 16 08 11 12 13 14 15 16 17 f8 de 48 be NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 79 @@ -7091,14 +7091,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 PROCESSING ATTACH REJECT from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 result (ATTACH REJECT) = 0 @@ -7189,14 +7189,14 @@ TLLI-Cache: 1 TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress PROCESSING DETACH REQ (MT) from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 +00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 f8 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 result (DETACH REQ (MT)) = 0 @@ -7472,10 +7472,10 @@ TLLI-Cache: 1 TLLI 8000dead -> 8000dead, IMSI (none), AGE 0, STORED 2, IMSI acquisition in progress PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 +00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 f8 10 f0 45 NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) MESSAGE to SGSN at 0x05060708:32000, msg length 79 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia006a3da6779ad1984f642e8ea29790a4daeb8b9 Gerrit-Change-Number: 18585 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Thu Jun 18 11:23:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:23:36 +0000 Subject: Change in osmo-sgsn[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: If4f7be606e54cfa1c59084cf169785b1cbda5cf5 (libosmocore) Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 --- M TODO-RELEASE M src/gbproxy/gb_proxy_patch.c M src/gbproxy/gb_proxy_tlli.c M src/gbproxy/gb_proxy_vty.c M src/gprs/gprs_gb_parse.c M src/sgsn/gprs_gmm.c M tests/gbproxy/gbproxy_test.c 7 files changed, 137 insertions(+), 120 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 3096c4b..e5e3b39 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -1,2 +1,4 @@ #component what description / commit summary line manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 +libosmocore osmo_mobile_identity Depends on libosmocore > 1.3.0 +osmo-bsc Mobile Identity Coding OsmoBSC is stricter in rejecting invalid coding of Mobile Identity IEs diff --git a/src/gbproxy/gb_proxy_patch.c b/src/gbproxy/gb_proxy_patch.c index 6235b04..2bc3b4b 100644 --- a/src/gbproxy/gb_proxy_patch.c +++ b/src/gbproxy/gb_proxy_patch.c @@ -436,28 +436,26 @@ int gbproxy_check_imsi(struct gbproxy_match *match, const uint8_t *imsi, size_t imsi_len) { - char mi_buf[200]; int rc; + struct osmo_mobile_identity mi; if (!match->enable) return 1; - rc = gprs_is_mi_imsi(imsi, imsi_len); - if (rc > 0) - rc = gsm48_mi_to_string(mi_buf, sizeof(mi_buf), imsi, imsi_len); - if (rc <= 0) { + rc = osmo_mobile_identity_decode(&mi, imsi, imsi_len, false); + if (rc || mi.type != GSM_MI_TYPE_IMSI) { LOGP(DGPRS, LOGL_NOTICE, "Invalid IMSI %s\n", osmo_hexdump(imsi, imsi_len)); return -1; } - LOGP(DGPRS, LOGL_DEBUG, "Checking IMSI '%s' (%d)\n", mi_buf, rc); + LOGP(DGPRS, LOGL_DEBUG, "Checking IMSI '%s' (%d)\n", mi.imsi, rc); - rc = regexec(&match->re_comp, mi_buf, 0, NULL, 0); + rc = regexec(&match->re_comp, mi.imsi, 0, NULL, 0); if (rc == REG_NOMATCH) { LOGP(DGPRS, LOGL_INFO, "IMSI '%s' doesn't match pattern '%s'\n", - mi_buf, match->re_str); + mi.imsi, match->re_str); return 0; } diff --git a/src/gbproxy/gb_proxy_tlli.c b/src/gbproxy/gb_proxy_tlli.c index 4e21ede..e9271c2 100644 --- a/src/gbproxy/gb_proxy_tlli.c +++ b/src/gbproxy/gb_proxy_tlli.c @@ -401,14 +401,16 @@ peer, parse_ctx->imsi, parse_ctx->imsi_len); if (other_link_info && other_link_info != link_info) { - char mi_buf[200]; - mi_buf[0] = '\0'; - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - parse_ctx->imsi, parse_ctx->imsi_len); - LOGP(DGPRS, LOGL_INFO, - "Removing TLLI %08x from list (IMSI %s re-used)\n", - other_link_info->tlli.current, mi_buf); - gbproxy_delete_link_info(peer, other_link_info); + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) { + LOGP(DGPRS, LOGL_ERROR, "Failed to decode Mobile Identity\n"); + } else { + LOGP(DGPRS, LOGL_INFO, + "Removing TLLI %08x from list (IMSI %s re-used)\n", + other_link_info->tlli.current, mi.imsi); + gbproxy_delete_link_info(peer, other_link_info); + } } /* Update the IMSI field */ diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 5c4f454..355b23f 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -554,7 +554,6 @@ SHOW_STR "Display information about the Gb proxy\n" "Show logical links\n") { struct gbproxy_peer *peer; - char mi_buf[200]; time_t now; struct timespec ts = {0,}; @@ -569,17 +568,20 @@ llist_for_each_entry(link_info, &state->logical_links, list) { time_t age = now - link_info->timestamp; + struct osmo_mobile_identity mi; + const char *imsi_str; if (link_info->imsi > 0) { - snprintf(mi_buf, sizeof(mi_buf), "(invalid)"); - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - link_info->imsi, - link_info->imsi_len); + if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) + imsi_str = "(invalid)"; + else + imsi_str = mi.imsi; } else { - snprintf(mi_buf, sizeof(mi_buf), "(none)"); + imsi_str = "(none)"; } vty_out(vty, " TLLI %08x, IMSI %s, AGE %d", - link_info->tlli.current, mi_buf, (int)age); + link_info->tlli.current, imsi_str, (int)age); if (link_info->stored_msgs_len) vty_out(vty, ", STORED %"PRIu32"/%"PRIu32, @@ -708,7 +710,6 @@ struct gbproxy_peer *peer = 0; struct gbproxy_link_info *link_info, *nxt; struct gbproxy_patch_state *state; - char mi_buf[200]; int found = 0; match = argv[1][0]; @@ -729,6 +730,8 @@ state = &peer->patch_state; llist_for_each_entry_safe(link_info, nxt, &state->logical_links, list) { + struct osmo_mobile_identity mi; + switch (match) { case MATCH_TLLI: if (link_info->tlli.current != ident) @@ -741,12 +744,10 @@ case MATCH_IMSI: if (!link_info->imsi) continue; - mi_buf[0] = '\0'; - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - link_info->imsi, - link_info->imsi_len); - - if (strcmp(mi_buf, imsi) != 0) + if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) + continue; + if (strcmp(mi.imsi, imsi) != 0) continue; break; } diff --git a/src/gprs/gprs_gb_parse.c b/src/gprs/gprs_gb_parse.c index 379674a..e5de4d4 100644 --- a/src/gprs/gprs_gb_parse.c +++ b/src/gprs/gprs_gb_parse.c @@ -604,13 +604,12 @@ } if (parse_ctx->imsi) { - char mi_buf[200]; - mi_buf[0] = '\0'; - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - parse_ctx->imsi, parse_ctx->imsi_len); - LOGPC(DGPRS, log_level, "%s IMSI %s", - sep, mi_buf); - sep = ","; + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, parse_ctx->imsi, parse_ctx->imsi_len, false) == 0 + && mi.type == GSM_MI_TYPE_IMSI) { + LOGPC(DGPRS, log_level, "%s IMSI %s", sep, mi.imsi); + sep = ","; + } } if (parse_ctx->invalidate_tlli) { LOGPC(DGPRS, log_level, "%s invalidate", sep); diff --git a/src/sgsn/gprs_gmm.c b/src/sgsn/gprs_gmm.c index 0391229..182276c 100644 --- a/src/sgsn/gprs_gmm.c +++ b/src/sgsn/gprs_gmm.c @@ -280,8 +280,10 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ATT ACK"); struct gsm48_hdr *gh; struct gsm48_attach_ack *aa; - uint8_t *mid; unsigned long t; + struct osmo_mobile_identity mi; + uint8_t *l; + int rc; #if 0 uint8_t *ptsig; #endif @@ -321,9 +323,18 @@ #ifdef PTMSI_ALLOC /* Optional: Allocated P-TMSI */ - mid = msgb_put(msg, GSM48_MID_TMSI_LEN); - gsm48_generate_mid_from_tmsi(mid, mm->p_tmsi); - mid[0] = GSM48_IE_GMM_ALLOC_PTMSI; + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_TMSI, + .tmsi = mm->p_tmsi, + }; + l = msgb_tl_put(msg, GSM48_IE_GMM_ALLOC_PTMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + LOGMMCTXP(LOGL_ERROR, mm, "Cannot encode Mobile Identity\n"); + msgb_free(msg); + return -EINVAL; + } + *l = rc; #endif /* Optional: MS-identity (combined attach) */ @@ -1026,31 +1037,35 @@ static int gsm48_rx_gmm_id_resp(struct sgsn_mm_ctx *ctx, struct msgb *msg) { struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg); - uint8_t mi_type = gh->data[1] & GSM_MI_TYPE_MASK; - long mi_typel = mi_type; - char mi_string[GSM48_MI_SIZE]; + long mi_typel; + char mi_log_string[32]; + struct osmo_mobile_identity mi; - gsm48_mi_to_string(mi_string, sizeof(mi_string), &gh->data[1], gh->data[0]); if (!ctx) { DEBUGP(DMM, "from unknown TLLI 0x%08x?!? This should not happen\n", msgb_tlli(msg)); return -EINVAL; } - LOGMMCTXP(LOGL_DEBUG, ctx, "-> GMM IDENTITY RESPONSE: MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + if (osmo_mobile_identity_decode(&mi, &gh->data[1], gh->data[0], false)) { + LOGMMCTXP(LOGL_ERROR, ctx, "-> GMM IDENTITY RESPONSE: cannot decode Mobile Identity\n"); + return -EINVAL; + } + osmo_mobile_identity_to_str_buf(mi_log_string, sizeof(mi_log_string), &mi); + + LOGMMCTXP(LOGL_DEBUG, ctx, "-> GMM IDENTITY RESPONSE: MI=%s\n", mi_log_string); if (ctx->t3370_id_type == GSM_MI_TYPE_NONE) { LOGMMCTXP(LOGL_NOTICE, ctx, - "Got unexpected IDENTITY RESPONSE: MI(%s)=%s, " + "Got unexpected IDENTITY RESPONSE: MI=%s, " "ignoring message\n", - gsm48_mi_type_name(mi_type), mi_string); + mi_log_string); return -EINVAL; } - if (mi_type == ctx->t3370_id_type) + if (mi.type == ctx->t3370_id_type) mmctx_timer_stop(ctx, 3370); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: /* we already have a mm context with current TLLI, but no * P-TMSI / IMSI yet. What we now need to do is to fill @@ -1058,7 +1073,7 @@ if (strlen(ctx->imsi) == 0) { /* Check if we already have a MM context for this IMSI */ struct sgsn_mm_ctx *ictx; - ictx = sgsn_mm_ctx_by_imsi(mi_string); + ictx = sgsn_mm_ctx_by_imsi(mi.imsi); if (ictx) { /* Handle it like in gsm48_rx_gmm_det_req, * except that no messages are sent to the BSS */ @@ -1070,16 +1085,17 @@ mm_ctx_cleanup_free(ictx, "GPRS IMSI re-use"); } } - osmo_strlcpy(ctx->imsi, mi_string, sizeof(ctx->imsi)); + OSMO_STRLCPY_ARRAY(ctx->imsi, mi.imsi); break; case GSM_MI_TYPE_IMEI: - osmo_strlcpy(ctx->imei, mi_string, sizeof(ctx->imei)); + OSMO_STRLCPY_ARRAY(ctx->imei, mi.imei); break; case GSM_MI_TYPE_IMEISV: break; } /* Check if we can let the mobile station enter */ + mi_typel = mi.type; return osmo_fsm_inst_dispatch(ctx->gmm_att_req.fsm, E_IDEN_RESP_RECV, (void *)mi_typel); } @@ -1131,14 +1147,14 @@ struct gprs_llc_llme *llme) { struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg); - uint8_t *cur = gh->data, *msnc, *mi, *ms_ra_acc_cap; - uint8_t msnc_len, att_type, mi_len, mi_type, ms_ra_acc_cap_len; + uint8_t *cur = gh->data, *msnc, *mi_data, *ms_ra_acc_cap; + uint8_t msnc_len, att_type, mi_len, ms_ra_acc_cap_len; uint16_t drx_par; - uint32_t tmsi; - char mi_string[GSM48_MI_SIZE]; + char mi_log_string[32]; struct gprs_ra_id ra_id; uint16_t cid = 0; enum gsm48_gmm_cause reject_cause; + struct osmo_mobile_identity mi; int rc; LOGMMCTXP(LOGL_INFO, ctx, "-> GMM ATTACH REQUEST "); @@ -1182,15 +1198,15 @@ /* Mobile Identity (P-TMSI or IMSI) 10.5.1.4 */ mi_len = *cur++; - mi = cur; - if (mi_len > 8) - goto err_inval; - mi_type = *mi & GSM_MI_TYPE_MASK; + mi_data = cur; cur += mi_len; - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); + rc = osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + if (rc) + goto err_inval; + osmo_mobile_identity_to_str_buf(mi_log_string, sizeof(mi_log_string), &mi); - DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_string, + DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_log_string, get_value_string(gprs_att_t_strs, att_type)); /* Old routing area identification 10.5.5.15. Skip it */ @@ -1207,11 +1223,11 @@ /* Optional: Old P-TMSI Signature, Requested READY timer, TMSI Status */ - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: /* Try to find MM context based on IMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_imsi(mi_string); + ctx = sgsn_mm_ctx_by_imsi(mi.imsi); if (!ctx) { if (MSG_IU_UE_CTX(msg)) ctx = sgsn_mm_ctx_alloc_iu(MSG_IU_UE_CTX(msg)); @@ -1221,15 +1237,13 @@ reject_cause = GMM_CAUSE_NET_FAIL; goto rejected; } - osmo_strlcpy(ctx->imsi, mi_string, sizeof(ctx->imsi)); + OSMO_STRLCPY_ARRAY(ctx->imsi, mi.imsi); } break; case GSM_MI_TYPE_TMSI: - memcpy(&tmsi, mi+1, 4); - tmsi = ntohl(tmsi); /* Try to find MM context based on P-TMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_ptmsi(tmsi); + ctx = sgsn_mm_ctx_by_ptmsi(mi.tmsi); if (!ctx) { /* Allocate a context as most of our code expects one. * Context will not have an IMSI ultil ID RESP is received */ @@ -1241,12 +1255,12 @@ reject_cause = GMM_CAUSE_NET_FAIL; goto rejected; } - ctx->p_tmsi = tmsi; + ctx->p_tmsi = mi.tmsi; } break; default: LOGMMCTXP(LOGL_NOTICE, ctx, "Rejecting ATTACH REQUEST with " - "MI type %s\n", gsm48_mi_type_name(mi_type)); + "MI %s\n", mi_log_string); reject_cause = GMM_CAUSE_MS_ID_NOT_DERIVED; goto rejected; } @@ -1275,8 +1289,8 @@ ctx->ciph_algo)) { reject_cause = GMM_CAUSE_PROTO_ERR_UNSPEC; LOGMMCTXP(LOGL_NOTICE, ctx, "Rejecting ATTACH REQUEST with MI " - "type %s because MS do not support required %s " - "encryption\n", gsm48_mi_type_name(mi_type), + "%s because MS do not support required %s " + "encryption\n", mi_log_string, get_value_string(gprs_cipher_names,ctx->ciph_algo)); goto rejected; } @@ -1423,8 +1437,10 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 UPD ACK"); struct gsm48_hdr *gh; struct gsm48_ra_upd_ack *rua; - uint8_t *mid; unsigned long t; + uint8_t *l; + int rc; + struct osmo_mobile_identity mi; rate_ctr_inc(&sgsn->rate_ctrs->ctr[CTR_GPRS_ROUTING_AREA_ACKED]); LOGMMCTXP(LOGL_INFO, mm, "<- ROUTING AREA UPDATE ACCEPT\n"); @@ -1454,9 +1470,17 @@ #ifdef PTMSI_ALLOC /* Optional: Allocated P-TMSI */ - mid = msgb_put(msg, GSM48_MID_TMSI_LEN); - gsm48_generate_mid_from_tmsi(mid, mm->p_tmsi); - mid[0] = GSM48_IE_GMM_ALLOC_PTMSI; + mi = (struct osmo_mobile_identity){ + .type = GSM_MI_TYPE_TMSI, + .tmsi = mm->p_tmsi, + }; + l = msgb_tl_put(msg, GSM48_IE_GMM_ALLOC_PTMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + msgb_free(msg); + return -EINVAL; + } + *l = rc; #endif /* Optional: Negotiated READY timer value */ @@ -1606,19 +1630,14 @@ } else if (TLVP_PRESENT(&tp, GSM48_IE_GMM_ALLOC_PTMSI)) { #ifdef BUILD_IU /* In Iu mode search only for ptmsi */ - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_len = TLVP_LEN(&tp, GSM48_IE_GMM_ALLOC_PTMSI); - const uint8_t *mi = TLVP_VAL(&tp, GSM48_IE_GMM_ALLOC_PTMSI); - uint8_t mi_type = *mi & GSM_MI_TYPE_MASK; - uint32_t tmsi; - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - - if (mi_type == GSM_MI_TYPE_TMSI) { - memcpy(&tmsi, mi+1, 4); - tmsi = ntohl(tmsi); - mmctx = sgsn_mm_ctx_by_ptmsi(tmsi); + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, TLVP_VAL(&tp, GSM48_IE_GMM_ALLOC_PTMSI), + TLVP_LEN(&tp, GSM48_IE_GMM_ALLOC_PTMSI), false) + || mi.type != GSM_MI_TYPE_TMSI) { + LOGIUP(MSG_IU_UE_CTX(msg), LOGL_ERROR, "Cannot decode P-TMSI\n"); + goto rejected; } + mmctx = sgsn_mm_ctx_by_ptmsi(mi.tmsi); #else LOGIUP(MSG_IU_UE_CTX(msg), LOGL_ERROR, "Rejecting GMM RA Update Request: No Iu support\n"); @@ -1802,11 +1821,11 @@ static int gsm48_rx_gmm_service_req(struct sgsn_mm_ctx *ctx, struct msgb *msg) { struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_gmmh(msg); - uint8_t *cur = gh->data, *mi; - uint8_t service_type, mi_len, mi_type; - uint32_t tmsi; + uint8_t *cur = gh->data, *mi_data; + uint8_t service_type, mi_len; struct tlv_parsed tp; - char mi_string[GSM48_MI_SIZE]; + struct osmo_mobile_identity mi; + char mi_log_string[32]; enum gsm48_gmm_cause reject_cause; int rc; @@ -1826,15 +1845,14 @@ /* Mobile Identity (P-TMSI or IMSI) 10.5.1.4 */ mi_len = *cur++; - mi = cur; - if (mi_len > 8) - goto err_inval; - mi_type = *mi & GSM_MI_TYPE_MASK; + mi_data = cur; cur += mi_len; + rc = osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + if (rc) + goto err_inval; + osmo_mobile_identity_to_str_buf(mi_log_string, sizeof(mi_log_string), &mi); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - - DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_string, + DEBUGPC(DMM, "MI(%s) type=\"%s\" ", mi_log_string, get_value_string(gprs_service_t_strs, service_type)); LOGPC(DMM, LOGL_INFO, "\n"); @@ -1842,11 +1860,11 @@ /* Optional: PDP context status, MBMS context status, Uplink data status, Device properties */ tlv_parse(&tp, &gsm48_gmm_att_tlvdef, cur, (msg->data + msg->len) - cur, 0, 0); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: /* Try to find MM context based on IMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_imsi(mi_string); + ctx = sgsn_mm_ctx_by_imsi(mi.imsi); if (!ctx) { /* FIXME: We need to have a context for service request? */ reject_cause = GMM_CAUSE_IMPL_DETACHED; @@ -1855,11 +1873,9 @@ msgid2mmctx(ctx, msg); break; case GSM_MI_TYPE_TMSI: - memcpy(&tmsi, mi+1, 4); - tmsi = ntohl(tmsi); /* Try to find MM context based on P-TMSI */ if (!ctx) - ctx = sgsn_mm_ctx_by_ptmsi(tmsi); + ctx = sgsn_mm_ctx_by_ptmsi(mi.tmsi); if (!ctx) { /* FIXME: We need to have a context for service request? */ reject_cause = GMM_CAUSE_IMPL_DETACHED; @@ -1869,7 +1885,7 @@ break; default: LOGMMCTXP(LOGL_NOTICE, ctx, "Rejecting SERVICE REQUEST with " - "MI type %s\n", gsm48_mi_type_name(mi_type)); + "MI %s\n", mi_log_string); reject_cause = GMM_CAUSE_MS_ID_NOT_DERIVED; goto rejected; } diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index 6dfe2c5..6433eb6 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -158,7 +158,8 @@ fprintf(stream, "%*s TLLI-Cache: %d\n", indent, "", state->logical_link_count); llist_for_each_entry(link_info, &state->logical_links, list) { - char mi_buf[200]; + struct osmo_mobile_identity mi; + const char *imsi_str; time_t age = now ? now - link_info->timestamp : 0; int stored_msgs = 0; struct llist_head *iter; @@ -166,13 +167,14 @@ llist_for_each(iter, &link_info->stored_msgs) stored_msgs++; - if (link_info->imsi_len > 0) { - snprintf(mi_buf, sizeof(mi_buf), "(invalid)"); - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - link_info->imsi, - link_info->imsi_len); + if (link_info->imsi > 0) { + if (osmo_mobile_identity_decode(&mi, link_info->imsi, link_info->imsi_len, false) + || mi.type != GSM_MI_TYPE_IMSI) + imsi_str = "(invalid)"; + else + imsi_str = mi.imsi; } else { - snprintf(mi_buf, sizeof(mi_buf), "(none)"); + imsi_str = "(none)"; } fprintf(stream, "%*s TLLI %08x", indent, "", link_info->tlli.current); @@ -186,7 +188,7 @@ link_info->sgsn_tlli.assigned); } fprintf(stream, ", IMSI %s, AGE %d", - mi_buf, (int)age); + imsi_str, (int)age); if (stored_msgs) fprintf(stream, ", STORED %d", stored_msgs); @@ -4809,10 +4811,7 @@ OSMO_ASSERT(gbproxy_check_imsi(&match, imsi1, ARRAY_SIZE(imsi1)) == 1); OSMO_ASSERT(gbproxy_check_imsi(&match, imsi2, ARRAY_SIZE(imsi2)) == 1); - /* imsi3_bad contains 0xE and 0xF digits, but the conversion function - * doesn't complain, so gbproxy_check_imsi() doesn't return -1 in this - * case. */ - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == 0); + OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi1, ARRAY_SIZE(tmsi1)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi2_bad, ARRAY_SIZE(tmsi2_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, imei1, ARRAY_SIZE(imei1)) == -1); @@ -4823,7 +4822,7 @@ OSMO_ASSERT(gbproxy_check_imsi(&match, imsi1, ARRAY_SIZE(imsi1)) == 0); OSMO_ASSERT(gbproxy_check_imsi(&match, imsi2, ARRAY_SIZE(imsi2)) == 0); - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == 0); + OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi1, ARRAY_SIZE(tmsi1)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi2_bad, ARRAY_SIZE(tmsi2_bad)) == -1); OSMO_ASSERT(gbproxy_check_imsi(&match, imei1, ARRAY_SIZE(imei1)) == -1); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4cacb10bac419633ca0c14f244f9903f7f517b49 Gerrit-Change-Number: 18716 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:25:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:25:52 +0000 Subject: Change in osmo-bts[master]: cosmetic: common/Makefile.am: split each source file in one line In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18882 ) Change subject: cosmetic: common/Makefile.am: split each source file in one line ...................................................................... cosmetic: common/Makefile.am: split each source file in one line Change-Id: I9c4d78fb80446fa4142950d947dad20856573275 --- M src/common/Makefile.am 1 file changed, 29 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 0a10abf..cd22f7b 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -7,11 +7,34 @@ endif noinst_LIBRARIES = libbts.a libl1sched.a -libbts_a_SOURCES = gsm_data_shared.c sysinfo.c logging.c abis.c oml.c bts.c \ - rsl.c vty.c paging.c measurement.c amr.c lchan.c \ - load_indication.c pcu_sock.c handover.c msg_utils.c \ - tx_power.c bts_ctrl_commands.c bts_ctrl_lookup.c \ - l1sap.c cbch.c power_control.c main.c phy_link.c \ - dtx_dl_amr_fsm.c scheduler_mframe.c ta_control.c +libbts_a_SOURCES = \ + gsm_data_shared.c \ + sysinfo.c \ + logging.c \ + abis.c \ + oml.c \ + bts.c \ + rsl.c \ + vty.c \ + paging.c \ + measurement.c \ + amr.c \ + lchan.c \ + load_indication.c \ + pcu_sock.c \ + handover.c \ + msg_utils.c \ + tx_power.c \ + bts_ctrl_commands.c \ + bts_ctrl_lookup.c \ + l1sap.c \ + cbch.c \ + power_control.c \ + main.c \ + phy_link.c \ + dtx_dl_amr_fsm.c \ + scheduler_mframe.c \ + ta_control.c \ + $(NULL) libl1sched_a_SOURCES = scheduler.c -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9c4d78fb80446fa4142950d947dad20856573275 Gerrit-Change-Number: 18882 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 Thu Jun 18 11:25:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:25:53 +0000 Subject: Change in osmo-bts[master]: cosmetic: include/osmo-bts/Makefile.am: split each header file in one... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18883 ) Change subject: cosmetic: include/osmo-bts/Makefile.am: split each header file in one line ...................................................................... cosmetic: include/osmo-bts/Makefile.am: split each header file in one line Change-Id: I58d86a8c2e8846f683d4414fcd2a3bf7f89049ce --- M include/osmo-bts/Makefile.am 1 file changed, 29 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/Makefile.am b/include/osmo-bts/Makefile.am index 668db32..d5e989a 100644 --- a/include/osmo-bts/Makefile.am +++ b/include/osmo-bts/Makefile.am @@ -1,5 +1,29 @@ -noinst_HEADERS = abis.h bts.h bts_model.h gsm_data.h gsm_data_shared.h logging.h measurement.h \ - oml.h paging.h rsl.h signal.h vty.h amr.h pcu_if.h pcuif_proto.h \ - handover.h msg_utils.h tx_power.h control_if.h cbch.h l1sap.h \ - power_control.h scheduler.h scheduler_backend.h phy_link.h \ - dtx_dl_amr_fsm.h ta_control.h +noinst_HEADERS = \ + abis.h \ + bts.h \ + bts_model.h \ + gsm_data.h \ + gsm_data_shared.h \ + logging.h \ + measurement.h \ + oml.h \ + paging.h \ + rsl.h \ + signal.h \ + vty.h \ + amr.h \ + pcu_if.h \ + pcuif_proto.h \ + handover.h \ + msg_utils.h \ + tx_power.h \ + control_if.h \ + cbch.h \ + l1sap.h \ + power_control.h \ + scheduler.h \ + scheduler_backend.h \ + phy_link.h \ + dtx_dl_amr_fsm.h \ + ta_control.h \ + $(NULL) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I58d86a8c2e8846f683d4414fcd2a3bf7f89049ce Gerrit-Change-Number: 18883 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 Thu Jun 18 11:25:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:25:53 +0000 Subject: Change in osmo-bts[master]: Merge gsm_data_shared.h into gsm_data.h In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18884 ) Change subject: Merge gsm_data_shared.h into gsm_data.h ...................................................................... Merge gsm_data_shared.h into gsm_data.h Old _shared one comes from time where we shared header with other componenets. It's no longer the case sine a logn time ago. The gsm_data_shared.h is only being included by gsm_data.h nowadays, so let's simply merge it to simplify header dependency and struct definitions. Similarly, gsm_data_shared.c is renamed to gsm_data.c Change-Id: Id60e7582e3a32dbc5e3531b87b2b49f07aee734d --- M include/osmo-bts/Makefile.am M include/osmo-bts/gsm_data.h D include/osmo-bts/gsm_data_shared.h M src/common/Makefile.am R src/common/gsm_data.c 5 files changed, 762 insertions(+), 772 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/Makefile.am b/include/osmo-bts/Makefile.am index d5e989a..4999ab4 100644 --- a/include/osmo-bts/Makefile.am +++ b/include/osmo-bts/Makefile.am @@ -3,7 +3,6 @@ bts.h \ bts_model.h \ gsm_data.h \ - gsm_data_shared.h \ logging.h \ measurement.h \ oml.h \ diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 1de5edd..80cc0be 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -1,10 +1,29 @@ #ifndef _GSM_DATA_H #define _GSM_DATA_H +#include +#include + #include +#include +#include +#include #include +#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include #include #include @@ -42,7 +61,748 @@ LCHAN_CIPH_RXTX_CONF, }; -#include +/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018 Table 10.5.2.33b.1: + 4-bit index is used (2#1111 = 10#15) */ +#define SI2Q_MAX_NUM 16 +/* length in bits (for single SI2quater message) */ +#define SI2Q_MAX_LEN 160 +#define SI2Q_MIN_LEN 18 + +/* lchans 0..3 are SDCCH in combined channel configuration, + use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */ +#define CCCH_LCHAN 4 + +#define TRX_NR_TS 8 +#define TS_MAX_LCHAN 8 + +#define MAX_VERSION_LENGTH 64 + +struct gsm_lchan; +struct osmo_rtp_socket; +struct pcu_sock_state; +struct smscb_msg; + +/* Network Management State */ +struct gsm_nm_state { + uint8_t operational; + uint8_t administrative; + uint8_t availability; +}; + +struct gsm_abis_mo { + /* A-bis OML Object Class */ + uint8_t obj_class; + /* is there still some procedure pending? */ + uint8_t procedure_pending; + /* A-bis OML Object Instance */ + struct abis_om_obj_inst obj_inst; + /* human-readable name */ + const char *name; + /* NM State */ + struct gsm_nm_state nm_state; + /* Attributes configured in this MO */ + struct tlv_parsed *nm_attr; + /* BTS to which this MO belongs */ + struct gsm_bts *bts; +}; + +#define MAX_A5_KEY_LEN (128/8) +#define RSL_ENC_ALG_A5(x) (x+1) + +/* state of a logical channel */ +enum gsm_lchan_state { + LCHAN_S_NONE, /* channel is not active */ + LCHAN_S_ACT_REQ, /* channel activation requested */ + LCHAN_S_ACTIVE, /* channel is active and operational */ + LCHAN_S_REL_REQ, /* channel release has been requested */ + LCHAN_S_REL_ERR, /* channel is in an error state */ + LCHAN_S_BROKEN, /* channel is somehow unusable */ + LCHAN_S_INACTIVE, /* channel is set inactive */ +}; + +#define MAX_NUM_UL_MEAS 104 +#define LC_UL_M_F_L1_VALID (1 << 0) +#define LC_UL_M_F_RES_VALID (1 << 1) +#define LC_UL_M_F_OSMO_EXT_VALID (1 << 2) + +struct bts_ul_meas { + /* BER in units of 0.01%: 10.000 == 100% ber, 0 == 0% ber */ + uint16_t ber10k; + /* timing advance offset (in 1/256 bits) */ + int16_t ta_offs_256bits; + /* C/I ratio in dB */ + float c_i; + /* flags */ + uint8_t is_sub:1; + /* RSSI in dBm * -1 */ + uint8_t inv_rssi; +}; + +struct amr_mode { + uint8_t mode; + uint8_t threshold; + uint8_t hysteresis; +}; + +struct amr_multirate_conf { + uint8_t gsm48_ie[2]; + struct amr_mode ms_mode[4]; + struct amr_mode bts_mode[4]; + uint8_t num_modes; +}; + +enum lchan_csd_mode { + LCHAN_CSD_M_NT, + LCHAN_CSD_M_T_1200_75, + LCHAN_CSD_M_T_600, + LCHAN_CSD_M_T_1200, + LCHAN_CSD_M_T_2400, + LCHAN_CSD_M_T_9600, + LCHAN_CSD_M_T_14400, + LCHAN_CSD_M_T_29000, + LCHAN_CSD_M_T_32000, +}; + +/* State of the SAPIs in the lchan */ +enum lchan_sapi_state { + LCHAN_SAPI_S_NONE, + LCHAN_SAPI_S_REQ, + LCHAN_SAPI_S_ASSIGNED, + LCHAN_SAPI_S_REL, + LCHAN_SAPI_S_ERROR, +}; + +struct gsm_lchan { + /* The TS that we're part of */ + struct gsm_bts_trx_ts *ts; + /* The logical subslot number in the TS */ + uint8_t nr; + /* The logical channel type */ + enum gsm_chan_t type; + /* RSL channel mode */ + enum rsl_cmod_spd rsl_cmode; + /* If TCH, traffic channel mode */ + enum gsm48_chan_mode tch_mode; + enum lchan_csd_mode csd_mode; + /* State */ + enum gsm_lchan_state state; + const char *broken_reason; + /* Encryption information */ + struct { + uint8_t alg_id; + uint8_t key_len; + uint8_t key[MAX_A5_KEY_LEN]; + } encr; + + struct { + uint32_t bound_ip; + uint32_t connect_ip; + uint16_t bound_port; + uint16_t connect_port; + uint16_t conn_id; + uint8_t rtp_payload; + uint8_t rtp_payload2; + uint8_t speech_mode; + struct osmo_rtp_socket *rtp_socket; + } abis_ip; + + uint8_t rqd_ta; + + char *name; + + /* Number of different GsmL1_Sapi_t used in osmo_bts_sysmo is 23. + * Currently we don't share these headers so this is a magic number. */ + struct llist_head sapi_cmds; + uint8_t sapis_dl[23]; + uint8_t sapis_ul[23]; + struct lapdm_channel lapdm_ch; + struct llist_head dl_tch_queue; + struct { + /* bitmask of all SI that are present/valid in si_buf */ + uint32_t valid; + /* bitmask of all SI that do not mirror the BTS-global SI values */ + uint32_t overridden; + uint32_t last; + /* buffers where we put the pre-computed SI: + SI2Q_MAX_NUM is the max number of SI2quater messages (see 3GPP TS 44.018) */ + sysinfo_buf_t buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; + } si; + struct { + uint8_t flags; + /* RSL measurement result number, 0 at lchan_act */ + uint8_t res_nr; + /* number of measurements stored in array below */ + uint8_t num_ul_meas; + struct bts_ul_meas uplink[MAX_NUM_UL_MEAS]; + /* last L1 header from the MS */ + uint8_t l1_info[2]; + struct gsm_meas_rep_unidir ul_res; + int16_t ms_toa256; + /* Frame number of the last measurement indication receceived */ + uint32_t last_fn; + /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ + struct { + /* minimum value of toa256 during measurement period */ + int16_t toa256_min; + /* maximum value of toa256 during measurement period */ + int16_t toa256_max; + /* standard deviation of toa256 value during measurement period */ + uint16_t toa256_std_dev; + } ext; + } meas; + struct { + struct amr_multirate_conf amr_mr; + struct { + struct osmo_fsm_inst *dl_amr_fsm; + /* TCH cache */ + uint8_t cache[20]; + /* FACCH cache */ + uint8_t facch[GSM_MACBLOCK_LEN]; + uint8_t len; + uint32_t fn; + bool is_update; + /* set for each SID frame to detect talkspurt for codecs + without explicit ONSET event */ + bool ul_sid; + /* indicates if DTXd was active during DL measurement + period */ + bool dl_active; + /* last UL SPEECH resume flag */ + bool is_speech_resume; + } dtx; + uint8_t last_cmr; + uint32_t last_fn; + } tch; + + /* 3GPP TS 48.058 ? 9.3.37: [0; 255] ok, -1 means invalid*/ + int16_t ms_t_offs; + /* 3GPP TS 45.010 ? 1.2 round trip propagation delay (in symbols) or -1 */ + int16_t p_offs; + + /* BTS-side ciphering state (rx only, bi-directional, ...) */ + uint8_t ciph_state; + uint8_t ciph_ns; + uint8_t loopback; + struct { + uint8_t active; + uint8_t ref; + /* T3105: PHYS INF retransmission */ + struct osmo_timer_list t3105; + /* counts up to Ny1 */ + unsigned int phys_info_count; + } ho; + /* S counter for link loss */ + int s; + /* Kind of the release/activation. E.g. RSL or PCU */ + int rel_act_kind; + /* RTP header Marker bit to indicate beginning of speech after pause */ + bool rtp_tx_marker; + /* power handling */ + struct { + uint8_t current; + uint8_t max; + bool fixed; + } ms_power_ctrl; + + /* BTS power reduction (in dB) */ + uint8_t bs_power_red; + + struct msgb *pending_rel_ind_msg; + + /* ECU (Error Concealment Unit) state */ + struct osmo_ecu_state *ecu_state; +}; + +static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) +{ + return lchan->meas.l1_info[1]; +} + +extern const struct value_string lchan_ciph_state_names[]; +static inline const char *lchan_ciph_state_name(uint8_t state) { + return get_value_string(lchan_ciph_state_names, state); +} + +enum gsm_bts_trx_ts_flags { + TS_F_PDCH_ACTIVE = 0x1000, + TS_F_PDCH_ACT_PENDING = 0x2000, + TS_F_PDCH_DEACT_PENDING = 0x4000, + TS_F_PDCH_PENDING_MASK = 0x6000 /*< + TS_F_PDCH_ACT_PENDING | TS_F_PDCH_DEACT_PENDING */ +}; + +/* One Timeslot in a TRX */ +struct gsm_bts_trx_ts { + struct gsm_bts_trx *trx; + /* number of this timeslot at the TRX */ + uint8_t nr; + + enum gsm_phys_chan_config pchan; + + struct { + enum gsm_phys_chan_config pchan_is; + enum gsm_phys_chan_config pchan_want; + struct msgb *pending_chan_activ; + } dyn; + + unsigned int flags; + struct gsm_abis_mo mo; + struct tlv_parsed nm_attr; + uint8_t nm_chan_comb; + int tsc; /* -1 == use BTS TSC */ + + struct { + /* Parameters below are configured by VTY */ + int enabled; + uint8_t maio; + uint8_t hsn; + struct bitvec arfcns; + uint8_t arfcns_data[1024/8]; + /* This is the pre-computed MA for channel assignments */ + struct bitvec ma; + uint8_t ma_len; /* part of ma_data that is used */ + uint8_t ma_data[8]; /* 10.5.2.21: max 8 bytes value part */ + } hopping; + + struct gsm_lchan lchan[TS_MAX_LCHAN]; +}; + +/* One TRX in a BTS */ +struct gsm_bts_trx { + /* list header in bts->trx_list */ + struct llist_head list; + + 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? */ + uint8_t rsl_tei; + struct e1inp_sign_link *rsl_link; + + /* Some BTS (specifically Ericsson RBS) have a per-TRX OML Link */ + struct e1inp_sign_link *oml_link; + + struct gsm_abis_mo mo; + struct tlv_parsed nm_attr; + struct { + struct gsm_abis_mo mo; + } bb_transc; + + uint16_t arfcn; + int nominal_power; /* in dBm */ + unsigned int max_power_red; /* in actual dB */ + uint8_t max_power_backoff_8psk; /* in actual dB OC-2G only */ + uint8_t c0_idle_power_red; /* in actual dB OC-2G only */ + + + struct trx_power_params power_params; + bool ms_pwr_ctl_soft; /* is power control loop done by osmocom software? */ + + struct { + void *l1h; + } role_bts; + + union { + struct { + unsigned int test_state; + uint8_t test_nr; + struct rxlev_stats rxlev_stat; + } ipaccess; + }; + struct gsm_bts_trx_ts ts[TRX_NR_TS]; +}; + +#define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) +#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i)) +#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i][0]) +#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i][0]) + +enum gsm_bts_type_variant { + BTS_UNKNOWN, + BTS_OSMO_LITECELL15, + BTS_OSMO_OC2G, + BTS_OSMO_OCTPHY, + BTS_OSMO_SYSMO, + BTS_OSMO_TRX, + BTS_OSMO_VIRTUAL, + BTS_OSMO_OMLDUMMY, + _NUM_BTS_VARIANT +}; + +/* Used by OML layer for BTS Attribute reporting */ +enum bts_attribute { + BTS_TYPE_VARIANT, + BTS_SUB_MODEL, + TRX_PHY_VERSION, +}; + +/* BTS implementation flags (internal use, not exposed via OML) */ +#define bts_internal_flag_get(bts, flag) \ + ((bts->flags & (typeof(bts->flags)) flag) != 0) +#define bts_internal_flag_set(bts, flag) \ + bts->flags |= (typeof(bts->flags)) flag + +/* TODO: add a brief description of this flag */ +#define BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP (1 << 0) +/* When this flag is set then the measurement data is included in + * (PRIM_PH_DATA) and struct ph_tch_param (PRIM_TCH). Otherwise the + * measurement data is passed using a separate MPH INFO MEAS IND. + * (See also ticket: OS#2977) */ +#define BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB (1 << 1) + +extern const struct value_string bts_impl_flag_desc[]; + +struct gsm_bts_gprs_nsvc { + struct gsm_bts *bts; + /* data read via VTY config file, to configure the BTS + * via OML from BSC */ + int id; + uint16_t nsvci; + uint16_t local_port; /* on the BTS */ + uint16_t remote_port; /* on the SGSN */ + uint32_t remote_ip; /* on the SGSN */ + + struct gsm_abis_mo mo; +}; + +enum gprs_rlc_par { + RLC_T3142, + RLC_T3169, + RLC_T3191, + RLC_T3193, + RLC_T3195, + RLC_N3101, + RLC_N3103, + RLC_N3105, + CV_COUNTDOWN, + T_DL_TBF_EXT, /* ms */ + T_UL_TBF_EXT, /* ms */ + _NUM_RLC_PAR +}; + +enum gprs_cs { + GPRS_CS1, + GPRS_CS2, + GPRS_CS3, + GPRS_CS4, + GPRS_MCS1, + GPRS_MCS2, + GPRS_MCS3, + GPRS_MCS4, + GPRS_MCS5, + GPRS_MCS6, + GPRS_MCS7, + GPRS_MCS8, + GPRS_MCS9, + _NUM_GRPS_CS +}; + +struct gprs_rlc_cfg { + uint16_t parameter[_NUM_RLC_PAR]; + struct { + uint16_t repeat_time; /* ms */ + uint8_t repeat_count; + } paging; + uint32_t cs_mask; /* bitmask of gprs_cs */ + uint8_t initial_cs; + uint8_t initial_mcs; +}; + +struct bts_smscb_state { + struct llist_head queue; /* list of struct smscb_msg */ + int queue_len; + struct rate_ctr_group *ctrs; + struct smscb_msg *cur_msg; /* current SMS-CB */ + struct smscb_msg *default_msg; /* default broadcast message; NULL if none */ +}; + +/* The amount of time within which a sudden disconnect of a newly established + * OML connection will cause a special warning to be logged. */ +#define OSMO_BTS_OML_CONN_EARLY_DISCONNECT 10 /* in seconds */ + +/* One BTS */ +struct gsm_bts { + /* list header in net->bts_list */ + struct llist_head list; + + /* number of the BTS in network */ + uint8_t nr; + /* human readable name / description */ + char *description; + /* Cell Identity */ + uint16_t cell_identity; + /* location area code of this BTS */ + uint16_t location_area_code; + /* Base Station Identification Code (BSIC), lower 3 bits is BCC, + * which is used as TSC for the CCCH */ + uint8_t bsic; + /* type of BTS */ + enum gsm_bts_type_variant variant; + enum gsm_band band; + char version[MAX_VERSION_LENGTH]; + char sub_model[MAX_VERSION_LENGTH]; + + /* public features of a given BTS (set/reported via OML) */ + struct bitvec *features; + /* implementation flags of a given BTS (not exposed via OML) */ + uint16_t flags; + + /* Connected PCU version (if any) */ + char pcu_version[MAX_VERSION_LENGTH]; + + /* maximum Tx power that the MS is permitted to use in this cell */ + int ms_max_power; + + /* how do we talk OML with this TRX? */ + struct e1inp_sign_link *oml_link; + struct timespec oml_conn_established_timestamp; + + /* Abis network management O&M handle */ + struct gsm_abis_mo mo; + + /* number of this BTS on given E1 link */ + uint8_t bts_nr; + + /* DTX features of this BTS */ + bool dtxd; + + /* CCCH is on C0 */ + struct gsm_bts_trx *c0; + + struct { + struct gsm_abis_mo mo; + } site_mgr; + + /* bitmask of all SI that are present/valid in si_buf */ + uint32_t si_valid; + /* 3GPP TS 44.018 Table 10.5.2.33b.1 INDEX and COUNT for SI2quater */ + uint8_t si2q_index; /* distinguish individual SI2quater messages */ + uint8_t si2q_count; /* si2q_index for the last (highest indexed) individual SI2quater message */ + /* buffers where we put the pre-computed SI */ + sysinfo_buf_t si_buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; + /* offsets used while generating SI2quater */ + size_t e_offset; + size_t u_offset; + /* decoded SI3 rest octets - *unmodified* as received from BSC */ + struct osmo_gsm48_si_ro_info si3_ro_decoded; + /* is SI3 GPRS Indicator currently disabled due to lack of PCU connection? */ + bool si3_gprs_ind_disabled; + + /* ip.access Unit ID's have Site/BTS/TRX layout */ + union { + struct { + uint16_t site_id; + uint16_t bts_id; + uint32_t flags; + uint32_t rsl_ip; + } ip_access; + }; + + /* Not entirely sure how ip.access specific this is */ + struct { + struct { + struct gsm_abis_mo mo; + uint16_t nsei; + uint8_t timer[7]; + } nse; + struct { + struct gsm_abis_mo mo; + uint16_t bvci; + uint8_t timer[11]; + struct gprs_rlc_cfg rlc_cfg; + } cell; + struct gsm_bts_gprs_nsvc nsvc[2]; + uint8_t rac; + } gprs; + + /* transceivers */ + int num_trx; + struct llist_head trx_list; + + struct rate_ctr_group *ctrs; + bool supp_meas_toa256; + + struct { + /* Interference Boundaries for OML */ + int16_t boundary[6]; + uint8_t intave; + } interference; + unsigned int t200_ms[7]; + unsigned int t3105_ms; + struct { + uint8_t overload_period; + struct { + /* Input parameters from OML */ + uint8_t load_ind_thresh; /* percent */ + uint8_t load_ind_period; /* seconds */ + /* Internal data */ + struct osmo_timer_list timer; + unsigned int pch_total; + unsigned int pch_used; + } ccch; + struct { + /* Input parameters from OML */ + int16_t busy_thresh; /* in dBm */ + uint16_t averaging_slots; + /* Internal data */ + unsigned int total; /* total nr */ + unsigned int busy; /* above busy_thresh */ + unsigned int access; /* access bursts */ + } rach; + } load; + uint8_t ny1; + uint8_t max_ta; + + /* AGCH queuing */ + struct { + struct llist_head queue; + int length; + int max_length; + + int thresh_level; /* Cleanup threshold in percent of max len */ + int low_level; /* Low water mark in percent of max len */ + int high_level; /* High water mark in percent of max len */ + + /* TODO: Use a rate counter group instead */ + uint64_t dropped_msgs; + uint64_t merged_msgs; + uint64_t rejected_msgs; + uint64_t agch_msgs; + uint64_t pch_msgs; + } agch_queue; + + struct { + uint8_t *prim_notif; /* ETWS primary notification (NULL if none) */ + ssize_t prim_notif_len; /* Length of prim_notif; expected 56 bytes */ + uint8_t page_size; + uint8_t num_pages; /* total number of pages */ + uint8_t next_page; /* next page number to be sent */ + bool pni; /* Primary Notification Identifier */ + } etws; + + struct paging_state *paging_state; + char *bsc_oml_host; + struct llist_head oml_queue; + unsigned int rtp_jitter_buf_ms; + bool rtp_jitter_adaptive; + + uint16_t rtp_port_range_start; + uint16_t rtp_port_range_end; + uint16_t rtp_port_range_next; + int rtp_ip_dscp; + + struct { + uint8_t ciphers; /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */ + } support; + struct { + uint8_t tc4_ctr; + } si; + struct gsm_time gsm_time; + /* frame number statistics (FN in PH-RTS.ind vs. PH-DATA.ind */ + struct { + int32_t min; /* minimum observed */ + int32_t max; /* maximum observed */ + int32_t avg256; /* accumulator */ + uint32_t avg_count; /* number of samples accumulated in avg256 */ + uint32_t avg_window; /* number of averages in avg_count */ + } fn_stats; + /* Radio Link Timeout counter. -1 disables timeout for + * lab/measurement purpose */ + int radio_link_timeout; + + int ul_power_target; /* Uplink Rx power target */ + + /* used by the sysmoBTS to adjust band */ + uint8_t auto_band; + + /* State for SMSCB (Cell Broadcast) for BASIC and EXTENDED channel */ + struct bts_smscb_state smscb_basic; + struct bts_smscb_state smscb_extended; + int smscb_queue_tgt_len; /* ideal/target queue length */ + int smscb_queue_max_len; /* maximum queue length */ + int smscb_queue_hyst; /* hysteresis for CBCH load indications */ + + int16_t min_qual_rach; /* minimum link quality (in centiBels) for Access Bursts */ + int16_t min_qual_norm; /* minimum link quality (in centiBels) for Normal Bursts */ + uint16_t max_ber10k_rach; /* Maximum permitted RACH BER in 0.01% */ + + struct { + char *sock_path; + } pcu; + + void *model_priv; /* Allocated by bts_model, contains model specific data pointer */ +}; + + +struct gsm_bts *gsm_bts_alloc(void *talloc_ctx, uint8_t bts_num); +struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); + +struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts); +struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num); + +enum bts_attribute str2btsattr(const char *s); +const char *btsatttr2str(enum bts_attribute v); + +enum gsm_bts_type_variant str2btsvariant(const char *arg); +const char *btsvariant2str(enum gsm_bts_type_variant v); + +extern const struct value_string gsm_pchant_names[13]; +extern const struct value_string gsm_pchant_descs[13]; +const char *gsm_pchan_name(enum gsm_phys_chan_config c); +enum gsm_phys_chan_config gsm_pchan_parse(const char *name); +const char *gsm_lchant_name(enum gsm_chan_t c); +char *gsm_trx_name(const struct gsm_bts_trx *trx); +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); +const char *gsm_lchans_name(enum gsm_lchan_state s); + +static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) +{ + return lchan->name; +} + +void gsm_abis_mo_reset(struct gsm_abis_mo *mo); + +struct gsm_abis_mo * +gsm_objclass2mo(struct gsm_bts *bts, uint8_t obj_class, + const struct abis_om_obj_inst *obj_inst); + +struct gsm_nm_state * +gsm_objclass2nmstate(struct gsm_bts *bts, uint8_t obj_class, + const struct abis_om_obj_inst *obj_inst); +void * +gsm_objclass2obj(struct gsm_bts *bts, uint8_t obj_class, + const struct abis_om_obj_inst *obj_inst); + +uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan); +uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, + enum gsm_phys_chan_config as_pchan); + +/* return the gsm_lchan for the CBCH (if it exists at all) */ +struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts); + +#define BSIC2BCC(bsic) ((bsic) & 0x3) + +static inline uint8_t gsm_ts_tsc(const struct gsm_bts_trx_ts *ts) +{ + if (ts->tsc != -1) + return ts->tsc; + else + return ts->trx->bts->bsic & 7; +} + +struct gsm_lchan *rsl_lchan_lookup(struct gsm_bts_trx *trx, uint8_t chan_nr, + int *rc); + +enum gsm_phys_chan_config ts_pchan(struct gsm_bts_trx_ts *ts); +uint8_t ts_subslots(struct gsm_bts_trx_ts *ts); +bool ts_is_tch(struct gsm_bts_trx_ts *ts); +const char *gsm_trx_unit_id(struct gsm_bts_trx *trx); + +int lchan2ecu_codec(const struct gsm_lchan *lchan); void lchan_set_state(struct gsm_lchan *lchan, enum gsm_lchan_state state); int conf_lchans_as_pchan(struct gsm_bts_trx_ts *ts, diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h deleted file mode 100644 index bbc1bd4..0000000 --- a/include/osmo-bts/gsm_data_shared.h +++ /dev/null @@ -1,769 +0,0 @@ -#ifndef _GSM_DATA_SHAREDH -#define _GSM_DATA_SHAREDH - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018 Table 10.5.2.33b.1: - 4-bit index is used (2#1111 = 10#15) */ -#define SI2Q_MAX_NUM 16 -/* length in bits (for single SI2quater message) */ -#define SI2Q_MAX_LEN 160 -#define SI2Q_MIN_LEN 18 - -/* lchans 0..3 are SDCCH in combined channel configuration, - use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */ -#define CCCH_LCHAN 4 - -#define TRX_NR_TS 8 -#define TS_MAX_LCHAN 8 - -#define MAX_VERSION_LENGTH 64 - -struct gsm_lchan; -struct osmo_rtp_socket; -struct pcu_sock_state; -struct smscb_msg; - -/* Network Management State */ -struct gsm_nm_state { - uint8_t operational; - uint8_t administrative; - uint8_t availability; -}; - -struct gsm_abis_mo { - /* A-bis OML Object Class */ - uint8_t obj_class; - /* is there still some procedure pending? */ - uint8_t procedure_pending; - /* A-bis OML Object Instance */ - struct abis_om_obj_inst obj_inst; - /* human-readable name */ - const char *name; - /* NM State */ - struct gsm_nm_state nm_state; - /* Attributes configured in this MO */ - struct tlv_parsed *nm_attr; - /* BTS to which this MO belongs */ - struct gsm_bts *bts; -}; - -#define MAX_A5_KEY_LEN (128/8) -#define RSL_ENC_ALG_A5(x) (x+1) - -/* state of a logical channel */ -enum gsm_lchan_state { - LCHAN_S_NONE, /* channel is not active */ - LCHAN_S_ACT_REQ, /* channel activation requested */ - LCHAN_S_ACTIVE, /* channel is active and operational */ - LCHAN_S_REL_REQ, /* channel release has been requested */ - LCHAN_S_REL_ERR, /* channel is in an error state */ - LCHAN_S_BROKEN, /* channel is somehow unusable */ - LCHAN_S_INACTIVE, /* channel is set inactive */ -}; - -#define MAX_NUM_UL_MEAS 104 -#define LC_UL_M_F_L1_VALID (1 << 0) -#define LC_UL_M_F_RES_VALID (1 << 1) -#define LC_UL_M_F_OSMO_EXT_VALID (1 << 2) - -struct bts_ul_meas { - /* BER in units of 0.01%: 10.000 == 100% ber, 0 == 0% ber */ - uint16_t ber10k; - /* timing advance offset (in 1/256 bits) */ - int16_t ta_offs_256bits; - /* C/I ratio in dB */ - float c_i; - /* flags */ - uint8_t is_sub:1; - /* RSSI in dBm * -1 */ - uint8_t inv_rssi; -}; - -struct amr_mode { - uint8_t mode; - uint8_t threshold; - uint8_t hysteresis; -}; - -struct amr_multirate_conf { - uint8_t gsm48_ie[2]; - struct amr_mode ms_mode[4]; - struct amr_mode bts_mode[4]; - uint8_t num_modes; -}; - -enum lchan_csd_mode { - LCHAN_CSD_M_NT, - LCHAN_CSD_M_T_1200_75, - LCHAN_CSD_M_T_600, - LCHAN_CSD_M_T_1200, - LCHAN_CSD_M_T_2400, - LCHAN_CSD_M_T_9600, - LCHAN_CSD_M_T_14400, - LCHAN_CSD_M_T_29000, - LCHAN_CSD_M_T_32000, -}; - -/* State of the SAPIs in the lchan */ -enum lchan_sapi_state { - LCHAN_SAPI_S_NONE, - LCHAN_SAPI_S_REQ, - LCHAN_SAPI_S_ASSIGNED, - LCHAN_SAPI_S_REL, - LCHAN_SAPI_S_ERROR, -}; - -struct gsm_lchan { - /* The TS that we're part of */ - struct gsm_bts_trx_ts *ts; - /* The logical subslot number in the TS */ - uint8_t nr; - /* The logical channel type */ - enum gsm_chan_t type; - /* RSL channel mode */ - enum rsl_cmod_spd rsl_cmode; - /* If TCH, traffic channel mode */ - enum gsm48_chan_mode tch_mode; - enum lchan_csd_mode csd_mode; - /* State */ - enum gsm_lchan_state state; - const char *broken_reason; - /* Encryption information */ - struct { - uint8_t alg_id; - uint8_t key_len; - uint8_t key[MAX_A5_KEY_LEN]; - } encr; - - struct { - uint32_t bound_ip; - uint32_t connect_ip; - uint16_t bound_port; - uint16_t connect_port; - uint16_t conn_id; - uint8_t rtp_payload; - uint8_t rtp_payload2; - uint8_t speech_mode; - struct osmo_rtp_socket *rtp_socket; - } abis_ip; - - uint8_t rqd_ta; - - char *name; - - /* Number of different GsmL1_Sapi_t used in osmo_bts_sysmo is 23. - * Currently we don't share these headers so this is a magic number. */ - struct llist_head sapi_cmds; - uint8_t sapis_dl[23]; - uint8_t sapis_ul[23]; - struct lapdm_channel lapdm_ch; - struct llist_head dl_tch_queue; - struct { - /* bitmask of all SI that are present/valid in si_buf */ - uint32_t valid; - /* bitmask of all SI that do not mirror the BTS-global SI values */ - uint32_t overridden; - uint32_t last; - /* buffers where we put the pre-computed SI: - SI2Q_MAX_NUM is the max number of SI2quater messages (see 3GPP TS 44.018) */ - sysinfo_buf_t buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; - } si; - struct { - uint8_t flags; - /* RSL measurement result number, 0 at lchan_act */ - uint8_t res_nr; - /* number of measurements stored in array below */ - uint8_t num_ul_meas; - struct bts_ul_meas uplink[MAX_NUM_UL_MEAS]; - /* last L1 header from the MS */ - uint8_t l1_info[2]; - struct gsm_meas_rep_unidir ul_res; - int16_t ms_toa256; - /* Frame number of the last measurement indication receceived */ - uint32_t last_fn; - /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ - struct { - /* minimum value of toa256 during measurement period */ - int16_t toa256_min; - /* maximum value of toa256 during measurement period */ - int16_t toa256_max; - /* standard deviation of toa256 value during measurement period */ - uint16_t toa256_std_dev; - } ext; - } meas; - struct { - struct amr_multirate_conf amr_mr; - struct { - struct osmo_fsm_inst *dl_amr_fsm; - /* TCH cache */ - uint8_t cache[20]; - /* FACCH cache */ - uint8_t facch[GSM_MACBLOCK_LEN]; - uint8_t len; - uint32_t fn; - bool is_update; - /* set for each SID frame to detect talkspurt for codecs - without explicit ONSET event */ - bool ul_sid; - /* indicates if DTXd was active during DL measurement - period */ - bool dl_active; - /* last UL SPEECH resume flag */ - bool is_speech_resume; - } dtx; - uint8_t last_cmr; - uint32_t last_fn; - } tch; - - /* 3GPP TS 48.058 ? 9.3.37: [0; 255] ok, -1 means invalid*/ - int16_t ms_t_offs; - /* 3GPP TS 45.010 ? 1.2 round trip propagation delay (in symbols) or -1 */ - int16_t p_offs; - - /* BTS-side ciphering state (rx only, bi-directional, ...) */ - uint8_t ciph_state; - uint8_t ciph_ns; - uint8_t loopback; - struct { - uint8_t active; - uint8_t ref; - /* T3105: PHYS INF retransmission */ - struct osmo_timer_list t3105; - /* counts up to Ny1 */ - unsigned int phys_info_count; - } ho; - /* S counter for link loss */ - int s; - /* Kind of the release/activation. E.g. RSL or PCU */ - int rel_act_kind; - /* RTP header Marker bit to indicate beginning of speech after pause */ - bool rtp_tx_marker; - /* power handling */ - struct { - uint8_t current; - uint8_t max; - bool fixed; - } ms_power_ctrl; - - /* BTS power reduction (in dB) */ - uint8_t bs_power_red; - - struct msgb *pending_rel_ind_msg; - - /* ECU (Error Concealment Unit) state */ - struct osmo_ecu_state *ecu_state; -}; - -static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) -{ - return lchan->meas.l1_info[1]; -} - -extern const struct value_string lchan_ciph_state_names[]; -static inline const char *lchan_ciph_state_name(uint8_t state) { - return get_value_string(lchan_ciph_state_names, state); -} - -enum gsm_bts_trx_ts_flags { - TS_F_PDCH_ACTIVE = 0x1000, - TS_F_PDCH_ACT_PENDING = 0x2000, - TS_F_PDCH_DEACT_PENDING = 0x4000, - TS_F_PDCH_PENDING_MASK = 0x6000 /*< - TS_F_PDCH_ACT_PENDING | TS_F_PDCH_DEACT_PENDING */ -}; - -/* One Timeslot in a TRX */ -struct gsm_bts_trx_ts { - struct gsm_bts_trx *trx; - /* number of this timeslot at the TRX */ - uint8_t nr; - - enum gsm_phys_chan_config pchan; - - struct { - enum gsm_phys_chan_config pchan_is; - enum gsm_phys_chan_config pchan_want; - struct msgb *pending_chan_activ; - } dyn; - - unsigned int flags; - struct gsm_abis_mo mo; - struct tlv_parsed nm_attr; - uint8_t nm_chan_comb; - int tsc; /* -1 == use BTS TSC */ - - struct { - /* Parameters below are configured by VTY */ - int enabled; - uint8_t maio; - uint8_t hsn; - struct bitvec arfcns; - uint8_t arfcns_data[1024/8]; - /* This is the pre-computed MA for channel assignments */ - struct bitvec ma; - uint8_t ma_len; /* part of ma_data that is used */ - uint8_t ma_data[8]; /* 10.5.2.21: max 8 bytes value part */ - } hopping; - - struct gsm_lchan lchan[TS_MAX_LCHAN]; -}; - -/* One TRX in a BTS */ -struct gsm_bts_trx { - /* list header in bts->trx_list */ - struct llist_head list; - - 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? */ - uint8_t rsl_tei; - struct e1inp_sign_link *rsl_link; - - /* Some BTS (specifically Ericsson RBS) have a per-TRX OML Link */ - struct e1inp_sign_link *oml_link; - - struct gsm_abis_mo mo; - struct tlv_parsed nm_attr; - struct { - struct gsm_abis_mo mo; - } bb_transc; - - uint16_t arfcn; - int nominal_power; /* in dBm */ - unsigned int max_power_red; /* in actual dB */ - uint8_t max_power_backoff_8psk; /* in actual dB OC-2G only */ - uint8_t c0_idle_power_red; /* in actual dB OC-2G only */ - - - struct trx_power_params power_params; - bool ms_pwr_ctl_soft; /* is power control loop done by osmocom software? */ - - struct { - void *l1h; - } role_bts; - - union { - struct { - unsigned int test_state; - uint8_t test_nr; - struct rxlev_stats rxlev_stat; - } ipaccess; - }; - struct gsm_bts_trx_ts ts[TRX_NR_TS]; -}; - -#define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) -#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i)) -#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i][0]) -#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i][0]) - -enum gsm_bts_type_variant { - BTS_UNKNOWN, - BTS_OSMO_LITECELL15, - BTS_OSMO_OC2G, - BTS_OSMO_OCTPHY, - BTS_OSMO_SYSMO, - BTS_OSMO_TRX, - BTS_OSMO_VIRTUAL, - BTS_OSMO_OMLDUMMY, - _NUM_BTS_VARIANT -}; - -/* Used by OML layer for BTS Attribute reporting */ -enum bts_attribute { - BTS_TYPE_VARIANT, - BTS_SUB_MODEL, - TRX_PHY_VERSION, -}; - -/* BTS implementation flags (internal use, not exposed via OML) */ -#define bts_internal_flag_get(bts, flag) \ - ((bts->flags & (typeof(bts->flags)) flag) != 0) -#define bts_internal_flag_set(bts, flag) \ - bts->flags |= (typeof(bts->flags)) flag - -/* TODO: add a brief description of this flag */ -#define BTS_INTERNAL_FLAG_MS_PWR_CTRL_DSP (1 << 0) -/* When this flag is set then the measurement data is included in - * (PRIM_PH_DATA) and struct ph_tch_param (PRIM_TCH). Otherwise the - * measurement data is passed using a separate MPH INFO MEAS IND. - * (See also ticket: OS#2977) */ -#define BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB (1 << 1) - -extern const struct value_string bts_impl_flag_desc[]; - -struct gsm_bts_gprs_nsvc { - struct gsm_bts *bts; - /* data read via VTY config file, to configure the BTS - * via OML from BSC */ - int id; - uint16_t nsvci; - uint16_t local_port; /* on the BTS */ - uint16_t remote_port; /* on the SGSN */ - uint32_t remote_ip; /* on the SGSN */ - - struct gsm_abis_mo mo; -}; - -enum gprs_rlc_par { - RLC_T3142, - RLC_T3169, - RLC_T3191, - RLC_T3193, - RLC_T3195, - RLC_N3101, - RLC_N3103, - RLC_N3105, - CV_COUNTDOWN, - T_DL_TBF_EXT, /* ms */ - T_UL_TBF_EXT, /* ms */ - _NUM_RLC_PAR -}; - -enum gprs_cs { - GPRS_CS1, - GPRS_CS2, - GPRS_CS3, - GPRS_CS4, - GPRS_MCS1, - GPRS_MCS2, - GPRS_MCS3, - GPRS_MCS4, - GPRS_MCS5, - GPRS_MCS6, - GPRS_MCS7, - GPRS_MCS8, - GPRS_MCS9, - _NUM_GRPS_CS -}; - -struct gprs_rlc_cfg { - uint16_t parameter[_NUM_RLC_PAR]; - struct { - uint16_t repeat_time; /* ms */ - uint8_t repeat_count; - } paging; - uint32_t cs_mask; /* bitmask of gprs_cs */ - uint8_t initial_cs; - uint8_t initial_mcs; -}; - -struct bts_smscb_state { - struct llist_head queue; /* list of struct smscb_msg */ - int queue_len; - struct rate_ctr_group *ctrs; - struct smscb_msg *cur_msg; /* current SMS-CB */ - struct smscb_msg *default_msg; /* default broadcast message; NULL if none */ -}; - -/* The amount of time within which a sudden disconnect of a newly established - * OML connection will cause a special warning to be logged. */ -#define OSMO_BTS_OML_CONN_EARLY_DISCONNECT 10 /* in seconds */ - -/* One BTS */ -struct gsm_bts { - /* list header in net->bts_list */ - struct llist_head list; - - /* number of the BTS in network */ - uint8_t nr; - /* human readable name / description */ - char *description; - /* Cell Identity */ - uint16_t cell_identity; - /* location area code of this BTS */ - uint16_t location_area_code; - /* Base Station Identification Code (BSIC), lower 3 bits is BCC, - * which is used as TSC for the CCCH */ - uint8_t bsic; - /* type of BTS */ - enum gsm_bts_type_variant variant; - enum gsm_band band; - char version[MAX_VERSION_LENGTH]; - char sub_model[MAX_VERSION_LENGTH]; - - /* public features of a given BTS (set/reported via OML) */ - struct bitvec *features; - /* implementation flags of a given BTS (not exposed via OML) */ - uint16_t flags; - - /* Connected PCU version (if any) */ - char pcu_version[MAX_VERSION_LENGTH]; - - /* maximum Tx power that the MS is permitted to use in this cell */ - int ms_max_power; - - /* how do we talk OML with this TRX? */ - struct e1inp_sign_link *oml_link; - struct timespec oml_conn_established_timestamp; - - /* Abis network management O&M handle */ - struct gsm_abis_mo mo; - - /* number of this BTS on given E1 link */ - uint8_t bts_nr; - - /* DTX features of this BTS */ - bool dtxd; - - /* CCCH is on C0 */ - struct gsm_bts_trx *c0; - - struct { - struct gsm_abis_mo mo; - } site_mgr; - - /* bitmask of all SI that are present/valid in si_buf */ - uint32_t si_valid; - /* 3GPP TS 44.018 Table 10.5.2.33b.1 INDEX and COUNT for SI2quater */ - uint8_t si2q_index; /* distinguish individual SI2quater messages */ - uint8_t si2q_count; /* si2q_index for the last (highest indexed) individual SI2quater message */ - /* buffers where we put the pre-computed SI */ - sysinfo_buf_t si_buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM]; - /* offsets used while generating SI2quater */ - size_t e_offset; - size_t u_offset; - /* decoded SI3 rest octets - *unmodified* as received from BSC */ - struct osmo_gsm48_si_ro_info si3_ro_decoded; - /* is SI3 GPRS Indicator currently disabled due to lack of PCU connection? */ - bool si3_gprs_ind_disabled; - - /* ip.access Unit ID's have Site/BTS/TRX layout */ - union { - struct { - uint16_t site_id; - uint16_t bts_id; - uint32_t flags; - uint32_t rsl_ip; - } ip_access; - }; - - /* Not entirely sure how ip.access specific this is */ - struct { - struct { - struct gsm_abis_mo mo; - uint16_t nsei; - uint8_t timer[7]; - } nse; - struct { - struct gsm_abis_mo mo; - uint16_t bvci; - uint8_t timer[11]; - struct gprs_rlc_cfg rlc_cfg; - } cell; - struct gsm_bts_gprs_nsvc nsvc[2]; - uint8_t rac; - } gprs; - - /* transceivers */ - int num_trx; - struct llist_head trx_list; - - struct rate_ctr_group *ctrs; - bool supp_meas_toa256; - - struct { - /* Interference Boundaries for OML */ - int16_t boundary[6]; - uint8_t intave; - } interference; - unsigned int t200_ms[7]; - unsigned int t3105_ms; - struct { - uint8_t overload_period; - struct { - /* Input parameters from OML */ - uint8_t load_ind_thresh; /* percent */ - uint8_t load_ind_period; /* seconds */ - /* Internal data */ - struct osmo_timer_list timer; - unsigned int pch_total; - unsigned int pch_used; - } ccch; - struct { - /* Input parameters from OML */ - int16_t busy_thresh; /* in dBm */ - uint16_t averaging_slots; - /* Internal data */ - unsigned int total; /* total nr */ - unsigned int busy; /* above busy_thresh */ - unsigned int access; /* access bursts */ - } rach; - } load; - uint8_t ny1; - uint8_t max_ta; - - /* AGCH queuing */ - struct { - struct llist_head queue; - int length; - int max_length; - - int thresh_level; /* Cleanup threshold in percent of max len */ - int low_level; /* Low water mark in percent of max len */ - int high_level; /* High water mark in percent of max len */ - - /* TODO: Use a rate counter group instead */ - uint64_t dropped_msgs; - uint64_t merged_msgs; - uint64_t rejected_msgs; - uint64_t agch_msgs; - uint64_t pch_msgs; - } agch_queue; - - struct { - uint8_t *prim_notif; /* ETWS primary notification (NULL if none) */ - ssize_t prim_notif_len; /* Length of prim_notif; expected 56 bytes */ - uint8_t page_size; - uint8_t num_pages; /* total number of pages */ - uint8_t next_page; /* next page number to be sent */ - bool pni; /* Primary Notification Identifier */ - } etws; - - struct paging_state *paging_state; - char *bsc_oml_host; - struct llist_head oml_queue; - unsigned int rtp_jitter_buf_ms; - bool rtp_jitter_adaptive; - - uint16_t rtp_port_range_start; - uint16_t rtp_port_range_end; - uint16_t rtp_port_range_next; - int rtp_ip_dscp; - - struct { - uint8_t ciphers; /* flags A5/1==0x1, A5/2==0x2, A5/3==0x4 */ - } support; - struct { - uint8_t tc4_ctr; - } si; - struct gsm_time gsm_time; - /* frame number statistics (FN in PH-RTS.ind vs. PH-DATA.ind */ - struct { - int32_t min; /* minimum observed */ - int32_t max; /* maximum observed */ - int32_t avg256; /* accumulator */ - uint32_t avg_count; /* number of samples accumulated in avg256 */ - uint32_t avg_window; /* number of averages in avg_count */ - } fn_stats; - /* Radio Link Timeout counter. -1 disables timeout for - * lab/measurement purpose */ - int radio_link_timeout; - - int ul_power_target; /* Uplink Rx power target */ - - /* used by the sysmoBTS to adjust band */ - uint8_t auto_band; - - /* State for SMSCB (Cell Broadcast) for BASIC and EXTENDED channel */ - struct bts_smscb_state smscb_basic; - struct bts_smscb_state smscb_extended; - int smscb_queue_tgt_len; /* ideal/target queue length */ - int smscb_queue_max_len; /* maximum queue length */ - int smscb_queue_hyst; /* hysteresis for CBCH load indications */ - - int16_t min_qual_rach; /* minimum link quality (in centiBels) for Access Bursts */ - int16_t min_qual_norm; /* minimum link quality (in centiBels) for Normal Bursts */ - uint16_t max_ber10k_rach; /* Maximum permitted RACH BER in 0.01% */ - - struct { - char *sock_path; - } pcu; - - void *model_priv; /* Allocated by bts_model, contains model specific data pointer */ -}; - - -struct gsm_bts *gsm_bts_alloc(void *talloc_ctx, uint8_t bts_num); -struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); - -struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts); -struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num); - -enum bts_attribute str2btsattr(const char *s); -const char *btsatttr2str(enum bts_attribute v); - -enum gsm_bts_type_variant str2btsvariant(const char *arg); -const char *btsvariant2str(enum gsm_bts_type_variant v); - -extern const struct value_string gsm_pchant_names[13]; -extern const struct value_string gsm_pchant_descs[13]; -const char *gsm_pchan_name(enum gsm_phys_chan_config c); -enum gsm_phys_chan_config gsm_pchan_parse(const char *name); -const char *gsm_lchant_name(enum gsm_chan_t c); -char *gsm_trx_name(const struct gsm_bts_trx *trx); -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); -const char *gsm_lchans_name(enum gsm_lchan_state s); - -static inline char *gsm_lchan_name(const struct gsm_lchan *lchan) -{ - return lchan->name; -} - -void gsm_abis_mo_reset(struct gsm_abis_mo *mo); - -struct gsm_abis_mo * -gsm_objclass2mo(struct gsm_bts *bts, uint8_t obj_class, - const struct abis_om_obj_inst *obj_inst); - -struct gsm_nm_state * -gsm_objclass2nmstate(struct gsm_bts *bts, uint8_t obj_class, - const struct abis_om_obj_inst *obj_inst); -void * -gsm_objclass2obj(struct gsm_bts *bts, uint8_t obj_class, - const struct abis_om_obj_inst *obj_inst); - -uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan); -uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, - enum gsm_phys_chan_config as_pchan); - -/* return the gsm_lchan for the CBCH (if it exists at all) */ -struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts); - -#define BSIC2BCC(bsic) ((bsic) & 0x3) - -static inline uint8_t gsm_ts_tsc(const struct gsm_bts_trx_ts *ts) -{ - if (ts->tsc != -1) - return ts->tsc; - else - return ts->trx->bts->bsic & 7; -} - -struct gsm_lchan *rsl_lchan_lookup(struct gsm_bts_trx *trx, uint8_t chan_nr, - int *rc); - -enum gsm_phys_chan_config ts_pchan(struct gsm_bts_trx_ts *ts); -uint8_t ts_subslots(struct gsm_bts_trx_ts *ts); -bool ts_is_tch(struct gsm_bts_trx_ts *ts); -const char *gsm_trx_unit_id(struct gsm_bts_trx *trx); - -int lchan2ecu_codec(const struct gsm_lchan *lchan); - -#endif diff --git a/src/common/Makefile.am b/src/common/Makefile.am index cd22f7b..85b7038 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -8,7 +8,7 @@ noinst_LIBRARIES = libbts.a libl1sched.a libbts_a_SOURCES = \ - gsm_data_shared.c \ + gsm_data.c \ sysinfo.c \ logging.c \ abis.c \ diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data.c similarity index 100% rename from src/common/gsm_data_shared.c rename to src/common/gsm_data.c -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id60e7582e3a32dbc5e3531b87b2b49f07aee734d Gerrit-Change-Number: 18884 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 Thu Jun 18 11:25:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:25:55 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18715 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:25:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:26:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:26:00 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear ... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18714 ) Change subject: msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit ...................................................................... msc_vlr_test_gsm_ciph.c: fix IMEISV MI: even number of digits, clear odd bit There is an invalid Mobile Identity in the msc_vlr_test_gsm_ciph test data. This became apparent when applying the new osmo_mobile_identity API (in a following patch). Current Mobile Identity API ignores the error. Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 --- M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index 1b413f9..38a5caf 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -643,7 +643,7 @@ btw("MS sends Ciphering Mode Complete with IMEISV, VLR accepts and sends GSUP LU Req to HLR"); gsup_expect_tx("04010809710000004026f0" CN_DOMAIN VLR_TO_HLR); - ms_sends_ciphering_mode_complete("063217094b32244332244372f5"); + ms_sends_ciphering_mode_complete("063217094332244332244372f5"); VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); btw("Subscriber has the IMEISV"); diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 5f6b370..d4b450b 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1790,7 +1790,7 @@ DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: RR GSM48_MT_RR_CIPH_M_COMPL -DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275F +DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RR Ciphering Mode Complete contains Mobile Identity: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEISV -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib1d54c59acc8b716de471ca275f54f9d22da3574 Gerrit-Change-Number: 18714 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:26:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:26:31 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18770 ) Change subject: add rudimentary NRI support for MSC pooling ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:26: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 Jun 18 11:27:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:16 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 11: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 Thu Jun 18 11:27:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:44 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: make NRI mappings VTY configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18765 ) Change subject: MSC pooling: make NRI mappings VTY configurable ...................................................................... MSC pooling: make NRI mappings VTY configurable Use the osmo_nri_ranges API to manage each MSC's NRI ranges by VTY configuration. Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c A tests/nri_cfg.vty 7 files changed, 367 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index 43adaec..6e29bfe 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -179,6 +179,8 @@ /* UDP socket for proxying MGCP via SCCPlite/IPA */ struct osmo_fd ofd; } mgcp_ipa; + + struct osmo_nri_ranges *nri_ranges; }; int osmo_bsc_msc_init(struct bsc_msc_data *msc); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index bc4c017..38047d2 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1716,6 +1716,9 @@ /* Don't refuse to start with mutually exclusive codec settings */ bool allow_unusable_timeslots; + + uint8_t nri_bitlen; + struct osmo_nri_ranges *null_nri_ranges; }; struct gsm_audio_support { diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 80658ec..916ab96 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -35,6 +35,7 @@ #include #include #include +#include #include @@ -1110,6 +1111,7 @@ { struct gsm_network *gsmnet = gsmnet_from_vty(vty); int i; + struct osmo_nri_range *r; vty_out(vty, "network%s", VTY_NEWLINE); vty_out(vty, " network country code %s%s", osmo_mcc_name(gsmnet->plmn.mcc), VTY_NEWLINE); @@ -1159,6 +1161,16 @@ if (gsmnet->allow_unusable_timeslots) vty_out(vty, " allow-unusable-timeslots%s", VTY_NEWLINE); + if (gsmnet->nri_bitlen != OSMO_NRI_BITLEN_DEFAULT) + vty_out(vty, " nri bitlen %u%s", gsmnet->nri_bitlen, VTY_NEWLINE); + + llist_for_each_entry(r, &gsmnet->null_nri_ranges->entries, entry) { + vty_out(vty, " nri null add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } + return CMD_SUCCESS; } @@ -2058,6 +2070,60 @@ return CMD_SUCCESS; } +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +#define NULL_NRI_STR "Define NULL-NRI values that cause re-assignment of an MS to a different MSC, for MSC pooling.\n" +#define NRI_FIRST_LAST_STR "First value of the NRI value range, should not surpass the configured 'nri bitlen'.\n" \ + "Last value of the NRI value range, should not surpass the configured 'nri bitlen' and be larger than the" \ + " first value; if omitted, apply only the first value.\n" +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" + +DEFUN(cfg_net_nri_bitlen, + cfg_net_nri_bitlen_cmd, + "nri bitlen <1-15>", + NRI_STR + "Set number of bits that an NRI has, to extract from TMSI identities (always starting just after the TMSI's most significant octet).\n" + "bit count (default: " OSMO_STRINGIFY_VAL(NRI_BITLEN_DEFAULT) ")\n") +{ + struct gsm_network *gsmnet = gsmnet_from_vty(vty); + gsmnet->nri_bitlen = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_nri_null_add, cfg_net_nri_null_add_cmd, + "nri null add <0-32767> [<0-32767>]", + NRI_STR NULL_NRI_STR "Add NULL-NRI value (or range)\n" + NRI_FIRST_LAST_STR) +{ + int rc; + const char *message; + rc = osmo_nri_ranges_vty_add(&message, NULL, bsc_gsmnet->null_nri_ranges, argc, argv, + bsc_gsmnet->nri_bitlen); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN(cfg_net_nri_null_del, cfg_net_nri_null_del_cmd, + "nri null del <0-32767> [<0-32767>]", + NRI_STR NULL_NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + int rc; + const char *message; + rc = osmo_nri_ranges_vty_del(&message, NULL, bsc_gsmnet->null_nri_ranges, argc, argv); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT "%s", message, NRI_ARGS_TO_STR_ARGS(argc, argv), + VTY_NEWLINE); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + /* per-BTS configuration */ DEFUN(cfg_bts, cfg_bts_cmd, @@ -5400,6 +5466,9 @@ install_element(GSMNET_NODE, &cfg_net_neci_cmd); install_element(GSMNET_NODE, &cfg_net_dtx_cmd); install_element(GSMNET_NODE, &cfg_net_pag_any_tch_cmd); + install_element(GSMNET_NODE, &cfg_net_nri_bitlen_cmd); + install_element(GSMNET_NODE, &cfg_net_nri_null_add_cmd); + install_element(GSMNET_NODE, &cfg_net_nri_null_del_cmd); install_element(GSMNET_NODE, &cfg_bts_cmd); install_node(&bts_node, config_write_bts); diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 34403fa..353099d 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -18,6 +18,7 @@ */ #include +#include #include #include @@ -90,5 +91,8 @@ net->mgw.tdefs = g_mgw_tdefs; osmo_tdefs_reset(net->mgw.tdefs); + net->null_nri_ranges = osmo_nri_ranges_alloc(net); + net->nri_bitlen = OSMO_NRI_BITLEN_DEFAULT; + return net; } diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index 30b54f3..ce07518 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -34,6 +34,7 @@ #include #include +#include #include @@ -228,6 +229,8 @@ msc_data->mgcp_ipa.local_addr = talloc_strdup(msc_data, "0.0.0.0"); msc_data->mgcp_ipa.local_port = 0; /* dynamic */ + msc_data->nri_ranges = osmo_nri_ranges_alloc(msc_data); + return msc_data; } diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 34a56de..c860cfe 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -52,8 +53,10 @@ 1, }; +#define MSC_NR_RANGE "<0-1000>" + DEFUN(cfg_net_msc, cfg_net_msc_cmd, - "msc [<0-1000>]", "Configure MSC details\n" "MSC connection to configure\n") + "msc [" MSC_NR_RANGE "]", "Configure MSC details\n" "MSC connection to configure\n") { int index = argc == 1 ? atoi(argv[0]) : 0; struct bsc_msc_data *msc; @@ -99,6 +102,8 @@ vty_out(vty, " amr-payload bandwith-efficient%s", VTY_NEWLINE); } +static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose); + static void write_msc(struct vty *vty, struct bsc_msc_data *msc) { vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); @@ -170,6 +175,8 @@ vty_out(vty, " osmux %s%s", msc->use_osmux == OSMUX_USAGE_ON ? "on" : "only", VTY_NEWLINE); } + + msc_write_nri(vty, msc, false); } static int config_write_msc(struct vty *vty) @@ -784,6 +791,128 @@ return CMD_SUCCESS; } +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +#define NRI_FIRST_LAST_STR "First value of the NRI value range, should not surpass the configured 'nri bitlen'.\n" \ + "Last value of the NRI value range, should not surpass the configured 'nri bitlen' and be larger than the" \ + " first value; if omitted, apply only the first value.\n" + +#define NRI_WARN(MSC, FORMAT, args...) do { \ + vty_out(vty, "%% Warning: msc %d: " FORMAT "%s", MSC->nr, ##args, VTY_NEWLINE); \ + LOGP(DMSC, LOGL_ERROR, "msc %d: " FORMAT "\n", MSC->nr, ##args); \ + } while (0) + +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" + +DEFUN(cfg_msc_nri_add, cfg_msc_nri_add_cmd, + "nri add <0-32767> [<0-32767>]", + NRI_STR "Add NRI value or range to the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + struct bsc_msc_data *other_msc; + bool before; + int rc; + const char *message; + struct osmo_nri_range add_range; + + rc = osmo_nri_ranges_vty_add(&message, &add_range, msc->nri_ranges, argc, argv, bsc_gsmnet->nri_bitlen); + if (message) { + NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + + /* Issue a warning about NRI range overlaps (but still allow them). + * Overlapping ranges will map to whichever MSC comes fist in the bsc_gsmnet->mscs llist, + * which is not necessarily in the order of increasing msc->nr. */ + before = true; + llist_for_each_entry(other_msc, &bsc_gsmnet->mscs, entry) { + if (other_msc == msc) { + before = false; + continue; + } + if (osmo_nri_range_overlaps_ranges(&add_range, other_msc->nri_ranges)) { + NRI_WARN(msc, "NRI range [%d..%d] overlaps between msc %d and msc %d." + " For overlaps, msc %d has higher priority than msc %d", + add_range.first, add_range.last, msc->nr, other_msc->nr, + before ? other_msc->nr : msc->nr, before ? msc->nr : other_msc->nr); + } + } + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_nri_del, cfg_msc_nri_del_cmd, + "nri del <0-32767> [<0-32767>]", + NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + int rc; + const char *message; + + rc = osmo_nri_ranges_vty_del(&message, NULL, msc->nri_ranges, argc, argv); + if (message) { + NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose) +{ + struct osmo_nri_range *r; + + if (verbose) { + vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); + if (llist_empty(&msc->nri_ranges->entries)) { + vty_out(vty, " %% no NRI mappings%s", VTY_NEWLINE); + return; + } + } + + llist_for_each_entry(r, &msc->nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } +} + +DEFUN(cfg_msc_show_nri, cfg_msc_show_nri_cmd, + "show nri", + SHOW_STR NRI_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc_write_nri(vty, msc, true); + return CMD_SUCCESS; +} + +DEFUN(show_nri, show_nri_cmd, + "show nri [" MSC_NR_RANGE "]", + SHOW_STR NRI_STR "Optional MSC number to limit to\n") +{ + struct bsc_msc_data *msc; + if (argc > 0) { + int msc_nr = atoi(argv[0]); + msc = osmo_msc_data_find(bsc_gsmnet, msc_nr); + if (!msc) { + vty_out(vty, "%% No such MSC%s", VTY_NEWLINE); + return CMD_SUCCESS; + } + msc_write_nri(vty, msc, true); + return CMD_SUCCESS; + } + + llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) { + msc_write_nri(vty, msc, true); + } + return CMD_SUCCESS; +} + int bsc_vty_init_extra(void) { struct gsm_network *net = bsc_gsmnet; @@ -831,6 +960,9 @@ install_element(MSC_NODE, &cfg_msc_cs7_bsc_addr_cmd); install_element(MSC_NODE, &cfg_msc_cs7_msc_addr_cmd); install_element(MSC_NODE, &cfg_msc_cs7_asp_proto_cmd); + install_element(MSC_NODE, &cfg_msc_nri_add_cmd); + install_element(MSC_NODE, &cfg_msc_nri_del_cmd); + install_element(MSC_NODE, &cfg_msc_show_nri_cmd); /* Deprecated: ping time config, kept to support legacy config files. */ install_element(MSC_NODE, &cfg_net_msc_no_ping_time_cmd); @@ -842,6 +974,7 @@ install_element_ve(&show_pos_cmd); install_element_ve(&logging_fltr_imsi_cmd); install_element_ve(&show_subscr_all_cmd); + install_element_ve(&show_nri_cmd); install_element(ENABLE_NODE, &gen_position_trap_cmd); diff --git a/tests/nri_cfg.vty b/tests/nri_cfg.vty new file mode 100644 index 0000000..680b8ef --- /dev/null +++ b/tests/nri_cfg.vty @@ -0,0 +1,152 @@ +OsmoBSC> show nri +msc 0 + % no NRI mappings + +OsmoBSC> enable +OsmoBSC# configure terminal + +OsmoBSC(config)# msc 0 + +OsmoBSC(config-msc)# list +... + nri add <0-32767> [<0-32767>] + nri del <0-32767> [<0-32767>] + show nri +... +OsmoBSC(config-msc)# nri ? + add Add NRI value or range to the NRI mapping for this MSC + del Remove NRI value or range from the NRI mapping for this MSC +OsmoBSC(config-msc)# nri add ? + <0-32767> First value of the NRI value range, should not surpass the configured 'nri bitlen'. +OsmoBSC(config-msc)# nri add 23 ? + [<0-32767>] Last value of the NRI value range, should not surpass the configured 'nri bitlen' and be larger than the first value; if omitted, apply only the first value. + +OsmoBSC(config-msc)# nri add 23 +OsmoBSC(config-msc)# nri add 256 511 +OsmoBSC(config-msc)# nri add 100 200 +OsmoBSC(config-msc)# nri add 1024 1024 +% Warning: msc 0: Warning: NRI range surpasses current NRI bitlen: 1024..1024 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 23 + nri add 100 200 + nri add 256 511 + nri add 1024 +OsmoBSC(config-msc)# exit + +OsmoBSC(config)# ### Do msc 2 first, to see that the order of mscs in the internal list is not determined by the msc->nr, +OsmoBSC(config)# ### and whichever was configured first gets higher priority for overlaps. + +OsmoBSC(config)# msc 2 +OsmoBSC(config-msc)# nri add 200 300 +% Warning: msc 2: NRI range [200..300] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +OsmoBSC(config-msc)# nri add 1024 1025 +% Warning: msc 2: Warning: NRI range surpasses current NRI bitlen: 1024..1025 +% Warning: msc 2: NRI range [1024..1025] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +OsmoBSC(config-msc)# exit + +OsmoBSC(config)# msc 1 +OsmoBSC(config-msc)# nri add 42 +OsmoBSC(config-msc)# nri add 512 767 +OsmoBSC(config-msc)# nri add 200 300 +% Warning: msc 1: NRI range [200..300] overlaps between msc 1 and msc 0. For overlaps, msc 0 has higher priority than msc 1 +% Warning: msc 1: NRI range [200..300] overlaps between msc 1 and msc 2. For overlaps, msc 2 has higher priority than msc 1 +OsmoBSC(config-msc)# nri add 1024 1025 +% Warning: msc 1: Warning: NRI range surpasses current NRI bitlen: 1024..1025 +% Warning: msc 1: NRI range [1024..1025] overlaps between msc 1 and msc 0. For overlaps, msc 0 has higher priority than msc 1 +% Warning: msc 1: NRI range [1024..1025] overlaps between msc 1 and msc 2. For overlaps, msc 2 has higher priority than msc 1 +OsmoBSC(config-msc)# show nri +msc 1 + nri add 42 + nri add 200 300 + nri add 512 767 + nri add 1024 1025 +OsmoBSC(config-msc)# exit + +OsmoBSC(config)# do show nri +msc 0 + nri add 23 + nri add 100 200 + nri add 256 511 + nri add 1024 +msc 2 + nri add 200 300 + nri add 1024 1025 +msc 1 + nri add 42 + nri add 200 300 + nri add 512 767 + nri add 1024 1025 + +OsmoBSC(config)# network +OsmoBSC(config-net)# nri bitlen 11 +OsmoBSC(config-net)# show running-config +... +network +... + nri bitlen 11 +... +msc 0 +... + nri add 23 + nri add 100 200 + nri add 256 511 + nri add 1024 +... +msc 2 +... + nri add 200 300 + nri add 1024 1025 +... +msc 1 +... + nri add 42 + nri add 200 300 + nri add 512 767 + nri add 1024 1025 +... +OsmoBSC(config-net)# exit + +OsmoBSC(config)# msc 0 +OsmoBSC(config-msc)# nri del 0 10000 +OsmoBSC(config-msc)# exit +OsmoBSC(config)# msc 1 +OsmoBSC(config-msc)# nri del 0 10000 +OsmoBSC(config-msc)# exit +OsmoBSC(config)# msc 2 +OsmoBSC(config-msc)# nri del 0 10000 +OsmoBSC(config-msc)# exit +OsmoBSC(config)# do show nri +msc 0 + % no NRI mappings +msc 2 + % no NRI mappings +msc 1 + % no NRI mappings + +OsmoBSC(config)# msc 0 +OsmoBSC(config-msc)# nri add 0 1000 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 1000 +OsmoBSC(config-msc)# nri del 23 +OsmoBSC(config-msc)# nri del 200 300 +OsmoBSC(config-msc)# nri del 1000 2000 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 22 + nri add 24 199 + nri add 301 999 +OsmoBSC(config-msc)# nri add 23 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 199 + nri add 301 999 +OsmoBSC(config-msc)# nri add 200 300 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 999 +OsmoBSC(config-msc)# nri add 1000 +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 1000 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 Gerrit-Change-Number: 18765 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter 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 Jun 18 11:27:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:45 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: implement NAS node selection by NRI from TMSI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18766 ) Change subject: MSC pooling: implement NAS node selection by NRI from TMSI ...................................................................... MSC pooling: implement NAS node selection by NRI from TMSI If applicable, choose MSC from NRI, extracted from TMSI MI. Change-Id: Ifbdea197b26e88751a391c8a80c41f04e7d5e047 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 43 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-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index a5f7493..0707c65 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -152,6 +153,8 @@ uint8_t round_robin_next_nr; struct bsc_subscr *subscr; bool is_emerg = false; + int16_t nri_v = -1; + bool is_null_nri = false; if (msgb_l3len(msg) < sizeof(*gh)) { LOGP(DRSL, LOGL_ERROR, "There is no GSM48 header here.\n"); @@ -186,16 +189,45 @@ } } - /* TODO: extract NRI from MI */ +#define LOG_NRI(LOGLEVEL, FORMAT, ARGS...) \ + LOGP(DMSC, LOGLEVEL, "%s NRI(%d)=0x%x=%d: " FORMAT, osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), \ + net->nri_bitlen, nri_v, nri_v, ##ARGS) + + /* Extract NRI bits from TMSI, possibly indicating which MSC is responsible */ + if (mi.type == GSM_MI_TYPE_TMSI) { + if (osmo_tmsi_nri_v_get(&nri_v, mi.tmsi, net->nri_bitlen)) { + LOGP(DMSC, LOGL_ERROR, "Unable to retrieve NRI from TMSI, nri_bitlen == %u\n", net->nri_bitlen); + nri_v = -1; + } else { + is_null_nri = osmo_nri_v_matches_ranges(nri_v, net->null_nri_ranges); + if (is_null_nri) + LOG_NRI(LOGL_DEBUG, "this is a NULL-NRI\n"); + } + } /* Iterate MSCs to find one that matches the extracted NRI, and the next round-robin target for the case no NRI * match is found. */ round_robin_next_nr = (is_emerg ? net->mscs_round_robin_next_emerg_nr : net->mscs_round_robin_next_nr); llist_for_each_entry(msc, &net->mscs, entry) { - if (!is_msc_usable(msc, is_emerg)) - continue; + bool nri_matches_msc = (nri_v >= 0 && osmo_nri_v_matches_ranges(nri_v, msc->nri_ranges)); - /* TODO: return msc when extracted NRI matches this MSC */ + if (!is_msc_usable(msc, is_emerg)) { + if (nri_matches_msc) + LOG_NRI(LOGL_DEBUG, "matches msc %d, but this MSC is currently not connected\n", + msc->nr); + continue; + } + + /* Return MSC if it matches this NRI, with some debug logging. */ + if (nri_matches_msc) { + if (is_null_nri) { + LOG_NRI(LOGL_DEBUG, "matches msc %d, but this NRI is also configured as NULL-NRI\n", + msc->nr); + } else { + LOG_NRI(LOGL_DEBUG, "matches msc %d\n", msc->nr); + return msc; + } + } /* Figure out the next round-robin MSC. The MSCs may appear unsorted in net->mscs. Make sure to linearly * round robin the MSCs by number: pick the lowest msc->nr >= round_robin_next_nr, and also remember the @@ -207,6 +239,9 @@ msc_round_robin_next = msc; } + if (nri_v >= 0 && !is_null_nri) + LOG_NRI(LOGL_DEBUG, "No MSC found for this NRI, doing round-robin\n"); + /* No dedicated MSC found. Choose by round-robin. * If msc_round_robin_next is NULL, there are either no more MSCs at/after mscs_round_robin_next_nr, or none of * them are usable -- wrap to the start. */ @@ -217,12 +252,16 @@ return NULL; } + LOGP(DMSC, LOGL_DEBUG, "New subscriber %s: MSC round-robin selects msc %d\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + /* An MSC was picked by round-robin, so update the next round-robin nr to pick */ if (is_emerg) net->mscs_round_robin_next_emerg_nr = msc_target->nr + 1; else net->mscs_round_robin_next_nr = msc_target->nr + 1; return msc_target; +#undef LOG_NRI } static int handle_page_resp(struct gsm_subscriber_connection *conn, struct msgb *msg) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifbdea197b26e88751a391c8a80c41f04e7d5e047 Gerrit-Change-Number: 18766 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:27:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:45 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: LU: ignore TMSI NRI from a different PLMN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18783 ) Change subject: MSC pooling: LU: ignore TMSI NRI from a different PLMN ...................................................................... MSC pooling: LU: ignore TMSI NRI from a different PLMN Change-Id: Iac1158cff022b6365ce22bb70feaaff93e39172a --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 49 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/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 0707c65..46ef9af 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -123,6 +123,48 @@ return cm->cm_service_type == GSM48_CMSERV_EMERGENCY; } +static bool is_lu_from_other_plmn(struct msgb *msg) +{ + const struct gsm48_hdr *gh; + int8_t pdisc; + uint8_t mtype; + const struct gsm48_loc_upd_req *lu; + struct osmo_location_area_id old_lai; + + if (msgb_l3len(msg) < sizeof(*gh)) + return false; + + gh = msgb_l3(msg); + pdisc = gsm48_hdr_pdisc(gh); + mtype = gsm48_hdr_msg_type(gh); + + switch (pdisc) { + case GSM48_PDISC_MM: + + switch (mtype) { + case GSM48_MT_MM_LOC_UPD_REQUEST: + /* First make sure that lu-> can be dereferenced */ + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) + return false; + + lu = (struct gsm48_loc_upd_req*)gh->data; + gsm48_decode_lai2(&lu->lai, &old_lai); + + if (osmo_plmn_cmp(&old_lai.plmn, &bsc_gsmnet->plmn) != 0) + return true; + break; + + default: + break; + } + break; + default: + break; + } + + return false; +} + static bool is_msc_usable(struct bsc_msc_data *msc, bool is_emerg) { if (is_emerg && !msc->allow_emerg) @@ -198,6 +240,13 @@ if (osmo_tmsi_nri_v_get(&nri_v, mi.tmsi, net->nri_bitlen)) { LOGP(DMSC, LOGL_ERROR, "Unable to retrieve NRI from TMSI, nri_bitlen == %u\n", net->nri_bitlen); nri_v = -1; + } else if (is_lu_from_other_plmn(msg)) { + /* If a subscriber was previously attached to a different PLMN, it might still send the other + * PLMN's TMSI identity in an IMSI Attach. The LU sends a LAI indicating the previous PLMN. If + * it mismatches our PLMN, ignore the NRI. */ + LOG_NRI(LOGL_DEBUG, + "This LU Request indicates a switch from another PLMN. Ignoring the TMSI's NRI.\n"); + nri_v = -1; } else { is_null_nri = osmo_nri_v_matches_ranges(nri_v, net->null_nri_ranges); if (is_null_nri) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iac1158cff022b6365ce22bb70feaaff93e39172a Gerrit-Change-Number: 18783 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Jun 18 11:27:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:46 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add 'no allow-attach' for MSC off-loading In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18778 ) Change subject: MSC pooling: add 'no allow-attach' for MSC off-loading ...................................................................... MSC pooling: add 'no allow-attach' for MSC off-loading As in 3GPP TS 23.236, to offload an MSC, the BSC must be able to avoid attaching new subscribers to it: 4.5a.1: "UEs being moved from one CN node are stopped from registering to the same CN node again by an O&M command in BSCs and RNCs connected to the pool." Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 --- M include/osmocom/bsc/bsc_msc_data.h M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_vty.c M tests/nri_cfg.vty 5 files changed, 55 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/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index 6e29bfe..f19b9a0 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -181,6 +181,7 @@ } mgcp_ipa; struct osmo_nri_ranges *nri_ranges; + bool allow_attach; }; int osmo_bsc_msc_init(struct bsc_msc_data *msc); diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 46ef9af..c002ebb 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -280,7 +280,18 @@ /* Figure out the next round-robin MSC. The MSCs may appear unsorted in net->mscs. Make sure to linearly * round robin the MSCs by number: pick the lowest msc->nr >= round_robin_next_nr, and also remember the - * lowest available msc->nr to wrap back to that in case no next MSC is left. */ + * lowest available msc->nr to wrap back to that in case no next MSC is left. + * + * MSCs configured with `no allow-attach` do not accept new subscribers and hence must not be picked by + * round-robin. Such an MSC still provides service for already attached subscribers: those that + * successfully performed IMSI-Attach and have a TMSI with an NRI pointing at that MSC. We only avoid + * adding IMSI-Attach of new subscribers. The idea is that the MSC is in a mode of off-loading + * subscribers, and the MSC decides when each subscriber is off-loaded, by assigning the NULL-NRI in a + * new TMSI (at the next periodical LU). So until the MSC decides to offload, an attached subscriber + * remains attached to that MSC and is free to use its services. + */ + if (!msc->allow_attach) + continue; if (!msc_round_robin_first || msc->nr < msc_round_robin_first->nr) msc_round_robin_first = msc; if (msc->nr >= round_robin_next_nr diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index ce07518..157808e 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -230,6 +230,7 @@ msc_data->mgcp_ipa.local_port = 0; /* dynamic */ msc_data->nri_ranges = osmo_nri_ranges_alloc(msc_data); + msc_data->allow_attach = true; return msc_data; } diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index c860cfe..5c624dd 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -177,6 +177,9 @@ } msc_write_nri(vty, msc, false); + + if (!msc->allow_attach) + vty_out(vty, " no allow-attach%s", VTY_NEWLINE); } static int config_write_msc(struct vty *vty) @@ -860,6 +863,28 @@ return CMD_SUCCESS; } +DEFUN(cfg_msc_allow_attach, cfg_msc_allow_attach_cmd, + "allow-attach", + "Allow this MSC to attach new subscribers (default).\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->allow_attach = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_no_allow_attach, cfg_msc_no_allow_attach_cmd, + "no allow-attach", + NO_STR + "Do not assign new subscribers to this MSC." + " Useful if an MSC in an MSC pool is configured to off-load subscribers." + " The MSC will still be operational for already IMSI-Attached subscribers," + " but the NAS node selection function will skip this MSC for new subscribers\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->allow_attach = false; + return CMD_SUCCESS; +} + static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose) { struct osmo_nri_range *r; @@ -963,6 +988,8 @@ install_element(MSC_NODE, &cfg_msc_nri_add_cmd); install_element(MSC_NODE, &cfg_msc_nri_del_cmd); install_element(MSC_NODE, &cfg_msc_show_nri_cmd); + install_element(MSC_NODE, &cfg_msc_allow_attach_cmd); + install_element(MSC_NODE, &cfg_msc_no_allow_attach_cmd); /* Deprecated: ping time config, kept to support legacy config files. */ install_element(MSC_NODE, &cfg_net_msc_no_ping_time_cmd); diff --git a/tests/nri_cfg.vty b/tests/nri_cfg.vty index 680b8ef..8287eab 100644 --- a/tests/nri_cfg.vty +++ b/tests/nri_cfg.vty @@ -150,3 +150,17 @@ OsmoBSC(config-msc)# show nri msc 0 nri add 0 1000 + +OsmoBSC(config-msc)# show running-config +... ! no allow-attach +OsmoBSC(config-msc)# no allow-attach +OsmoBSC(config-msc)# show running-config +... +msc 0 +... + nri add 0 1000 + no allow-attach +... ! no allow-attach +OsmoBSC(config-msc)# allow-attach +OsmoBSC(config-msc)# show running-config +... ! no allow-attach -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I6249201c15d0f6565aca643c21d2375c9ca58584 Gerrit-Change-Number: 18778 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Jun 18 11:27:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:46 +0000 Subject: Change in osmo-bsc[master]: mscpool: add user manual chapter In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18779 ) Change subject: mscpool: add user manual chapter ...................................................................... mscpool: add user manual chapter Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e --- A doc/manuals/chapters/mscpool.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 215 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/doc/manuals/chapters/mscpool.adoc b/doc/manuals/chapters/mscpool.adoc new file mode 100644 index 0000000..923a088 --- /dev/null +++ b/doc/manuals/chapters/mscpool.adoc @@ -0,0 +1,213 @@ +== MSC Pooling + +MSC pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported +by OsmoBSC since mid 2020. + +The aim of MSC pooling is to distribute load from a BSC across multiple MSCs, +which are equivalent and redundant infrastructure for the same core network. + +The main mechanism for MSC pooling is the TMSI identity, which an MSC hands out +to its attached subscribers. Typically 10 bits of the TMSI are designated as a +Network Resource Identifier (NRI) that identifies the originating MSC, and +allows OsmoBSC to direct a subscriber back to the same MSC instance that +previously negotiated the IMSI Attach procedure. Typically, the full NRI value +range available is divided into N even ranges, where each MSC is assigned one +NRI range. + +Subscribers attaching without a TMSI identity, or those with unknown NRI value, +are evenly distributed across MSC instances. OsmoBSC uses a round-robin +approach to distribute load across all connected MSCs. + +A Paging Response from a subscriber is always returned back to whichever MSC +initiated the Paging, regardless of the Mobile Identity used. + +Finally, a NULL-NRI is a special NRI value that indicates that the MSC wishes +to offload this subscriber to a different MSC. A NULL-NRI is an arbitrary NRI +value that is chosen distinctly for each PLMN served by a BSC, so that a +subscriber can be reassigned within that PLMN. Upon (periodic) Location +Updating, an offloading MSC hands out a NULL-NRI value in the assigned TMSI, +along with a non-broadcast LAI. The subscriber will notice the LAI mismatch, +and immediately re-attempt the attach using the TMSI containing the NULL-NRI. +The BSC recognises the NULL-NRI and redirects the subscriber to one of the +other MSCs. A prerequisite for this to work well is that the particular MSC is +previously marked as not accepting new subscribers, in the BSC's configuration. + +The mechanisms described above make up the NAS node selection function +implemented in the BSC. + +3GPP TS 23.236 also defines that an offloading MSC hands subscriber information +to the newly assigned MSC, which takes place outside the scope of the BSC. + +=== Configuring MSC Pooling + +The NRI ranges assigned to each MSC must match in the BSC and the MSC +configuration. If MSC and BSC had inconsistent NRI value ranges configured, +attached subscribers would be redirected MSC instances that did not perform the +attach, possibly rendering the core network unusable. + +==== Connecting Multiple MSCs + +The `cs7 instance` configuration defines the SCCP addresses to reach the MSCs +at. In addition, each MSC is configured by its own `msc` section in the +configuration. An example osmo-bsc.cfg serving three MSCs: + +---- +cs7 instance 0 + # SCCP address book entries for the three MSCs + sccp-address my-msc-0 + point-code 0.23.0 + sccp-address my-msc-1 + point-code 0.23.1 + sccp-address my-msc-2 + point-code 0.23.2 + +# assign each MSC configuration its remote SCCP address +msc 0 + msc-addr my-msc-0 +msc 1 + msc-addr my-msc-1 +msc 2 + msc-addr my-msc-2 + +# configure NRI value ranges +network + nri bitlen 10 + nri null add 0 +msc 0 + nri add 1 341 +msc 1 + nri add 342 682 +msc 2 + nri add 683 1023 +---- + +==== NRI Value Bit Length + +In OsmoBSC, the NRI value's bit length is freely configurable from 1 to 15 +bits. 3GPP TS 23.236 suggests a typical bit length of 10, which is OsmoBSC's +default. The NRI bit length must be identical across the entire MSC pool. + +Change the NRI value bit length in OsmoBSC's VTY configuration like this: + +---- +network + nri bitlen 10 +---- + +In the TMSI bits, regardless of the NRI bit length, the NRI value always starts +just after the most significant octet of a TMSI (most significant bit at TMSI's +bit 23). + +==== NULL-NRI + +Since OsmoBSC supports serving only one PLMN, NULL-NRI are configured globally. +Even though 3GPP TS 23.236 indicates that there is a single NULL-NRI per PLMN, +OsmoBSC allows configuring multiple NULL-NRI values. + +---- +network + nri null add 0 + nri null add 423 +---- + +==== Assigning NRI Ranges to MSCs + +Each MSC configured in OsmoBSC must be assigned a distinct NRI value range. +Overlapping NRI value ranges will cause failure to serve subscribers. + +NRI values are typically configured in ranges, here dividing a 10bit range +(0..1023) into three equal ranges, while leaving 0 available to be configured +as NULL-NRI: + +---- +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +NRI can also be assigned in single values: + +---- +msc 0 + nri add 23 +---- + +Ranges can be constructed arbitrarily by a sequence of `add` and `del` +configurations, here a contrived example: + +---- +msc 0 + nri add 0 342 + nri del 23 + nri del 42 235 + nri add 1000 1023 +---- + +To view the current NRI config in a running OsmoBSC instance, use the +`show nri` command, here showing the result of the contrived example: + +---- +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 22 + nri add 24 41 + nri add 236 342 + nri add 1000 1023 +---- + +On the VIEW and ENABLE VTY nodes, `show nri` shows all MSCs: + +---- +OsmoBSC> show nri +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +When configuring overlapping NRI value ranges across MSCs, the telnet VTY warns +about it, and starting OsmoBSC with such a configuration will fail: + +---- +msc 0 + nri add 1 511 +msc 1 + nri add 512 1023 +msc 2 + nri add 500 555 +---- + +This results in: + +---- +$ osmo-bsc +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 1. For overlaps, msc 1 has higher priority than msc 2 +---- + +==== MSC Offloading + +To effectively offload a particular MSC, it must be marked as no longer taking +new subscribers in OsmoBSC. This can be achieved in the telnet VTY by: + +---- +msc 0 + no allow-attach +---- + +This MSC will, as long as it is connected, continue to serve subscribers +already attached to it: those that yield an NRI matching this MSC, and those +that are being paged by this MSC. But OsmoBSC will no longer direct new +subscribers to this MSC. + +To re-enable an MSC for attaching new subscribers: + +---- +msc 0 + allow-attach +---- diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index c518c96..862c8f9 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -28,6 +28,8 @@ include::{srcdir}/chapters/smscb.adoc[] +include::{srcdir}/chapters/mscpool.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia60afc8a91189c9de0d8e8065781ed463bf18d7e Gerrit-Change-Number: 18779 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Jun 18 11:27:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:47 +0000 Subject: Change in osmo-bsc[master]: vty: add 'mscpool roundrobin next' for ttcn3 tests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18767 ) Change subject: vty: add 'mscpool roundrobin next' for ttcn3 tests ...................................................................... vty: add 'mscpool roundrobin next' for ttcn3 tests In the ttcn3 tests, the MSC round robin algorithm is affected by what tests ran before, so an osmo-bsc test needs this to reset the round robin to get predictable behavior to test against. Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 13 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 5c624dd..a1cfe4f 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -938,6 +938,18 @@ return CMD_SUCCESS; } +DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, + "mscpool roundrobin next " MSC_NR_RANGE, + "MSC pooling: load balancing across multiple MSCs.\n" + "Adjust current state of the MSC round-robin algorithm (for testing).\n" + "Set the MSC nr to direct the next new subscriber to (for testing).\n" + "MSC number, as in the config file; if the number does not exist," + " the round-robin continues to the next valid number.\n") +{ + bsc_gsmnet->mscs_round_robin_next_nr = atoi(argv[0]); + return CMD_SUCCESS; +} + int bsc_vty_init_extra(void) { struct gsm_network *net = bsc_gsmnet; @@ -1004,6 +1016,7 @@ install_element_ve(&show_nri_cmd); install_element(ENABLE_NODE, &gen_position_trap_cmd); + install_element(ENABLE_NODE, &mscpool_roundrobin_next_cmd); install_element(CFG_LOG_NODE, &logging_fltr_imsi_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2155d906505a26744966f442ffb1e87a6a9b494c Gerrit-Change-Number: 18767 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Jun 18 11:27:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:47 +0000 Subject: Change in osmo-bsc[master]: log: add MSC number to bsc_subscr_conn_fsm id In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18768 ) Change subject: log: add MSC number to bsc_subscr_conn_fsm id ...................................................................... log: add MSC number to bsc_subscr_conn_fsm id Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 3da9d66..1d30246 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -16,6 +16,8 @@ * */ +#include + #include #include #include @@ -1067,7 +1069,8 @@ /* Compose an FSM ID, if possible from the current subscriber information */ void gscon_update_id(struct gsm_subscriber_connection *conn) { - osmo_fsm_inst_update_id_f(conn->fi, "conn%u%s%s", + osmo_fsm_inst_update_id_f(conn->fi, "msc%u-conn%u%s%s", + conn->sccp.msc ? conn->sccp.msc->nr : UINT_MAX, conn->sccp.conn_id, conn->bsub? "_" : "", conn->bsub? bsc_subscr_id(conn->bsub) : ""); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iae232d0616d6c0009e3abe2dcfcb9c51ddfc761e Gerrit-Change-Number: 18768 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:27:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:48 +0000 Subject: Change in osmo-bsc[master]: debug: log about matching Paging Response to earlier Paging In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18769 ) Change subject: debug: log about matching Paging Response to earlier Paging ...................................................................... debug: log about matching Paging Response to earlier Paging Change-Id: I277d3236686dd5a5a21113ef2ddfd29341190086 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 8 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index c002ebb..32363eb 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -225,8 +225,15 @@ if (subscr) { msc_target = paging_get_msc(conn_get_bts(conn), subscr); bsc_subscr_put(subscr); - if (is_msc_usable(msc_target, is_emerg)) + if (is_msc_usable(msc_target, is_emerg)) { + LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, "%s matches earlier Paging from msc %d\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); return msc_target; + } else { + LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, + "%s matches earlier Paging from msc %d, but this MSC is not connected\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + } msc_target = NULL; } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I277d3236686dd5a5a21113ef2ddfd29341190086 Gerrit-Change-Number: 18769 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Jun 18 11:27:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:27:48 +0000 Subject: Change in osmo-bsc[master]: MSC pooling: add rate counters In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18875 ) Change subject: MSC pooling: add rate counters ...................................................................... MSC pooling: add rate counters Tests for these counters are added in I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f (osmo-ttcn3-hacks). Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/osmo_bsc_msc.c 4 files changed, 67 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 neels: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index f19b9a0..b1fe14d 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -96,6 +96,13 @@ MSC_CTR_BSSMAP_TX_DT1_HANDOVER_COMPLETE, MSC_CTR_BSSMAP_TX_DT1_HANDOVER_FAILURE, MSC_CTR_BSSMAP_TX_DT1_DTAP, + + MSC_CTR_MSCPOOL_SUBSCR_NEW, + MSC_CTR_MSCPOOL_SUBSCR_REATTACH, + MSC_CTR_MSCPOOL_SUBSCR_KNOWN, + MSC_CTR_MSCPOOL_SUBSCR_PAGED, + MSC_CTR_MSCPOOL_SUBSCR_ATTACH_LOST, + MSC_CTR_MSCPOOL_EMERG_FORWARDED, }; /* Constants for the MSC stats */ diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 38047d2..9874706 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1558,6 +1558,9 @@ BSC_CTR_PAGING_RESPONDED, BSC_CTR_PAGING_NO_ACTIVE_PAGING, BSC_CTR_UNKNOWN_UNIT_ID, + BSC_CTR_MSCPOOL_SUBSCR_NO_MSC, + BSC_CTR_MSCPOOL_EMERG_FORWARDED, + BSC_CTR_MSCPOOL_EMERG_LOST, }; static const struct rate_ctr_desc bsc_ctr_description[] = { @@ -1604,6 +1607,13 @@ [BSC_CTR_PAGING_NO_ACTIVE_PAGING] = {"paging:no_active_paging", "Paging response without an active paging request (arrived after paging expiration?)."}, [BSC_CTR_UNKNOWN_UNIT_ID] = {"abis:unknown_unit_id", "Connection attempts from unknown IPA CCM Unit ID."}, + + [BSC_CTR_MSCPOOL_SUBSCR_NO_MSC] = {"mscpool:subscr:no_msc", + "Complete Layer 3 requests lost because no connected MSC is found available."}, + [BSC_CTR_MSCPOOL_EMERG_FORWARDED] = {"mscpool:emerg:forwarded", + "Emergency call requests forwarded to an MSC (see also per-MSC counters)"}, + [BSC_CTR_MSCPOOL_EMERG_LOST] = {"mscpool:emerg:lost", + "Emergency call requests lost because no MSC was found available."}, }; diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 32363eb..3703c76 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -228,6 +228,7 @@ if (is_msc_usable(msc_target, is_emerg)) { LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, "%s matches earlier Paging from msc %d\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_PAGED]); return msc_target; } else { LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, @@ -268,9 +269,11 @@ bool nri_matches_msc = (nri_v >= 0 && osmo_nri_v_matches_ranges(nri_v, msc->nri_ranges)); if (!is_msc_usable(msc, is_emerg)) { - if (nri_matches_msc) + if (nri_matches_msc) { LOG_NRI(LOGL_DEBUG, "matches msc %d, but this MSC is currently not connected\n", msc->nr); + rate_ctr_inc(&msc->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_ATTACH_LOST]); + } continue; } @@ -281,6 +284,11 @@ msc->nr); } else { LOG_NRI(LOGL_DEBUG, "matches msc %d\n", msc->nr); + rate_ctr_inc(&msc->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_KNOWN]); + if (is_emerg) { + rate_ctr_inc(&msc->msc_ctrs->ctr[MSC_CTR_MSCPOOL_EMERG_FORWARDED]); + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_EMERG_FORWARDED]); + } return msc; } } @@ -316,12 +324,25 @@ if (!msc_target) { LOG_COMPL_L3(pdisc, mtype, LOGL_ERROR, "%s%s: No suitable MSC for this Complete Layer 3 request found\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), is_emerg ? " FOR EMERGENCY CALL" : ""); + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_SUBSCR_NO_MSC]); + if (is_emerg) + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_EMERG_LOST]); return NULL; } LOGP(DMSC, LOGL_DEBUG, "New subscriber %s: MSC round-robin selects msc %d\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), msc_target->nr); + if (is_null_nri) + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_REATTACH]); + else + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_SUBSCR_NEW]); + + if (is_emerg) { + rate_ctr_inc(&msc_target->msc_ctrs->ctr[MSC_CTR_MSCPOOL_EMERG_FORWARDED]); + rate_ctr_inc(&bsc_gsmnet->bsc_ctrs->ctr[BSC_CTR_MSCPOOL_EMERG_FORWARDED]); + } + /* An MSC was picked by round-robin, so update the next round-robin nr to pick */ if (is_emerg) net->mscs_round_robin_next_emerg_nr = msc_target->nr + 1; diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index 157808e..9b00ffc 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -100,6 +100,34 @@ [MSC_CTR_BSSMAP_TX_DT1_HANDOVER_COMPLETE] = {"bssmap:tx:dt1:handover:complete", "Number of transmitted BSSMAP DT1 HANDOVER COMPLETE messages"}, [MSC_CTR_BSSMAP_TX_DT1_HANDOVER_FAILURE] = {"bssmap:tx:dt1:handover:failure", "Number of transmitted BSSMAP DT1 HANDOVER FAILURE messages"}, [MSC_CTR_BSSMAP_TX_DT1_DTAP] = {"bssmap:tx:dt1:dtap", "Number of transmitted BSSMAP DT1 DTAP messages"}, + + /* Indicators for MSC pool usage */ + [MSC_CTR_MSCPOOL_SUBSCR_NEW] = { + "mscpool:subscr:new", + "Complete Layer 3 requests assigned to this MSC by round-robin (no NRI was assigned yet).", + }, + [MSC_CTR_MSCPOOL_SUBSCR_REATTACH] = { + "mscpool:subscr:reattach", + "Complete Layer 3 requests assigned to this MSC by round-robin because the subscriber indicates a" + " NULL-NRI (previously assigned by another MSC).", + }, + [MSC_CTR_MSCPOOL_SUBSCR_KNOWN] = { + "mscpool:subscr:known", + "Complete Layer 3 requests directed to this MSC because the subscriber indicates an NRI of this MSC.", + }, + [MSC_CTR_MSCPOOL_SUBSCR_PAGED] = { + "mscpool:subscr:paged", + "Paging Response directed to this MSC because the subscriber was recently paged by this MSC.", + }, + [MSC_CTR_MSCPOOL_SUBSCR_ATTACH_LOST] = { + "mscpool:subscr:attach_lost", + "A subscriber indicates an NRI value matching this MSC, but the MSC is not connected:" + " a re-attach to another MSC (if available) was forced, with possible service failure.", + }, + [MSC_CTR_MSCPOOL_EMERG_FORWARDED] = { + "mscpool:emerg:forwarded", + "Emergency call requests forwarded to this MSC.", + }, }; static const struct rate_ctr_group_desc msc_ctrg_desc = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2ded757958dfa62b502efbab765203bcadf899e2 Gerrit-Change-Number: 18875 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 Thu Jun 18 11:28:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:28:04 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18715 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11: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 Jun 18 11:28:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:28:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:28: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 Jun 18 11:28:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:28:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Removed Code-Review+2 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Thu Jun 18 11:28:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:28:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Fix comment [cosmetic] In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18885 ) Change subject: sgsn: Fix comment [cosmetic] ...................................................................... sgsn: Fix comment [cosmetic] Change-Id: I320bce9af64edf0cfb6f600d9a4c19b73153c805 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 9d191cc..84902a4 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1475,7 +1475,7 @@ } } -/* Transceive given 'payload' as MT message from Gb -> OsmoSGSN -> GTP */ +/* Transceive given 'payload' as MO message from Gb -> OsmoSGSN -> GTP */ private function f_gtpu_xceive_mo(inout PdpActPars apars, octetstring payload, integer ran_index := 0) runs on BSSGP_ConnHdlr { /* Send PDU via SNDCP/LLC/BSSGP/NS via simulated MS/PCU to the SGSN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I320bce9af64edf0cfb6f600d9a4c19b73153c805 Gerrit-Change-Number: 18885 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 Thu Jun 18 11:28:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:28:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add BSSGP_SIG port to ConnHdlr In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 ) Change subject: sgsn: Add BSSGP_SIG port to ConnHdlr ...................................................................... sgsn: Add BSSGP_SIG port to ConnHdlr So far, the ConnHdlr components were only able to exchange BSSGP PDUs on the PTP BVC, but not on the SIGNALING BVC. For this, we need to actually connect to the BSSGP_SP_SIG that BSSGP_Emulation provides. Change-Id: I4482a24e4808ac2fe04401224f628606d8207416 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 84902a4..57c9e02 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -414,10 +414,13 @@ vc_conn := BSSGP_ConnHdlr.create(id); connect(vc_conn:BSSGP[0], gb[0].vc_BSSGP:BSSGP_SP); + connect(vc_conn:BSSGP_SIG[0], gb[0].vc_BSSGP:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[0], gb[0].vc_BSSGP:BSSGP_PROC); connect(vc_conn:BSSGP[1], gb[1].vc_BSSGP:BSSGP_SP); + connect(vc_conn:BSSGP_SIG[1], gb[1].vc_BSSGP:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[1], gb[1].vc_BSSGP:BSSGP_PROC); connect(vc_conn:BSSGP[2], gb[2].vc_BSSGP:BSSGP_SP); + connect(vc_conn:BSSGP_SIG[2], gb[2].vc_BSSGP:BSSGP_SP_SIG); connect(vc_conn:BSSGP_PROC[2], gb[2].vc_BSSGP:BSSGP_PROC); /* FIXME: support multiple RNCs */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4482a24e4808ac2fe04401224f628606d8207416 Gerrit-Change-Number: 18886 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:28:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:28:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 ) Change subject: Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments ...................................................................... Osmocom_Gb_Types: tr_BSSGP_PS_PAGING should use template arguments Change-Id: I7d0110e6f26fd407e11b2c60d78f4cd16f0d45af --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9a7c8d1..a518268 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1349,7 +1349,7 @@ } } - template PDU_BSSGP tr_BSSGP_PS_PAGING(BssgpBvci bvci) := { + template PDU_BSSGP tr_BSSGP_PS_PAGING(template BssgpBvci bvci) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, iMSI := ?, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7d0110e6f26fd407e11b2c60d78f4cd16f0d45af Gerrit-Change-Number: 18887 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:30:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:30:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn at 812 PS1, Line 812: setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); > mtc.stop; missing in all failures. the question is: do we want that? I think it's a bit of a philosophical question if we should terminate at the first failure or if we should continue running the test. I think in my code in general I tend to do the latter. Not saying it makes sense, just saying I don't think we have a universally agreed-upon style here. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:30:03 +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 Jun 18 11:32:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:32:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn at 812 PS1, Line 812: setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); > the question is: do we want that? I think it's a bit of a philosophical question if we should termin [?] Fine, I try to do the opposite because it's a lot easier to me to find issues when a test fails, since pcap traces and UIT and ttcn3 log files become shorter and usually the issue is towards the end. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:32:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin 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 Jun 18 11:36:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:36:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add series of tests on suspend/resume and paging behavior In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 ) Change subject: sgsn: Add series of tests on suspend/resume and paging behavior ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890/1/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890/1/sgsn/SGSN_Tests.ttcn at 3038 PS1, Line 3038: /* now data should be flowing again, but with PS PAGING */ > Is it correct to forward the data to the pcu if the MS is not paged? or should we ideally store it i [?] I think the correct SGSN behavior is to first send the PS-PAGING, then wait for an uplink LLC frame (NULL frame in normal case), and finally pass along the donwlink data. This would require buffering of data in the SGSN. See the FIXME below. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Gerrit-Change-Number: 18890 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:36:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:36:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:36:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: Hello pespin, fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 to look at the new patch set (#2). Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... sgsn: Add functions for BSSGP suspend + resume procedure Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 40 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/18888/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:36:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:36:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 to look at the new patch set (#2). Change subject: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case ...................................................................... sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In some scenarios we do not expect a PDU from GTP to show up on the Gb side. Let's add support for this. Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/18889/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Gerrit-Change-Number: 18889 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 Jun 18 11:36:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:36:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add series of tests on suspend/resume and paging behavior In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 to look at the new patch set (#2). Change subject: sgsn: Add series of tests on suspend/resume and paging behavior ...................................................................... sgsn: Add series of tests on suspend/resume and paging behavior Let's test whether paging is triggered after T3314 expiration, as well as suspend and explicit and implicit resume work as expected Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 163 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/90/18890/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Gerrit-Change-Number: 18890 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Jun 18 11:37:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:37:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:37:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:37:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:37:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 ) Change subject: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Gerrit-Change-Number: 18889 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:37: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 Jun 18 11:37:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:37:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888/1/sgsn/SGSN_Tests.ttcn at 812 PS1, Line 812: setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); > Fine, I try to do the opposite because it's a lot easier to me to find issues when a test fails, sin [?] I added the mtc.stop as it seems to be what the existing tests in this file do, so to align the code with its surroundings. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:37:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin 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 Jun 18 11:38:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 11:38:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add series of tests on suspend/resume and paging behavior In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 ) Change subject: sgsn: Add series of tests on suspend/resume and paging behavior ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Gerrit-Change-Number: 18890 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:38: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 Jun 18 11:39:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:39:09 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Improve ps-paging logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 ) Change subject: sgsn_libgtp: Improve ps-paging logging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 Gerrit-Change-Number: 18868 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:39:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:39:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:39:13 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Improve ps-paging logging In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 ) Change subject: sgsn_libgtp: Improve ps-paging logging ...................................................................... sgsn_libgtp: Improve ps-paging logging Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 --- M src/sgsn/sgsn_libgtp.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c index 7b46476..717df4a 100644 --- a/src/sgsn/sgsn_libgtp.c +++ b/src/sgsn/sgsn_libgtp.c @@ -661,13 +661,19 @@ switch (mm->gmm_fsm->state) { case ST_GMM_REGISTERED_SUSPENDED: /* initiate PS PAGING procedure */ + LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s\n", + osmo_fsm_inst_state_name(mm->gmm_fsm)); gprs_gb_page_ps_ra(mm); /* FIXME: queue the packet we received from GTP */ break; case ST_GMM_REGISTERED_NORMAL: OSMO_ASSERT(mm->gb.mm_state_fsm->state != ST_MM_IDLE); - if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) + if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) { + LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s, MM state %s\n", + osmo_fsm_inst_state_name(mm->gmm_fsm), + osmo_fsm_inst_state_name(mm->gb.mm_state_fsm)); gprs_gb_page_ps_ra(mm); + } /* FIXME: queue the packet we received from GTP */ break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0c3d48d54295824c3ba5b0fa9e3c035983556326 Gerrit-Change-Number: 18868 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:39:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:39:54 +0000 Subject: Change in osmocom-bb[master]: trxcon: use libosmocore's TDMA frame number API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18872 ) Change subject: trxcon: use libosmocore's TDMA frame number API ...................................................................... Patch Set 1: Code-Review+1 maybe add a record to TODO-RELEASE to bump the requied version after a libosmocore tag? -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I49a043d8483e116cf2d91820edb511846175173f Gerrit-Change-Number: 18872 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:39:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:40:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:40:10 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_msg_gen() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18891 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_msg_gen() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib8b6c25489a6a704912aa1763d7430c8055d54e3 Gerrit-Change-Number: 18891 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 18 Jun 2020 11:40: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 Jun 18 11:40:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:40:27 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18880 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b Gerrit-Change-Number: 18880 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:40:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:40:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:40:37 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18880 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() ...................................................................... libosmo-mgcp-client: fix use-after-free in mgcp_client_tx() This function calls mgcp_client_pending_add(), that in its turn allocates a 'mgcp_response_pending' and appends it to the queue. In case of an error, it calls mgcp_client_handle_response() that would free the 'mgcp_response_pending', but this structure would still remain in the linked list (the queue). Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 74bdf4d..e9b3ec0 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -959,6 +959,8 @@ return 0; mgcp_tx_error: + /* Dequeue pending response, it's going to be free()d */ + llist_del(&pending->entry); /* Pass NULL to response cb to indicate an error */ mgcp_client_handle_response(mgcp, pending, NULL); return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id94bb93a6b0ea7b7241cf7868112e9bec3e60f0b Gerrit-Change-Number: 18880 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:40:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:40:38 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix use-after-free in mgcp_msg_gen() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18891 ) Change subject: libosmo-mgcp-client: fix use-after-free in mgcp_msg_gen() ...................................................................... libosmo-mgcp-client: fix use-after-free in mgcp_msg_gen() Change-Id: Ib8b6c25489a6a704912aa1763d7430c8055d54e3 --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index e9b3ec0..54db20d 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -1208,6 +1208,7 @@ "Endpoint name (%s) lacks separator (@), can not generate MGCP message\n", mgcp_msg->endpoint); msgb_free(msg); + return NULL; } rc += msgb_printf(msg, " %s", mgcp_msg->endpoint); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib8b6c25489a6a704912aa1763d7430c8055d54e3 Gerrit-Change-Number: 18891 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:40:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:40:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add functions for BSSGP suspend + resume procedure In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 ) Change subject: sgsn: Add functions for BSSGP suspend + resume procedure ...................................................................... sgsn: Add functions for BSSGP suspend + resume procedure Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 40 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 57c9e02..77ebbcd 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -799,6 +799,46 @@ f_sleep(0.05); } +friend function f_bssgp_suspend(integer ran_idx := 0) runs on BSSGP_ConnHdlr return OCT1 { + timer T := 5.0; + var PDU_BSSGP rx_pdu; + BSSGP_SIG[ran_idx].send(ts_BSSGP_SUSPEND(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + T.start; + alt { + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value; + } + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, ?)) -> value rx_pdu { + setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli); + mtc.stop; + } + } + return '00'O; +} + +friend function f_bssgp_resume(OCT1 susp_ref, integer ran_idx := 0) runs on BSSGP_ConnHdlr { + timer T := 5.0; + BSSGP_SIG[ran_idx].send(ts_BSSGP_RESUME(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, susp_ref)); + T.start; + alt { + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id)); + [] BSSGP_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, g_pars.bssgp_cell_id[ran_idx].ra_id, +?)) { + setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli); + mtc.stop; + } + } +} + + private function f_TC_attach(charstring id) runs on BSSGP_ConnHdlr { f_gmm_attach(false, false); setverdict(pass); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib1e370e2c5fe774029f459ef991fb9ac777f5631 Gerrit-Change-Number: 18888 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:40:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:40:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 ) Change subject: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case ...................................................................... sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In some scenarios we do not expect a PDU from GTP to show up on the Gb side. Let's add support for this. Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 13 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 77ebbcd..4b4bbd9 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1506,15 +1506,26 @@ } /* Transceive given 'payload' as MT message from GTP -> OsmoSGSN -> Gb */ -private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0) +private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0, boolean expect_fwd := true) runs on BSSGP_ConnHdlr { + timer T := 5.0; /* Send PDU via GTP from our simulated GGSN to the SGSN */ f_gtpu_send(apars, payload); + T.start; /* Expect PDU via BSSGP/LLC on simulated PCU from SGSN */ alt { [] as_xid(apars, ran_index); //[] BSSGP[ran_index].receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload))); - [] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)); + [expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)); + [expect_fwd] T.timeout { + setverdict(fail, "Timeout waiting for GTP-U to appear on BSSGP"); + mtc.stop; + } + [not expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)) { + setverdict(fail, "GTP-U forwarded to BSSGP but not expected") + mtc.stop; + } + [not expect_fwd] T.timeout {} } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Gerrit-Change-Number: 18889 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 Jun 18 11:40:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:40:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: Add series of tests on suspend/resume and paging behavior In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 ) Change subject: sgsn: Add series of tests on suspend/resume and paging behavior ...................................................................... sgsn: Add series of tests on suspend/resume and paging behavior Let's test whether paging is triggered after T3314 expiration, as well as suspend and explicit and implicit resume work as expected Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Related: OS#4616 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 163 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 4b4bbd9..0e656a3 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -2907,6 +2907,164 @@ f_cleanup(); } +private altstep as_nopaging_ps(integer ran_idx := 0) runs on BSSGP_ConnHdlr { +var PDU_BSSGP rx; +[] BSSGP_SIG[ran_idx].receive(tr_BSSGP_PS_PAGING(?)) -> value rx { + setverdict(fail, "Received unexpected PS PAGING: ", rx); + mtc.stop; + } +} + +/* SUSPEND, then DL traffic: should not pass + no paging expected */ +private function f_TC_suspend_nopaging(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now suspend GPRS */ + f_bssgp_suspend(); + + d := activate(as_nopaging_ps()); + + /* at this point we don't expect any downlink traffic at all, neither actual LLC/SNDCP data, + * nor any related paging requests */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), expect_fwd := false); + + deactivate(d); +} +testcase TC_suspend_nopaging() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_suspend_nopaging), testcasename(), g_gb, 48); + vc_conn.done; + f_cleanup(); +} + + +/* SUSPEND, then RESUME: data expected to flow after explicit resume */ +private function f_TC_suspend_resume(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var OCT1 susp_ref; + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now suspend GPRS */ + susp_ref := f_bssgp_suspend(); + + d := activate(as_nopaging_ps()); + + /* at this point we don't expect any downlink traffic at all, neither actual LLC/SNDCP data, + * nor any related paging requests */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), expect_fwd := false); + + deactivate(d); + + /* resume GPRS */ + f_bssgp_resume(susp_ref); + + /* now data should be flowing again */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); +} +testcase TC_suspend_resume() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_suspend_resume), testcasename(), g_gb, 49); + vc_conn.done; + f_cleanup(); +} + +/* SUSPEND, then RAU: data expected to flow after implicit resume */ +private function f_TC_suspend_rau(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now suspend GPRS */ + f_bssgp_suspend(); + + d := activate(as_nopaging_ps()); + + /* at this point we don't expect any downlink traffic at all, neither actual LLC/SNDCP data, + * nor any related paging requests */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), expect_fwd := false); + + deactivate(d); + + /* perform RAU (implicit RESUME) */ + f_routing_area_update(g_pars.ra); + + /* now data should be flowing again */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + +} +testcase TC_suspend_rau() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_suspend_rau), testcasename(), g_gb, 50); + vc_conn.done; + f_cleanup(); +} + + +/* wait for T3314 expiration and check that PS PAGING is created on DL PDU */ +private function f_TC_paging_ps(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var default d; + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + + /* now wait for T3314 expiration (test_CT below has reduced it to 3s) */ + f_sleep(5.0); + + /* now data should be flowing again, but with PS PAGING */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + BSSGP_SIG[0].receive(tr_BSSGP_PS_PAGING(?)); + + /* FIXME: simulate paging response */ + /* FIXME: verify PDU actually arrives only after paging response was successful */ + +} +testcase TC_paging_ps() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_vty_config(SGSNVTY, "sgsn", "timer 3314 3"); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_paging_ps), testcasename(), g_gb, 51); + vc_conn.done; + f_vty_config(SGSNVTY, "sgsn", "timer 3314 default"); + f_cleanup(); +} + + + + + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -2964,6 +3122,11 @@ execute( TC_llc_sabm_dm_llgmm() ); execute( TC_llc_sabm_dm_ll5() ); + execute( TC_suspend_nopaging() ); + execute( TC_suspend_resume() ); + execute( TC_suspend_rau() ); + execute( TC_paging_ps() ); + /* At the end, may crash osmo-sgsn, see OS#3957, OS#4245 */ execute( TC_attach_req_id_req_ra_update() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I83b7a453958e30dfc727ba3140168217c209833f Gerrit-Change-Number: 18890 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 Jun 18 11:41:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:41:54 +0000 Subject: Change in osmocom-bb[master]: firmware/apps/rssi: enlarge text buffer in refresh_display() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18747 ) Change subject: firmware/apps/rssi: enlarge text buffer in refresh_display() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7980727b78f7622d792d82170f73c90ac5770397 Gerrit-Change-Number: 18747 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 11: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 Thu Jun 18 11:42:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:42:04 +0000 Subject: Change in osmocom-bb[master]: firmware/apps/rssi: enlarge text buffer in refresh_display() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18747 ) Change subject: firmware/apps/rssi: enlarge text buffer in refresh_display() ...................................................................... firmware/apps/rssi: enlarge text buffer in refresh_display() This change fixes several warnings reported by GCC 10.1.0: apps/rssi/main.c:238:30: warning: 'sprintf' may write a terminating nul past the end of the destination apps/rssi/main.c:238:4: note: 'sprintf' output between 10 and 17 bytes into a destination of size 16 apps/rssi/main.c:413:26: warning: '.' directive writing 1 byte into a region of size between 0 and 9 apps/rssi/main.c:413:3: note: 'sprintf' output between 10 and 20 bytes into a destination of size 16 Change-Id: I7980727b78f7622d792d82170f73c90ac5770397 --- M src/target/firmware/apps/rssi/main.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/target/firmware/apps/rssi/main.c b/src/target/firmware/apps/rssi/main.c index e137806..4b33ee3 100644 --- a/src/target/firmware/apps/rssi/main.c +++ b/src/target/firmware/apps/rssi/main.c @@ -170,7 +170,7 @@ static void refresh_display(void) { - char text[16]; + char text[32]; int bat = battery_info.battery_percent; fb_clear(); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I7980727b78f7622d792d82170f73c90ac5770397 Gerrit-Change-Number: 18747 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:42:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:42:04 +0000 Subject: Change in osmocom-bb[master]: firmware/layer1: cosmetic: add missing comma to debug print In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18748 ) Change subject: firmware/layer1: cosmetic: add missing comma to debug print ...................................................................... firmware/layer1: cosmetic: add missing comma to debug print Change-Id: Icfc403e500c24628da722ab378fba31923afd1a1 --- M src/target/firmware/layer1/l23_api.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c index e0fee84..d52d8f6 100644 --- a/src/target/firmware/layer1/l23_api.c +++ b/src/target/firmware/layer1/l23_api.c @@ -376,7 +376,7 @@ struct l1ctl_info_ul *ul = (struct l1ctl_info_ul *) l1h->data; struct l1ctl_rach_req *rach_req = (struct l1ctl_rach_req *) ul->payload; - printd("L1CTL_RACH_REQ (ra=0x%02x, offset=%d combined=%d)\n", + printd("L1CTL_RACH_REQ (ra=0x%02x, offset=%d, combined=%d)\n", rach_req->ra, ntohs(rach_req->offset), rach_req->combined); l1a_rach_req(ntohs(rach_req->offset), rach_req->combined, -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Icfc403e500c24628da722ab378fba31923afd1a1 Gerrit-Change-Number: 18748 Gerrit-PatchSet: 2 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 Thu Jun 18 11:42:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:42:15 +0000 Subject: Change in osmo-trx[master]: RPM spec file: Require uhd-firmware for osmo-trx-uhd In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18879 ) Change subject: RPM spec file: Require uhd-firmware for osmo-trx-uhd ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 Gerrit-Change-Number: 18879 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:42:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:42:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:42:18 +0000 Subject: Change in osmo-trx[master]: RPM spec file: Require uhd-firmware for osmo-trx-uhd In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18879 ) Change subject: RPM spec file: Require uhd-firmware for osmo-trx-uhd ...................................................................... RPM spec file: Require uhd-firmware for osmo-trx-uhd The automatic dependency will only depend on the UHD library package. The user will then fail to start osmo-trx-uhd due to missing firmware. So let's include an explicit 'Requires' to the uhd-firmware package to solve this. Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 --- M contrib/osmo-trx.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve Hoernchen: 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 Jenkins Builder: Verified diff --git a/contrib/osmo-trx.spec.in b/contrib/osmo-trx.spec.in index 535e375..fa46b74 100644 --- a/contrib/osmo-trx.spec.in +++ b/contrib/osmo-trx.spec.in @@ -69,6 +69,7 @@ %package uhd Summary: SDR transceiver that implements Layer 1 of a GSM BTS (UHD) Group: Productivity/Telephony/Servers +Requires: uhd-firmware %description uhd OsmoTRX is a software-defined radio transceiver that implements the Layer 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I0ebfe669c21d3957a48d57bd7248244e3e924236 Gerrit-Change-Number: 18879 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:43:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:43:58 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/18862/2/src/common/scheduler.c at 603 PS2, Line 603: l1ts->ctrs = rate_ctr_group_alloc(trx, &l1sched_ts_ctrg_desc, (trx->nr + 1) * 10 + tn); > I couldn't find any way to nest rate counters, if you can tell me a way I'm happy to use it. they are too old, I remember introducing them ages ago. Having a hierarchy of them would also solve some situations in the SGSN where we'd want to have per-PDP/NSAPI counters underneath a MM context. But it doesn't exist today. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 11:43:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:44:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:44:05 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 11:44: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 Jun 18 11:44:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:44:44 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about Dl block not found In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18863 ) Change subject: scheduler: Add rate_ctr informing about Dl block not found ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:44:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:48:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:48:39 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... Patch Set 4: (1 comment) I think this very aggressive change to 10% of the previous value needs testing across more platforms (indeed, e.g. raspi as mentioned in the log). Also, maybe a test with a LimeSDR? And the commit log should be extended with at least some example configurations that were working. https://gerrit.osmocom.org/c/osmo-bts/+/17766/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/17766/4//COMMIT_MSG at 10 PS4, Line 10: rtx rts-advance? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 4 Gerrit-Owner: daniel 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: Thu, 18 Jun 2020 11:48:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:48:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:48:45 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 4 Gerrit-Owner: daniel 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: Thu, 18 Jun 2020 11:48:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:48:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:48:50 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about too low rts-advance In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18862 ) Change subject: scheduler: Add rate_ctr informing about too low rts-advance ...................................................................... scheduler: Add rate_ctr informing about too low rts-advance Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 --- M include/osmo-bts/scheduler.h M src/common/scheduler.c 2 files changed, 25 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index f5f346e..e65665f 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -2,6 +2,7 @@ #define TRX_SCHEDULER_H #include +#include #include @@ -142,6 +143,8 @@ struct llist_head dl_prims; /* Queue primitives for TX */ + struct rate_ctr_group *ctrs; /* rate counters */ + /* Channel states for all logical channels */ struct l1sched_chan_state chan_state[_TRX_CHAN_MAX]; }; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index c1bd19f..b539733 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -30,6 +30,8 @@ #include #include #include +#include +#include #include #include @@ -562,6 +564,21 @@ }, }; +enum { + L1SCHED_TS_CTR_DL_LATE, +}; + +static const struct rate_ctr_desc l1sched_ts_ctr_desc[] = { + [L1SCHED_TS_CTR_DL_LATE] = {"l1sched_ts:dl_late", "Downlink frames arrived too late to submit to lower layers"}, +}; +static const struct rate_ctr_group_desc l1sched_ts_ctrg_desc = { + "l1sched_ts", + "L1 scheduler timeslot", + OSMO_STATS_CLASS_GLOBAL, + ARRAY_SIZE(l1sched_ts_ctr_desc), + l1sched_ts_ctr_desc +}; + /* * init / exit */ @@ -582,7 +599,9 @@ struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); l1ts->mf_index = 0; + l1ts->ctrs = rate_ctr_group_alloc(trx, &l1sched_ts_ctrg_desc, (trx->nr + 1) * 10 + tn); INIT_LLIST_HEAD(&l1ts->dl_prims); + for (i = 0; i < ARRAY_SIZE(l1ts->chan_state); i++) { struct l1sched_chan_state *chan_state; chan_state = &l1ts->chan_state[i]; @@ -604,6 +623,8 @@ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { struct l1sched_ts *l1ts = l1sched_trx_get_ts(l1t, tn); msgb_queue_flush(&l1ts->dl_prims); + rate_ctr_group_free(l1ts->ctrs); + l1ts->ctrs = NULL; for (i = 0; i < _TRX_CHAN_MAX; i++) { struct l1sched_chan_state *chan_state; chan_state = &l1ts->chan_state[i]; @@ -670,6 +691,7 @@ prim_fn, l1sap_fn, fn, get_lchan_by_chan_nr(l1t->trx, chan_nr)->name, trx_chan_desc[chan].name); + rate_ctr_inc2(l1ts->ctrs, L1SCHED_TS_CTR_DL_LATE); /* unlink and free message */ llist_del(&msg->list); msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I76c3dd4020c6d74192b03b1d42413ae536da5f05 Gerrit-Change-Number: 18862 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:48:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:48:51 +0000 Subject: Change in osmo-bts[master]: scheduler: Add rate_ctr informing about Dl block not found In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18863 ) Change subject: scheduler: Add rate_ctr informing about Dl block not found ...................................................................... scheduler: Add rate_ctr informing about Dl block not found Together with previous counter L1SCHED_TS_CTR_DL_LATE, it allows understanding which dl blocks are really lost (never queued) and which were simply queued too late. Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 --- M src/common/scheduler.c 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved neels: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/scheduler.c b/src/common/scheduler.c index b539733..01edc69 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -566,10 +566,12 @@ enum { L1SCHED_TS_CTR_DL_LATE, + L1SCHED_TS_CTR_DL_NOT_FOUND, }; static const struct rate_ctr_desc l1sched_ts_ctr_desc[] = { [L1SCHED_TS_CTR_DL_LATE] = {"l1sched_ts:dl_late", "Downlink frames arrived too late to submit to lower layers"}, + [L1SCHED_TS_CTR_DL_NOT_FOUND] = {"l1sched_ts:dl_not_found", "Downlink frames not found while scheduling"}, }; static const struct rate_ctr_group_desc l1sched_ts_ctrg_desc = { "l1sched_ts", @@ -698,7 +700,7 @@ continue; } if (prim_fn > 0) /* l1sap_fn > fn */ - return NULL; + break; /* l1sap_fn == fn */ if ((chan_nr ^ (trx_chan_desc[chan].chan_nr | tn)) @@ -714,6 +716,8 @@ return msg; } + /* Queue was traversed with no candidate, no prim is available for current FN: */ + rate_ctr_inc2(l1ts->ctrs, L1SCHED_TS_CTR_DL_NOT_FOUND); return NULL; free_msg: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I456d0cfbef1e03b147ce7d968a3ec42dd728fe74 Gerrit-Change-Number: 18863 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:49:29 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 11:49:29 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 to look at the new patch set (#4). Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Use libosmocore's TDMA frame number API (constatns & arithmetic) Depends: (libosmocore) Ic291fd3644f34964374227a191c7045d79d77e0d Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-virtual/scheduler_virtbts.c 6 files changed, 31 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/18874/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria 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 Jun 18 11:49:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:49:51 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18870 ) Change subject: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Idde328d176b4cbd89c62712e4a247095dd596105 Gerrit-Change-Number: 18870 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:49: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 Jun 18 11:50:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:50:01 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: clarify lost frame counter description In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18871 ) Change subject: trxcon/scheduler: cosmetic: clarify lost frame counter description ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ied5ea8524f2ec6c324e9fd37256111d099c23e6c Gerrit-Change-Number: 18871 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:50: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 Jun 18 11:52:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:52:06 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18870 ) Change subject: trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t ...................................................................... trxcon/scheduler: cosmetic: use enumerated type instead of uint8_t Change-Id: Idde328d176b4cbd89c62712e4a247095dd596105 --- M src/host/trxcon/scheduler.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/host/trxcon/scheduler.h b/src/host/trxcon/scheduler.h index 36c64e5..3a97e9d 100644 --- a/src/host/trxcon/scheduler.h +++ b/src/host/trxcon/scheduler.h @@ -33,7 +33,7 @@ /*! \brief One scheduler instance */ struct trx_sched { /*! \brief Clock state */ - uint8_t state; + enum tdma_sched_clck_state state; /*! \brief Local clock source */ struct timespec clock; /*! \brief Count of processed frames */ -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Idde328d176b4cbd89c62712e4a247095dd596105 Gerrit-Change-Number: 18870 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:52:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:52:06 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: cosmetic: clarify lost frame counter description In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18871 ) Change subject: trxcon/scheduler: cosmetic: clarify lost frame counter description ...................................................................... trxcon/scheduler: cosmetic: clarify lost frame counter description Change-Id: Ied5ea8524f2ec6c324e9fd37256111d099c23e6c --- M src/host/trxcon/scheduler.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/host/trxcon/scheduler.h b/src/host/trxcon/scheduler.h index 3a97e9d..e3c0cb0 100644 --- a/src/host/trxcon/scheduler.h +++ b/src/host/trxcon/scheduler.h @@ -40,7 +40,7 @@ uint32_t fn_counter_proc; /*! \brief Local frame counter advance */ uint32_t fn_counter_advance; - /*! \brief Frame counter */ + /*! \brief Count of lost frames */ uint32_t fn_counter_lost; /*! \brief Frame callback timer */ struct osmo_timer_list clock_timer; -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: Ied5ea8524f2ec6c324e9fd37256111d099c23e6c Gerrit-Change-Number: 18871 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:53:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:53:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876/2/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876/2/bsc/BSC_Tests.ttcn at 210 PS2, Line 210: private function f_counter_name_vals_add(CounterNameVals vals, charstring countername, integer val := 1) return CounterNameVals{ > All these functions look generic to test rate_ctrs. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11:53: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 Thu Jun 18 11:54:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:54:09 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix length indicator in Set Channel Attributes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18829 ) Change subject: abis_nm: fix length indicator in Set Channel Attributes ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Gerrit-Change-Number: 18829 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11: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 Thu Jun 18 11:54:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:54:20 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix ARFCN list encoding in Set Channel Attributes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18565 ) Change subject: abis_nm: fix ARFCN list encoding in Set Channel Attributes ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iec1826f55459ac8e9355328a1a6bb0949874db60 Gerrit-Change-Number: 18565 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 11: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 Thu Jun 18 11:54:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:54:24 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix ARFCN list encoding in Set Channel Attributes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18565 ) Change subject: abis_nm: fix ARFCN list encoding in Set Channel Attributes ...................................................................... abis_nm: fix ARFCN list encoding in Set Channel Attributes 3GPP TS 12.21 defines coding of 'ARFCN List' attribute as follows: +---------------------------+--------------------+ | Attribute Identifier | 1st octet | +---------------------------+--------------------+ | Length | 2-3 octets | +---------------------------+--------------------+ | ARFCN1 | 4-5 octets | +---------------------------+--------------------+ | ... | ... | +---------------------------+--------------------+ | ARFCNn | (n * 2 - 3) octets | +---------------------------+--------------------+ so this is basically TL16V, where L16 is the length of V. In the Siemens dialect of OML coding rules are different though: +---------------------------+--------------------+ | Attribute Identifier | 1st octet | +---------------------------+--------------------+ | ARFCN count | 2nd octet | +---------------------------+--------------------+ | ARFCN1 | 4-5 octets | +---------------------------+--------------------+ | ... | ... | +---------------------------+--------------------+ | ARFCNn | (n * 2 - 2) octets | +---------------------------+--------------------+ so this is TCV, where C is the amount of ARFCNs in V. This change fixes encoding of 'ARFCN List' for other dialects, in particular encoding of the 'Length' field (1 vs 2 octets). I verified the results in Wireshark (generic 3GPP TS 12.21 and ip.access dialect), everything looks good. Change-Id: Iec1826f55459ac8e9355328a1a6bb0949874db60 Related: OS#4545 --- M src/osmo-bsc/abis_nm.c 1 file changed, 28 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index db2879f..d503f2a 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -2019,26 +2019,43 @@ msgb_tv_put(msg, NM_ATT_CHAN_COMB, chan_comb); if (ts->hopping.enabled) { - unsigned int i; - uint8_t *len; + unsigned int i, n; + uint16_t *u16 = NULL; + uint8_t *u8 = NULL; msgb_tv_put(msg, NM_ATT_HSN, ts->hopping.hsn); msgb_tv_put(msg, NM_ATT_MAIO, ts->hopping.maio); - /* build the ARFCN list */ msgb_put_u8(msg, NM_ATT_ARFCN_LIST); - len = msgb_put(msg, 1); - *len = 0; - for (i = 0; i < ts->hopping.arfcns.data_len*8; i++) { + + /* 3GPP TS 12.21 defines this IE as TL16V */ + if (bts->type != GSM_BTS_TYPE_BS11) + u16 = (uint16_t *) msgb_put(msg, 2); + else /* ... but BS-11 wants TLV instead */ + u8 = (uint8_t *) msgb_put(msg, 1); + + /* build the ARFCN list from pre-computed bitmap */ + for (i = 0, n = 0; i < ts->hopping.arfcns.data_len*8; i++) { if (bitvec_get_bit_pos(&ts->hopping.arfcns, i)) { msgb_put_u16(msg, i); - /* At least BS-11 wants a TLV16 here */ - if (bts->type == GSM_BTS_TYPE_BS11) - *len += 1; - else - *len += sizeof(uint16_t); + n += 1; } } + + /* BS-11 cannot handle more than 255 ARFCNs, because L is 8 bit. + * This is unlikely to happen, but better check than sorry... */ + if (bts->type == GSM_BTS_TYPE_BS11 && n > 0xff) { + LOGPFOH(DNM, LOGL_ERROR, foh, "%s cannot handle %u (more than 255) " + "hopping channels\n", gsm_bts_name(bts), n); + msgb_free(msg); + return -EINVAL; + } + + /* 3GPP TS 12.21 defines L as length of the V part (in octets) */ + if (bts->type != GSM_BTS_TYPE_BS11) + *u16 = htons(n * sizeof(*u16)); + else /* ... BS-11 wants the number of channels instead */ + *u8 = n; } msgb_tv_put(msg, NM_ATT_TSC, gsm_ts_tsc(ts)); /* training sequence */ if (bts->type == GSM_BTS_TYPE_BS11) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iec1826f55459ac8e9355328a1a6bb0949874db60 Gerrit-Change-Number: 18565 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 Jun 18 11:54:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:54:24 +0000 Subject: Change in osmo-bsc[master]: abis_nm: fix length indicator in Set Channel Attributes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18829 ) Change subject: abis_nm: fix length indicator in Set Channel Attributes ...................................................................... abis_nm: fix length indicator in Set Channel Attributes This message may contain optional IEs (HSN, MAIO, ARFCN list), so we cannot know the final length in advance. Let's set both msg->{l2h,l3h} pointers and use msgb_l3len() to get the length. Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Related: OS#4545 --- M src/osmo-bsc/abis_nm.c 1 file changed, 6 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved neels: 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 d503f2a..b6d1ec5 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -1998,14 +1998,11 @@ struct abis_om_fom_hdr *foh; uint8_t zero = 0x00; struct msgb *msg = nm_msgb_alloc(); - uint8_t len = 2 + 2; const char *reason = NULL; - if (bts->type == GSM_BTS_TYPE_BS11) - len += 4 + 2 + 2 + 3; - + /* NOTE: message length will be set later, see down below */ oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE); - foh = fill_om_fom_hdr(oh, len, NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, bts->bts_nr, + foh = fill_om_fom_hdr(oh, 0, NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, bts->bts_nr, ts->trx->nr, ts->nr); DEBUGPFOH(DNM, foh, "Set Chan Attr %s\n", gsm_ts_name(ts)); @@ -2061,6 +2058,10 @@ if (bts->type == GSM_BTS_TYPE_BS11) msgb_tlv_put(msg, 0x59, 1, &zero); + msg->l2h = (uint8_t *) oh; + msg->l3h = (uint8_t *) foh; + oh->length = msgb_l3len(msg); + DEBUGPFOH(DNM, foh, "%s(): sending %s\n", __func__, msgb_hexdump(msg)); return abis_nm_sendmsg(bts, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I948ad4b847921324794a6eabd95d5583324da6e4 Gerrit-Change-Number: 18829 Gerrit-PatchSet: 3 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 Thu Jun 18 11:54:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:54:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add MSC pooling tests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 ) Change subject: bsc: add MSC pooling tests ...................................................................... bsc: add MSC pooling tests The MSC pooling feature is implemented in osmo-bsc Ifbdea197b26e88751a391c8a80c41f04e7d5e047. A VTY command ('mscpool roundrobin next') that allows deterministic testing is added in I2155d906505a26744966f442ffb1e87a6a9b494c. osmo-bsc.cfg changes needed for these tests to succeed are in docker-playground I1986e4ef43beee161c82193694421b56136c1afe The new tests will fail until the above have been merged. Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/L3_Templates.ttcn 3 files changed, 736 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 364254c..377b193 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -20,6 +20,7 @@ * level testing. */ +import from Misc_Helpers all; import from General_Types all; import from Osmocom_Types all; import from GSM_Types all; @@ -369,6 +370,14 @@ "sccp-timer iar " & int2str(g_bsc_sccp_timer_iar)}); } +private function f_logp(charstring log_msg) runs on MSC_ConnHdlr +{ + // log on TTCN3 log output + log(log_msg); + // log in stderr log + f_vty_transceive(BSCVTY, "logp lglobal notice " & log_msg); +} + /* global initialization function * \param nr_bts Number of BTSs we should start/bring up * \param handler_mode Start an RSL_Emulation_CT component (true) or not (false). @@ -4445,6 +4454,628 @@ vc_conn.done; } +/*********************************************************************** + * MSC Pooling + ***********************************************************************/ + +function f_tmsi_nri(integer nri_v, octetstring base_tmsi := '42000023'O, integer nri_bitlen := 10) return octetstring +{ + return int2oct( oct2int(base_tmsi) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ), + 4); +} + +template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) := + ts_MI_TMSI_LV(tmsi := f_tmsi_nri(nri_v, nri_bitlen := nri_bitlen)); + +private function f_perform_clear(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr { + f_logp("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)) { + f_logp("Got RSL RR Release"); + } + [] rsl.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { + f_logp("Got RSL Deact SACCH"); + } + [] BSSAP.receive(tr_BSSMAP_ClearComplete) { + f_logp("Got BSSMAP Clear Complete"); + /* Also drop the SCCP connection */ + BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + } + [] rsl.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { + f_logp("Got RSL RF Chan Rel, sending Rel Ack"); + rsl.send(ts_RSL_RF_CHAN_REL_ACK(g_chan_nr)); + } + } +} + +private function f_perform_compl_l3(RSL_DCHAN_PT rsl, template PDU_ML3_MS_NW l3_info, boolean do_clear := true) +runs on MSC_ConnHdlr { + timer T := 10.0; + var octetstring l3_enc := enc_PDU_ML3_MS_NW(valueof(l3_info)); + + f_logp("establish channel, send Complete Layer 3 Info"); + f_create_bssmap_exp(l3_enc); + + /* RSL_Emulation.f_chan_est() on rsl: + * This is basically code dup with s/RSL/rsl from: + * RSL_Emulation.f_chan_est(g_pars.ra, l3_enc, g_pars.link_id, g_pars.fn); + */ + var RSL_Message rx_rsl; + var GsmRrMessage rr; + + /* request a channel to be established */ + rsl.send(ts_RSLDC_ChanRqd(g_pars.ra, g_pars.fn)); + /* expect immediate assignment. + * Code dup with s/RSL/rsl from: + * rx_rsl := f_rx_or_fail(tr_RSL_IMM_ASSIGN); + */ + timer Tt := 10.0; + + /* request a channel to be established */ + Tt.start; + alt { + [] rsl.receive(tr_RSL_IMM_ASSIGN) -> value rx_rsl { + Tt.stop; + } + [] rsl.receive { + setverdict(fail, "Unexpected RSL message on DCHAN"); + mtc.stop; + } + [] Tt.timeout { + setverdict(fail, "Timeout waiting for RSL on DCHAN"); + mtc.stop; + } + } + rr := dec_GsmRrMessage(rx_rsl.ies[1].body.full_imm_ass_info.payload); + g_chan_nr := rr.payload.imm_ass.chan_desc.chan_nr; + rsl.send(ts_RSL_EST_IND(g_chan_nr, valueof(g_pars.link_id), l3_enc)); + + + f_logp("expect BSSAP Complete Layer 3 Info at MSC"); + var template PDU_BSSAP exp_l3_compl; + exp_l3_compl := tr_BSSMAP_ComplL3() + if (g_pars.aoip == false) { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := omit; + } else { + exp_l3_compl.pdu.bssmap.completeLayer3Information.codecList := ?; + } + + var PDU_BSSAP bssap; + T.start; + alt { + [] BSSAP.receive(exp_l3_compl) -> value bssap { + f_logp("received expected Complete Layer 3 Info at MSC"); + log("rx exp_l3_compl = ", bssap); + } + [] BSSAP.receive(tr_BSSMAP_ComplL3) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Received non-matching COMPLETE LAYER 3 INFORMATION"); + } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for COMPLETE LAYER 3 INFORMATION"); + } + } + + /* start ciphering, if requested */ + if (ispresent(g_pars.encr)) { + f_logp("start ciphering"); + f_cipher_mode(g_pars.encr.enc_alg, g_pars.encr.enc_key); + } + + if (do_clear) { + f_perform_clear(rsl); + } + setverdict(pass); + f_sleep(1.0); +} + +private function f_tc_mscpool_compl_l3(charstring id) runs on MSC_ConnHdlr { + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + if (g_pars.mscpool.rsl_idx == 0) { + f_perform_compl_l3(RSL, g_pars.mscpool.l3_info); + } else if (g_pars.mscpool.rsl_idx == 1) { + f_perform_compl_l3(RSL1, g_pars.mscpool.l3_info); + } else if (g_pars.mscpool.rsl_idx == 2) { + f_perform_compl_l3(RSL2, g_pars.mscpool.l3_info); + } +} + +/* Various Complete Layer 3 by IMSI all end up with the first MSC, because the other MSCs are not connected. */ +private function f_tc_mscpool_L3Compl_on_1_msc(charstring id) runs on MSC_ConnHdlr { + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + f_perform_compl_l3(RSL, ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)), '00F110'O) ); + f_perform_compl_l3(RSL, ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_IMSI_LV('001010000000002'H))) ); + f_perform_compl_l3(RSL, ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H))) ); + f_perform_compl_l3(RSL, ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_IMSI_LV('001010000000004'H))) ); +} +testcase TC_mscpool_L3Compl_on_1_msc() runs on test_CT { + + f_init(1, true); + f_sleep(1.0); + var MSC_ConnHdlr vc_conn; + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + vc_conn := f_start_handler(refers(f_tc_mscpool_L3Compl_on_1_msc), pars); + vc_conn.done; +} + +/* Three Layer 3 Complete by IMSI are round-robin'ed across two connected MSCs */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_L3Complete_by_imsi_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)), '00F110'O)); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 0 + * (configured in osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_LU_by_tmsi_null_nri_0_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 1 + * (configured in osmo-bsc.cfg). In this case, one of the MSC also has the NULL-NRI as part of its owned NRIs, but the + * NULL-NRI setting is stronger than that. */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_LU_by_tmsi_null_nri_1_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI not + * assigned to any MSC (configured in osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_L3Complete_by_tmsi_unassigned_nri_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + /* An NRI that is not assigned to any MSC */ + pars1.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(1023)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + /* An NRI that is not assigned to any MSC */ + pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(768)), '00F110'O)); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + /* An NRI that is not assigned to any MSC */ + pars3.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_SS_ACT, valueof(ts_MI_TMSI_NRI_LV(819)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI + * assigned to an MSC that is currently not connected (configured in osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_L3Complete_by_tmsi_valid_nri_msc_not_connected_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + /* An NRI that is assigned to an unconnected MSC */ + pars1.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(512)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + /* An NRI that is assigned to an unconnected MSC */ + pars2.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(767)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* Test round-robin wrap to the first MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + /* An NRI that is assigned to an unconnected MSC */ + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(750)), '00F110'O)); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Three Layer 3 Complete by TMSI with valid NRI for the second MSC are all directed to the second MSC (configured in + * osmo-bsc.cfg). */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_L3Complete_by_tmsi_valid_nri_1() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 2); + f_sleep(1.0); + + /* All TMSIs in this test point at the second MSC, set the round robin to point at the first MSC to make sure + * this is not using round-robin. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars1.mscpool.rsl_idx := 0; + /* An NRI of the second MSC's range (256-511) */ + pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(256)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars2.mscpool.rsl_idx := 1; + /* An NRI of the second MSC's range (256-511) */ + pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(260)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars3.mscpool.rsl_idx := 2; + /* An NRI of the second MSC's range (256-511) */ + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(511)), '00F110'O)); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* Layer 3 Complete by TMSI with valid NRI for the third MSC are directed to the third MSC (configured in osmo-bsc.cfg), + * while a round-robin remains unaffected by that. */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_L3Complete_by_tmsi_valid_nri_2() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* All TMSIs in this test point at the third MSC, set the round robin to point at the second MSC to make sure + * this is not using round-robin. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 2); + pars1.mscpool.rsl_idx := 0; + /* An NRI of the third MSC's range (512-767) */ + pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(512)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); + pars2.mscpool.rsl_idx := 1; + /* An NRI of the third MSC's range (512-767) */ + pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(678)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + /* The above forwardings to third MSC have not affected the round robin, which still points at the second MSC */ + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000013'H)), '00F110'O)); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; +} + +/* LU with a TMSI but indicating a different PLMN in its previous LAI: ignore the NRI. */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_LU_by_tmsi_from_other_PLMN() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* The TMSIs in this test points at the second MSC, but since it is from a different PLMN, round-robin is used + * instead, and hits msc 0. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + /* An NRI of the second MSC's range (256-511), but a PLMN that doesn't match with osmo-bsc.cfg */ + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(260)), '99F999'O)); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + /* An NRI of the third MSC's range (512-767) and a matching PLMN gets directed by NRI. */ + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(555)), '00F110'O)); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; +} + +/* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by IMSI, which would be + * round-robined to another MSC, to make sure the Paging->Response relation is stronger than the NRI->MSC mapping. */ +private function f_tc_mscpool_paging_imsi(charstring id) runs on MSC_ConnHdlr { + var template BSSMAP_FIELD_CellIdentificationList cid_list := { cIl_CI := { ts_BSSMAP_CI_CI(0) } }; + //cid_list := { cIl_allInBSS := ''O }; + var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH; + var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2)); + var BSSAP_N_UNITDATA_req paging; + var hexstring imsi := '001010000000123'H; + + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + valueof(ts_BSSMAP_Paging(imsi, cid_list, omit, bssmap_chneed)))); + BSSAP.send(paging); + + /* Register any RSL conn so that the Paging Command gets received here. With the current RSL_Emulation's main() + * handling of '[bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD()))' it doesn't matter at all which + * channel number is picked here. */ + var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(0, RSL_CHAN_NR_INVALID)); + f_rslem_register(0, new_chan_nr); + RSL.receive(tr_RSL_PAGING_CMD(tr_MI_IMSI(imsi))); + f_rslem_unregister(0, new_chan_nr); + + /* Despite the round robin pointing at the second MSC ('roundrobin next 1'), the earlier Paging for the same IMSI + * causes this Paging Response to go to the first MSC (bssap_idx := 0). */ + f_perform_compl_l3(RSL, ts_PAG_RESP(valueof(ts_MI_IMSI_LV(imsi))) ); + setverdict(pass); + f_sleep(1.0); +} +testcase TC_mscpool_paging_and_response_imsi() runs on test_CT { + f_init(nr_bts := 1, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* Testing a Paging on the first MSC to get a Paging Response back to the first MSC. Set round robin to the + * second MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_imsi), pars1); + vc_conn1.done; +} + +/* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by TMSI with an NRI value + * that matches a different MSC, to make sure the Paging->Response relation is stronger than the NRI->MSC mapping. */ +private function f_tc_mscpool_paging_tmsi(charstring id) runs on MSC_ConnHdlr { + var template BSSMAP_FIELD_CellIdentificationList cid_list := { cIl_CI := { ts_BSSMAP_CI_CI(0) } }; + //cid_list := { cIl_allInBSS := ''O }; + var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH; + var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2)); + var integer nri_v := 300; /* <-- second MSC's NRI */ + var octetstring tmsi := f_tmsi_nri(nri_v); + var BSSAP_N_UNITDATA_req paging; + + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); + + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + valueof(ts_BSSMAP_Paging('001010000000011'H, cid_list, tmsi, bssmap_chneed)))); + BSSAP.send(paging); + + /* Register any RSL conn so that the Paging Command gets received here. With the current RSL_Emulation's main() + * handling of '[bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD()))' it doesn't matter at all which + * channel number is picked here. */ + var RslChannelNr new_chan_nr := valueof(t_RslChanNr0(0, RSL_CHAN_NR_INVALID)); + f_rslem_register(0, new_chan_nr); + RSL.receive(tr_RSL_PAGING_CMD(t_MI_TMSI(tmsi))); + f_rslem_unregister(0, new_chan_nr); + + /* Despite the NRI matching the second MSC (NRI from 'msc 1' in osmo-bsc.cfg) and round robin pointing at the + * third MSC ('roundrobin next 2'), the earlier Paging for the same TMSI causes this Paging Response to go to + * the first MSC (bssap_idx := 0). */ + f_perform_compl_l3(RSL, ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(nri_v))) ); + setverdict(pass); + f_sleep(1.0); +} +testcase TC_mscpool_paging_and_response_tmsi() runs on test_CT { + f_init(nr_bts := 1, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* Testing a Paging on the first MSC to get a Paging Response back to the first MSC. Set round robin to the + * third MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 2"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_tmsi), pars1); + vc_conn1.done; +} + +/* For round-robin, skip an MSC that has 'no allow-attach' set. */ +/* FIXME: each run is using a separate RSLem: RSL, RSL1, RSL2. It should work + * just as well using only RSL. */ +testcase TC_mscpool_no_allow_attach_round_robin() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + /* Mark the second MSC as offloading, round-robin should skip this MSC now. */ + f_vty_enter_cfg_msc(BSCVTY, 1); + f_vty_transceive(BSCVTY, "no allow-attach"); + f_vty_transceive(BSCVTY, "exit"); + f_vty_transceive(BSCVTY, "exit"); + + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars1.mscpool.rsl_idx := 0; + pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)), '00F110'O)); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; + + f_vty_enter_cfg_msc(BSCVTY, 1); + f_vty_transceive(BSCVTY, "allow-attach"); + f_vty_transceive(BSCVTY, "exit"); + f_vty_transceive(BSCVTY, "exit"); +} + +/* An MSC that has 'no allow-attach' set should still serve subscribers that are already attached according to their + * TMSI NRI. */ +testcase TC_mscpool_no_allow_attach_valid_nri() runs on test_CT { + + f_init(nr_bts := 3, handler_mode := true, nr_msc := 3); + f_sleep(1.0); + + /* Control which MSC gets chosen next by the round-robin, otherwise + * would be randomly affected by which other tests ran before this. */ + f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + + /* Mark the second MSC as offloading, round-robin should skip this MSC now. */ + f_vty_enter_cfg_msc(BSCVTY, 1); + f_vty_transceive(BSCVTY, "no allow-attach"); + f_vty_transceive(BSCVTY, "exit"); + f_vty_transceive(BSCVTY, "exit"); + + /* Round robin points at msc 0, but the valid NRI directs to msc 1, even though msc 1 has 'no allow-attach'. */ + var MSC_ConnHdlr vc_conn1; + var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 1); + pars1.mscpool.rsl_idx := 0; + /* An NRI of the second MSC's range (256-511) */ + pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_TMSI_NRI_LV(260)))); + vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); + vc_conn1.done; + + var MSC_ConnHdlr vc_conn2; + var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 0); + pars2.mscpool.rsl_idx := 1; + pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); + vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); + vc_conn2.done; + + var MSC_ConnHdlr vc_conn3; + var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 2); + pars3.mscpool.rsl_idx := 2; + pars3.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000003'H)))); + vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); + vc_conn3.done; + + f_vty_enter_cfg_msc(BSCVTY, 1); + f_vty_transceive(BSCVTY, "allow-attach"); + f_vty_transceive(BSCVTY, "exit"); + f_vty_transceive(BSCVTY, "exit"); +} + /* Dyn PDCH todo: * activate OSMO as TCH/F * activate OSMO as TCH/H @@ -4616,6 +5247,28 @@ /* Power control related */ execute( TC_assignment_verify_ms_power_params_ie() ); + + /* MSC pooling */ + /* FIXME: in SCCPlite, indicating how many MSCs should be connected does currently not work. Since + * RESET->RESET-ACK is unconditionally negotiated for all configured MSCs, they always all appear as connected + * to osmo-bsc. The MSC pooling tests however require disconnecting selected MSCs, and hence don't work out as + * intended on SCCPlite. So for now, run these only for SCCP/M3UA. */ + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { + execute( TC_mscpool_L3Compl_on_1_msc() ); + execute( TC_mscpool_L3Complete_by_imsi_round_robin() ); + execute( TC_mscpool_LU_by_tmsi_null_nri_0_round_robin() ); + execute( TC_mscpool_LU_by_tmsi_null_nri_1_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_unassigned_nri_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_msc_not_connected_round_robin() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_1() ); + execute( TC_mscpool_L3Complete_by_tmsi_valid_nri_2() ); + execute( TC_mscpool_LU_by_tmsi_from_other_PLMN() ); + execute( TC_mscpool_paging_and_response_imsi() ); + execute( TC_mscpool_paging_and_response_tmsi() ); + execute( TC_mscpool_no_allow_attach_round_robin() ); + execute( TC_mscpool_no_allow_attach_valid_nri() ); + } + /* at bottom as they might crash OsmoBSC before OS#3182 is fixed */ execute( TC_early_conn_fail() ); execute( TC_late_conn_fail() ); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index feedc6f..fece825 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -482,7 +482,7 @@ } /* register an expect with the BSSMAP core */ -private function f_create_bssmap_exp(octetstring l3_enc) runs on MSC_ConnHdlr { +function f_create_bssmap_exp(octetstring l3_enc) runs on MSC_ConnHdlr { RAN.call(RAN_register:{l3_enc, self}) { [] RAN.getreply(RAN_register:{?, ?}) {}; } @@ -515,7 +515,11 @@ } type record TestHdlrParamsMSCPool { - integer bssap_idx + integer bssap_idx, + SCCP_PAR_Address sccp_addr_msc optional, + SCCP_PAR_Address sccp_addr_bsc optional, + integer rsl_idx, + PDU_ML3_MS_NW l3_info optional } type record TestHdlrParams { @@ -563,7 +567,11 @@ aoip := true, use_osmux := false, mscpool := { - bssap_idx := 0 + bssap_idx := 0, + sccp_addr_msc := omit, + sccp_addr_bsc := omit, + rsl_idx := 0, + l3_info := omit } } diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index ba91180..8b09572 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -278,6 +278,78 @@ } }; +template LocationUpdatingType LU_Type_Normal := { + lut := '00'B, + spare1_1 := '0'B, + fop := '0'B +}; + +template LocationUpdatingType LU_Type_Periodic := { + lut := '01'B, + spare1_1 := '0'B, + fop := '0'B +}; + +template LocationUpdatingType LU_Type_IMSI_Attach := { + lut := '10'B, + spare1_1 := '0'B, + fop := '0'B +}; + +/* Send template for LOCATION UPDATING REQUEST */ +template PDU_ML3_MS_NW ts_LU_REQ(template LocationUpdatingType lu_type, MobileIdentityLV mi_lv, + OCT3 mcc_mnc := '123456'O) := { + discriminator := '0000'B, /* overwritten */ + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + mm := { + locationUpdateRequest := { + messageType := '000000'B, /* overwritten */ + nsd := '00'B, + locationUpdatingType := lu_type, + cipheringKeySequenceNumber := { '000'B, '0'B }, + locationAreaIdentification := { + mcc_mnc := mcc_mnc, + lac := '172A'O + }, + mobileStationClassmark1 := ts_CM1, + mobileIdentityLV := mi_lv, + classmarkInformationType2_forUMTS := omit, + additionalUpdateParameterTV := omit, + deviceProperties := omit, + mS_NetworkFeatureSupport := omit + } + } + } +} + +template PDU_ML3_NW_MS ts_LU_ACCEPT(template MobileIdentityTLV mi_tlv := omit) := { + discriminator := '0000'B, /* overwritten */ + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + mm := { + locationUpdateAccept := { + messageType := '000000'B, /* overwritten */ + nsd := '00'B, + locationAreaIdentification := { + mcc_mnc := '123456'O, + lac := '172A'O + }, + mobileIdentityTLV := mi_tlv, + followOnProceed := omit, + cTS_Permission := omit, + equivalentPLMNs := omit, + emergencyNumberList := omit, + perMS_T3212 := omit + } + } + } +} + /* Send template for CM SERVICE REQUEST */ template (value) PDU_ML3_MS_NW ts_CM_SERV_REQ(CmServiceType serv_type, MobileIdentityLV mi_lv) := { discriminator := '0000'B, /* overwritten */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21cbab193cd0de2e5692665442eae113d5f61904 Gerrit-Change-Number: 18763 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:55:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:55:52 +0000 Subject: Change in osmo-msc[master]: msc_vty: remove emergency-call command from network In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18724 ) Change subject: msc_vty: remove emergency-call command from network ...................................................................... msc_vty: remove emergency-call command from network when the VTY write the config file ist prints the configuration line for emergency-call in network and in msc, however the presence of the configuration line in network leads to a parsing error on msc startup. The vty command probably got moved to node msc and it was forgotten to remove the printing from network. Change-Id: I4f3dac27723e7852f8f049fcfca5cccdc027734d Related: OS#4548 --- M src/libmsc/msc_vty.c 1 file changed, 0 insertions(+), 5 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index a629b5c..a92609d 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -402,11 +402,6 @@ gsmnet->tz.hr, gsmnet->tz.mn, VTY_NEWLINE); } - if (gsmnet->emergency.route_to_msisdn) { - vty_out(vty, " emergency-call route-to-msisdn %s%s", - gsmnet->emergency.route_to_msisdn, VTY_NEWLINE); - } - if (!gsmnet->call_waiting) vty_out(vty, " no call-waiting%s", VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4f3dac27723e7852f8f049fcfca5cccdc027734d Gerrit-Change-Number: 18724 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 11:57:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 18 Jun 2020 11:57:12 +0000 Subject: Change in pysim[master]: pySim-prog.py: check whether IMSI and PLMN matches In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/17694 ) Change subject: pySim-prog.py: check whether IMSI and PLMN matches ...................................................................... Abandoned actually, with EF.EHPLMN the IMSI must not at all match MCC/MNC anymore. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/17694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic7e98b827f32f8d59d346ceac0d2d215e0180109 Gerrit-Change-Number: 17694 Gerrit-PatchSet: 1 Gerrit-Owner: miaoski Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: miaoski Gerrit-CC: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 12:20:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 12:20:26 +0000 Subject: Change in osmo-bts[master]: handover_tests: Avoid redefining all bts_model stubs References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18899 ) Change subject: handover_tests: Avoid redefining all bts_model stubs ...................................................................... handover_tests: Avoid redefining all bts_model stubs Change-Id: I366f71474891d32e31dbba1a9fa1f9a510fa0952 --- M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/stubs.c 3 files changed, 4 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/99/18899/1 diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 966ea46..53d09c9 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -4,5 +4,5 @@ noinst_PROGRAMS = handover_test EXTRA_DIST = handover_test.ok -handover_test_SOURCES = handover_test.c +handover_test_SOURCES = handover_test.c $(srcdir)/../stubs.c handover_test_LDADD = $(top_builddir)/src/common/libbts.a $(LDADD) diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index c9799af..72d8dc8 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -268,18 +268,3 @@ msgb_free(msg); return rc; } - -int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type, struct tlv_parsed *old_attr, struct tlv_parsed *new_attr, void *obj) { return 0; } -int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int obj_kind, void *obj) { return 0; } -int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj) { return 0; } -int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj, uint8_t adm_state) { return 0; } -int bts_model_init(struct gsm_bts *bts) { return 0; } -int bts_model_trx_init(struct gsm_bts_trx *trx) { return 0; } -int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) { return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) { return 0; } -void trx_get_hlayer1(void) {} -int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) { return 0; } -int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) { return 0; } -void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) { return; } -int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { return 0; } -int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) { return 0; } diff --git a/tests/stubs.c b/tests/stubs.c index 7c64034..28a509e 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -30,13 +30,13 @@ int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj) { return 0; } -int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap) +__attribute__((weak)) int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap) { return 0; } uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx) { return 0; } -int bts_model_oml_estab(struct gsm_bts *bts) +__attribute__((weak)) int bts_model_oml_estab(struct gsm_bts *bts) { return 0; } int l1if_set_txpower(struct femtol1_hdl *fl1h, float tx_power) @@ -48,7 +48,7 @@ int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) { return 0; } -void bts_model_abis_close(struct gsm_bts *bts) +__attribute__((weak)) void bts_model_abis_close(struct gsm_bts *bts) { } int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I366f71474891d32e31dbba1a9fa1f9a510fa0952 Gerrit-Change-Number: 18899 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 Jun 18 12:20:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 12:20:27 +0000 Subject: Change in osmo-bts[master]: meas_tests: Avoid redefining all bts_model stubs References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18900 ) Change subject: meas_tests: Avoid redefining all bts_model stubs ...................................................................... meas_tests: Avoid redefining all bts_model stubs Change-Id: I47755e354a8cbcf34406de8bfc3985c70076fbf2 --- M tests/meas/Makefile.am M tests/meas/meas_test.c 2 files changed, 1 insertion(+), 86 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/00/18900/1 diff --git a/tests/meas/Makefile.am b/tests/meas/Makefile.am index d8fa118..c04106e 100644 --- a/tests/meas/Makefile.am +++ b/tests/meas/Makefile.am @@ -5,5 +5,5 @@ noinst_HEADERS = sysmobts_fr_samples.h meas_testcases.h EXTRA_DIST = meas_test.ok -meas_test_SOURCES = meas_test.c +meas_test_SOURCES = meas_test.c $(srcdir)/../stubs.c meas_test_LDADD = $(top_builddir)/src/common/libbts.a $(LDADD) diff --git a/tests/meas/meas_test.c b/tests/meas/meas_test.c index f414b60..309a522 100644 --- a/tests/meas/meas_test.c +++ b/tests/meas/meas_test.c @@ -588,88 +588,3 @@ return 0; } - -/* Stubs */ -void bts_model_abis_close(struct gsm_bts *bts) -{ -} - -int bts_model_oml_estab(struct gsm_bts *bts) -{ - return 0; -} - -int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap) -{ - return 0; -} - -int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type, struct tlv_parsed *old_attr, struct tlv_parsed *new_attr, - void *obj) -{ - return 0; -} - -int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int obj_kind, void *obj) -{ - return 0; -} - -int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj) -{ - return 0; -} - -int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj, uint8_t adm_state) -{ - return 0; -} - -int bts_model_init(struct gsm_bts *bts) -{ - return 0; -} - -int bts_model_trx_init(struct gsm_bts_trx *trx) -{ - return 0; -} - -int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) -{ - return 0; -} - -int bts_model_trx_close(struct gsm_bts_trx *trx) -{ - return 0; -} - -void trx_get_hlayer1(void) -{ -} - -int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) -{ - return 0; -} - -int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) -{ - return 0; -} - -void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) -{ - return; -} - -int bts_model_lchan_deactivate(struct gsm_lchan *lchan) -{ - return 0; -} - -int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) -{ - return 0; -} -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I47755e354a8cbcf34406de8bfc3985c70076fbf2 Gerrit-Change-Number: 18900 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 Jun 18 12:20:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 12:20:27 +0000 Subject: Change in osmo-bts[master]: tests/stubs.c: Add missing stub for bts_model_change_power References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18901 ) Change subject: tests/stubs.c: Add missing stub for bts_model_change_power ...................................................................... tests/stubs.c: Add missing stub for bts_model_change_power Change-Id: I16880fae32f60a83429cf5bbef796428c60a762c --- M tests/stubs.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/01/18901/1 diff --git a/tests/stubs.c b/tests/stubs.c index 28a509e..05175ea 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -39,6 +39,9 @@ __attribute__((weak)) int bts_model_oml_estab(struct gsm_bts *bts) { return 0; } +__attribute__((weak)) int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) +{ return 0; } + int l1if_set_txpower(struct femtol1_hdl *fl1h, float tx_power) { return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16880fae32f60a83429cf5bbef796428c60a762c Gerrit-Change-Number: 18901 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 Jun 18 12:51:34 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 12:51:34 +0000 Subject: Change in osmo-bts[master]: power_ramp: Add support to get callback when ramping process completes References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18902 ) Change subject: power_ramp: Add support to get callback when ramping process completes ...................................................................... power_ramp: Add support to get callback when ramping process completes It will be used in forthcoming commits to feed FSM events once the ramping process completes. Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e --- M include/osmo-bts/tx_power.h M src/common/bts_ctrl_commands.c M src/common/tx_power.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-sysmo/sysmobts_vty.c M src/osmo-bts-trx/l1_if.c M tests/tx_power/tx_power_test.c 8 files changed, 20 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/02/18902/1 diff --git a/include/osmo-bts/tx_power.h b/include/osmo-bts/tx_power.h index 8f33100..4d0457b 100644 --- a/include/osmo-bts/tx_power.h +++ b/include/osmo-bts/tx_power.h @@ -20,6 +20,8 @@ struct pa_calibration calib; }; +typedef void (*ramp_compl_cb_t)(struct gsm_bts_trx *trx); + /* Transmit power related parameters of a transceiver */ struct trx_power_params { /* specified maximum output of TRX at full power, has to be @@ -55,6 +57,8 @@ unsigned int step_size_mdB; unsigned int step_interval_sec; struct osmo_timer_list step_timer; + /* call-back called when target is reached */ + ramp_compl_cb_t compl_cb; } ramp; }; @@ -73,7 +77,7 @@ int get_p_trxout_actual_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red); int get_p_trxout_actual_mdBm_lchan(struct gsm_lchan *lchan); -int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass); +int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass, ramp_compl_cb_t ramp_compl_cb); void power_trx_change_compl(struct gsm_bts_trx *trx, int p_trxout_cur_mdBm); diff --git a/src/common/bts_ctrl_commands.c b/src/common/bts_ctrl_commands.c index 0d31890..faaba6a 100644 --- a/src/common/bts_ctrl_commands.c +++ b/src/common/bts_ctrl_commands.c @@ -57,7 +57,7 @@ tpp->thermal_attenuation_mdB = val; - power_ramp_start(trx, tpp->p_total_cur_mdBm, 0); + power_ramp_start(trx, tpp->p_total_cur_mdBm, 0, NULL); return get_therm_att(cmd, data); } diff --git a/src/common/tx_power.c b/src/common/tx_power.c index db3121d..c8e961f 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -210,8 +210,11 @@ struct trx_power_params *tpp = &trx->power_params; /* we had finished in last loop iteration */ - if (!first && tpp->ramp.attenuation_mdB == 0) + if (!first && tpp->ramp.attenuation_mdB == 0) { + if (tpp->ramp.compl_cb) + tpp->ramp.compl_cb(trx); return; + } if (we_are_ramping_up(trx)) { /* ramp up power -> ramp down attenuation */ @@ -236,7 +239,7 @@ } -int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass) +int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass, ramp_compl_cb_t ramp_compl_cb) { struct trx_power_params *tpp = &trx->power_params; @@ -259,6 +262,7 @@ /* set the new target */ tpp->p_total_tgt_mdBm = p_total_tgt_mdBm; + tpp->ramp.compl_cb = ramp_compl_cb; if (we_are_ramping_up(trx)) { if (tpp->p_total_tgt_mdBm <= tpp->ramp.max_initial_pout_mdBm) { diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 9c5dd19..7718605 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1740,7 +1740,7 @@ struct gsm_bts_trx *trx = obj; /*struct octphy_hdl *fl1h = trx_octphy_hdl(trx); */ - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); } return oml_fom_ack_nack(msg, 0); } diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 3533597..c3bf8b6 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -358,7 +358,7 @@ #endif /* Begin to ramp up the power */ - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); return opstart_compl(&trx->mo, l1_msg); } @@ -1743,7 +1743,7 @@ /* Did we go through MphInit yet? If yes fire and forget */ if (fl1h->hLayer1) - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); } /* FIXME: we actually need to send a ACK or NACK for the OML message */ diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c index 23f69a0..0653f01 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -362,7 +362,7 @@ int power = atoi(argv[1]); struct gsm_bts_trx *trx = gsm_bts_trx_num(vty_bts, trx_nr); - power_ramp_start(trx, to_mdB(power), 1); + power_ramp_start(trx, to_mdB(power), 1, NULL); return CMD_SUCCESS; } diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 07f6e7a..ea3dcfa 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -144,9 +144,9 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl; if (l1h->config.forced_max_power_red == -1) - power_ramp_start(trx, get_p_nominal_mdBm(trx), 0); + power_ramp_start(trx, get_p_nominal_mdBm(trx), 0, NULL); else - power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1); + power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1, NULL); } /* Sets the nominal power, in dB */ @@ -478,7 +478,7 @@ is already running. Otherwise skip, power ramping will be started after TRX is running */ if (plink->u.osmotrx.powered && l1h->config.forced_max_power_red == -1) - power_ramp_start(pinst->trx, get_p_nominal_mdBm(pinst->trx), 0); + power_ramp_start(pinst->trx, get_p_nominal_mdBm(pinst->trx), 0, NULL); return 0; } diff --git a/tests/tx_power/tx_power_test.c b/tests/tx_power/tx_power_test.c index aaa34ea..02c940f 100644 --- a/tests/tx_power/tx_power_test.c +++ b/tests/tx_power/tx_power_test.c @@ -200,7 +200,7 @@ trx->power_params.ramp.step_interval_sec = 0; /* speedup test */ trx->max_power_red = 0; - power_ramp_start(trx, to_mdB(dBm), 0); + power_ramp_start(trx, to_mdB(dBm), 0, NULL); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e Gerrit-Change-Number: 18902 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 Jun 18 12:51:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 12:51:35 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Introduce bts_shutdown FSM Using an FSM here will allow for more complex ordered shutdown procedures, like power ramp down, waiting for TRX deact asyncrhonously, etc. Current commit leaves everything in place already prepared to implement ramp down, which will be implemented in next commit in the series. Related: SYS#4920 Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 --- M include/osmo-bts/Makefile.am M include/osmo-bts/bts.h A include/osmo-bts/bts_shutdown_fsm.h M include/osmo-bts/gsm_data.h M src/common/Makefile.am M src/common/bts.c A src/common/bts_shutdown_fsm.c M src/common/gsm_data.c M src/common/main.c M src/osmo-bts-octphy/main.c M src/osmo-bts-omldummy/bts_model.c M src/osmo-bts-sysmo/l1_if.c M src/osmo-bts-sysmo/main.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-virtual/l1_if.c M src/osmo-bts-virtual/main.c M src/osmo-bts-virtual/scheduler_virtbts.c 20 files changed, 224 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/18903/1 diff --git a/include/osmo-bts/Makefile.am b/include/osmo-bts/Makefile.am index 4999ab4..310fce2 100644 --- a/include/osmo-bts/Makefile.am +++ b/include/osmo-bts/Makefile.am @@ -2,6 +2,7 @@ abis.h \ bts.h \ bts_model.h \ + bts_shutdown_fsm.h \ gsm_data.h \ logging.h \ measurement.h \ diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 63412f9..6549244 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -28,7 +28,6 @@ int bts_init(struct gsm_bts *bts); int bts_trx_init(struct gsm_bts_trx *trx); -void bts_shutdown(struct gsm_bts *bts, const char *reason); int bts_link_estab(struct gsm_bts *bts); int trx_link_estab(struct gsm_bts_trx *trx); diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h new file mode 100644 index 0000000..1ced7a1 --- /dev/null +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -0,0 +1,41 @@ +/* BTS shutdown FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include + +/* 3GPP TS 24.008 ? 4.1.3.3 GMM mobility management states on the network side */ +enum bts_shutdown_fsm_states { + ST_BTS_SHUTDOWN_NONE, + ST_BTS_SHUTDOWN_WAIT_RAMP_DOWN_COMPL, + ST_BTS_SHUTDOWN_EXIT, +}; + +enum bts_shutdown_fsm_events { + E_BTS_SHUTDOWN_START, +}; + +extern struct osmo_fsm bts_shutdown_fsm; + +struct gsm_bts; +void bts_shutdown(struct gsm_bts *bts, const char *reason); diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 80cc0be..5194850 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -732,6 +732,9 @@ char *sock_path; } pcu; + struct osmo_fsm_inst *shutdown_fi; /* FSM instance to manage shutdown procedure during process exit */ + struct osmo_tdef *T_defs; /* Timer defines */ + void *model_priv; /* Allocated by bts_model, contains model specific data pointer */ }; diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 85b7038..2fa5514 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -27,6 +27,7 @@ tx_power.c \ bts_ctrl_commands.c \ bts_ctrl_lookup.c \ + bts_shutdown_fsm.c \ l1sap.c \ cbch.c \ power_control.c \ diff --git a/src/common/bts.c b/src/common/bts.c index d8a6ff2..b90bfa4 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -269,39 +269,6 @@ return 0; } -static void shutdown_timer_cb(void *data) -{ - fprintf(stderr, "Shutdown timer expired\n"); - exit(42); -} - -static struct osmo_timer_list shutdown_timer = { - .cb = &shutdown_timer_cb, -}; - -void bts_shutdown(struct gsm_bts *bts, const char *reason) -{ - struct gsm_bts_trx *trx; - - if (osmo_timer_pending(&shutdown_timer)) { - LOGP(DOML, LOGL_NOTICE, - "BTS is already being shutdown.\n"); - return; - } - - LOGP(DOML, LOGL_NOTICE, "Shutting down BTS %u, Reason %s\n", - bts->nr, reason); - - llist_for_each_entry_reverse(trx, &bts->trx_list, list) { - bts_model_trx_deact_rf(trx); - bts_model_trx_close(trx); - } - - /* schedule a timer to make sure select loop logic can run again - * to dispatch any pending primitives */ - osmo_timer_schedule(&shutdown_timer, 3, 0); -} - /* main link is established, send status report */ int bts_link_estab(struct gsm_bts *bts) { diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c new file mode 100644 index 0000000..c8aa0ff --- /dev/null +++ b/src/common/bts_shutdown_fsm.c @@ -0,0 +1,145 @@ +/* BTS shutdown FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include + +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +static const struct osmo_tdef_state_timeout bts_shutdown_fsm_timeouts[32] = { + [ST_BTS_SHUTDOWN_NONE] = { }, + [ST_BTS_SHUTDOWN_WAIT_RAMP_DOWN_COMPL] = { .T = -1 }, + [ST_BTS_SHUTDOWN_EXIT] = { .T = -2 }, +}; + +#define bts_shutdown_fsm_state_chg(fi, NEXT_STATE) \ + osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, bts_shutdown_fsm_timeouts, ((struct gsm_bts *)fi->priv)->T_defs, -1) + +static void st_bts_shutdown_none(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch(event) { + case E_BTS_SHUTDOWN_START: + bts_shutdown_fsm_state_chg(fi, ST_BTS_SHUTDOWN_WAIT_RAMP_DOWN_COMPL); + break; + } +} + +static void st_bts_shutdown_wait_ramp_down_compl_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + /* TODO: here power ramp down will be started on all TRX, prior to changing state */ +} + +static void st_bts_shutdown_wait_ramp_down_compl(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + /* TODO: In here once we have ramp down implemented we'll transit to + regular exit. For now we simply wait for state timeout + bts_shutdown_fsm_state_chg(fi, ST_BTS_SHUTDOWN_EXIT); + */ +} + +static void st_bts_shutdown_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *trx; + llist_for_each_entry_reverse(trx, &bts->trx_list, list) { + bts_model_trx_deact_rf(trx); + bts_model_trx_close(trx); + } + /* There's yet no way to get confirmation from lower layers regarding + state. Allow a few seconds of select() loop and timeout timer will + exit later */ +} + +static struct osmo_fsm_state bts_shutdown_fsm_states[] = { + [ST_BTS_SHUTDOWN_NONE] = { + .in_event_mask = + X(E_BTS_SHUTDOWN_START), + .out_state_mask = X(ST_BTS_SHUTDOWN_WAIT_RAMP_DOWN_COMPL), + .name = "None", + .action = st_bts_shutdown_none, + }, + [ST_BTS_SHUTDOWN_WAIT_RAMP_DOWN_COMPL] = { + .in_event_mask = 0, + .out_state_mask = + X(ST_BTS_SHUTDOWN_EXIT), + .name = "WaitRampDownComplete", + .onenter = st_bts_shutdown_wait_ramp_down_compl_on_enter, + .action = st_bts_shutdown_wait_ramp_down_compl, + }, + [ST_BTS_SHUTDOWN_EXIT] = { + .name = "Exit", + .onenter = st_bts_shutdown_exit_on_enter, + } +}; + +const struct value_string bts_shutdown_fsm_event_names[] = { + OSMO_VALUE_STRING(E_BTS_SHUTDOWN_START), + { 0, NULL } +}; + +int bts_shutdown_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + switch (fi->state) { + case ST_BTS_SHUTDOWN_WAIT_RAMP_DOWN_COMPL: + LOGPFSML(fi, LOGL_ERROR, "Timer expired waiting for ramp down complete\n"); + bts_shutdown_fsm_state_chg(fi, ST_BTS_SHUTDOWN_EXIT); + break; + case ST_BTS_SHUTDOWN_EXIT: + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); + exit(0); + break; + default: + OSMO_ASSERT(false); + } + return 0; +} + +struct osmo_fsm bts_shutdown_fsm = { + .name = "BTS_SHUTDOWN", + .states = bts_shutdown_fsm_states, + .num_states = ARRAY_SIZE(bts_shutdown_fsm_states), + .event_names = bts_shutdown_fsm_event_names, + .log_subsys = DOML, + .timer_cb = bts_shutdown_fsm_timer_cb, +}; + +static __attribute__((constructor)) void bts_shutdown_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&bts_shutdown_fsm) == 0); +} + +void bts_shutdown(struct gsm_bts *bts, const char *reason) +{ + struct osmo_fsm_inst *fi = bts->shutdown_fi; + if (fi->state != ST_BTS_SHUTDOWN_NONE) { + LOGPFSML(fi, LOGL_NOTICE, "BTS is already being shutdown.\n"); + return; + } + + LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, reason: %s\n", reason); + osmo_fsm_inst_dispatch(fi, E_BTS_SHUTDOWN_START, NULL); +} diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index c680001..5591af1 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -28,12 +28,22 @@ #include #include +#include +#include +#include + #include #include -#include #include #include +#include + +static struct osmo_tdef bts_T_defs[] = { + { .T=-1, .default_val=1, .desc="Grace time for ramp down complete during shutdown (s)" }, + { .T=-2, .default_val=3, .desc="Grace time for proper ordered shutdown of transceivers (s)" }, + {} +}; void gsm_abis_mo_reset(struct gsm_abis_mo *mo) { @@ -266,6 +276,7 @@ struct gsm_bts *gsm_bts_alloc(void *ctx, uint8_t bts_num) { + char bts_name[32]; struct gsm_bts *bts = talloc_zero(ctx, struct gsm_bts); int i; @@ -277,6 +288,12 @@ INIT_LLIST_HEAD(&bts->trx_list); bts->ms_max_power = 15; /* dBm */ + bts->T_defs = bts_T_defs; + osmo_tdefs_reset(bts->T_defs); + snprintf(bts_name, sizeof(bts_name), "bts%d", bts->nr); + bts->shutdown_fi = osmo_fsm_inst_alloc(&bts_shutdown_fsm, bts, bts, + LOGL_INFO, bts_name); + gsm_mo_init(&bts->mo, bts, NM_OC_BTS, bts->nr, 0xff, 0xff); gsm_mo_init(&bts->site_mgr.mo, bts, NM_OC_SITE_MANAGER, diff --git a/src/common/main.c b/src/common/main.c index 6d8088c..1ce91cf 100644 --- a/src/common/main.c +++ b/src/common/main.c @@ -42,6 +42,7 @@ #include #include +#include #include #include #include diff --git a/src/osmo-bts-octphy/main.c b/src/osmo-bts-octphy/main.c index 928a4c8..d9d4e7c 100644 --- a/src/osmo-bts-octphy/main.c +++ b/src/osmo-bts-octphy/main.c @@ -45,6 +45,7 @@ #include #include #include +#include #include "l1_if.h" diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index c011401..f85c62b 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -34,6 +34,7 @@ #include #include #include +#include /* TODO: check if dummy method is sufficient, else implement */ int bts_model_lchan_deactivate(struct gsm_lchan *lchan) diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 2e5e5b6..192ba2d 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include diff --git a/src/osmo-bts-sysmo/main.c b/src/osmo-bts-sysmo/main.c index 51a14c7..6aedbfc 100644 --- a/src/osmo-bts-sysmo/main.c +++ b/src/osmo-bts-sysmo/main.c @@ -46,6 +46,7 @@ #include #include #include +#include #define SYSMOBTS_RF_LOCK_PATH "/var/lock/bts_rf_lock" diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index c3bf8b6..d51e4e8 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "l1_if.h" #include "femtobts.h" diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index ea3dcfa..f068659 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -41,6 +41,7 @@ #include #include #include +#include #include "l1_if.h" #include "trx_if.h" diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index d4a38b6..bd04e18 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -43,6 +43,7 @@ #include #include #include +#include #include "l1_if.h" #include "trx_if.h" diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 1953f71..d59c293 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -44,6 +44,7 @@ #include #include #include +#include #include "l1_if.h" #include "trx_if.h" diff --git a/src/osmo-bts-virtual/l1_if.c b/src/osmo-bts-virtual/l1_if.c index 8e84579..5f6f0c7 100644 --- a/src/osmo-bts-virtual/l1_if.c +++ b/src/osmo-bts-virtual/l1_if.c @@ -42,6 +42,8 @@ #include #include #include +#include + #include "virtual_um.h" extern int vbts_sched_start(struct gsm_bts *bts); diff --git a/src/osmo-bts-virtual/main.c b/src/osmo-bts-virtual/main.c index fb5d357..7602a9d 100644 --- a/src/osmo-bts-virtual/main.c +++ b/src/osmo-bts-virtual/main.c @@ -46,6 +46,8 @@ #include #include #include +#include + #include "virtual_um.h" #include "l1_if.h" diff --git a/src/osmo-bts-virtual/scheduler_virtbts.c b/src/osmo-bts-virtual/scheduler_virtbts.c index d3fdf1a..d45c729 100644 --- a/src/osmo-bts-virtual/scheduler_virtbts.c +++ b/src/osmo-bts-virtual/scheduler_virtbts.c @@ -42,6 +42,8 @@ #include #include #include +#include + #include "virtual_um.h" #include "l1_if.h" -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 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 Jun 18 12:51:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 12:51:36 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Implement tx power ramp down during BTS shutdown Upon BTS shutdown (for instance because the Abis link against BSC was lost), stop the operation in an ordered manner (cell soft lock). This means slowly decrease tx power so that MS have time to handover to other neighbour cells. Related: SYS#4920 Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 3 files changed, 37 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/18904/1 diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h index 1ced7a1..95ab552 100644 --- a/include/osmo-bts/bts_shutdown_fsm.h +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -33,6 +33,7 @@ enum bts_shutdown_fsm_events { E_BTS_SHUTDOWN_START, + E_BTS_SHUTDOWN_TRX_RAMP_COMPL, }; extern struct osmo_fsm bts_shutdown_fsm; diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index c8aa0ff..e24bab1 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -48,17 +48,44 @@ } } +static void ramp_down_compl_cb(struct gsm_bts_trx *trx) { + osmo_fsm_inst_dispatch(trx->bts->shutdown_fi, E_BTS_SHUTDOWN_TRX_RAMP_COMPL, trx); +} + static void st_bts_shutdown_wait_ramp_down_compl_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { - /* TODO: here power ramp down will be started on all TRX, prior to changing state */ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + unsigned int i; + + for (i = 0; i < bts->num_trx; i++) { + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, i); + power_ramp_start(trx, 0, 1, ramp_down_compl_cb); + } } static void st_bts_shutdown_wait_ramp_down_compl(struct osmo_fsm_inst *fi, uint32_t event, void *data) { - /* TODO: In here once we have ramp down implemented we'll transit to - regular exit. For now we simply wait for state timeout - bts_shutdown_fsm_state_chg(fi, ST_BTS_SHUTDOWN_EXIT); - */ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *src_trx; + unsigned int i, remaining = 0; + + switch(event) { + case E_BTS_SHUTDOWN_TRX_RAMP_COMPL: + src_trx = (struct gsm_bts_trx *)data; + + /* All other objects start off-line until the BTS Model code says otherwise */ + for (i = 0; i < bts->num_trx; i++) { + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, i); + if (trx->power_params.p_total_cur_mdBm != 0) + remaining++; + } + + LOGPFSML(fi, LOGL_INFO, "%s Ramping down complete, %d TRX remaining\n", + gsm_trx_name(src_trx), remaining); + if (remaining == 0) + bts_shutdown_fsm_state_chg(fi, ST_BTS_SHUTDOWN_EXIT); + break; + } } static void st_bts_shutdown_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -83,7 +110,8 @@ .action = st_bts_shutdown_none, }, [ST_BTS_SHUTDOWN_WAIT_RAMP_DOWN_COMPL] = { - .in_event_mask = 0, + .in_event_mask = + X(E_BTS_SHUTDOWN_TRX_RAMP_COMPL), .out_state_mask = X(ST_BTS_SHUTDOWN_EXIT), .name = "WaitRampDownComplete", @@ -98,6 +126,7 @@ const struct value_string bts_shutdown_fsm_event_names[] = { OSMO_VALUE_STRING(E_BTS_SHUTDOWN_START), + OSMO_VALUE_STRING(E_BTS_SHUTDOWN_TRX_RAMP_COMPL), { 0, NULL } }; diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 5591af1..f983970 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -40,7 +40,7 @@ #include static struct osmo_tdef bts_T_defs[] = { - { .T=-1, .default_val=1, .desc="Grace time for ramp down complete during shutdown (s)" }, + { .T=-1, .default_val=650, .desc="Grace time for ramp down complete during shutdown (s)" }, { .T=-2, .default_val=3, .desc="Grace time for proper ordered shutdown of transceivers (s)" }, {} }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 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 Jun 18 12:55:27 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 12:55:27 +0000 Subject: Change in osmo-bts[master]: handover_tests: Avoid redefining all bts_model stubs In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18899 ) Change subject: handover_tests: Avoid redefining all bts_model stubs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I366f71474891d32e31dbba1a9fa1f9a510fa0952 Gerrit-Change-Number: 18899 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 12:55: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 Jun 18 12:55:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 12:55:50 +0000 Subject: Change in osmo-bts[master]: meas_tests: Avoid redefining all bts_model stubs In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18900 ) Change subject: meas_tests: Avoid redefining all bts_model stubs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I47755e354a8cbcf34406de8bfc3985c70076fbf2 Gerrit-Change-Number: 18900 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 12:55: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 Jun 18 12:56:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 12:56:03 +0000 Subject: Change in osmo-bts[master]: tests/stubs.c: Add missing stub for bts_model_change_power In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18901 ) Change subject: tests/stubs.c: Add missing stub for bts_model_change_power ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16880fae32f60a83429cf5bbef796428c60a762c Gerrit-Change-Number: 18901 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 12:56: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 Jun 18 12:58:34 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 12:58:34 +0000 Subject: Change in osmo-bts[master]: power_ramp: Add support to get callback when ramping process completes In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18902 ) Change subject: power_ramp: Add support to get callback when ramping process completes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e Gerrit-Change-Number: 18902 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 12:58:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 13:00:51 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 13:00:51 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 to look at the new patch set (#6). Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 7 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 13:00:51 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 13:00:51 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 to look at the new patch set (#2). Change subject: endp: add E1 endpoint interlocking ...................................................................... endp: add E1 endpoint interlocking E1 endpoint names also represent different rates, this may mean that some rate / subslot combinations are not possible because they overlap within nthe timeslot. When the equipment (BSC) is properly configured, this will be no problem, however invalid configuration may cause the selection of overlapping endpoints and this needs to be prevented, and logged. Also rate counters need to be in place. Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Related: OS#2547 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_ratectr.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_vty.c 6 files changed, 280 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/98/18898/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 13:06:07 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 13:06:07 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... Patch Set 2: (3 comments) > Patch Set 1: Code-Review-1 > > (4 comments) > > I don't really see the point in storing a bunch of properties in a string and then having to parse them from there everytime. Am I missing something which really requires this way of doing stuff? The reason why I do this is because I want the properties to be stored in the string only instead of having a bunch of additional struct members that hold some values that need to be consistent with the string. I prefer to have more code and get a less ambiguous model in return. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c at 374 PS1, Line 374: static uint8_t e1_ts_nr_from_epname(char *epname) > Did you think about simply storing all this information as integers in the endp struct during endp c [?] Yes, that is intentional, I want this information to be in the endpoint string only since that is the handle that should be used for everything. I think we can afford the string processing. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c at 568 PS1, Line 568: for(i=0;i<15;i++) { > spacing Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/1/src/libosmo-mgcp/mgcp_endp.c at 607 PS1, Line 607: /* There are no obsticels that may render a virtual trunk > typo: obsticels Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 13:06: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 Thu Jun 18 13:37:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 13:37:04 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 1: (6 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h File include/osmo-bts/bts_shutdown_fsm.h: https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h at 29 PS1, Line 29: ST_BTS_SHUTDOWN_NONE Cosmetic: BTS_SHUTDOWN_ST_* and BTS_SHUTDOWN_EV_* is more usual the ST_*. Not critical. https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h at 41 PS1, Line 41: bts_shutdown Rather move this API to bts.{c,h}, so there will be no need to include this header everywhere. https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts.c File src/common/bts.c: https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts.c at a275 PS1, Line 275: exit(42); Horay! Finally we can get rid of this magic return code that confuses systemd... https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c at 51 PS1, Line 51: st_bts_shutdown_wait_ramp_down_compl_on_enter Given that it's a static (private) symbol, its name can be much shorter. At least there is no need to prefix with 'st_bts_shutdown' because everything in this file is about BTS shutdown, so it looks redundant. Also not critical, but I would still prefer short names. https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c at 68 PS1, Line 68: llist_for_each_entry_reverse Would be nice to add a comment explaining why we doing reverse here. https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c at 130 PS1, Line 130: constructor Constructors are usually placed at the bottom of the file. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 13:37:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 13:44:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 13:44:04 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18904/1/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/1/src/common/gsm_data.c at 43 PS1, Line 43: 650 650 seconds? Isn't it too much? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 13:44: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 Thu Jun 18 13:55:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 13:55:26 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 6: (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/6/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/6/src/libosmo-mgcp/mgcp_trunk.c at 142 PS6, Line 142: trunk_nr = strtoul(epname + prefix_len, &str_trunk_nr_end, 10); you are missing setting errno = 0 prior to calling it. https://gerrit.osmocom.org/c/osmo-mgw/+/18752/6/src/libosmo-mgcp/mgcp_trunk.c at 143 PS6, Line 143: if (errno == ERANGE || trunk_nr > 64 || trunk_nr == 0 if ((errno == ERANGE && pt == ULONG_MAX) || (errno && !trunk_nr) || (epname + prefix_len) == str_trunk_nr_end) || trunk_nr > 64 || trunk_nr == 0) { return NULL; } btw is it expected that trunk_nr cannot be 0? for which reason? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 13:55: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 Jun 18 13:56:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 13:56:30 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... Patch Set 2: I disagree, but I'm not blocking this. Let's see what other say about it. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 13:56: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 Jun 18 13:58:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 13:58:49 +0000 Subject: Change in osmo-bts[master]: handover_tests: Avoid redefining all bts_model stubs In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18899 ) Change subject: handover_tests: Avoid redefining all bts_model stubs ...................................................................... handover_tests: Avoid redefining all bts_model stubs Change-Id: I366f71474891d32e31dbba1a9fa1f9a510fa0952 --- M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/stubs.c 3 files changed, 4 insertions(+), 19 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 966ea46..53d09c9 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -4,5 +4,5 @@ noinst_PROGRAMS = handover_test EXTRA_DIST = handover_test.ok -handover_test_SOURCES = handover_test.c +handover_test_SOURCES = handover_test.c $(srcdir)/../stubs.c handover_test_LDADD = $(top_builddir)/src/common/libbts.a $(LDADD) diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index c9799af..72d8dc8 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -268,18 +268,3 @@ msgb_free(msg); return rc; } - -int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type, struct tlv_parsed *old_attr, struct tlv_parsed *new_attr, void *obj) { return 0; } -int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int obj_kind, void *obj) { return 0; } -int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj) { return 0; } -int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj, uint8_t adm_state) { return 0; } -int bts_model_init(struct gsm_bts *bts) { return 0; } -int bts_model_trx_init(struct gsm_bts_trx *trx) { return 0; } -int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) { return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) { return 0; } -void trx_get_hlayer1(void) {} -int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) { return 0; } -int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) { return 0; } -void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) { return; } -int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { return 0; } -int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) { return 0; } diff --git a/tests/stubs.c b/tests/stubs.c index 7c64034..28a509e 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -30,13 +30,13 @@ int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj) { return 0; } -int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap) +__attribute__((weak)) int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap) { return 0; } uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx) { return 0; } -int bts_model_oml_estab(struct gsm_bts *bts) +__attribute__((weak)) int bts_model_oml_estab(struct gsm_bts *bts) { return 0; } int l1if_set_txpower(struct femtol1_hdl *fl1h, float tx_power) @@ -48,7 +48,7 @@ int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) { return 0; } -void bts_model_abis_close(struct gsm_bts *bts) +__attribute__((weak)) void bts_model_abis_close(struct gsm_bts *bts) { } int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I366f71474891d32e31dbba1a9fa1f9a510fa0952 Gerrit-Change-Number: 18899 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 Thu Jun 18 13:58:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 13:58:49 +0000 Subject: Change in osmo-bts[master]: meas_tests: Avoid redefining all bts_model stubs In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18900 ) Change subject: meas_tests: Avoid redefining all bts_model stubs ...................................................................... meas_tests: Avoid redefining all bts_model stubs Change-Id: I47755e354a8cbcf34406de8bfc3985c70076fbf2 --- M tests/meas/Makefile.am M tests/meas/meas_test.c 2 files changed, 1 insertion(+), 86 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/tests/meas/Makefile.am b/tests/meas/Makefile.am index d8fa118..c04106e 100644 --- a/tests/meas/Makefile.am +++ b/tests/meas/Makefile.am @@ -5,5 +5,5 @@ noinst_HEADERS = sysmobts_fr_samples.h meas_testcases.h EXTRA_DIST = meas_test.ok -meas_test_SOURCES = meas_test.c +meas_test_SOURCES = meas_test.c $(srcdir)/../stubs.c meas_test_LDADD = $(top_builddir)/src/common/libbts.a $(LDADD) diff --git a/tests/meas/meas_test.c b/tests/meas/meas_test.c index f414b60..309a522 100644 --- a/tests/meas/meas_test.c +++ b/tests/meas/meas_test.c @@ -588,88 +588,3 @@ return 0; } - -/* Stubs */ -void bts_model_abis_close(struct gsm_bts *bts) -{ -} - -int bts_model_oml_estab(struct gsm_bts *bts) -{ - return 0; -} - -int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap) -{ - return 0; -} - -int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type, struct tlv_parsed *old_attr, struct tlv_parsed *new_attr, - void *obj) -{ - return 0; -} - -int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int obj_kind, void *obj) -{ - return 0; -} - -int bts_model_opstart(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj) -{ - return 0; -} - -int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj, uint8_t adm_state) -{ - return 0; -} - -int bts_model_init(struct gsm_bts *bts) -{ - return 0; -} - -int bts_model_trx_init(struct gsm_bts_trx *trx) -{ - return 0; -} - -int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) -{ - return 0; -} - -int bts_model_trx_close(struct gsm_bts_trx *trx) -{ - return 0; -} - -void trx_get_hlayer1(void) -{ -} - -int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) -{ - return 0; -} - -int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) -{ - return 0; -} - -void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) -{ - return; -} - -int bts_model_lchan_deactivate(struct gsm_lchan *lchan) -{ - return 0; -} - -int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) -{ - return 0; -} -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I47755e354a8cbcf34406de8bfc3985c70076fbf2 Gerrit-Change-Number: 18900 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 Thu Jun 18 13:58:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 13:58:49 +0000 Subject: Change in osmo-bts[master]: tests/stubs.c: Add missing stub for bts_model_change_power In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18901 ) Change subject: tests/stubs.c: Add missing stub for bts_model_change_power ...................................................................... tests/stubs.c: Add missing stub for bts_model_change_power Change-Id: I16880fae32f60a83429cf5bbef796428c60a762c --- M tests/stubs.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/tests/stubs.c b/tests/stubs.c index 28a509e..05175ea 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -39,6 +39,9 @@ __attribute__((weak)) int bts_model_oml_estab(struct gsm_bts *bts) { return 0; } +__attribute__((weak)) int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) +{ return 0; } + int l1if_set_txpower(struct femtol1_hdl *fl1h, float tx_power) { return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16880fae32f60a83429cf5bbef796428c60a762c Gerrit-Change-Number: 18901 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 Thu Jun 18 14:09:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 14:09:28 +0000 Subject: Change in osmo-bts[master]: power_ramp: Add support to get callback when ramping process completes In-Reply-To: References: Message-ID: Hello fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18902 to look at the new patch set (#2). Change subject: power_ramp: Add support to get callback when ramping process completes ...................................................................... power_ramp: Add support to get callback when ramping process completes It will be used in forthcoming commits to feed FSM events once the ramping process completes. Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e --- M include/osmo-bts/tx_power.h M src/common/bts_ctrl_commands.c M src/common/tx_power.c M src/osmo-bts-litecell15/lc15bts_vty.c M src/osmo-bts-litecell15/oml.c M src/osmo-bts-oc2g/oc2gbts_vty.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-sysmo/sysmobts_vty.c M src/osmo-bts-trx/l1_if.c M tests/tx_power/tx_power_test.c 12 files changed, 26 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/02/18902/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e Gerrit-Change-Number: 18902 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 Jun 18 14:09:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 14:09:29 +0000 Subject: Change in osmo-bts[master]: cosmetic: {oc2g, lc15}bts_bty.c: Fix trailing whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18905 ) Change subject: cosmetic: {oc2g,lc15}bts_bty.c: Fix trailing whitespace ...................................................................... cosmetic: {oc2g,lc15}bts_bty.c: Fix trailing whitespace Change-Id: I1a9cf84ae0120c6ce9068efeb0e9824e4726564e --- M src/osmo-bts-litecell15/lc15bts_vty.c M src/osmo-bts-oc2g/oc2gbts_vty.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/18905/1 diff --git a/src/osmo-bts-litecell15/lc15bts_vty.c b/src/osmo-bts-litecell15/lc15bts_vty.c index 3643a92..5041033 100644 --- a/src/osmo-bts-litecell15/lc15bts_vty.c +++ b/src/osmo-bts-litecell15/lc15bts_vty.c @@ -2,7 +2,7 @@ /* Copyright (C) 2015 by Yves Godin * Copyright (C) 2016 by Harald Welte - * + * * Based on sysmoBTS: * (C) 2011 by Harald Welte * (C) 2012,2013 by Holger Hans Peter Freyther diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index ecbd797..383876f 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -2,7 +2,7 @@ /* Copyright (C) 2015 by Yves Godin * Copyright (C) 2016 by Harald Welte - * + * * Based on sysmoBTS: * (C) 2011 by Harald Welte * (C) 2012,2013 by Holger Hans Peter Freyther -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1a9cf84ae0120c6ce9068efeb0e9824e4726564e Gerrit-Change-Number: 18905 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 Jun 18 14:09:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 14:09:29 +0000 Subject: Change in osmo-bts[master]: configure: Use subdir-objects References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18906 ) Change subject: configure: Use subdir-objects ...................................................................... configure: Use subdir-objects Fixes warnings during build: """ tests/handover/Makefile.am:7: warning: source file '$(srcdir)/../stubs.c' is in a subdirectory, tests/handover/Makefile.am:7: but option 'subdir-objects' is disabled automake-1.16: warning: possible forward-incompatibility. automake-1.16: At least a source file is in a subdirectory, but the 'subdir-objects' automake-1.16: automake option hasn't been enabled. For now, the corresponding output automake-1.16: object file(s) will be placed in the top-level directory. However, automake-1.16: this behaviour will change in future Automake versions: they will automake-1.16: unconditionally cause object files to be placed in the same subdirectory automake-1.16: of the corresponding sources. automake-1.16: You are advised to start using 'subdir-objects' option throughout your automake-1.16: project, to avoid future incompatibilities. """ Change-Id: If68bcdf28e1d9f66c6bc91cc2c257665224b3adb --- M configure.ac M src/osmo-bts-litecell15/Makefile.am M src/osmo-bts-oc2g/Makefile.am 3 files changed, 2 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/06/18906/1 diff --git a/configure.ac b/configure.ac index ef73b51..8acf751 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ dnl *This* is the root dir, even if an install-sh exists in ../ or ../../ AC_CONFIG_AUX_DIR([.]) -AM_INIT_AUTOMAKE([dist-bzip2]) +AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects]) AC_CONFIG_TESTDIR(tests) dnl kernel style compile messages @@ -22,7 +22,7 @@ AC_PROG_INSTALL LT_INIT -dnl patching ${archive_cmds} to affect generation of file "libtool" to fix linking with clang +dnl patching ${archive_cmds} to affect generation of file "libtool" to fix linking with clang AS_CASE(["$LD"],[*clang*], [AS_CASE(["${host_os}"], [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])]) diff --git a/src/osmo-bts-litecell15/Makefile.am b/src/osmo-bts-litecell15/Makefile.am index 0cc124a..b8380ba 100644 --- a/src/osmo-bts-litecell15/Makefile.am +++ b/src/osmo-bts-litecell15/Makefile.am @@ -1,5 +1,3 @@ -AUTOMAKE_OPTIONS = subdir-objects - AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include $(LITECELL15_INCDIR) AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBGPS_CFLAGS) $(LIBSYSTEMD_CFLAGS) COMMON_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) $(LIBOSMOABIS_LIBS) $(LIBOSMOCTRL_LIBS) diff --git a/src/osmo-bts-oc2g/Makefile.am b/src/osmo-bts-oc2g/Makefile.am index 54a8afa..33e9c84 100644 --- a/src/osmo-bts-oc2g/Makefile.am +++ b/src/osmo-bts-oc2g/Makefile.am @@ -1,5 +1,3 @@ -AUTOMAKE_OPTIONS = subdir-objects - AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include $(OC2G_INCDIR) AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCODEC_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOSMOTRAU_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBGPS_CFLAGS) $(ORTP_CFLAGS) $(LIBSYSTEMD_CFLAGS) COMMON_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOCODEC_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(LIBOSMOTRAU_LIBS) $(LIBOSMOABIS_LIBS) $(LIBOSMOCTRL_LIBS) $(ORTP_LIBS) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If68bcdf28e1d9f66c6bc91cc2c257665224b3adb Gerrit-Change-Number: 18906 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 Jun 18 14:16:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 14:16:30 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h File include/osmo-bts/bts_shutdown_fsm.h: https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h at 29 PS1, Line 29: ST_BTS_SHUTDOWN_NONE > Cosmetic: BTS_SHUTDOWN_ST_* and BTS_SHUTDOWN_EV_* is more usual the ST_*. Not critical. Ack https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h at 41 PS1, Line 41: bts_shutdown > Rather move this API to bts.{c,h}, so there will be no need to include this header everywhere. I explicitly moved it here since I prefer having everything shutdown related in one file. I know, we need to export more headers in some files, but let's start splitting stuff into different headers rather than going the gsm_data.h way with kilometric headers. https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c at 51 PS1, Line 51: st_bts_shutdown_wait_ramp_down_compl_on_enter > Given that it's a static (private) symbol, its name can be much shorter. [?] I think it's usual practice using the whole state name as function name for FSM. I'll perhaps drop the "bts_shutdown" part and leave "st_" https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c at 68 PS1, Line 68: llist_for_each_entry_reverse > Would be nice to add a comment explaining why we doing reverse here. I'm simply moving this loop from the old bts_shutdown() implementation here, so no need to change anything in this patch. https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/src/common/bts_shutdown_fsm.c at 130 PS1, Line 130: constructor > Constructors are usually placed at the bottom of the file. I'm rather keeping all FSM internal stuff together and below this all public APIs using it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 14:16:30 +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 Jun 18 14:20:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 14:20:41 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18904/1/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/1/src/common/gsm_data.c at 43 PS1, Line 43: 650 > 650 seconds? Isn't it too much? I used this number simply to have a big enough time to allow all power ramping setting, thinking it could take up to 600, but I took the number from the top of my head and it looks like I'm wrong. Time needed is basically: VTY's power-ramp step-interval (trx->power_params.ramp.step_interval_sec) multiplied by the amount of steps needed (taking into account how many dB each step moves), plus time to get response back for each step. So as you can see calculating the needed time can be a bit complex. So for now I think I'll simply leave a big number here and we can fine grain more how to dynamically calculate this value here. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 14:20:41 +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 Jun 18 14:22:31 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 14:22:31 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18904/1/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/1/src/common/gsm_data.c at 43 PS1, Line 43: 650 > I used this number simply to have a big enough time to allow all power ramping setting, thinking it [?] Ok, then please add a comment with this nice explanation to the code ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 14:22:31 +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 Jun 18 14:58:27 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 14:58:27 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: Hello pespin, neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 to look at the new patch set (#3). Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... msc_a: add callref as call id to ASSIGNMENT REQ. The BSSMAP message ASSIGNMENT REQUEST may contain an optional CALL IDENTIFIER IE. While this IE is optional some BSC implementions may require it. Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Related: OS#4582 --- M include/osmocom/msc/ran_msg.h M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c 3 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/18692/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels 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 Jun 18 14:58:27 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 18 Jun 2020 14:58:27 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: Hello pespin, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 to look at the new patch set (#4). Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST When msc_ho_send_handover_request() generates the HANDOVER REQUEST message, it does not populate the call_id struct member. In ran_msg_a.c the struct member call_id is used, but the call_id_present flag is not set, which also prevents the call_id being added to the message Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Related: OS#4582 --- M src/libmsc/msc_ho.c M src/libmsc/ran_msg_a.c 2 files changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/18740/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 15:51:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 15:51:50 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix assignment_count(): conn->lchan may be NULL References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: assignment_fsm: fix assignment_count(): conn->lchan may be NULL ...................................................................... assignment_fsm: fix assignment_count(): conn->lchan may be NULL Starting from ttcn3-bsc-test-sccplite build #777, it was niticed that osmo-bsc crashes with the following message: Assert failed conn->lchan include/osmocom/bsc/gsm_data.h:1376 Here is a backtrace: Program received signal SIGABRT pwndbg> bt 0x0000555555be6e52 in conn_get_bts (conn=0x622000057160) at include/osmocom/bsc/gsm_data.h:1376 0x0000555555c1edc8 in assignment_fsm_timer_cb (fi=0x612000060220) at assignment_fsm.c:758 0x00007ffff72b1104 in fsm_tmr_cb (data=0x612000060220) at libosmocore/src/fsm.c:325 0x00007ffff72ab062 in osmo_timers_update () at libosmocore/src/timer.c:257 0x00007ffff72ab5d2 in _osmo_select_main (polling=0) at libosmocore/src/select.c:260 0x00007ffff72abd2f in osmo_select_main_ctx (polling=) at libosmocore/src/select.c:291 0x0000555555e1b81b in main (argc=3, argv=0x7fffffffe1b8) at osmo_bsc_main.c:953 0x00007ffff6752002 in __libc_start_main () from /usr/lib/libc.so.6 0x0000555555b61bbe in _start () Apparently conn->lchan can be NULL, so assignment_count() must be safe against this. Let's add a guard 'if' statement there. Yes, we miss a chance to increase a counter in such case, but this is a separate problem. The main point is that osmo-bsc must not crash. Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Fixes: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Related: OS#4620, OS#4619 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/18907/1 diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 94dd359..dee7983 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -73,14 +73,20 @@ on_assignment_failure(_conn); \ } while(0) +/* NOTE: make sure that conn->lchan is not NULL before calling this macro! */ +#define assignment_count_bts(conn, counter) do { \ + struct gsm_bts *bts = conn_get_bts(conn); \ + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_##counter]); \ + } while (0) + /* Assume presence of local var 'conn' as struct gsm_subscriber_connection */ #define assignment_count(counter) do { \ - struct gsm_bts *bts = conn_get_bts(conn); \ LOG_ASSIGNMENT(conn, LOGL_DEBUG, "incrementing rate counter: %s %s\n", \ bsc_ctr_description[BSC_##counter].name, \ bsc_ctr_description[BSC_##counter].description); \ rate_ctr_inc(&conn->network->bsc_ctrs->ctr[BSC_##counter]); \ - rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_##counter]); \ + if (conn->lchan != NULL) \ + assignment_count_bts(conn, counter) \ } while(0) #define assignment_count_result(counter) do { \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 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 Jun 18 15:55:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 18 Jun 2020 15:55:43 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix assignment_count(): conn->lchan may be NULL In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: assignment_fsm: fix assignment_count(): conn->lchan may be NULL ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18907/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/1//COMMIT_MSG at 28 PS1, Line 28: Apparently conn->lchan can be NULL, so assignment_count() must be "conn->lchan can become NULL whenever the RSL link is torn down for whichever reason, so..." https://gerrit.osmocom.org/c/osmo-bsc/+/18907/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/1/src/osmo-bsc/assignment_fsm.c at 78 PS1, Line 78: struct gsm_bts *bts = conn_get_bts(conn); \ I think I'd rather fix conn_get_bts() to be allowed to return NULL, and visit all callers to handle that situation, either by assert (as before) or by proper error log and so on -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 15:55:43 +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 Jun 18 15:55:53 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 15:55:53 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix assignment_count(): conn->lchan may be NULL In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 to look at the new patch set (#2). Change subject: assignment_fsm: fix assignment_count(): conn->lchan may be NULL ...................................................................... assignment_fsm: fix assignment_count(): conn->lchan may be NULL Starting from ttcn3-bsc-test-sccplite build #777, it was noticed that osmo-bsc crashes with the following message: Assert failed conn->lchan include/osmocom/bsc/gsm_data.h:1376 Here is a backtrace: Program received signal SIGABRT pwndbg> bt 0x0000555555be6e52 in conn_get_bts (conn=0x622000057160) at include/osmocom/bsc/gsm_data.h:1376 0x0000555555c1edc8 in assignment_fsm_timer_cb (fi=0x612000060220) at assignment_fsm.c:758 0x00007ffff72b1104 in fsm_tmr_cb (data=0x612000060220) at libosmocore/src/fsm.c:325 0x00007ffff72ab062 in osmo_timers_update () at libosmocore/src/timer.c:257 0x00007ffff72ab5d2 in _osmo_select_main (polling=0) at libosmocore/src/select.c:260 0x00007ffff72abd2f in osmo_select_main_ctx (polling=) at libosmocore/src/select.c:291 0x0000555555e1b81b in main (argc=3, argv=0x7fffffffe1b8) at osmo_bsc_main.c:953 0x00007ffff6752002 in __libc_start_main () from /usr/lib/libc.so.6 0x0000555555b61bbe in _start () Apparently conn->lchan can be NULL, so assignment_count() must be safe against this. Let's add a guard 'if' statement there. Yes, we miss a chance to increase a counter in such case, but this is a separate problem. The main point is that osmo-bsc must not crash. Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Fixes: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Related: OS#4620, OS#4619 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/18907/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 15:56:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 15:56:49 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix assignment_count(): conn->lchan may be NULL In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: assignment_fsm: fix assignment_count(): conn->lchan may be NULL ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/18907/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/1/src/osmo-bsc/assignment_fsm.c at 78 PS1, Line 78: struct gsm_bts *bts = conn_get_bts(conn); \ > I think I'd rather fix conn_get_bts() to be allowed to return NULL, and visit all callers to handle [?] I was thinking about this, but there are so many callers assuming that it's not NULL... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 15:56:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 16:00:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 16:00:00 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix assignment_count(): conn->lchan may be NULL In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 to look at the new patch set (#3). Change subject: assignment_fsm: fix assignment_count(): conn->lchan may be NULL ...................................................................... assignment_fsm: fix assignment_count(): conn->lchan may be NULL Starting from ttcn3-bsc-test-sccplite build #777, it was noticed that osmo-bsc crashes with the following message: Assert failed conn->lchan include/osmocom/bsc/gsm_data.h:1376 Here is a backtrace: Program received signal SIGABRT pwndbg> bt 0x0000555555be6e52 in conn_get_bts (conn=0x622000057160) at include/osmocom/bsc/gsm_data.h:1376 0x0000555555c1edc8 in assignment_fsm_timer_cb (fi=0x612000060220) at assignment_fsm.c:758 0x00007ffff72b1104 in fsm_tmr_cb (data=0x612000060220) at libosmocore/src/fsm.c:325 0x00007ffff72ab062 in osmo_timers_update () at libosmocore/src/timer.c:257 0x00007ffff72ab5d2 in _osmo_select_main (polling=0) at libosmocore/src/select.c:260 0x00007ffff72abd2f in osmo_select_main_ctx (polling=) at libosmocore/src/select.c:291 0x0000555555e1b81b in main (argc=3, argv=0x7fffffffe1b8) at osmo_bsc_main.c:953 0x00007ffff6752002 in __libc_start_main () from /usr/lib/libc.so.6 0x0000555555b61bbe in _start () Apparently conn->lchan can be NULL, so assignment_count() must be safe against this. Let's add a guard 'if' statement there. Yes, we miss a chance to increase a counter in such case, but this is a separate problem. The main point is that osmo-bsc must not crash. Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Fixes: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Related: OS#4620, OS#4619 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/18907/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 16:08:41 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 18 Jun 2020 16:08:41 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix memleak in case if no response is received In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18881 ) Change subject: libosmo-mgcp-client: fix memleak in case if no response is received ...................................................................... Patch Set 5: Code-Review-1 (2 comments) This change is ready for review. https://gerrit.osmocom.org/c/osmo-mgw/+/18881/5/include/osmocom/mgcp_client/mgcp_client_internal.h File include/osmocom/mgcp_client/mgcp_client_internal.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18881/5/include/osmocom/mgcp_client/mgcp_client_internal.h at 6 PS5, Line 6: #define MSGB_CB_MGCP_TRANS_ID 0 (by modifying the ws here it looks like that const is involved in the patch... rather just use a space in both?) https://gerrit.osmocom.org/c/osmo-mgw/+/18881/5/src/libosmo-mgcp-client/mgcp_client.c File src/libosmo-mgcp-client/mgcp_client.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18881/5/src/libosmo-mgcp-client/mgcp_client.c at 1002 PS5, Line 1002: int mgcp_client_cancel(struct mgcp_client *mgcp, mgcp_trans_id_t trans_id) I'm sorry to dampen yet again, but seeing this now seems like the problem is in the caller of this API: it looks like osmo-bsc fails to call mgcp_client_cancel() in some situation, and the timeout or teardown should happen in osmo-bsc? I'm particularly 'worried' about that comment saying "the FSM likely already terminated, thus we don't call osmo_fsm_inst_term()" -- that sounds like one of those gordian knots of solving proper cleanup across several FSMs, and that this patch is inviting trouble. I'll have to take a closer look at this before I can say for sure. Would be good to know if you have more information about how the memleak situation is caused, if you have any, to identify the code path in osmo-bsc that might fail to call mgcp_client_cancel(). -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia2e89f31685a0822e5cb147a06cc1fc68efc1ec4 Gerrit-Change-Number: 18881 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 16:08: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 Thu Jun 18 17:13:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 17:13:50 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM 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/+/18903 to look at the new patch set (#2). Change subject: Introduce bts_shutdown FSM ...................................................................... Introduce bts_shutdown FSM Using an FSM here will allow for more complex ordered shutdown procedures, like power ramp down, waiting for TRX deact asyncrhonously, etc. Current commit leaves everything in place already prepared to implement ramp down, which will be implemented in next commit in the series. Related: SYS#4920 Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 --- M include/osmo-bts/Makefile.am M include/osmo-bts/bts.h A include/osmo-bts/bts_shutdown_fsm.h M include/osmo-bts/gsm_data.h M src/common/Makefile.am M src/common/bts.c A src/common/bts_shutdown_fsm.c M src/common/gsm_data.c M src/common/main.c M src/osmo-bts-octphy/main.c M src/osmo-bts-omldummy/bts_model.c M src/osmo-bts-sysmo/l1_if.c M src/osmo-bts-sysmo/main.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-virtual/l1_if.c M src/osmo-bts-virtual/main.c M src/osmo-bts-virtual/scheduler_virtbts.c 20 files changed, 224 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/18903/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Thu Jun 18 17:13:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 17:13:50 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: Hello fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 to look at the new patch set (#2). Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Implement tx power ramp down during BTS shutdown Upon BTS shutdown (for instance because the Abis link against BSC was lost), stop the operation in an ordered manner (cell soft lock). This means slowly decrease tx power so that MS have time to handover to other neighbour cells. Related: SYS#4920 Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 3 files changed, 45 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/18904/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 17:13:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 17:13:51 +0000 Subject: Change in osmo-bts[master]: Fix missing bts_model implementations in stubs.c and bts_model.c References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18908 ) Change subject: Fix missing bts_model implementations in stubs.c and bts_model.c ...................................................................... Fix missing bts_model implementations in stubs.c and bts_model.c These will be required by compiler/linker after next changes. Change-Id: Icd20d64cf973f4cf4425b46d4102747db53d8990 --- M src/osmo-bts-omldummy/bts_model.c M tests/stubs.c 2 files changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/08/18908/1 diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index c011401..a968381 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -220,3 +220,8 @@ { return 0; } + +int bts_model_phy_link_open(struct phy_link *plink) +{ + return 0; +} diff --git a/tests/stubs.c b/tests/stubs.c index 05175ea..20ce512 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -2,6 +2,8 @@ struct femtol1_hdl; struct bts_model_set_dyn_pdch_data; +struct phy_link; +struct phy_instance; /* * Stubs to provide an empty bts model implementation for testing. @@ -60,3 +62,12 @@ void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) { return; } + +void bts_model_phy_link_set_defaults(struct phy_link *plink) +{ return; } + +void bts_model_phy_instance_set_defaults(struct phy_instance *pinst) +{ return; } + +int bts_model_phy_link_open(struct phy_link *plink) +{ return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd20d64cf973f4cf4425b46d4102747db53d8990 Gerrit-Change-Number: 18908 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 Jun 18 17:13:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 17:13:51 +0000 Subject: Change in osmo-bts[master]: Introduce LOGPTRX macro and use it in tx_power.c References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18909 ) Change subject: Introduce LOGPTRX macro and use it in tx_power.c ...................................................................... Introduce LOGPTRX macro and use it in tx_power.c Rename OCTPHY specific LOPGTRX macro to avoid redefine conflicts. Change-Id: I02878611501aca51039e2ac7e35784ccb93b1db6 --- M include/osmo-bts/gsm_data.h M src/common/tx_power.c M src/osmo-bts-octphy/l1_oml.c M tests/tx_power/tx_power_test.err 4 files changed, 56 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/09/18909/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 80cc0be..9032aeb 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -44,6 +44,7 @@ #define GSM_BTS_AGCH_QUEUE_HIGH_LEVEL_DEFAULT 91 #define LOGPLCHAN(lchan, ss, lvl, fmt, args...) LOGP(ss, lvl, "%s " fmt, gsm_lchan_name(lchan), ## args) +#define LOGPTRX(trx, ss, lvl, fmt, args...) LOGP(ss, lvl, "%s " fmt, gsm_trx_name(trx), ## args) struct gsm_network { struct llist_head bts_list; diff --git a/src/common/tx_power.c b/src/common/tx_power.c index db3121d..705038c 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -171,13 +171,13 @@ /* compute new effective (= minus ramp and thermal attenuation) TRX output required */ p_trxout_eff_mdBm = get_p_trxout_eff_mdBm(trx, tpp->p_total_tgt_mdBm); - LOGP(DL1C, LOGL_DEBUG, "ramp_timer_cb(cur_pout=%d, tgt_pout=%d, " + LOGPTRX(trx, DL1C, LOGL_DEBUG, "ramp_timer_cb(cur_pout=%d, tgt_pout=%d, " "ramp_att=%d, therm_att=%d, user_gain=%d)\n", tpp->p_total_cur_mdBm, tpp->p_total_tgt_mdBm, tpp->ramp.attenuation_mdB, tpp->thermal_attenuation_mdB, tpp->user_gain_mdB); - LOGP(DL1C, LOGL_INFO, + LOGPTRX(trx, DL1C, LOGL_INFO, "ramping TRX board output power to %d mdBm.\n", p_trxout_eff_mdBm); /* Instruct L1 to apply new effective TRX output power required */ @@ -196,9 +196,9 @@ /* for now we simply write an error message, but in the future * we might use the value (again) as part of our math? */ if (p_trxout_cur_mdBm != p_trxout_should_mdBm) { - LOGP(DL1C, LOGL_ERROR, "bts_model notifies us of %u mdBm TRX " - "output power. However, it should be %u mdBm!\n", - p_trxout_cur_mdBm, p_trxout_should_mdBm); + LOGPTRX(trx, DL1C, LOGL_ERROR, "bts_model notifies us of %u mdBm TRX " + "output power. However, it should be %u mdBm!\n", + p_trxout_cur_mdBm, p_trxout_should_mdBm); } /* and do another step... */ @@ -244,13 +244,13 @@ * the maximum total system power subtracted by OML as well as RSL * reductions */ - LOGP(DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d)\n", + LOGPTRX(trx, DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d)\n", tpp->p_total_cur_mdBm, p_total_tgt_mdBm); if (!bypass && (p_total_tgt_mdBm > get_p_nominal_mdBm(trx))) { - LOGP(DL1C, LOGL_ERROR, "Asked to ramp power up to " - "%d mdBm, which exceeds P_max_out (%d)\n", - p_total_tgt_mdBm, get_p_nominal_mdBm(trx)); + LOGPTRX(trx, DL1C, LOGL_ERROR, "Asked to ramp power up to " + "%d mdBm, which exceeds P_max_out (%d)\n", + p_total_tgt_mdBm, get_p_nominal_mdBm(trx)); return -ERANGE; } @@ -262,7 +262,7 @@ if (we_are_ramping_up(trx)) { if (tpp->p_total_tgt_mdBm <= tpp->ramp.max_initial_pout_mdBm) { - LOGP(DL1C, LOGL_INFO, + LOGPTRX(trx, DL1C, LOGL_INFO, "target_power(%d) is below max.initial power\n", tpp->p_total_tgt_mdBm); /* new setting is below the maximum initial output diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 9c5dd19..0f36662 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -54,7 +54,7 @@ bool no_fw_check = 0; -#define LOGPTRX(byTrxId, level, fmt, args...) \ +#define LOGPOCTTRX(byTrxId, level, fmt, args...) \ LOGP(DL1C, level, "(byTrxId %u) " fmt, byTrxId, ## args) /* Map OSMOCOM logical channel type to OctPHY Logical channel type */ @@ -381,7 +381,7 @@ mOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_RSP_SWAP(ar); trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan activation\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan activation\n"); return -EINVAL; } @@ -496,7 +496,7 @@ trx = trx_by_l1h(fl1, pcr->TrxId.byTrxId); if (!trx) { - LOGPTRX(pcr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during cipher mode activation\n"); + LOGPOCTTRX(pcr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during cipher mode activation\n"); return -EINVAL; } @@ -700,7 +700,7 @@ mOCTVC1_GSM_MSG_TRX_DEACTIVATE_LOGICAL_CHANNEL_RSP_SWAP(ldr); trx = trx_by_l1h(fl1, ldr->TrxId.byTrxId); if (!trx) { - LOGPTRX(ldr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan deactivation\n"); + LOGPOCTTRX(ldr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan deactivation\n"); return -EINVAL; } @@ -1283,7 +1283,7 @@ mOCTVC1_GSM_MSG_TRX_OPEN_RSP_SWAP(or); trx = trx_by_l1h(fl1h, or->TrxId.byTrxId); if (!trx) { - LOGPTRX(or->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during TRX opening procedure -- abort\n"); + LOGPOCTTRX(or->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during TRX opening procedure -- abort\n"); exit(1); } @@ -1470,7 +1470,7 @@ mOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_RSP_SWAP(ar); trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during physical channel activation -- abort\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during physical channel activation -- abort\n"); exit(1); } @@ -1553,7 +1553,7 @@ trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during ts disconnection\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during ts disconnection\n"); return -EINVAL; } @@ -1581,7 +1581,7 @@ mOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_RSP_SWAP(ar); trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id while connecting ts\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id while connecting ts\n"); return -EINVAL; } diff --git a/tests/tx_power/tx_power_test.err b/tests/tx_power/tx_power_test.err index bf33b42..03130b2 100644 --- a/tests/tx_power/tx_power_test.err +++ b/tests/tx_power/tx_power_test.err @@ -1,38 +1,38 @@ -power_ramp_start(cur=0, tgt=40000) -Asked to ramp power up to 40000 mdBm, which exceeds P_max_out (33000) -power_ramp_start(cur=0, tgt=33000) -ramp_timer_cb(cur_pout=2000, tgt_pout=33000, ramp_att=31000, therm_att=0, user_gain=0) -ramping TRX board output power to -8000 mdBm. -ramp_timer_cb(cur_pout=4000, tgt_pout=33000, ramp_att=29000, therm_att=0, user_gain=0) -ramping TRX board output power to -6000 mdBm. -ramp_timer_cb(cur_pout=6000, tgt_pout=33000, ramp_att=27000, therm_att=0, user_gain=0) -ramping TRX board output power to -4000 mdBm. -ramp_timer_cb(cur_pout=8000, tgt_pout=33000, ramp_att=25000, therm_att=0, user_gain=0) -ramping TRX board output power to -2000 mdBm. -ramp_timer_cb(cur_pout=10000, tgt_pout=33000, ramp_att=23000, therm_att=0, user_gain=0) -ramping TRX board output power to 0 mdBm. -ramp_timer_cb(cur_pout=12000, tgt_pout=33000, ramp_att=21000, therm_att=0, user_gain=0) -ramping TRX board output power to 2000 mdBm. -ramp_timer_cb(cur_pout=14000, tgt_pout=33000, ramp_att=19000, therm_att=0, user_gain=0) -ramping TRX board output power to 4000 mdBm. -ramp_timer_cb(cur_pout=16000, tgt_pout=33000, ramp_att=17000, therm_att=0, user_gain=0) -ramping TRX board output power to 6000 mdBm. -ramp_timer_cb(cur_pout=18000, tgt_pout=33000, ramp_att=15000, therm_att=0, user_gain=0) -ramping TRX board output power to 8000 mdBm. -ramp_timer_cb(cur_pout=20000, tgt_pout=33000, ramp_att=13000, therm_att=0, user_gain=0) -ramping TRX board output power to 10000 mdBm. -ramp_timer_cb(cur_pout=22000, tgt_pout=33000, ramp_att=11000, therm_att=0, user_gain=0) -ramping TRX board output power to 12000 mdBm. -ramp_timer_cb(cur_pout=24000, tgt_pout=33000, ramp_att=9000, therm_att=0, user_gain=0) -ramping TRX board output power to 14000 mdBm. -ramp_timer_cb(cur_pout=26000, tgt_pout=33000, ramp_att=7000, therm_att=0, user_gain=0) -ramping TRX board output power to 16000 mdBm. -ramp_timer_cb(cur_pout=28000, tgt_pout=33000, ramp_att=5000, therm_att=0, user_gain=0) -ramping TRX board output power to 18000 mdBm. -ramp_timer_cb(cur_pout=30000, tgt_pout=33000, ramp_att=3000, therm_att=0, user_gain=0) -ramping TRX board output power to 20000 mdBm. -ramp_timer_cb(cur_pout=32000, tgt_pout=33000, ramp_att=1000, therm_att=0, user_gain=0) -ramping TRX board output power to 22000 mdBm. -ramp_timer_cb(cur_pout=33000, tgt_pout=33000, ramp_att=0, therm_att=0, user_gain=0) -ramping TRX board output power to 23000 mdBm. +(bts=0,trx=1) power_ramp_start(cur=0, tgt=40000) +(bts=0,trx=1) Asked to ramp power up to 40000 mdBm, which exceeds P_max_out (33000) +(bts=0,trx=1) power_ramp_start(cur=0, tgt=33000) +(bts=0,trx=1) ramp_timer_cb(cur_pout=2000, tgt_pout=33000, ramp_att=31000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -8000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=4000, tgt_pout=33000, ramp_att=29000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -6000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=6000, tgt_pout=33000, ramp_att=27000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -4000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=8000, tgt_pout=33000, ramp_att=25000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -2000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=10000, tgt_pout=33000, ramp_att=23000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 0 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=12000, tgt_pout=33000, ramp_att=21000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 2000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=14000, tgt_pout=33000, ramp_att=19000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 4000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=16000, tgt_pout=33000, ramp_att=17000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 6000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=18000, tgt_pout=33000, ramp_att=15000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 8000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=20000, tgt_pout=33000, ramp_att=13000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 10000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=22000, tgt_pout=33000, ramp_att=11000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 12000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=24000, tgt_pout=33000, ramp_att=9000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 14000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=26000, tgt_pout=33000, ramp_att=7000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 16000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=28000, tgt_pout=33000, ramp_att=5000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 18000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=30000, tgt_pout=33000, ramp_att=3000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 20000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=32000, tgt_pout=33000, ramp_att=1000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 22000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=33000, tgt_pout=33000, ramp_att=0, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 23000 mdBm.  \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I02878611501aca51039e2ac7e35784ccb93b1db6 Gerrit-Change-Number: 18909 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 Jun 18 17:13:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 17:13:51 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf bts_model_trx_close is only called during bts_shutdown immediately after bts_model_deact_rf, so its logic keeps being essentially the same after this code movement. On the other hand, bts_model_deact_rf is also called during RSL link establishment if it failed for whatever reason in bts.c:trx_link_estab(). In that case, we want to make sure the TRX is not used so we need to implement bts_model_deact_rf. Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a --- M src/osmo-bts-trx/l1_if.c 1 file changed, 18 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/10/18910/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index f068659..1848253 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -397,8 +397,8 @@ return oml_mo_opstart_ack(&trx->mo); } -/* deactivate transceiver */ -int bts_model_trx_close(struct gsm_bts_trx *trx) +/* Deact RF on transceiver */ +int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) { struct phy_instance *pinst = trx_phy_instance(trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -412,6 +412,22 @@ pchan == GSM_PCHAN_CCCH_SDCCH4_CBCH) { lchan_set_state(&trx->ts[0].lchan[CCCH_LCHAN], LCHAN_S_INACTIVE); } + /* FIXME: There's currently no way to communicate to osmo-trx through + * TRXC that a specific TRX processing shall be paused. Let's simply + * make sure that at least we don't transmit with power on it: + */ + power_ramp_start(trx, 0, 1, NULL); + + /* Set to Operational State: Disabled */ + check_transceiver_availability_trx(l1h, 0); + return 0; +} + +/* deactivate transceiver */ +int bts_model_trx_close(struct gsm_bts_trx *trx) +{ + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; /* power off transceiver, if not already */ if (l1h->config.enabled) { @@ -847,11 +863,6 @@ return oml_mo_statechg_ack(mo); } -int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) -{ - return 0; -} - int bts_model_oml_estab(struct gsm_bts *bts) { return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 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 Jun 18 17:20:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 18 Jun 2020 17:20:55 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#4) to the change originally created by fixeria. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... fix crashes due to OSMO_ASSERT(conn->lchan) Starting from ttcn3-bsc-test-sccplite build #777, it was noticed that osmo-bsc crashes with the following message: Assert failed conn->lchan include/osmocom/bsc/gsm_data.h:1376 The cause of this is a recently merged patch that calls conn_get_bts() during assignment_fsm rate counter dispatch: "Count assignment rates per BTS as well" commit b5ccf09fc4042c7fb1fdaaa6263961c40b32564e Change-Id I0009e51d4caf68e762138d98e2e23d49acc3cc1a The root cause being that the assignment_fsm attempts to count an Assignment event for a BTS after the lchan has already been released and disassociated from the conn. The assertion is found in conn_get_bts(), which is used in various places. In fact, each caller is a potential DoS risk -- though most are in code paths that are guaranteed to have an lchan and bts present, having an OSMO_ASSERT() on the relatively volatile presence of an lchan is not a good idea for osmo-bsc's stability and error resilience. - Change conn_get_bts() to return NULL in the lack of an lchan. - Adjust all callers of conn_get_bts() to gracefully handle a NULL return val. - Same for cgi_for_msc() and callers, closely related. Here is a backtrace: Program received signal SIGABRT pwndbg> bt 0x0000555555be6e52 in conn_get_bts (conn=0x622000057160) at include/osmocom/bsc/gsm_data.h:1376 0x0000555555c1edc8 in assignment_fsm_timer_cb (fi=0x612000060220) at assignment_fsm.c:758 0x00007ffff72b1104 in fsm_tmr_cb (data=0x612000060220) at libosmocore/src/fsm.c:325 0x00007ffff72ab062 in osmo_timers_update () at libosmocore/src/timer.c:257 0x00007ffff72ab5d2 in _osmo_select_main (polling=0) at libosmocore/src/select.c:260 0x00007ffff72abd2f in osmo_select_main_ctx (polling=) at libosmocore/src/select.c:291 0x0000555555e1b81b in main (argc=3, argv=0x7fffffffe1b8) at osmo_bsc_main.c:953 0x00007ffff6752002 in __libc_start_main () from /usr/lib/libc.so.6 0x0000555555b61bbe in _start () In the case of the assignment_fsm counter, we now miss a chance to increase a BTS counter for a failed Assignment, but this is a separate problem. The main point of this patch is that osmo-bsc must not crash. Related: OS#4620, OS#4619 Patch-by: fixeria Tweaked-by: neels Fixes: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/paging.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_sigtran.c 10 files changed, 73 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/18907/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 17:23:34 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 18 Jun 2020 17:23:34 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#5) to the change originally created by fixeria. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... fix crashes due to OSMO_ASSERT(conn->lchan) Starting from ttcn3-bsc-test-sccplite build #777, it was noticed that osmo-bsc crashes with the following message: Assert failed conn->lchan include/osmocom/bsc/gsm_data.h:1376 The cause of this is a recently merged patch that calls conn_get_bts() during assignment_fsm rate counter dispatch: "Count assignment rates per BTS as well" commit b5ccf09fc4042c7fb1fdaaa6263961c40b32564e Change-Id I0009e51d4caf68e762138d98e2e23d49acc3cc1a The root cause being that the assignment_fsm attempts to count an Assignment event for a BTS after the lchan has already been released and disassociated from the conn. The assertion is found in conn_get_bts(), which is used in various places. In fact, each caller is a potential DoS risk -- though most are in code paths that are guaranteed to have an lchan and bts present, having an OSMO_ASSERT() on the relatively volatile presence of an lchan is not a good idea for osmo-bsc's stability and error resilience. - Change conn_get_bts() to return NULL in the lack of an lchan. - Adjust all callers of conn_get_bts() to gracefully handle a NULL return val. - Same for cgi_for_msc() and callers, closely related. Here is a backtrace: Program received signal SIGABRT pwndbg> bt 0x0000555555be6e52 in conn_get_bts (conn=0x622000057160) at include/osmocom/bsc/gsm_data.h:1376 0x0000555555c1edc8 in assignment_fsm_timer_cb (fi=0x612000060220) at assignment_fsm.c:758 0x00007ffff72b1104 in fsm_tmr_cb (data=0x612000060220) at libosmocore/src/fsm.c:325 0x00007ffff72ab062 in osmo_timers_update () at libosmocore/src/timer.c:257 0x00007ffff72ab5d2 in _osmo_select_main (polling=0) at libosmocore/src/select.c:260 0x00007ffff72abd2f in osmo_select_main_ctx (polling=) at libosmocore/src/select.c:291 0x0000555555e1b81b in main (argc=3, argv=0x7fffffffe1b8) at osmo_bsc_main.c:953 0x00007ffff6752002 in __libc_start_main () from /usr/lib/libc.so.6 0x0000555555b61bbe in _start () In the case of the assignment_fsm counter, we now miss a chance to increase a BTS counter for a failed Assignment, but this is a separate problem. The main point of this patch is that osmo-bsc must not crash. Related: OS#4620, OS#4619 Patch-by: fixeria Tweaked-by: neels Fixes: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_sigtran.c 9 files changed, 72 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/18907/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 17:42:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 17:42:46 +0000 Subject: Change in osmo-bts[master]: phy_link.h: Drop unimplemented function definition References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18911 ) Change subject: phy_link.h: Drop unimplemented function definition ...................................................................... phy_link.h: Drop unimplemented function definition Change-Id: Ib306a80bd8ea3434a49806ec73a1cfe9a82b9122 --- M include/osmo-bts/phy_link.h 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/11/18911/1 diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 2bed8ea..2a53d91 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -169,8 +169,6 @@ void phy_instance_destroy(struct phy_instance *pinst); const char *phy_instance_name(struct phy_instance *pinst); -void phy_user_statechg_notif(struct phy_instance *pinst, enum phy_link_state link_state); - static inline struct phy_instance *trx_phy_instance(const struct gsm_bts_trx *trx) { OSMO_ASSERT(trx); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib306a80bd8ea3434a49806ec73a1cfe9a82b9122 Gerrit-Change-Number: 18911 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 Jun 18 18:01:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 18:01:18 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: First deact RF on all TRX, finally close them References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18912 ) Change subject: bts_shutdown: First deact RF on all TRX, finally close them ...................................................................... bts_shutdown: First deact RF on all TRX, finally close them It makes more sense to first deactive RF on all TRX and finally close them totally. This way we keep consistency between all TRXs and it's easier for lower layers which may need to close them all at once. Also in the event that we want to turn bts_model_trx_deact_rf to return asynchronously. Change-Id: Ib62358384e37a5cef692926439462042fab0138c --- M src/common/bts_shutdown_fsm.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/12/18912/1 diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index df22284..6fddcc0 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -93,6 +93,8 @@ struct gsm_bts_trx *trx; llist_for_each_entry_reverse(trx, &bts->trx_list, list) { bts_model_trx_deact_rf(trx); + } + llist_for_each_entry_reverse(trx, &bts->trx_list, list) { bts_model_trx_close(trx); } /* There's yet no way to get confirmation from lower layers regarding -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib62358384e37a5cef692926439462042fab0138c Gerrit-Change-Number: 18912 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 Jun 18 18:12:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 18 Jun 2020 18:12:20 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... Patch Set 5: (5 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/include/osmocom/bsc/gsm_data.h at 1376 PS5, Line 1376: if (!conn || !conn->lchan) I'd rather check only for !conn->lchan, I would assume conn is always there and if it's not there is responsability of the call of not calling this function, since it's obvious a NULL connection has no BTS. https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/assignment_fsm.c at 83 PS5, Line 83: if (bts) \ what about logging if !bts? https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/gsm_data.c at 1724 PS5, Line 1724: if (bts && conn->lchan) This one would be easily fixed by moving the bts = conn-get_bts() under this check. https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_bssap.c at 477 PS5, Line 477: static int bssmap_handle_cipher_mode(struct gsm_subscriber_connection *conn, Changes in this function look like a different patch to me. https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_msc.c File src/osmo-bsc/osmo_bsc_msc.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_msc.c at 239 PS5, Line 239: return NULL; OSMO_ASSERT(bts) here looks better. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 18:12:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 20:28:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 20:28:08 +0000 Subject: Change in osmo-bts[master]: cosmetic: {oc2g, lc15}bts_bty.c: Fix trailing whitespace In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18905 ) Change subject: cosmetic: {oc2g,lc15}bts_bty.c: Fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1a9cf84ae0120c6ce9068efeb0e9824e4726564e Gerrit-Change-Number: 18905 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 20: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 Jun 18 20:38:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 20:38:25 +0000 Subject: Change in osmo-bts[master]: Fix missing bts_model implementations in stubs.c and bts_model.c In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18908 ) Change subject: Fix missing bts_model implementations in stubs.c and bts_model.c ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd20d64cf973f4cf4425b46d4102747db53d8990 Gerrit-Change-Number: 18908 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 20:38: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 Jun 18 20:39:50 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 20:39:50 +0000 Subject: Change in osmo-bts[master]: Introduce LOGPTRX macro and use it in tx_power.c In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18909 ) Change subject: Introduce LOGPTRX macro and use it in tx_power.c ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I02878611501aca51039e2ac7e35784ccb93b1db6 Gerrit-Change-Number: 18909 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 20: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 Thu Jun 18 20:40:52 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 20:40:52 +0000 Subject: Change in osmo-bts[master]: power_ramp: Add support to get callback when ramping process completes In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18902 ) Change subject: power_ramp: Add support to get callback when ramping process completes ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e Gerrit-Change-Number: 18902 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 18 Jun 2020 20:40:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 22:35:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 22:35:11 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client: fix memleak in case if no response is received In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18881 ) Change subject: libosmo-mgcp-client: fix memleak in case if no response is received ...................................................................... Patch Set 5: (1 comment) This change is ready for review. https://gerrit.osmocom.org/c/osmo-mgw/+/18881/5/src/libosmo-mgcp-client/mgcp_client.c File src/libosmo-mgcp-client/mgcp_client.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18881/5/src/libosmo-mgcp-client/mgcp_client.c at 1002 PS5, Line 1002: int mgcp_client_cancel(struct mgcp_client *mgcp, mgcp_trans_id_t trans_id) > it looks like osmo-bsc fails to call mgcp_client_cancel() in some situation, and the timeout or teardown should happen in osmo-bsc? As can be seen from the header file name (mgcp_client_internal.h), this is an internal API. Thus osmo-bsc is not supposed to call it. It's only used here, in this file, and by the FSM implementation (mgcp_client_fsm.c). > to identify the code path in osmo-bsc that might fail to call mgcp_client_cancel(). See above, osmo-bsc has no access to this API. > I'm particularly 'worried' about that comment saying "the FSM likely already terminated, thus we don't call osmo_fsm_inst_term()" Yes, the point is that a (potentially leaked) message is enqueued by an MGCP FSM instance _during termination_. Therefore nobody is responsible for tracking stalled messages in the queue. Normally the FSM itself handles response timeout and calls mgcp_client_cancel(). This is what I tried to explain in the commit message, perhaps I failed to make it easy to read/understand. > this patch is inviting trouble. This patch solves the problem. At least I don't see leaked chunks after each test case anymore. Yes, we can refactor everything, or simply do not enqueue such ownerless messages, but this would require more efforts to achieve the same goal - fix memleak. I am not against making this implementation better, feel free to do so if you want. But personally I don't want (nor can) spend even more time on this. It already took too much. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia2e89f31685a0822e5cb147a06cc1fc68efc1ec4 Gerrit-Change-Number: 18881 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 18 Jun 2020 22:35:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 18 22:53:59 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 18 Jun 2020 22:53:59 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h File include/osmo-bts/bts_shutdown_fsm.h: https://gerrit.osmocom.org/c/osmo-bts/+/18903/1/include/osmo-bts/bts_shutdown_fsm.h at 41 PS1, Line 41: bts_shutdown > I explicitly moved it here since I prefer having everything shutdown related in one file. [?] But this way it's inconsistent: you have bts_init() and other bts_* API in one header, and moving bts_shutdown() to another. One more problem is that you're basically exposing access to the shutdown FSM internals, but none of the files where you include this header, deal with the FSM directly. Neither they send events, nor check the state. They just invoke the ramp_down_compl_cb() that will be introduced in the next change. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 18 Jun 2020 22:53:59 +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 Fri Jun 19 01:14:17 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 01:14:17 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... refactor: use msgb to receive, pass and send RTP packets Instead of numerous arguments (buf, len and context data), use a msgb, like most other osmo programs do, with a msb->cb pointing at a context data struct. This opens the future for adding/stripping IuUP header data from the msgb easily. (Checked to pass current ttcn3-mgw-tests.) Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee --- M include/osmocom/mgcp/mgcp_codec.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M tests/mgcp/mgcp_test.c 7 files changed, 220 insertions(+), 216 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/13/18913/1 diff --git a/include/osmocom/mgcp/mgcp_codec.h b/include/osmocom/mgcp/mgcp_codec.h index 3ead60a..caeecb0 100644 --- a/include/osmocom/mgcp/mgcp_codec.h +++ b/include/osmocom/mgcp/mgcp_codec.h @@ -5,3 +5,5 @@ int mgcp_codec_add(struct mgcp_conn_rtp *conn, int payload_type, const char *audio_name, const struct mgcp_codec_param *param); int mgcp_codec_decide(struct mgcp_conn_rtp *conn); int mgcp_codec_pt_translate(struct mgcp_conn_rtp *conn_src, struct mgcp_conn_rtp *conn_dst, int payload_type); +const struct mgcp_rtp_codec *mgcp_codec_pt_find_by_subtype_name(struct mgcp_conn_rtp *conn, + const char *subtype_name, unsigned int match_nr); diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 8fb8d2c..c8afd48 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -23,8 +23,11 @@ #pragma once +#include + struct sockaddr_in; struct mgcp_conn; +struct mgcp_conn_rtp; struct mgcp_endpoint; #define LOGPENDP(endp, cat, level, fmt, args...) \ @@ -32,11 +35,17 @@ endp ? endp->name : "none", \ ## args) -/* Callback type for RTP dispatcher functions - (e.g mgcp_dispatch_rtp_bridge_cb, see below) */ -typedef int (*mgcp_dispatch_rtp_cb) (int proto, struct sockaddr_in *addr, - char *buf, unsigned int buf_size, - struct mgcp_conn *conn); +struct osmo_rtp_msg_ctx { + int proto; + struct mgcp_conn_rtp *conn_src; + struct sockaddr_in *from_addr; +}; + +#define OSMO_RTP_MSG_CTX(MSGB) (*(struct osmo_rtp_msg_ctx**)&((MSGB)->dst)) + +/* Callback type for RTP dispatcher functions (e.g mgcp_dispatch_rtp_bridge_cb, see below). + * The OSMO_RTP_MSG_CTX() should be set appropriately on the msg. */ +typedef int (*mgcp_dispatch_rtp_cb) (struct msgb *msg); /* Callback type for endpoint specific cleanup actions. This function * is automatically executed when a connection is freed (see mgcp_conn_free() diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 174bfd9..2b3fd94 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -37,6 +37,13 @@ #define CONN_ID_BTS "0" #define CONN_ID_NET "1" +#define LOG_CONN(conn, level, fmt, args...) \ + LOGP(DRTP, level, "(%s I:%s) " fmt, \ + (conn)->endp ? (conn)->endp->name : "none", (conn)->id, ## args) + +#define LOG_CONN_RTP(conn_rtp, level, fmt, args...) \ + LOG_CONN((conn_rtp)->conn, level, fmt, ## args) + enum mgcp_trunk_type { MGCP_TRUNK_VIRTUAL, MGCP_TRUNK_E1, @@ -266,11 +273,10 @@ }; int mgcp_send(struct mgcp_endpoint *endp, int is_rtp, struct sockaddr_in *addr, - char *buf, int rc, struct mgcp_conn_rtp *conn_src, + struct msgb *msg, struct mgcp_conn_rtp *conn_src, struct mgcp_conn_rtp *conn_dst); int mgcp_send_dummy(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn); -int mgcp_dispatch_rtp_bridge_cb(int proto, struct sockaddr_in *addr, char *buf, - unsigned int buf_size, struct mgcp_conn *conn); +int mgcp_dispatch_rtp_bridge_cb(struct msgb *msg); void mgcp_cleanup_rtp_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn); int mgcp_bind_net_rtp_port(struct mgcp_endpoint *endp, int rtp_port, struct mgcp_conn_rtp *conn); @@ -337,3 +343,7 @@ void mgcp_get_local_addr(char *addr, struct mgcp_conn_rtp *conn); void mgcp_conn_watchdog_kick(struct mgcp_conn *conn); +void mgcp_patch_and_count(struct mgcp_endpoint *endp, + struct mgcp_rtp_state *state, + struct mgcp_rtp_end *rtp_end, + struct sockaddr_in *addr, struct msgb *msg); diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index 9ac5fbb..3634fc6 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -432,3 +432,19 @@ return codec_dst->payload_type; } + +const struct mgcp_rtp_codec *mgcp_codec_pt_find_by_subtype_name(struct mgcp_conn_rtp *conn, + const char *subtype_name, unsigned int match_nr) +{ + int i; + for (i = 0; i < conn->end.codecs_assigned; i++) { + if (!strcmp(conn->end.codecs[i].subtype_name, subtype_name)) { + if (match_nr) { + match_nr--; + continue; + } + return &conn->end.codecs[i]; + } + } + return NULL; +} diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 3d01918..5de5bf7 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -53,7 +53,7 @@ #define RTP_MAX_MISORDER 100 #define RTP_BUF_SIZE 4096 -enum { +enum rtp_proto { MGCP_PROTO_RTP, MGCP_PROTO_RTCP, }; @@ -74,6 +74,8 @@ rtpconn_rate_ctr_add(conn_rtp, endp, id, 1); } +static int rx_rtp(struct msgb *msg); + /*! Determine the local rtp bind IP-address. * \param[out] addr caller provided memory to store the resulting IP-Address. * \param[in] endp mgcp endpoint, that holds a copy of the VTY parameters. @@ -486,16 +488,19 @@ * Patch the payload type of an RTP packet so that it uses the payload type * that is valid for the destination connection (conn_dst) */ static int mgcp_patch_pt(struct mgcp_conn_rtp *conn_src, - struct mgcp_conn_rtp *conn_dst, char *data, int len) + struct mgcp_conn_rtp *conn_dst, struct msgb *msg) { struct rtp_hdr *rtp_hdr; uint8_t pt_in; int pt_out; - if (len < sizeof(struct rtp_hdr)) + if (msg->len < sizeof(struct rtp_hdr)) { + LOG_CONN_RTP(conn_src, LOGL_ERROR, "RTP packet too short (%u < %zu)\n", + msg->len, sizeof(struct rtp_hdr)); return -EINVAL; + } - rtp_hdr = (struct rtp_hdr *)data; + rtp_hdr = (struct rtp_hdr *)msg->data; pt_in = rtp_hdr->payload_type; pt_out = mgcp_codec_pt_translate(conn_src, conn_dst, pt_in); @@ -515,7 +520,7 @@ void mgcp_patch_and_count(struct mgcp_endpoint *endp, struct mgcp_rtp_state *state, struct mgcp_rtp_end *rtp_end, - struct sockaddr_in *addr, char *data, int len) + struct sockaddr_in *addr, struct msgb *msg) { uint32_t arrival_time; int32_t transit; @@ -523,11 +528,12 @@ uint32_t timestamp, ssrc; struct rtp_hdr *rtp_hdr; int payload = rtp_end->codec->payload_type; + unsigned int len = msg->len; if (len < sizeof(*rtp_hdr)) return; - rtp_hdr = (struct rtp_hdr *)data; + rtp_hdr = (struct rtp_hdr *)msg->data; seq = ntohs(rtp_hdr->sequence); timestamp = ntohl(rtp_hdr->timestamp); arrival_time = get_current_ts(rtp_end->codec->rate); @@ -660,32 +666,26 @@ * function is used to convert between RFC 5993 and TS 101318, which we normally * use. * Return 0 on sucess, negative on errors like invalid data length. */ -static int rfc5993_hr_convert(struct mgcp_endpoint *endp, char *data, int *len) +static int rfc5993_hr_convert(struct mgcp_endpoint *endp, struct msgb *msg) { - /* NOTE: *data has an overall length of RTP_BUF_SIZE, so there is - * plenty of space available to store the slightly larger, converted - * data */ - struct rtp_hdr *rtp_hdr; - - if (*len < sizeof(struct rtp_hdr)) { + if (msg->len < sizeof(struct rtp_hdr)) { LOGPENDP(endp, DRTP, LOGL_ERROR, "AMR RTP packet too short (%d < %zu)\n", - *len, sizeof(struct rtp_hdr)); + msg->len, sizeof(struct rtp_hdr)); return -EINVAL; } - rtp_hdr = (struct rtp_hdr *)data; + rtp_hdr = (struct rtp_hdr *)msg->data; - if (*len == GSM_HR_BYTES + sizeof(struct rtp_hdr)) { + if (msg->len == GSM_HR_BYTES + sizeof(struct rtp_hdr)) { /* TS 101318 encoding => RFC 5993 encoding */ + msgb_put(msg, 1); memmove(rtp_hdr->data + 1, rtp_hdr->data, GSM_HR_BYTES); rtp_hdr->data[0] = 0x00; - (*len) += 1; - - } else if (*len == GSM_HR_BYTES + sizeof(struct rtp_hdr) + 1) { + } else if (msg->len == GSM_HR_BYTES + sizeof(struct rtp_hdr) + 1) { /* RFC 5993 encoding => TS 101318 encoding */ memmove(rtp_hdr->data, rtp_hdr->data + 1, GSM_HR_BYTES); - (*len) -= 1; + msgb_trim(msg, msg->len - 1); } else { /* It is possible that multiple payloads occur in one RTP * packet. This is not supported yet. */ @@ -700,25 +700,24 @@ * efficient encoding scheme where all fields are packed together one after * another and an octet aligned mode where all fields are aligned to octet * boundaries. This function is used to convert between the two modes */ -static int amr_oa_bwe_convert(struct mgcp_endpoint *endp, char *data, int *len, +static int amr_oa_bwe_convert(struct mgcp_endpoint *endp, struct msgb *msg, bool target_is_oa) { - /* NOTE: *data has an overall length of RTP_BUF_SIZE, so there is + /* NOTE: the msgb has an allocated length of RTP_BUF_SIZE, so there is * plenty of space available to store the slightly larger, converted * data */ - struct rtp_hdr *rtp_hdr; unsigned int payload_len; int rc; - if (*len < sizeof(struct rtp_hdr)) { - LOGPENDP(endp, DRTP, LOGL_ERROR, "AMR RTP packet too short (%d < %zu)\n", *len, sizeof(struct rtp_hdr)); + if (msg->len < sizeof(struct rtp_hdr)) { + LOGPENDP(endp, DRTP, LOGL_ERROR, "AMR RTP packet too short (%d < %zu)\n", msg->len, sizeof(struct rtp_hdr)); return -EINVAL; } - rtp_hdr = (struct rtp_hdr *)data; + rtp_hdr = (struct rtp_hdr *)msg->data; - payload_len = *len - sizeof(struct rtp_hdr); + payload_len = msg->len - sizeof(struct rtp_hdr); if (osmo_amr_is_oa(rtp_hdr->data, payload_len)) { if (!target_is_oa) @@ -746,9 +745,7 @@ return -EINVAL; } - *len = rc + sizeof(struct rtp_hdr); - - return 0; + return msgb_trim(msg, rc + sizeof(struct rtp_hdr)); } /* Check if a conversion between octet-aligned and bandwith-efficient mode is @@ -786,15 +783,14 @@ /* Forward data to a debug tap. This is debug function that is intended for * debugging the voice traffic with tools like gstreamer */ -static void forward_data(int fd, struct mgcp_rtp_tap *tap, const char *buf, - int len) +static void forward_data(int fd, struct mgcp_rtp_tap *tap, struct msgb *msg) { int rc; if (!tap->enabled) return; - rc = sendto(fd, buf, len, 0, (struct sockaddr *)&tap->forward, + rc = sendto(fd, msg->data, msg->len, 0, (struct sockaddr *)&tap->forward, sizeof(tap->forward)); if (rc < 0) @@ -812,7 +808,7 @@ * \param[in] conn_dst associated destination connection. * \returns 0 on success, -1 on ERROR. */ int mgcp_send(struct mgcp_endpoint *endp, int is_rtp, struct sockaddr_in *addr, - char *buf, int len, struct mgcp_conn_rtp *conn_src, + struct msgb *msg, struct mgcp_conn_rtp *conn_src, struct mgcp_conn_rtp *conn_dst) { /*! When no destination connection is available (e.g. when only one @@ -824,6 +820,7 @@ struct mgcp_rtp_state *rtp_state; char *dest_name; int rc; + int len; OSMO_ASSERT(conn_src); OSMO_ASSERT(conn_dst); @@ -847,7 +844,7 @@ * should not occur if transcoding is consequently avoided. Until * we have transcoding support in osmo-mgw we can not resolve this. */ if (is_rtp) { - rc = mgcp_patch_pt(conn_src, conn_dst, buf, len); + rc = mgcp_patch_pt(conn_src, conn_dst, msg); if (rc < 0) { LOGPENDP(endp, DRTP, LOGL_DEBUG, "can not patch PT because no suitable egress codec was found.\n"); @@ -872,21 +869,21 @@ } else if (is_rtp) { int cont; int nbytes = 0; - int buflen = len; + int buflen = msg->len; do { /* Run transcoder */ cont = endp->cfg->rtp_processing_cb(endp, rtp_end, - buf, &buflen, + (char*)msg->data, &buflen, RTP_BUF_SIZE); if (cont < 0) break; if (addr) mgcp_patch_and_count(endp, rtp_state, rtp_end, - addr, buf, buflen); + addr, msg); if (amr_oa_bwe_convert_indicated(conn_dst->end.codec)) { - rc = amr_oa_bwe_convert(endp, buf, &buflen, + rc = amr_oa_bwe_convert(endp, msg, conn_dst->end.codec->param.amr_octet_aligned); if (rc < 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, @@ -897,7 +894,7 @@ else if (rtp_end->rfc5993_hr_convert && strcmp(conn_src->end.codec->subtype_name, "GSM-HR-08") == 0) { - rc = rfc5993_hr_convert(endp, buf, &buflen); + rc = rfc5993_hr_convert(endp, msg); if (rc < 0) { LOGPENDP(endp, DRTP, LOGL_ERROR, "Error while converting to GSM-HR-08\n"); break; @@ -913,7 +910,7 @@ /* Forward a copy of the RTP data to a debug ip/port */ forward_data(rtp_end->rtp.fd, &conn_src->tap_out, - buf, buflen); + msg); /* FIXME: HACK HACK HACK. See OS#2459. * The ip.access nano3G needs the first RTP payload's first two bytes to read hex @@ -922,7 +919,7 @@ */ if (!rtp_state->patched_first_rtp_payload && conn_src->conn->mode == MGCP_CONN_LOOPBACK) { - uint8_t *data = (uint8_t *) & buf[12]; + uint8_t *data = msg->data + 12; if (data[0] == 0xe0) { data[0] = 0xe4; data[1] = 0x00; @@ -933,9 +930,8 @@ } } - len = mgcp_udp_send(rtp_end->rtp.fd, - &rtp_end->addr, - rtp_end->rtp_port, buf, buflen); + len = mgcp_udp_send(rtp_end->rtp.fd, &rtp_end->addr, rtp_end->rtp_port, + (char*)msg->data, msg->len); if (len <= 0) return len; @@ -956,7 +952,7 @@ len = mgcp_udp_send(rtp_end->rtcp.fd, &rtp_end->addr, - rtp_end->rtcp_port, buf, len); + rtp_end->rtcp_port, (char*)msg->data, msg->len); rtpconn_rate_ctr_inc(conn_dst, endp, RTP_PACKETS_TX_CTR); rtpconn_rate_ctr_add(conn_dst, endp, RTP_OCTETS_TX_CTR, len); @@ -967,45 +963,6 @@ return 0; } -/* Helper function for mgcp_recv(), - Receive one RTP Packet + Originating address from file descriptor */ -static int receive_from(struct mgcp_endpoint *endp, int fd, - struct sockaddr_in *addr, char *buf, int bufsize) -{ - int rc; - socklen_t slen = sizeof(*addr); - struct sockaddr_in addr_sink; - char buf_sink[RTP_BUF_SIZE]; - bool tossed = false; - - if (!addr) - addr = &addr_sink; - if (!buf) { - tossed = true; - buf = buf_sink; - bufsize = sizeof(buf_sink); - } - - rc = recvfrom(fd, buf, bufsize, 0, (struct sockaddr *)addr, &slen); - - LOGPENDP(endp, DRTP, LOGL_DEBUG, - "receiving %u bytes length packet from %s:%u ...\n", - rc, inet_ntoa(addr->sin_addr), ntohs(addr->sin_port)); - - if (rc < 0) { - LOGPENDP(endp, DRTP, LOGL_ERROR, - "failed to receive packet, errno: %d/%s\n", - errno, strerror(errno)); - return -1; - } - - if (tossed) { - LOGPENDP(endp, DRTP, LOGL_ERROR, "packet tossed\n"); - } - - return rc; -} - /* Check if the origin (addr) matches the address/port data of the RTP * connections. */ static int check_rtp_origin(struct mgcp_conn_rtp *conn, @@ -1098,7 +1055,7 @@ /* Do some basic checks to make sure that the RTCP packets we are going to * process are not complete garbage */ -static int check_rtcp(char *buf, unsigned int buf_size) +static int check_rtcp(struct mgcp_conn_rtp *conn_src, struct msgb *msg) { struct rtcp_hdr *hdr; unsigned int len; @@ -1106,33 +1063,43 @@ /* RTPC packets that are just a header without data do not make * any sense. */ - if (buf_size < sizeof(struct rtcp_hdr)) + if (msg->len < sizeof(struct rtcp_hdr)) { + LOG_CONN_RTP(conn_src, LOGL_ERROR, "RTCP packet too short (%u < %zu)\n", + msg->len, sizeof(struct rtcp_hdr)); return -EINVAL; + } /* Make sure that the length of the received packet does not exceed * the available buffer size */ - hdr = (struct rtcp_hdr *)buf; + hdr = (struct rtcp_hdr *)msg->data; len = (osmo_ntohs(hdr->length) + 1) * 4; - if (len > buf_size) + if (len > msg->len) { + LOG_CONN_RTP(conn_src, LOGL_ERROR, "RTCP header length exceeds packet size (%u > %u)\n", + len, msg->len); return -EINVAL; + } /* Make sure we accept only packets that have a proper packet type set * See also: http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml */ type = hdr->type; - if ((type < 192 || type > 195) && (type < 200 || type > 213)) + if ((type < 192 || type > 195) && (type < 200 || type > 213)) { + LOG_CONN_RTP(conn_src, LOGL_ERROR, "RTCP header: invalid type: %u\n", type); return -EINVAL; + } return 0; } /* Do some basic checks to make sure that the RTP packets we are going to * process are not complete garbage */ -static int check_rtp(char *buf, unsigned int buf_size) +static int check_rtp(struct mgcp_conn_rtp *conn_src, struct msgb *msg) { - /* RTP packets that are just a header without data do not make - * any sense. */ - if (buf_size < sizeof(struct rtp_hdr)) - return -EINVAL; + size_t min_size = sizeof(struct rtp_hdr); + if (msg->len < min_size) { + LOG_CONN_RTP(conn_src, LOGL_ERROR, "RTP packet too short (%u < %zu)\n", + msg->len, min_size); + return -1; + } /* FIXME: Add more checks, the reason why we do not check more than * the length is because we currently handle IUUP packets as RTP @@ -1143,86 +1110,14 @@ return 0; } -/* Receive RTP data from a specified source connection and dispatch it to a - * destination connection. */ -static int mgcp_recv(int *proto, struct sockaddr_in *addr, char *buf, - unsigned int buf_size, struct osmo_fd *fd) -{ - struct mgcp_endpoint *endp; - struct mgcp_conn_rtp *conn; - struct mgcp_trunk *trunk; - int rc; - - conn = (struct mgcp_conn_rtp*) fd->data; - endp = conn->conn->endp; - trunk = endp->trunk; - - LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "receiving RTP/RTCP packet...\n"); - - rc = receive_from(endp, fd->fd, addr, buf, buf_size); - if (rc <= 0) - return -1; - - /* FIXME: The way how we detect the protocol looks odd. We should look - * into the packet header. Also we should introduce a packet type - * MGCP_PROTO_IUUP because currently we handle IUUP packets like RTP - * packets which is problematic. */ - *proto = fd == &conn->end.rtp ? MGCP_PROTO_RTP : MGCP_PROTO_RTCP; - - if (*proto == MGCP_PROTO_RTP) { - if (check_rtp(buf, rc) < 0) { - LOGPCONN(conn->conn, DRTP, LOGL_ERROR, - "invalid RTP packet received -- packet tossed\n"); - return -1; - } - } else if (*proto == MGCP_PROTO_RTCP) { - if (check_rtcp(buf, rc) < 0) { - LOGPCONN(conn->conn, DRTP, LOGL_ERROR, - "invalid RTCP packet received -- packet tossed\n"); - return -1; - } - } - - LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, ""); - LOGPC(DRTP, LOGL_DEBUG, "receiving from %s %s %d\n", - conn->conn->name, inet_ntoa(addr->sin_addr), - ntohs(addr->sin_port)); - LOGPENDP(endp, DRTP, LOGL_DEBUG, "conn:%s\n", mgcp_conn_dump(conn->conn)); - - /* Check if the origin of the RTP packet seems plausible */ - if (trunk->rtp_accept_all == 0) { - if (check_rtp_origin(conn, addr) != 0) - return -1; - } - - /* Filter out dummy message */ - if (rc == 1 && buf[0] == MGCP_DUMMY_LOAD) { - LOGPCONN(conn->conn, DRTP, LOGL_NOTICE, - "dummy message received\n"); - LOGPCONN(conn->conn, DRTP, LOGL_ERROR, - "packet tossed\n"); - return 0; - } - - /* Increment RX statistics */ - rtpconn_rate_ctr_inc(conn, endp, RTP_PACKETS_RX_CTR); - rtpconn_rate_ctr_add(conn, endp, RTP_OCTETS_RX_CTR, rc); - - /* Forward a copy of the RTP data to a debug ip/port */ - forward_data(fd->fd, &conn->tap_in, buf, rc); - - return rc; -} - /* Send RTP data. Possible options are standard RTP packet * transmission or trsmission via an osmux connection */ -static int mgcp_send_rtp(int proto, struct sockaddr_in *addr, char *buf, - unsigned int buf_size, - struct mgcp_conn_rtp *conn_src, - struct mgcp_conn_rtp *conn_dst) +static int mgcp_send_rtp(struct mgcp_conn_rtp *conn_dst, struct msgb *msg) { - struct mgcp_endpoint *endp; - endp = conn_src->conn->endp; + enum rtp_proto proto = OSMO_RTP_MSG_CTX(msg)->proto; + struct mgcp_conn_rtp *conn_src = OSMO_RTP_MSG_CTX(msg)->conn_src; + struct sockaddr_in *from_addr = OSMO_RTP_MSG_CTX(msg)->from_addr; + struct mgcp_endpoint *endp = conn_src->conn->endp; LOGPENDP(endp, DRTP, LOGL_DEBUG, "destin conn:%s\n", mgcp_conn_dump(conn_dst->conn)); @@ -1241,13 +1136,13 @@ "endpoint type is MGCP_RTP_DEFAULT, " "using mgcp_send() to forward data directly\n"); return mgcp_send(endp, proto == MGCP_PROTO_RTP, - addr, buf, buf_size, conn_src, conn_dst); + from_addr, msg, conn_src, conn_dst); case MGCP_OSMUX_BSC_NAT: case MGCP_OSMUX_BSC: LOGPENDP(endp, DRTP, LOGL_DEBUG, "endpoint type is MGCP_OSMUX_BSC_NAT, " "using osmux_xfrm_to_osmux() to forward data through OSMUX\n"); - return osmux_xfrm_to_osmux(buf, buf_size, conn_dst); + return osmux_xfrm_to_osmux((char*)msg->data, msg->len, conn_dst); } /* If the data has not been handled/forwarded until here, it will @@ -1265,10 +1160,12 @@ * \param[in] buf_size size data length of buf. * \param[in] conn originating connection. * \returns 0 on success, -1 on ERROR. */ -int mgcp_dispatch_rtp_bridge_cb(int proto, struct sockaddr_in *addr, char *buf, - unsigned int buf_size, struct mgcp_conn *conn) +int mgcp_dispatch_rtp_bridge_cb(struct msgb *msg) { + struct mgcp_conn_rtp *conn_src = OSMO_RTP_MSG_CTX(msg)->conn_src; + struct mgcp_conn *conn = conn_src->conn; struct mgcp_conn *conn_dst; + struct sockaddr_in *from_addr = OSMO_RTP_MSG_CTX(msg)->from_addr; /*! NOTE: This callback function implements the endpoint specific * dispatch behaviour of an rtp bridge/proxy endpoint. It is assumed @@ -1287,11 +1184,10 @@ * 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) { - conn->u.rtp.end.addr = addr->sin_addr; - conn->u.rtp.end.rtp_port = addr->sin_port; + conn->u.rtp.end.addr = from_addr->sin_addr; + conn->u.rtp.end.rtp_port = from_addr->sin_port; } - return mgcp_send_rtp(proto, addr, buf, - buf_size, &conn->u.rtp, &conn->u.rtp); + return mgcp_send_rtp(conn_src, msg); } /* Find a destination connection. */ @@ -1323,9 +1219,7 @@ } /* Dispatch RTP packet to destination RTP connection */ - return mgcp_send_rtp(proto, addr, buf, - buf_size, &conn->u.rtp, &conn_dst->u.rtp); - + return mgcp_send_rtp(&conn_dst->u.rtp, msg); } /*! cleanup an endpoint when a connection on an RTP bridge endpoint is removed. @@ -1346,6 +1240,11 @@ } } +static bool is_dummy_msg(enum rtp_proto proto, struct msgb *msg) +{ + return msg->len == 1 && msg->data[0] == MGCP_DUMMY_LOAD; +} + /* Handle incoming RTP data from NET */ static int rtp_data_net(struct osmo_fd *fd, unsigned int what) { @@ -1359,23 +1258,83 @@ struct mgcp_conn_rtp *conn_src; struct mgcp_endpoint *endp; struct sockaddr_in addr; - - char buf[RTP_BUF_SIZE]; - int proto; - int len; + socklen_t slen = sizeof(addr); + int ret; + enum rtp_proto proto; + struct osmo_rtp_msg_ctx mc; + struct msgb *msg = msgb_alloc(RTP_BUF_SIZE, "RTP-rx"); + int rc; conn_src = (struct mgcp_conn_rtp *)fd->data; OSMO_ASSERT(conn_src); endp = conn_src->conn->endp; OSMO_ASSERT(endp); - LOGPENDP(endp, DRTP, LOGL_DEBUG, "source conn:%s\n", - mgcp_conn_dump(conn_src->conn)); + proto = (fd == &conn_src->end.rtp)? MGCP_PROTO_RTP : MGCP_PROTO_RTCP; - /* Receive packet */ - len = mgcp_recv(&proto, &addr, buf, sizeof(buf), fd); - if (len < 0) - return -1; + ret = recvfrom(fd->fd, msg->data, msg->data_len, 0, (struct sockaddr *)&addr, &slen); + + if (ret <= 0) { + LOG_CONN_RTP(conn_src, LOGL_ERROR, "recvfrom error: %s\n", strerror(errno)); + rc = -1; + goto out; + } + + msgb_put(msg, ret); + + LOG_CONN_RTP(conn_src, LOGL_DEBUG, "%s: rx %u bytes from %s:%u\n", + proto == MGCP_PROTO_RTP ? "RTP" : "RTPC", + msg->len, inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); + + if ((proto == MGCP_PROTO_RTP && check_rtp(conn_src, msg)) + || (proto == MGCP_PROTO_RTCP && check_rtcp(conn_src, msg))) { + /* Logging happened in the two check_ functions */ + rc = -1; + goto out; + } + + if (is_dummy_msg(proto, msg)) { + LOG_CONN_RTP(conn_src, LOGL_DEBUG, "rx dummy packet (dropped)\n"); + rc = 0; + goto out; + } + + /* Since the msgb remains owned and freed by this function, the msg ctx data struct can just be on the stack and + * needs not be allocated with the msgb. */ + mc = (struct osmo_rtp_msg_ctx){ + .proto = proto, + .conn_src = conn_src, + .from_addr = &addr, + }; + OSMO_RTP_MSG_CTX(msg) = &mc; + LOG_CONN_RTP(conn_src, LOGL_DEBUG, "msg ctx: %d %p %s\n", + OSMO_RTP_MSG_CTX(msg)->proto, + OSMO_RTP_MSG_CTX(msg)->conn_src, + osmo_hexdump((void*)OSMO_RTP_MSG_CTX(msg)->from_addr, sizeof(struct sockaddr_in))); + + /* Increment RX statistics */ + rate_ctr_inc(&conn_src->rate_ctr_group->ctr[RTP_PACKETS_RX_CTR]); + rate_ctr_add(&conn_src->rate_ctr_group->ctr[RTP_OCTETS_RX_CTR], msg->len); + /* FIXME: count RTP and RTCP separately, also count IuUP payload-less separately */ + + /* Forward a copy of the RTP data to a debug ip/port */ + forward_data(fd->fd, &conn_src->tap_in, msg); + + rc = rx_rtp(msg); + +out: + msgb_free(msg); + return rc; +} + +static int rx_rtp(struct msgb *msg) +{ + struct mgcp_conn_rtp *conn_src = OSMO_RTP_MSG_CTX(msg)->conn_src; + struct sockaddr_in *from_addr = OSMO_RTP_MSG_CTX(msg)->from_addr; + struct mgcp_conn *conn = conn_src->conn; + struct mgcp_trunk *trunk = conn->endp->trunk; + + LOG_CONN_RTP(conn_src, LOGL_DEBUG, "rx_rtp(%u bytes)\n", msg->len); mgcp_conn_watchdog_kick(conn_src->conn); @@ -1384,17 +1343,20 @@ * define, then we check if the incoming payload matches that * expectation. */ if (amr_oa_bwe_convert_indicated(conn_src->end.codec)) { - int oa = amr_oa_check(buf, len); + int oa = amr_oa_check((char*)msg->data, msg->len); if (oa < 0) return -1; if (((bool)oa) != conn_src->end.codec->param.amr_octet_aligned) return -1; } + /* Check if the origin of the RTP packet seems plausible */ + if (!trunk->rtp_accept_all && check_rtp_origin(conn_src, from_addr)) + return -1; + /* Execute endpoint specific implementation that handles the * dispatching of the RTP data */ - return endp->type->dispatch_rtp_cb(proto, &addr, buf, len, - conn_src->conn); + return conn->endp->type->dispatch_rtp_cb(msg); } /*! set IP Type of Service parameter. diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index 9715e70..542037e 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -236,13 +236,15 @@ { struct mgcp_conn_rtp *conn = data; struct mgcp_endpoint *endp = conn->conn->endp; - struct sockaddr_in addr = { - .sin_addr = conn->end.addr, - .sin_port = conn->end.rtp_port, - }; /* FIXME: not set/used in cb */ + struct sockaddr_in addr = { /* FIXME: do we know the source address?? */ }; + struct osmo_rtp_msg_ctx mc = { + .proto = MGCP_PROTO_RTP, + .conn_src = conn, + .from_addr = &addr, + }; + OSMO_RTP_MSG_CTX(msg) = &mc; - - endp->type->dispatch_rtp_cb(MGCP_PROTO_RTP, &addr, (char *)msg->data, msg->len, conn->conn); + endp->type->dispatch_rtp_cb(msg); msgb_free(msg); } diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index 56a17b1..fe73181 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -1275,7 +1276,7 @@ void mgcp_patch_and_count(struct mgcp_endpoint *endp, struct mgcp_rtp_state *state, struct mgcp_rtp_end *rtp_end, - struct sockaddr_in *addr, char *data, int len); + struct sockaddr_in *addr, struct msgb *msg); static void test_packet_error_detection(int patch_ssrc, int patch_ts) { @@ -1288,7 +1289,6 @@ struct mgcp_rtp_state state; struct mgcp_rtp_end *rtp; struct sockaddr_in addr = { 0 }; - char buffer[4096]; uint32_t last_ssrc = 0; uint32_t last_timestamp = 0; uint32_t last_seqno = 0; @@ -1337,16 +1337,17 @@ for (i = 0; i < ARRAY_SIZE(test_rtp_packets1); ++i) { struct rtp_packet_info *info = test_rtp_packets1 + i; + struct msgb *msg = msgb_alloc(4096, __func__); force_monotonic_time_us = round(1000000.0 * info->txtime); - OSMO_ASSERT(info->len <= sizeof(buffer)); + OSMO_ASSERT(info->len <= msgb_tailroom(msg)); OSMO_ASSERT(info->len >= 0); - memmove(buffer, info->data, info->len); + msg->l3h = msgb_put(msg, info->len); + memcpy((char*)msgb_l3(msg), info->data, info->len); mgcp_rtp_end_config(&endp, 1, rtp); - mgcp_patch_and_count(&endp, &state, rtp, &addr, - buffer, info->len); + mgcp_patch_and_count(&endp, &state, rtp, &addr, msg); if (state.out_stream.ssrc != last_ssrc) { printf("Output SSRC changed to %08x\n", @@ -1373,6 +1374,8 @@ last_out_ts_err_cnt = state.out_stream.err_ts_ctr->current; last_timestamp = state.out_stream.last_timestamp; last_seqno = state.out_stream.last_seq; + + msgb_free(msg); } force_monotonic_time_us = -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 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 Jun 19 01:17:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 01:17:22 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: This patch has for a long time been part of a WIP IuUP implementation. Because IuUP prepends / strips IuUP headers and because passing data around conversion callbacks is much nicer and safer with msgb, the IuUP patch moved to using msgb throughout osmo-mgw's RTP handling. To avoid repeated rebasing with merge conflicts, I think it would be good to now merge the refactor-to-msgb part, even if the IuUP is not necessarily mature enough. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 19 Jun 2020 01:17: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 Fri Jun 19 01:58:51 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 01:58:51 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 to look at the new patch set (#6). Change subject: add rudimentary NRI support for MSC pooling ...................................................................... add rudimentary NRI support for MSC pooling This patch served for a manual testing counterpart for osmo-bsc to implement MSC pooling. This enables a basic MSC pooling setup, but for a production setup, osmo-msc would still lack various features related to unloading subscribers to another MSC as explained in 3GPP TS 23.236. Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 --- M include/osmocom/msc/vlr.h M src/libmsc/msc_vty.c M src/libvlr/vlr.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_hlr_timeout.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/test_nodes.vty 17 files changed, 217 insertions(+), 122 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/70/18770/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 6 Gerrit-Owner: neels 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 Jun 19 01:59:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 01:59:54 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18770 ) Change subject: add rudimentary NRI support for MSC pooling ...................................................................... Patch Set 6: Code-Review+2 fixed vty transcript test, re-apply previous 2x +1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 01:59: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 Jun 19 10:40:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 10:40:54 +0000 Subject: Change in osmo-bts[master]: cosmetic: {oc2g, lc15}bts_bty.c: Fix trailing whitespace In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18905 ) Change subject: cosmetic: {oc2g,lc15}bts_bty.c: Fix trailing whitespace ...................................................................... cosmetic: {oc2g,lc15}bts_bty.c: Fix trailing whitespace Change-Id: I1a9cf84ae0120c6ce9068efeb0e9824e4726564e --- M src/osmo-bts-litecell15/lc15bts_vty.c M src/osmo-bts-oc2g/oc2gbts_vty.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bts-litecell15/lc15bts_vty.c b/src/osmo-bts-litecell15/lc15bts_vty.c index 3643a92..5041033 100644 --- a/src/osmo-bts-litecell15/lc15bts_vty.c +++ b/src/osmo-bts-litecell15/lc15bts_vty.c @@ -2,7 +2,7 @@ /* Copyright (C) 2015 by Yves Godin * Copyright (C) 2016 by Harald Welte - * + * * Based on sysmoBTS: * (C) 2011 by Harald Welte * (C) 2012,2013 by Holger Hans Peter Freyther diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index ecbd797..383876f 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -2,7 +2,7 @@ /* Copyright (C) 2015 by Yves Godin * Copyright (C) 2016 by Harald Welte - * + * * Based on sysmoBTS: * (C) 2011 by Harald Welte * (C) 2012,2013 by Holger Hans Peter Freyther -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1a9cf84ae0120c6ce9068efeb0e9824e4726564e Gerrit-Change-Number: 18905 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 10:40:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 10:40:54 +0000 Subject: Change in osmo-bts[master]: Fix missing bts_model implementations in stubs.c and bts_model.c In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18908 ) Change subject: Fix missing bts_model implementations in stubs.c and bts_model.c ...................................................................... Fix missing bts_model implementations in stubs.c and bts_model.c These will be required by compiler/linker after next changes. Change-Id: Icd20d64cf973f4cf4425b46d4102747db53d8990 --- M src/osmo-bts-omldummy/bts_model.c M tests/stubs.c 2 files changed, 16 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index c011401..a968381 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -220,3 +220,8 @@ { return 0; } + +int bts_model_phy_link_open(struct phy_link *plink) +{ + return 0; +} diff --git a/tests/stubs.c b/tests/stubs.c index 05175ea..20ce512 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -2,6 +2,8 @@ struct femtol1_hdl; struct bts_model_set_dyn_pdch_data; +struct phy_link; +struct phy_instance; /* * Stubs to provide an empty bts model implementation for testing. @@ -60,3 +62,12 @@ void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) { return; } + +void bts_model_phy_link_set_defaults(struct phy_link *plink) +{ return; } + +void bts_model_phy_instance_set_defaults(struct phy_instance *pinst) +{ return; } + +int bts_model_phy_link_open(struct phy_link *plink) +{ return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd20d64cf973f4cf4425b46d4102747db53d8990 Gerrit-Change-Number: 18908 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 10:42:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 10:42:53 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: This would also allow using in the future the jitterbuffer in libosmo-netif afaiu -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 10:42: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 Fri Jun 19 10:59:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 10:59:42 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h File include/osmocom/mgcp/mgcp_endp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h at 44 PS1, Line 44: #define OSMO_RTP_MSG_CTX(MSGB) (*(struct osmo_rtp_msg_ctx**)&((MSGB)->dst)) Accordng to msgb.h: """ /* Part of which TRX logical channel we were received / transmitted */ /* FIXME: move them into the control buffer */ union { void *dst; /*!< reference of origin/destination */ struct gsm_bts_trx *trx; }; """ So rather use ->cb for this, like we do in libosmo-netif's jibuf.c: #define JIBUF_MSGB_CB(__msgb) ((struct osmo_jibuf_msgb_cb *)&((__msgb)->cb[0])) https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_codec.c File src/libosmo-mgcp/mgcp_codec.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_codec.c at 436 PS1, Line 436: const struct mgcp_rtp_codec *mgcp_codec_pt_find_by_subtype_name(struct mgcp_conn_rtp *conn, some documentation here would be welcome. https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 1302 PS1, Line 1302: /* Since the msgb remains owned and freed by this function, the msg ctx data struct can just be on the stack and It may be the case now and I'm ok with it, but in the long term I'd argue it makes more sense to transfer ownsership since the msgb is most likely gonna end up in someone else wqueue? https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 1310 PS1, Line 1310: LOG_CONN_RTP(conn_src, LOGL_DEBUG, "msg ctx: %d %p %s\n", Do we really want to call osmo_hexdump for ALL rtp packets received? Even if it's not printed... https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 1330 PS1, Line 1330: static int rx_rtp(struct msgb *msg) Move this function on top of rtp_data_net and then you can drop the forward reference of rx_rtp at the top of the file. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 10:59: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 Fri Jun 19 11:54:12 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 19 Jun 2020 11:54:12 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18715 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... Patch Set 6: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-msc/+/18715/6/src/libmsc/gsm_04_08.c File src/libmsc/gsm_04_08.c: https://gerrit.osmocom.org/c/osmo-msc/+/18715/6/src/libmsc/gsm_04_08.c at 156 PS6, Line 156: if (rc < 0) { So in this case we log "LOCATION UPDATE ACCEPT", but actually send nothing to subscriber. I think we need to log an error here, or just OSMO_ASSERT(). https://gerrit.osmocom.org/c/osmo-msc/+/18715/6/src/libmsc/gsm_04_08.c at 224 PS6, Line 224: osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); Do we really need to allocate memory on heap here? Why not osmo_mobile_identity_to_str_buf()? -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 11:54: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 Fri Jun 19 12:49:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 12:49:25 +0000 Subject: Change in osmo-trx[master]: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18914 ) Change subject: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER ...................................................................... Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER Some SDR devices under some bands may provide only under 0 dBm Tx Power. Change-Id: I8cecb7a37eb80db341a624eb7b826180eac4a1d4 --- M Transceiver52M/Transceiver.cpp 1 file changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/14/18914/1 diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 0b7ac31..7a81b7b 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -904,10 +904,7 @@ sprintf(response, "RSP ADJPOWER 0 %d", power); } else if (match_cmd(command, "NOMTXPOWER", NULL)) { int power = mRadioInterface->getNominalTxPower(chan); - if (power > 0) - sprintf(response, "RSP NOMTXPOWER 0 %d", power); - else - sprintf(response, "RSP NOMTXPOWER 1 %d", -power); + sprintf(response, "RSP NOMTXPOWER 0 %d", power); } else if (match_cmd(command, "RXTUNE", ¶ms)) { // tune receiver int freqKhz; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I8cecb7a37eb80db341a624eb7b826180eac4a1d4 Gerrit-Change-Number: 18914 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 Jun 19 14:12:02 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 19 Jun 2020 14:12:02 +0000 Subject: Change in osmo-trx[master]: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18914 ) Change subject: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I8cecb7a37eb80db341a624eb7b826180eac4a1d4 Gerrit-Change-Number: 18914 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 19 Jun 2020 14:12: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 Jun 19 15:20:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 15:20:11 +0000 Subject: Change in osmo-bts[master]: tx_power: Log bypass param in power_ramp_start References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18915 ) Change subject: tx_power: Log bypass param in power_ramp_start ...................................................................... tx_power: Log bypass param in power_ramp_start Change-Id: I72559a50570cf447b5930f8995b1f345baeb1ee5 --- M src/common/tx_power.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/15/18915/1 diff --git a/src/common/tx_power.c b/src/common/tx_power.c index 705038c..b0c959f 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -244,8 +244,8 @@ * the maximum total system power subtracted by OML as well as RSL * reductions */ - LOGPTRX(trx, DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d)\n", - tpp->p_total_cur_mdBm, p_total_tgt_mdBm); + LOGPTRX(trx, DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d%s)\n", + tpp->p_total_cur_mdBm, p_total_tgt_mdBm, bypass ? ", bypass" : ""); if (!bypass && (p_total_tgt_mdBm > get_p_nominal_mdBm(trx))) { LOGPTRX(trx, DL1C, LOGL_ERROR, "Asked to ramp power up to " -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72559a50570cf447b5930f8995b1f345baeb1ee5 Gerrit-Change-Number: 18915 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 Jun 19 15:20:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 15:20:12 +0000 Subject: Change in osmo-bts[master]: tx_power: Support controlling BTS with nominal tx pwr < 0dBm References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18916 ) Change subject: tx_power: Support controlling BTS with nominal tx pwr < 0dBm ...................................................................... tx_power: Support controlling BTS with nominal tx pwr < 0dBm Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 --- M src/common/tx_power.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 5 files changed, 12 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/18916/1 diff --git a/src/common/tx_power.c b/src/common/tx_power.c index b0c959f..e7f7eb3 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -196,8 +196,8 @@ /* for now we simply write an error message, but in the future * we might use the value (again) as part of our math? */ if (p_trxout_cur_mdBm != p_trxout_should_mdBm) { - LOGPTRX(trx, DL1C, LOGL_ERROR, "bts_model notifies us of %u mdBm TRX " - "output power. However, it should be %u mdBm!\n", + LOGPTRX(trx, DL1C, LOGL_ERROR, "bts_model notifies us of %d mdBm TRX " + "output power. However, it should be %d mdBm!\n", p_trxout_cur_mdBm, p_trxout_should_mdBm); } diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 07f6e7a..1cc1e91 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -150,13 +150,16 @@ } /* Sets the nominal power, in dB */ -void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power) +void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, int nominal_power) { struct phy_instance *pinst = trx_phy_instance(trx); bool nom_pwr_changed = trx->nominal_power != nominal_power; trx->nominal_power = nominal_power; trx->power_params.trx_p_max_out_mdBm = to_mdB(nominal_power); + /* If we receive ultra-low nominal Tx power (<0dBm), make sure to update where we are */ + trx->power_params.p_total_cur_mdBm = OSMO_MIN(trx->power_params.p_total_cur_mdBm, + trx->power_params.trx_p_max_out_mdBm); /* If TRX is not yet powered, delay ramping until it's ON */ if (!nom_pwr_changed || !pinst->phy_link->u.osmotrx.powered) @@ -168,12 +171,12 @@ l1if_trx_start_power_ramp(trx); } -static void l1if_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc) +static void l1if_getnompower_cb(struct trx_l1h *l1h, int nominal_power, int rc) { struct phy_instance *pinst = l1h->phy_inst; struct gsm_bts_trx *trx = pinst->trx; - LOGPPHI(pinst, DL1C, LOGL_DEBUG, "l1if_getnompower_cb(nominal_power=%u, rc=%d)\n", nominal_power, rc); + LOGPPHI(pinst, DL1C, LOGL_NOTICE, "l1if_getnompower_cb(nominal_power=%d, rc=%d)\n", nominal_power, rc); l1if_trx_set_nominal_power(trx, nominal_power); } diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 5f51acb..3fda726 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -114,7 +114,7 @@ int l1if_provision_transceiver_trx(struct trx_l1h *l1h); int l1if_provision_transceiver(struct gsm_bts *bts); int l1if_mph_time_ind(struct gsm_bts *bts, uint32_t fn); -void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power); +void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, int nominal_power); static inline struct l1sched_trx *trx_l1sched_hdl(struct gsm_bts_trx *trx) { diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 1953f71..3502fbd 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -554,13 +554,13 @@ { trx_if_cmd_getnompower_cb *cb = (trx_if_cmd_getnompower_cb*) rsp->cb; struct phy_instance *pinst = l1h->phy_inst; - unsigned int nominal_power; + int nominal_power; if (rsp->status) LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver NOMTXPOWER failed with status %d\n", rsp->status); if (cb) { - sscanf(rsp->params, "%u", &nominal_power); + sscanf(rsp->params, "%d", &nominal_power); cb(l1h, nominal_power, rsp->status); } return 0; diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 16b6c76..b2fc326 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -16,7 +16,7 @@ typedef void trx_if_cmd_poweronoff_cb(struct trx_l1h *l1h, bool poweronoff, int rc); typedef void trx_if_cmd_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc); -typedef void trx_if_cmd_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc); +typedef void trx_if_cmd_getnompower_cb(struct trx_l1h *l1h, int nominal_power, int rc); typedef void trx_if_cmd_setpower_att_cb(struct trx_l1h *l1h, int power_att_db, int rc); void trx_if_init(struct trx_l1h *l1h); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 Gerrit-Change-Number: 18916 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 Jun 19 15:21:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 15:21:03 +0000 Subject: Change in osmo-bts[master]: tx_power: Support controlling BTS with nominal tx pwr < 0dBm In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/18916 ) Change subject: tx_power: Support controlling BTS with nominal tx pwr < 0dBm ...................................................................... tx_power: Support controlling BTS with nominal tx pwr < 0dBm Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 --- M src/common/tx_power.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 5 files changed, 12 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/18916/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 Gerrit-Change-Number: 18916 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 Fri Jun 19 15:43:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 15:43:12 +0000 Subject: Change in osmo-bts[master]: tx_power: Support controlling BTS with nominal tx pwr < 0dBm 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/+/18916 to look at the new patch set (#3). Change subject: tx_power: Support controlling BTS with nominal tx pwr < 0dBm ...................................................................... tx_power: Support controlling BTS with nominal tx pwr < 0dBm Related: OS#4583 Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 --- M src/common/tx_power.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 5 files changed, 12 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/18916/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 Gerrit-Change-Number: 18916 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 Fri Jun 19 15:58:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 15:58:37 +0000 Subject: Change in osmo-bsc[master]: bsc: Allow setting negative nominal tx power through VTY References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18917 ) Change subject: bsc: Allow setting negative nominal tx power through VTY ...................................................................... bsc: Allow setting negative nominal tx power through VTY Some SDRs may provide tx power below 0 dBm on some bands. Related: OS#4583 Change-Id: Ia53c303d1bea23e219de42e1242cb8a5b357a2ae --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/17/18917/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 80658ec..aacff61 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4295,7 +4295,7 @@ DEFUN(cfg_trx_nominal_power, cfg_trx_nominal_power_cmd, - "nominal power <0-100>", + "nominal power <-20-100>", "Nominal TRX RF Power in dBm\n" "Nominal TRX RF Power in dBm\n" "Nominal TRX RF Power in dBm\n") -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia53c303d1bea23e219de42e1242cb8a5b357a2ae Gerrit-Change-Number: 18917 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 Jun 19 16:14:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 16:14:58 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx outpu... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18918 ) Change subject: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx output power ...................................................................... LMSDevice: Compute TxGain on LimeSuite API based on expected Tx output power Right now, according to a few measurements taken on LimeMicro devices, we expect the Tx Gain at UHD level to relate 1:1 with the slope in Tx output power given a specific band. If more fine-grained results are wanted or some device doesn't follow a 1:1 slope relationship, functions TxGain2TxPower and TxPower2TxGain need to be adapted/improved. This patch is basically doing the same thing as was done previously for UHDDevice in 992c9bd1cea410e2dd42ce7566299104b5648aff. Related: OS#4583 Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h 2 files changed, 144 insertions(+), 51 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/18/18918/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 355c8e4..8bb5316 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -65,8 +65,6 @@ * LimeNET-Micro does not like selecting internal clock */ bool clock_src_int_usable; - /* Device specific maximum tx levels selected by phasenoise measurements, in dB */ - double max_tx_gain; /* Sample rate coef (without having TX/RX samples per symbol into account) */ double rate; /* Sample rate coef (without having TX/RX samples per symbol into account), if multi-arfcn is enabled */ @@ -80,12 +78,48 @@ }; static const std::map dev_param_map { - { LMS_DEV_SDR_USB, { true, true, 73.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_SDR_USB_PREFIX_NAME } }, - { LMS_DEV_SDR_MINI, { false, true, 66.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 8.2e-5, LMS_DEV_SDR_MINI_PREFIX_NAME } }, - { LMS_DEV_NET_MICRO, { true, false, 71.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_NET_MICRO_PREFIX_NAME } }, - { LMS_DEV_UNKNOWN, { true, true, 73.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, "UNKNOWN" } }, + { LMS_DEV_SDR_USB, { true, true, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_SDR_USB_PREFIX_NAME } }, + { LMS_DEV_SDR_MINI, { false, true, GSMRATE, MCBTS_SPACING, 8.9e-5, 8.2e-5, LMS_DEV_SDR_MINI_PREFIX_NAME } }, + { LMS_DEV_NET_MICRO, { true, false, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_NET_MICRO_PREFIX_NAME } }, + { LMS_DEV_UNKNOWN, { true, true, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, "UNKNOWN" } }, }; +typedef std::tuple dev_band_key; +/* Maximum LimeSuite Tx Gain which can be set/used without distorting the output + * signal, and the resulting real output power measured when that gain is used. + */ +struct dev_band_desc { + double nom_lms_tx_gain; /* dB */ + double nom_out_tx_power; /* dBm */ +}; +typedef std::map::const_iterator dev_band_map_it; +static const std::map dev_band_nom_power_param_map { + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_850), { 73.0, 11.2 } }, + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_900), { 73.0, 10.8 } }, + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_1800), { 65.0, -3.5 } }, /* FIXME: OS#4583: 1800Mhz is failing above TxGain=65, which is around -3.5dBm (already < 0 dBm) */ + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_1900), { 73.0, 1.7 } }, /* FIXME: OS#4583: 1900MHz is failing in all TxGain values */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_850), { 66.0, 3.1 } }, /* FIXME: OS#4583: Ensure BAND2 is used at startup */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_900), { 66.0, 2.8 } }, /* FIXME: OS#4583: Ensure BAND2 is used at startup */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_1800), { 66.0, -11.6 } }, /* OS#4583: Any of BAND1 or BAND2 is fine */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_1900), { 66.0, -9.2 } }, /* FIXME: OS#4583: Ensure BAND1 is used at startup */ + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_850), { 71.0, 6.8 } }, + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_900), { 71.0, 6.8 } }, + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_1800), { 65.0, -10.5 } }, /* OS#4583: TxGain=71 (-4.4dBm) FAIL rms phase errors ~10? */ + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_1900), { 71.0, -6.3 } }, /* FIXME: OS#4583: all FAIL, BAND1/BAND2 rms phase errors >23? */ +}; + +/* So far measurements done for B210 show really close to linear relationship + * between gain and real output power, so we simply adjust the measured offset + */ +static double TxGain2TxPower(const dev_band_desc &desc, double tx_gain_db) +{ + return desc.nom_out_tx_power - (desc.nom_lms_tx_gain - tx_gain_db); +} +static double TxPower2TxGain(const dev_band_desc &desc, double tx_power_dbm) +{ + return desc.nom_lms_tx_gain - (desc.nom_out_tx_power - tx_power_dbm); +} + static enum lms_dev_type parse_dev_type(lms_device_t *m_lms_dev) { std::map::const_iterator it = dev_param_map.begin(); @@ -110,7 +144,7 @@ const std::vector& tx_paths, const std::vector& rx_paths): RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), - m_lms_dev(NULL), started(false), m_dev_type(LMS_DEV_UNKNOWN) + m_lms_dev(NULL), started(false), band((enum gsm_band)0), m_dev_type(LMS_DEV_UNKNOWN) { LOGC(DDEV, INFO) << "creating LMS device..."; @@ -197,6 +231,27 @@ return -1; } +void LMSDevice::get_dev_band_desc(dev_band_desc& desc) +{ + dev_band_map_it it; + enum gsm_band req_band = band; + + if (req_band == 0) { + LOGC(DDEV, ERROR) << "Nominal Tx Power requested before Tx Frequency was set! Providing band 900 by default... "; + req_band = GSM_BAND_900; + } + it = dev_band_nom_power_param_map.find(dev_band_key(m_dev_type, req_band)); + if (it == dev_band_nom_power_param_map.end()) { + dev_desc desc = dev_param_map.at(m_dev_type); + LOGC(DDEV, ERROR) << "No Tx Power measurements exist for device " + << desc.name_prefix << " on band " << gsm_band_name(req_band) + << ", using LimeSDR-USB ones as fallback"; + it = dev_band_nom_power_param_map.find(dev_band_key(LMS_DEV_SDR_USB, req_band)); + } + OSMO_ASSERT(it != dev_band_nom_power_param_map.end()) + desc = it->second; +} + int LMSDevice::open(const std::string &args, int ref, bool swap_channels) { lms_info_str_t* info_list; @@ -322,17 +377,20 @@ LOGC(DDEV, INFO) << "starting LMS..."; unsigned int i; + dev_band_desc desc; if (started) { LOGC(DDEV, ERR) << "Device already started"; return false; } + get_dev_band_desc(desc); + /* configure the channels/streams */ for (i=0; i maxTxGain()) - dB = maxTxGain(); - if (dB < minTxGain()) - dB = minTxGain(); - - LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB"; - - if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) - LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB"; - else - tx_gains[chan] = dB; - return tx_gains[chan]; -} - double LMSDevice::setRxGain(double dB, size_t chan) { if (dB > maxRxGain()) @@ -530,12 +561,45 @@ return rx_gains[chan]; } +double LMSDevice::setPowerAttenuation(int atten, size_t chan) +{ + double dB; + dev_band_desc desc; + + if (chan >= tx_gains.size()) { + LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; + return 0.0f; + } + + get_dev_band_desc(desc); + dB = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + + LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB"; + + if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) + LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB"; + else + tx_gains[chan] = dB; + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); +} + +double LMSDevice::getPowerAttenuation(size_t chan) { + dev_band_desc desc; + if (chan >= tx_gains.size()) { + LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; + return 0.0f; + } + + get_dev_band_desc(desc); + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); +} + int LMSDevice::getNominalTxPower(size_t chan) { - /* TODO: return value based on some experimentally generated table depending on - * band/arfcn, which is known here thanks to TXTUNE - */ - return 23; + dev_band_desc desc; + get_dev_band_desc(desc); + + return desc.nom_out_tx_power; } void LMSDevice::log_ant_list(bool dir_tx, size_t chan, std::ostringstream& os) @@ -904,13 +968,39 @@ bool LMSDevice::setTxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + + if (chan >= chans) { + LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; + return false; + } + LOGCHAN(chan, DDEV, NOTICE) << "Setting Tx Freq to " << wFreq << " Hz"; + req_arfcn = gsm_freq102arfcn(wFreq / 1000 / 100 , 0); + if (req_arfcn == 0xffff) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown ARFCN for Tx Frequency " << wFreq / 1000 << " kHz"; + return false; + } + if (gsm_arfcn2band_rc(req_arfcn, &req_band) < 0) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown GSM band for Tx Frequency " << wFreq + << " Hz (ARFCN " << req_arfcn << " )"; + return false; + } + + if (band != 0 && req_band != band) { + LOGCHAN(chan, DDEV, ALERT) << "Requesting Tx Frequency " << wFreq + << " Hz different from previous band " << gsm_band_name(band); + return false; + } + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_TX, chan, wFreq) < 0) { LOGCHAN(chan, DDEV, ERROR) << "Error setting Tx Freq to " << wFreq << " Hz"; return false; } + band = req_band; return true; } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index c83fed2..b6a6ab9 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -32,6 +32,10 @@ #include #include +extern "C" { +#include +} + /* Definition of LIMESDR_TX_AMPL limits maximum amplitude of I and Q * channels separately. Hence LIMESDR_TX_AMPL value must be 1/sqrt(2) = * 0.7071.... to get an amplitude of 1 of the complex signal: @@ -48,6 +52,8 @@ LMS_DEV_UNKNOWN, }; +struct dev_band_desc; + /** A class to handle a LimeSuite supported device */ class LMSDevice:public RadioDevice { @@ -66,6 +72,7 @@ TIMESTAMP ts_initial, ts_offset; std::vector tx_gains, rx_gains; + enum gsm_band band; enum lms_dev_type m_dev_type; @@ -77,19 +84,11 @@ void update_stream_stats_rx(size_t chan, bool *overrun); void update_stream_stats_tx(size_t chan, bool *underrun); bool do_clock_src_freq(enum ReferenceType ref, double freq); - /** sets the transmit chan gain, returns the gain setting **/ - double setTxGain(double dB, size_t chan = 0); + void get_dev_band_desc(dev_band_desc& desc); - /** get transmit gain */ - double getTxGain(size_t chan = 0) { - return tx_gains[chan]; - } - - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); + double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } + double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; + double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; public: @@ -178,6 +177,10 @@ /** return minimum Rx Gain **/ double minRxGain(void); + + double setPowerAttenuation(int atten, size_t chan); + double getPowerAttenuation(size_t chan = 0); + int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6 Gerrit-Change-Number: 18918 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 Jun 19 16:14:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 16:14:58 +0000 Subject: Change in osmo-trx[master]: Drop old TxGain APIs from parent radioDevice abstract class References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18919 ) Change subject: Drop old TxGain APIs from parent radioDevice abstract class ...................................................................... Drop old TxGain APIs from parent radioDevice abstract class All radioDevice subclasses except USRPDevice have already been reworked to use the new SetPowerAttenuation() methods, hence we can drop the compatibility layer that was added to transition from the old API to the new one, and move those functions to USRPDevice. This way we simplify the parent abstract class with methods not needed by most devices and not used anymore by external users of those classes. Change-Id: Ice005cd0a07c49b6e212c06f1228ef93c24db727 --- M Transceiver52M/device/common/radioDevice.h M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.h M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 5 files changed, 20 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/19/18919/1 diff --git a/Transceiver52M/device/common/radioDevice.h b/Transceiver52M/device/common/radioDevice.h index e51527d..cfe65da 100644 --- a/Transceiver52M/device/common/radioDevice.h +++ b/Transceiver52M/device/common/radioDevice.h @@ -151,17 +151,8 @@ virtual double getRxFreq(size_t chan = 0) = 0; virtual double getSampleRate()=0; - /* Default backward-compatible implementation based on TxGain APIs. New - implementations should be based on getNominalTxPower() once implemented for - the specific backend. */ - virtual double setPowerAttenuation(int atten, size_t chan) { - double rfGain; - rfGain = setTxGain(maxTxGain() - atten, chan); - return maxTxGain() - rfGain; - } - virtual double getPowerAttenuation(size_t chan=0) { - return maxTxGain() - getTxGain(chan); - } + virtual double setPowerAttenuation(int atten, size_t chan) = 0; + virtual double getPowerAttenuation(size_t chan=0) = 0; protected: size_t tx_sps, rx_sps; @@ -171,15 +162,6 @@ std::vector tx_paths, rx_paths; std::vector m_ctr; - /** sets the transmit chan gain, returns the gain setting **/ - virtual double setTxGain(double dB, size_t chan = 0) = 0; - - /** get transmit gain */ - virtual double getTxGain(size_t chan = 0) = 0; - - /** return maximum Tx Gain **/ - virtual double maxTxGain(void) = 0; - RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chan_num, double offset, const std::vector& tx_paths, const std::vector& rx_paths): diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index b6a6ab9..7af09e2 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -86,10 +86,6 @@ bool do_clock_src_freq(enum ReferenceType ref, double freq); void get_dev_band_desc(dev_band_desc& desc); - double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } - double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; - double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; - public: /** Object constructor */ diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 2c428ca..22a0948 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -134,10 +134,6 @@ }; private: - double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } - double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; - double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; - uhd::usrp::multi_usrp::sptr usrp_dev; uhd::tx_streamer::sptr tx_stream; uhd::rx_streamer::sptr rx_stream; diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 73117d2..5c40aa8 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -205,8 +205,8 @@ writeLock.unlock(); // Set gains to midpoint - setTxGain((minTxGain() + maxTxGain()) / 2); - setRxGain((minRxGain() + maxRxGain()) / 2); + setTxGain((m_dbTx->gain_min() + m_dbTx->gain_max()) / 2); + setRxGain((m_dbTx->gain_min() + m_dbTx->gain_max()) / 2); data = new short[currDataSize]; dataStart = 0; @@ -243,16 +243,6 @@ #endif } -double USRPDevice::maxTxGain() -{ - return m_dbTx->gain_max(); -} - -double USRPDevice::minTxGain() -{ - return m_dbTx->gain_min(); -} - double USRPDevice::maxRxGain() { return m_dbRx->gain_max(); @@ -271,10 +261,10 @@ } writeLock.lock(); - if (dB > maxTxGain()) - dB = maxTxGain(); - if (dB < minTxGain()) - dB = minTxGain(); + if (dB > m_dbTx->gain_max()) + dB = m_dbTx->gain_max(); + if (dB < m_dbTx->gain_min()) + dB = m_dbTx->gain_min(); LOGC(DDEV, NOTICE) << "Setting TX gain to " << dB << " dB."; @@ -314,6 +304,15 @@ return rxGain; } +double USRPDevice::setPowerAttenuation(int atten, size_t chan) { + double rfGain; + rfGain = setTxGain(m_dbTx->gain_max() - atten, chan); + return m_dbTx->gain_max() - rfGain; +} +double USRPDevice::getPowerAttenuation(size_t chan) { + return m_dbTx->gain_max() - getTxGain(chan); +} + int USRPDevice::getNominalTxPower(size_t chan) { /* TODO: return value based on some experimentally generated table depending on diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index 1c1b3be..f761dc0 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -91,12 +91,6 @@ /** get transmit gain */ double getTxGain(size_t chan = 0) { return txGain; } - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); - #ifdef SWLOOPBACK short loopbackBuffer[1000000]; int loopbackBufferSize; @@ -180,6 +174,9 @@ /** return minimum Rx Gain **/ double minRxGain(void); + double setPowerAttenuation(int atten, size_t chan); + double getPowerAttenuation(size_t chan=0); + int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ice005cd0a07c49b6e212c06f1228ef93c24db727 Gerrit-Change-Number: 18919 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 Jun 19 16:32:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 16:32:27 +0000 Subject: Change in osmo-trx[master]: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18920 ) Change subject: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan ...................................................................... proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan >From UBSan: proto_trxd.c:65:18: runtime error: 128 is outside the range of representable values of type 'char'. Fixes: OS#4507 Change-Id: I71f815fe794a00934ee0e876848af56f30a21bfe --- M Transceiver52M/proto_trxd.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/20/18920/1 diff --git a/Transceiver52M/proto_trxd.c b/Transceiver52M/proto_trxd.c index 5a898b9..fbc0b14 100644 --- a/Transceiver52M/proto_trxd.c +++ b/Transceiver52M/proto_trxd.c @@ -62,7 +62,7 @@ { unsigned i; for (i = 0; i < bi->nbits; i++) - soft_bits[i] = (char) round(bi->rx_burst[i] * 255.0); + soft_bits[i] = (uint8_t) round(bi->rx_burst[i] * 255.0); } bool trxd_send_burst_ind_v0(size_t chan, int fd, const struct trx_ul_burst_ind *bi) { -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I71f815fe794a00934ee0e876848af56f30a21bfe Gerrit-Change-Number: 18920 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 Jun 19 16:36:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 19 Jun 2020 16:36:30 +0000 Subject: Change in osmo-trx[master]: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18920 ) Change subject: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I71f815fe794a00934ee0e876848af56f30a21bfe Gerrit-Change-Number: 18920 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 19 Jun 2020 16:36:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 17:14:29 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 17:14:29 +0000 Subject: Change in osmo-bts[master]: bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18921 ) Change subject: bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER not supported ...................................................................... bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER not supported Using the VTY command will force that value and prevent osmo-bts-trx to use/send NOMTXPOWER cmd over TRXC. Change-Id: I496753bc74767a7e18b831768d9d422a738192b7 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/21/18921/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 3502fbd..d733f04 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -557,7 +557,10 @@ int nominal_power; if (rsp->status) - LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver NOMTXPOWER failed with status %d\n", + LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver NOMTXPOWER failed " + "with status %d. If your transceiver doesn't support this " + "command, then please set the nominal transmit power manually " + "through VTY cmd 'nominal-tx-power'.\n", rsp->status); if (cb) { sscanf(rsp->params, "%d", &nominal_power); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I496753bc74767a7e18b831768d9d422a738192b7 Gerrit-Change-Number: 18921 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 Jun 19 17:30:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 19 Jun 2020 17:30:22 +0000 Subject: Change in osmo-trx[master]: {UHD, LMS}Dervice: Log expected resulting TxPower when setting device ... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18922 ) Change subject: {UHD,LMS}Dervice: Log expected resulting TxPower when setting device specific TxGain ...................................................................... {UHD,LMS}Dervice: Log expected resulting TxPower when setting device specific TxGain Change-Id: I3c54c61cd6dd7e40bb2831fd4962ff72130b390d --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/uhd/UHDDevice.cpp 2 files changed, 11 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/22/18922/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 8bb5316..20b9856 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -563,7 +563,7 @@ double LMSDevice::setPowerAttenuation(int atten, size_t chan) { - double dB; + double tx_power, dB; dev_band_desc desc; if (chan >= tx_gains.size()) { @@ -572,12 +572,13 @@ } get_dev_band_desc(desc); - dB = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + tx_power = desc.nom_out_tx_power - atten; + dB = TxPower2TxGain(desc, tx_power); - LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB"; + LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB (~" << tx_power << " dBm)"; if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) - LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB"; + LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB (~" << tx_power << " dBm)"; else tx_gains[chan] = dB; return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index d1f61d3..0eb79fc 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -358,7 +358,7 @@ } double uhd_device::setPowerAttenuation(int atten, size_t chan) { - double db; + double tx_power, db; dev_band_desc desc; if (chan >= tx_gains.size()) { @@ -367,7 +367,8 @@ } get_dev_band_desc(desc); - db = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + tx_power = desc.nom_out_tx_power - atten; + db = TxPower2TxGain(desc, tx_power); if (dev_type == UMTRX) { std::vector gain_stages = usrp_dev->get_tx_gain_names(0); @@ -388,7 +389,9 @@ tx_gains[chan] = usrp_dev->get_tx_gain(chan); - LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)"; + LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB, ~" + << TxGain2TxPower(desc, tx_gains[chan]) << " dBm " + << "(asked for " << db << " dB, ~" << tx_power << " dBm)"; return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3c54c61cd6dd7e40bb2831fd4962ff72130b390d Gerrit-Change-Number: 18922 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 Jun 19 18:32:03 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 19 Jun 2020 18:32:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: implement waiting queue for DCHAN messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 ) Change subject: library/RSL_Emulation: implement waiting queue for DCHAN messages ...................................................................... library/RSL_Emulation: implement waiting queue for DCHAN messages Since change [1] has been merged, we see multiple regressions in ttcn3-bsc-test (all LCLS test cases) and ttcn3-bsc-test-sccplite (sporadic failures). In all failed cases, the reason is similar: RSL for unknown Dchan BSC_Tests.ttcn:4501 BSC_Tests control part BSC_Tests.ttcn:2176 TC_assignment_codec_fr testcase The mentioned change enables TCP_NODELAY option for all IPA based connections, including both OML and RSL. This option disables Nagle's algorithm [2], so we get less delays on IPA based links. It took me a lot of time to investigate, and finally, I figured out what is actually causing those regressions. The TCP_NODELAY itself is not a problem, of course. As it turned out, the problem is here, in our TTCN-3 test case framework. Each test case involves several components (actors) running in parallel. One of them is RSL_Emulation_CT, which is responsible for handling and routing of RSL messages between the connected components. A test case may register dedicated channel handlers by calling f_rslem_register(), so DCHAN/RLL/IPACCESS messages will be matched by RslChannelNr/TrxNr and routed to the corresponding one. If no handler is found for a given RSL message, the RSL_Emulation_CT would abort the test case execution. And that's where the problem is. Given that all components are running in parallel, it may happen that a received RSL message would be processed by the RSL emulation component faster than the test case would call f_rslem_register(). The test case would be aborted due to "RSL for unknown Dchan". Speaking in context of the failing BSC test cases, a test case calls f_rslem_register() on receipt of an Assignment Command as it contains all the assignment parameters. After that we expect to receive an RSL ip.access CRCX for that channel. The problem is that both Assignment Command and ip.access CRCX messages are sent by the BSC simultaneously, so the later may be handled faster than the first one. Race condition! Let's work this around by maintaining a waiting queue, where the messages, for which no handler was found, will be kept until the corresponding dedicated channel is registered. This is an optional feature that will be enabled by default, but can be disabled by setting 'mp_rslem_enable_queue' to false. Makes all LCLS test cases pass on my machine with TCP_NODELAY enabled. [1] Ia3d4c41bf0659e682f0b7ae5f3d58ed0f28edb58 [2] https://en.wikipedia.org/wiki/Nagle%27s_algorithm Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Related: OS#4619 --- M library/RSL_Emulation.ttcn 1 file changed, 38 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/23/18923/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 618cf11..6108b4f 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -39,6 +39,10 @@ /* Work around switch for ttcn3-bts-test-latest, enables patching of IPA * stream ID in the "BSC" mode. See I5927f59a49724170a63e87be604973f7c9d5d8be. */ boolean mp_rslem_patch_ipa_cid := false; + /* Whether to keep RSL messages, for which no handler is found in ConnectionTable, + * in a queue. These messages will remain in the queue until the appropriate + * connection handler is registered. */ + boolean mp_rslem_enable_queue := true; }; /* General "base class" component definition, of which specific implementations @@ -415,6 +419,8 @@ testcase.stop("Failed to patch IPA stream ID in ASP RSL UD: ", ud); } +private type record of ASP_RSL_Unitdata ASP_RSL_UDList; + type component RSL_Emulation_CT { /* port facing down towards IPA emulation */ port IPA_RSL_PT IPA_PT; @@ -428,6 +434,9 @@ /* state of all concurrent connections / dedicated channels */ var ConnectionData ConnectionTable[64]; + /* RSL messages for which no handler is currently registered */ + var ASP_RSL_UDList WaitingQueue := { }; + /* last RSL CHAN ACT for each chan_nr */ var LastActData LastActTable[64]; @@ -584,6 +593,9 @@ rx_rsl.rsl.ies[0].body.chan_nr); if (cid != -1) { CLIENT_PT.send(rx_rsl.rsl) to ConnectionTable[cid].comp_ref; + } else if (mp_rslem_enable_queue) { + log("Storing an RSL message in the waiting queue"); + WaitingQueue := WaitingQueue & { rx_rsl }; } else { setverdict(fail, "RSL for unknown Dchan"); mtc.stop; @@ -630,6 +642,10 @@ [] RSL_PROC.getcall(RSLEM_register:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) { f_cid_create_cnr(trx_nr, chan_nr, vc_conn); RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn}) to vc_conn; + + /* Dispatch pending messages to the new handler (if any) */ + if (mp_rslem_enable_queue) + { f_WaitingQueue_process(trx_nr, chan_nr, vc_conn); } } [] RSL_PROC.getcall(RSLEM_unregister:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) { @@ -668,6 +684,28 @@ } } +private function f_WaitingQueue_process(uint8_t trx_nr, RslChannelNr chan_nr, + RSL_DchanHdlr comp_ref) +runs on RSL_Emulation_CT { + var ASP_RSL_UDList NewWaitingQueue := { }; + + /* NOTE: we cannot (safely) remove elements in the loop, so we create + * a new queue with not matching messages and then replace the old one. */ + for (var integer i := 0; i < lengthof(WaitingQueue); i := i + 1) { + if (f_trx_by_streamId(WaitingQueue[i].streamId) == trx_nr and + WaitingQueue[i].rsl.ies[0].body.chan_nr == chan_nr) { + /* Matched, send this message to the given RSL_DchanHdlr */ + log("Dispatching a stalled message to ", comp_ref); + CLIENT_PT.send(WaitingQueue[i].rsl) to comp_ref; + } else { + /* Does not match, put this one into the new queue */ + NewWaitingQueue := NewWaitingQueue & { WaitingQueue[i] }; + } + } + + WaitingQueue := NewWaitingQueue; +} + /* client/conn_hdlr side function to use procedure port to register stream_id/chan_nr */ function f_rslem_register(uint8_t trx_nr, RslChannelNr chan_nr, RSLEM_PROC_PT PT := RSL_PROC) runs on RSL_DchanHdlr { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Gerrit-Change-Number: 18923 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 Jun 19 20:12:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:12:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: implement waiting queue for DCHAN messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 ) Change subject: library/RSL_Emulation: implement waiting queue for DCHAN messages ...................................................................... Patch Set 1: I don't really like the idea of silently queueing messages somewhere. This has the potential of hiding bugs, as the IUT can now send masssive amounts of unexpected/wrong messages which will just be stuffed into a queue somewhere rather than making the test case fail. I don't really have a good alternative solution, though. Maybe we could improve the situation by introducing a check at the end of each test which verifies the queue is empty? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Gerrit-Change-Number: 18923 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20:12: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 Jun 19 20:14:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:14:28 +0000 Subject: Change in osmo-bts[master]: Introduce LOGPTRX macro and use it in tx_power.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18909 ) Change subject: Introduce LOGPTRX macro and use it in tx_power.c ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I02878611501aca51039e2ac7e35784ccb93b1db6 Gerrit-Change-Number: 18909 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20: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 Jun 19 20:14:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:14:55 +0000 Subject: Change in osmo-bts[master]: power_ramp: Add support to get callback when ramping process completes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18902 ) Change subject: power_ramp: Add support to get callback when ramping process completes ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e Gerrit-Change-Number: 18902 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20:14: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 Jun 19 20:19:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:19:00 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 2: would it make sense to have one "ramp" FSM that handles both ramping up and ramping down? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20:19:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:21:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:21:00 +0000 Subject: Change in osmo-bts[master]: Introduce LOGPTRX macro and use it in tx_power.c In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18909 ) Change subject: Introduce LOGPTRX macro and use it in tx_power.c ...................................................................... Introduce LOGPTRX macro and use it in tx_power.c Rename OCTPHY specific LOPGTRX macro to avoid redefine conflicts. Change-Id: I02878611501aca51039e2ac7e35784ccb93b1db6 --- M include/osmo-bts/gsm_data.h M src/common/tx_power.c M src/osmo-bts-octphy/l1_oml.c M tests/tx_power/tx_power_test.err 4 files changed, 56 insertions(+), 55 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 80cc0be..9032aeb 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -44,6 +44,7 @@ #define GSM_BTS_AGCH_QUEUE_HIGH_LEVEL_DEFAULT 91 #define LOGPLCHAN(lchan, ss, lvl, fmt, args...) LOGP(ss, lvl, "%s " fmt, gsm_lchan_name(lchan), ## args) +#define LOGPTRX(trx, ss, lvl, fmt, args...) LOGP(ss, lvl, "%s " fmt, gsm_trx_name(trx), ## args) struct gsm_network { struct llist_head bts_list; diff --git a/src/common/tx_power.c b/src/common/tx_power.c index db3121d..705038c 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -171,13 +171,13 @@ /* compute new effective (= minus ramp and thermal attenuation) TRX output required */ p_trxout_eff_mdBm = get_p_trxout_eff_mdBm(trx, tpp->p_total_tgt_mdBm); - LOGP(DL1C, LOGL_DEBUG, "ramp_timer_cb(cur_pout=%d, tgt_pout=%d, " + LOGPTRX(trx, DL1C, LOGL_DEBUG, "ramp_timer_cb(cur_pout=%d, tgt_pout=%d, " "ramp_att=%d, therm_att=%d, user_gain=%d)\n", tpp->p_total_cur_mdBm, tpp->p_total_tgt_mdBm, tpp->ramp.attenuation_mdB, tpp->thermal_attenuation_mdB, tpp->user_gain_mdB); - LOGP(DL1C, LOGL_INFO, + LOGPTRX(trx, DL1C, LOGL_INFO, "ramping TRX board output power to %d mdBm.\n", p_trxout_eff_mdBm); /* Instruct L1 to apply new effective TRX output power required */ @@ -196,9 +196,9 @@ /* for now we simply write an error message, but in the future * we might use the value (again) as part of our math? */ if (p_trxout_cur_mdBm != p_trxout_should_mdBm) { - LOGP(DL1C, LOGL_ERROR, "bts_model notifies us of %u mdBm TRX " - "output power. However, it should be %u mdBm!\n", - p_trxout_cur_mdBm, p_trxout_should_mdBm); + LOGPTRX(trx, DL1C, LOGL_ERROR, "bts_model notifies us of %u mdBm TRX " + "output power. However, it should be %u mdBm!\n", + p_trxout_cur_mdBm, p_trxout_should_mdBm); } /* and do another step... */ @@ -244,13 +244,13 @@ * the maximum total system power subtracted by OML as well as RSL * reductions */ - LOGP(DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d)\n", + LOGPTRX(trx, DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d)\n", tpp->p_total_cur_mdBm, p_total_tgt_mdBm); if (!bypass && (p_total_tgt_mdBm > get_p_nominal_mdBm(trx))) { - LOGP(DL1C, LOGL_ERROR, "Asked to ramp power up to " - "%d mdBm, which exceeds P_max_out (%d)\n", - p_total_tgt_mdBm, get_p_nominal_mdBm(trx)); + LOGPTRX(trx, DL1C, LOGL_ERROR, "Asked to ramp power up to " + "%d mdBm, which exceeds P_max_out (%d)\n", + p_total_tgt_mdBm, get_p_nominal_mdBm(trx)); return -ERANGE; } @@ -262,7 +262,7 @@ if (we_are_ramping_up(trx)) { if (tpp->p_total_tgt_mdBm <= tpp->ramp.max_initial_pout_mdBm) { - LOGP(DL1C, LOGL_INFO, + LOGPTRX(trx, DL1C, LOGL_INFO, "target_power(%d) is below max.initial power\n", tpp->p_total_tgt_mdBm); /* new setting is below the maximum initial output diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 9c5dd19..0f36662 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -54,7 +54,7 @@ bool no_fw_check = 0; -#define LOGPTRX(byTrxId, level, fmt, args...) \ +#define LOGPOCTTRX(byTrxId, level, fmt, args...) \ LOGP(DL1C, level, "(byTrxId %u) " fmt, byTrxId, ## args) /* Map OSMOCOM logical channel type to OctPHY Logical channel type */ @@ -381,7 +381,7 @@ mOCTVC1_GSM_MSG_TRX_ACTIVATE_LOGICAL_CHANNEL_RSP_SWAP(ar); trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan activation\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan activation\n"); return -EINVAL; } @@ -496,7 +496,7 @@ trx = trx_by_l1h(fl1, pcr->TrxId.byTrxId); if (!trx) { - LOGPTRX(pcr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during cipher mode activation\n"); + LOGPOCTTRX(pcr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during cipher mode activation\n"); return -EINVAL; } @@ -700,7 +700,7 @@ mOCTVC1_GSM_MSG_TRX_DEACTIVATE_LOGICAL_CHANNEL_RSP_SWAP(ldr); trx = trx_by_l1h(fl1, ldr->TrxId.byTrxId); if (!trx) { - LOGPTRX(ldr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan deactivation\n"); + LOGPOCTTRX(ldr->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during lchan deactivation\n"); return -EINVAL; } @@ -1283,7 +1283,7 @@ mOCTVC1_GSM_MSG_TRX_OPEN_RSP_SWAP(or); trx = trx_by_l1h(fl1h, or->TrxId.byTrxId); if (!trx) { - LOGPTRX(or->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during TRX opening procedure -- abort\n"); + LOGPOCTTRX(or->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during TRX opening procedure -- abort\n"); exit(1); } @@ -1470,7 +1470,7 @@ mOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_RSP_SWAP(ar); trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during physical channel activation -- abort\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during physical channel activation -- abort\n"); exit(1); } @@ -1553,7 +1553,7 @@ trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during ts disconnection\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id during ts disconnection\n"); return -EINVAL; } @@ -1581,7 +1581,7 @@ mOCTVC1_GSM_MSG_TRX_ACTIVATE_PHYSICAL_CHANNEL_RSP_SWAP(ar); trx = trx_by_l1h(fl1, ar->TrxId.byTrxId); if (!trx) { - LOGPTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id while connecting ts\n"); + LOGPOCTTRX(ar->TrxId.byTrxId, LOGL_ERROR, "response with unexpected physical transceiver-id while connecting ts\n"); return -EINVAL; } diff --git a/tests/tx_power/tx_power_test.err b/tests/tx_power/tx_power_test.err index bf33b42..03130b2 100644 --- a/tests/tx_power/tx_power_test.err +++ b/tests/tx_power/tx_power_test.err @@ -1,38 +1,38 @@ -power_ramp_start(cur=0, tgt=40000) -Asked to ramp power up to 40000 mdBm, which exceeds P_max_out (33000) -power_ramp_start(cur=0, tgt=33000) -ramp_timer_cb(cur_pout=2000, tgt_pout=33000, ramp_att=31000, therm_att=0, user_gain=0) -ramping TRX board output power to -8000 mdBm. -ramp_timer_cb(cur_pout=4000, tgt_pout=33000, ramp_att=29000, therm_att=0, user_gain=0) -ramping TRX board output power to -6000 mdBm. -ramp_timer_cb(cur_pout=6000, tgt_pout=33000, ramp_att=27000, therm_att=0, user_gain=0) -ramping TRX board output power to -4000 mdBm. -ramp_timer_cb(cur_pout=8000, tgt_pout=33000, ramp_att=25000, therm_att=0, user_gain=0) -ramping TRX board output power to -2000 mdBm. -ramp_timer_cb(cur_pout=10000, tgt_pout=33000, ramp_att=23000, therm_att=0, user_gain=0) -ramping TRX board output power to 0 mdBm. -ramp_timer_cb(cur_pout=12000, tgt_pout=33000, ramp_att=21000, therm_att=0, user_gain=0) -ramping TRX board output power to 2000 mdBm. -ramp_timer_cb(cur_pout=14000, tgt_pout=33000, ramp_att=19000, therm_att=0, user_gain=0) -ramping TRX board output power to 4000 mdBm. -ramp_timer_cb(cur_pout=16000, tgt_pout=33000, ramp_att=17000, therm_att=0, user_gain=0) -ramping TRX board output power to 6000 mdBm. -ramp_timer_cb(cur_pout=18000, tgt_pout=33000, ramp_att=15000, therm_att=0, user_gain=0) -ramping TRX board output power to 8000 mdBm. -ramp_timer_cb(cur_pout=20000, tgt_pout=33000, ramp_att=13000, therm_att=0, user_gain=0) -ramping TRX board output power to 10000 mdBm. -ramp_timer_cb(cur_pout=22000, tgt_pout=33000, ramp_att=11000, therm_att=0, user_gain=0) -ramping TRX board output power to 12000 mdBm. -ramp_timer_cb(cur_pout=24000, tgt_pout=33000, ramp_att=9000, therm_att=0, user_gain=0) -ramping TRX board output power to 14000 mdBm. -ramp_timer_cb(cur_pout=26000, tgt_pout=33000, ramp_att=7000, therm_att=0, user_gain=0) -ramping TRX board output power to 16000 mdBm. -ramp_timer_cb(cur_pout=28000, tgt_pout=33000, ramp_att=5000, therm_att=0, user_gain=0) -ramping TRX board output power to 18000 mdBm. -ramp_timer_cb(cur_pout=30000, tgt_pout=33000, ramp_att=3000, therm_att=0, user_gain=0) -ramping TRX board output power to 20000 mdBm. -ramp_timer_cb(cur_pout=32000, tgt_pout=33000, ramp_att=1000, therm_att=0, user_gain=0) -ramping TRX board output power to 22000 mdBm. -ramp_timer_cb(cur_pout=33000, tgt_pout=33000, ramp_att=0, therm_att=0, user_gain=0) -ramping TRX board output power to 23000 mdBm. +(bts=0,trx=1) power_ramp_start(cur=0, tgt=40000) +(bts=0,trx=1) Asked to ramp power up to 40000 mdBm, which exceeds P_max_out (33000) +(bts=0,trx=1) power_ramp_start(cur=0, tgt=33000) +(bts=0,trx=1) ramp_timer_cb(cur_pout=2000, tgt_pout=33000, ramp_att=31000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -8000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=4000, tgt_pout=33000, ramp_att=29000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -6000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=6000, tgt_pout=33000, ramp_att=27000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -4000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=8000, tgt_pout=33000, ramp_att=25000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to -2000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=10000, tgt_pout=33000, ramp_att=23000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 0 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=12000, tgt_pout=33000, ramp_att=21000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 2000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=14000, tgt_pout=33000, ramp_att=19000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 4000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=16000, tgt_pout=33000, ramp_att=17000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 6000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=18000, tgt_pout=33000, ramp_att=15000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 8000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=20000, tgt_pout=33000, ramp_att=13000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 10000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=22000, tgt_pout=33000, ramp_att=11000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 12000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=24000, tgt_pout=33000, ramp_att=9000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 14000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=26000, tgt_pout=33000, ramp_att=7000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 16000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=28000, tgt_pout=33000, ramp_att=5000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 18000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=30000, tgt_pout=33000, ramp_att=3000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 20000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=32000, tgt_pout=33000, ramp_att=1000, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 22000 mdBm. +(bts=0,trx=1) ramp_timer_cb(cur_pout=33000, tgt_pout=33000, ramp_att=0, therm_att=0, user_gain=0) +(bts=0,trx=1) ramping TRX board output power to 23000 mdBm.  \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I02878611501aca51039e2ac7e35784ccb93b1db6 Gerrit-Change-Number: 18909 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Fri Jun 19 20:21:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:21:01 +0000 Subject: Change in osmo-bts[master]: power_ramp: Add support to get callback when ramping process completes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18902 ) Change subject: power_ramp: Add support to get callback when ramping process completes ...................................................................... power_ramp: Add support to get callback when ramping process completes It will be used in forthcoming commits to feed FSM events once the ramping process completes. Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e --- M include/osmo-bts/tx_power.h M src/common/bts_ctrl_commands.c M src/common/tx_power.c M src/osmo-bts-litecell15/lc15bts_vty.c M src/osmo-bts-litecell15/oml.c M src/osmo-bts-oc2g/oc2gbts_vty.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-sysmo/sysmobts_vty.c M src/osmo-bts-trx/l1_if.c M tests/tx_power/tx_power_test.c 12 files changed, 26 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmo-bts/tx_power.h b/include/osmo-bts/tx_power.h index 8f33100..4d0457b 100644 --- a/include/osmo-bts/tx_power.h +++ b/include/osmo-bts/tx_power.h @@ -20,6 +20,8 @@ struct pa_calibration calib; }; +typedef void (*ramp_compl_cb_t)(struct gsm_bts_trx *trx); + /* Transmit power related parameters of a transceiver */ struct trx_power_params { /* specified maximum output of TRX at full power, has to be @@ -55,6 +57,8 @@ unsigned int step_size_mdB; unsigned int step_interval_sec; struct osmo_timer_list step_timer; + /* call-back called when target is reached */ + ramp_compl_cb_t compl_cb; } ramp; }; @@ -73,7 +77,7 @@ int get_p_trxout_actual_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red); int get_p_trxout_actual_mdBm_lchan(struct gsm_lchan *lchan); -int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass); +int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass, ramp_compl_cb_t ramp_compl_cb); void power_trx_change_compl(struct gsm_bts_trx *trx, int p_trxout_cur_mdBm); diff --git a/src/common/bts_ctrl_commands.c b/src/common/bts_ctrl_commands.c index 0d31890..faaba6a 100644 --- a/src/common/bts_ctrl_commands.c +++ b/src/common/bts_ctrl_commands.c @@ -57,7 +57,7 @@ tpp->thermal_attenuation_mdB = val; - power_ramp_start(trx, tpp->p_total_cur_mdBm, 0); + power_ramp_start(trx, tpp->p_total_cur_mdBm, 0, NULL); return get_therm_att(cmd, data); } diff --git a/src/common/tx_power.c b/src/common/tx_power.c index 705038c..6469c86 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -210,8 +210,11 @@ struct trx_power_params *tpp = &trx->power_params; /* we had finished in last loop iteration */ - if (!first && tpp->ramp.attenuation_mdB == 0) + if (!first && tpp->ramp.attenuation_mdB == 0) { + if (tpp->ramp.compl_cb) + tpp->ramp.compl_cb(trx); return; + } if (we_are_ramping_up(trx)) { /* ramp up power -> ramp down attenuation */ @@ -236,7 +239,7 @@ } -int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass) +int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass, ramp_compl_cb_t ramp_compl_cb) { struct trx_power_params *tpp = &trx->power_params; @@ -259,6 +262,7 @@ /* set the new target */ tpp->p_total_tgt_mdBm = p_total_tgt_mdBm; + tpp->ramp.compl_cb = ramp_compl_cb; if (we_are_ramping_up(trx)) { if (tpp->p_total_tgt_mdBm <= tpp->ramp.max_initial_pout_mdBm) { diff --git a/src/osmo-bts-litecell15/lc15bts_vty.c b/src/osmo-bts-litecell15/lc15bts_vty.c index 5041033..2cc812c 100644 --- a/src/osmo-bts-litecell15/lc15bts_vty.c +++ b/src/osmo-bts-litecell15/lc15bts_vty.c @@ -291,7 +291,7 @@ int power = atoi(argv[1]); struct gsm_bts_trx *trx = gsm_bts_trx_num(vty_bts, trx_nr); - power_ramp_start(trx, to_mdB(power), 1); + power_ramp_start(trx, to_mdB(power), 1, NULL); return CMD_SUCCESS; } diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index 4efa54d..2f462b6 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -355,7 +355,7 @@ trx_rf_lock(trx, 1, trx_mute_on_init_cb); /* Begin to ramp up the power */ - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); return opstart_compl(&trx->mo, l1_msg); } @@ -1842,7 +1842,7 @@ /* Did we go through MphInit yet? If yes fire and forget */ if (fl1h->hLayer1) { - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); #if LITECELL15_API_VERSION >= LITECELL15_API(2,1,7) if (fl1h->phy_inst->u.lc15.tx_pwr_red_8psk != trx->max_power_backoff_8psk) { /* update current Tx power backoff for 8-PSK */ diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index 383876f..8dc4efa 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -284,7 +284,7 @@ int power = atoi(argv[1]); struct gsm_bts_trx *trx = gsm_bts_trx_num(vty_bts, trx_nr); - power_ramp_start(trx, to_mdB(power), 1); + power_ramp_start(trx, to_mdB(power), 1, NULL); return CMD_SUCCESS; } diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index 567dd52..cc8d02d 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -371,7 +371,7 @@ */ /* Begin to ramp up the power */ - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); return opstart_compl(&trx->mo, l1_msg); } @@ -1850,7 +1850,7 @@ /* Did we go through MphInit yet? If yes fire and forget */ if (fl1h->hLayer1) { - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); if (fl1h->phy_inst->u.oc2g.tx_pwr_red_8psk != trx->max_power_backoff_8psk) { /* update current Tx power backoff for 8-PSK */ diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 0f36662..61d56bb 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1740,7 +1740,7 @@ struct gsm_bts_trx *trx = obj; /*struct octphy_hdl *fl1h = trx_octphy_hdl(trx); */ - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); } return oml_fom_ack_nack(msg, 0); } diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 3533597..c3bf8b6 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -358,7 +358,7 @@ #endif /* Begin to ramp up the power */ - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); return opstart_compl(&trx->mo, l1_msg); } @@ -1743,7 +1743,7 @@ /* Did we go through MphInit yet? If yes fire and forget */ if (fl1h->hLayer1) - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); } /* FIXME: we actually need to send a ACK or NACK for the OML message */ diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c index 23f69a0..0653f01 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -362,7 +362,7 @@ int power = atoi(argv[1]); struct gsm_bts_trx *trx = gsm_bts_trx_num(vty_bts, trx_nr); - power_ramp_start(trx, to_mdB(power), 1); + power_ramp_start(trx, to_mdB(power), 1, NULL); return CMD_SUCCESS; } diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 07f6e7a..ea3dcfa 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -144,9 +144,9 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl; if (l1h->config.forced_max_power_red == -1) - power_ramp_start(trx, get_p_nominal_mdBm(trx), 0); + power_ramp_start(trx, get_p_nominal_mdBm(trx), 0, NULL); else - power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1); + power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1, NULL); } /* Sets the nominal power, in dB */ @@ -478,7 +478,7 @@ is already running. Otherwise skip, power ramping will be started after TRX is running */ if (plink->u.osmotrx.powered && l1h->config.forced_max_power_red == -1) - power_ramp_start(pinst->trx, get_p_nominal_mdBm(pinst->trx), 0); + power_ramp_start(pinst->trx, get_p_nominal_mdBm(pinst->trx), 0, NULL); return 0; } diff --git a/tests/tx_power/tx_power_test.c b/tests/tx_power/tx_power_test.c index aaa34ea..02c940f 100644 --- a/tests/tx_power/tx_power_test.c +++ b/tests/tx_power/tx_power_test.c @@ -200,7 +200,7 @@ trx->power_params.ramp.step_interval_sec = 0; /* speedup test */ trx->max_power_red = 0; - power_ramp_start(trx, to_mdB(dBm), 0); + power_ramp_start(trx, to_mdB(dBm), 0, NULL); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I778dc215cf6055b93658670cc12e78ad2e51f85e Gerrit-Change-Number: 18902 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:21:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 20:21:35 +0000 Subject: Change in osmo-bsc[master]: merge files: absorb osmo_bsc_vty.c into bsc_vty.c In-Reply-To: References: Message-ID: Hello pespin, fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18892 to look at the new patch set (#2). Change subject: merge files: absorb osmo_bsc_vty.c into bsc_vty.c ...................................................................... merge files: absorb osmo_bsc_vty.c into bsc_vty.c For historical reasons we had bsc_vty.c and osmo_bsc_vty.c. Ever since the osmo-nitb split, there is no reason to keep these files separate. Merge osmo_bsc_vty.c into bsc_vty.c (because osmo_bsc_vty.c is smaller). I noticed this particularly because adding the NRI configuration required adding things like #define NRI_STR in two separate files: once for the 'network' level vty, and once for the 'msc' level. Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 --- M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_vty.c D src/osmo-bsc/osmo_bsc_vty.c M tests/handover/Makefile.am 4 files changed, 976 insertions(+), 1,033 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/92/18892/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 Gerrit-Change-Number: 18892 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 Fri Jun 19 20:21:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 20:21:35 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 to look at the new patch set (#4). Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... vty: hide 'mscpool roundrobin next' The 'mscpool roundrobin next' command is intended for use only by ttcn3 tests. Hide it. Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/18873/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:22:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 20:22:20 +0000 Subject: Change in osmo-bsc[master]: merge files: absorb osmo_bsc_vty.c into bsc_vty.c In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18892 ) Change subject: merge files: absorb osmo_bsc_vty.c into bsc_vty.c ...................................................................... Patch Set 2: Code-Review+2 reapply +2 after rebase -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 Gerrit-Change-Number: 18892 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20:22:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:25:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:25:54 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18910/1/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18910/1/src/osmo-bts-trx/l1_if.c at 415 PS1, Line 415: /* FIXME: There's currently no way to communicate to osmo-trx through : * TRXC that a specific TRX processing shall be paused. Let's simply : * make sure that at least we don't transmit with power on it: : */ 0 mdBm == 0 dBm == 1mW. It's not a lot of power, but still transmitting (and you will be able to receive it within a few meters). If it's possible to instruct for lower power (like some negative value), I would do that. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20:25: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 Jun 19 20:25:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:25:56 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... Removed Code-Review+2 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Fri Jun 19 20:26:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:26:21 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: First deact RF on all TRX, finally close them In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18912 ) Change subject: bts_shutdown: First deact RF on all TRX, finally close them ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib62358384e37a5cef692926439462042fab0138c Gerrit-Change-Number: 18912 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20:26:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:26:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:26:51 +0000 Subject: Change in osmo-bsc[master]: merge files: absorb osmo_bsc_vty.c into bsc_vty.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18892 ) Change subject: merge files: absorb osmo_bsc_vty.c into bsc_vty.c ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 Gerrit-Change-Number: 18892 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: Fri, 19 Jun 2020 20: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 Fri Jun 19 20:30:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:30:21 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18873 ) Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20:30:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:30:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:30:48 +0000 Subject: Change in osmo-trx[master]: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18914 ) Change subject: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I8cecb7a37eb80db341a624eb7b826180eac4a1d4 Gerrit-Change-Number: 18914 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20:30:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:31:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:31:45 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx outpu... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18918 ) Change subject: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx output power ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6 Gerrit-Change-Number: 18918 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Fri, 19 Jun 2020 20:31: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 Jun 19 20:32:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:32:52 +0000 Subject: Change in osmo-trx[master]: Drop old TxGain APIs from parent radioDevice abstract class In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18919 ) Change subject: Drop old TxGain APIs from parent radioDevice abstract class ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ice005cd0a07c49b6e212c06f1228ef93c24db727 Gerrit-Change-Number: 18919 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20:32:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:33:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:33:10 +0000 Subject: Change in osmo-trx[master]: {UHD, LMS}Dervice: Log expected resulting TxPower when setting device ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18922 ) Change subject: {UHD,LMS}Dervice: Log expected resulting TxPower when setting device specific TxGain ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3c54c61cd6dd7e40bb2831fd4962ff72130b390d Gerrit-Change-Number: 18922 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Fri, 19 Jun 2020 20: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 Fri Jun 19 20:34:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:34:04 +0000 Subject: Change in osmo-bts[master]: bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18921 ) Change subject: bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER not supported ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I496753bc74767a7e18b831768d9d422a738192b7 Gerrit-Change-Number: 18921 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20: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 Fri Jun 19 20:34:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:34:08 +0000 Subject: Change in osmo-bts[master]: bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18921 ) Change subject: bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER not supported ...................................................................... bts-trx: Instruct user to set manually nominal-tx-power if NOMTXPOWER not supported Using the VTY command will force that value and prevent osmo-bts-trx to use/send NOMTXPOWER cmd over TRXC. Change-Id: I496753bc74767a7e18b831768d9d422a738192b7 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 4 insertions(+), 1 deletion(-) 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 1953f71..6fe0ecd 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -557,7 +557,10 @@ unsigned int nominal_power; if (rsp->status) - LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver NOMTXPOWER failed with status %d\n", + LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver NOMTXPOWER failed " + "with status %d. If your transceiver doesn't support this " + "command, then please set the nominal transmit power manually " + "through VTY cmd 'nominal-tx-power'.\n", rsp->status); if (cb) { sscanf(rsp->params, "%u", &nominal_power); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I496753bc74767a7e18b831768d9d422a738192b7 Gerrit-Change-Number: 18921 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 Fri Jun 19 20:35:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:35:13 +0000 Subject: Change in osmo-trx[master]: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18920 ) Change subject: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I71f815fe794a00934ee0e876848af56f30a21bfe Gerrit-Change-Number: 18920 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20: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 Fri Jun 19 20:35:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:35:16 +0000 Subject: Change in osmo-trx[master]: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18920 ) Change subject: proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan ...................................................................... proto_trxd: Fix UndefinedBehaviorSanitizer from ubsan >From UBSan: proto_trxd.c:65:18: runtime error: 128 is outside the range of representable values of type 'char'. Fixes: OS#4507 Change-Id: I71f815fe794a00934ee0e876848af56f30a21bfe --- M Transceiver52M/proto_trxd.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/proto_trxd.c b/Transceiver52M/proto_trxd.c index 5a898b9..fbc0b14 100644 --- a/Transceiver52M/proto_trxd.c +++ b/Transceiver52M/proto_trxd.c @@ -62,7 +62,7 @@ { unsigned i; for (i = 0; i < bi->nbits; i++) - soft_bits[i] = (char) round(bi->rx_burst[i] * 255.0); + soft_bits[i] = (uint8_t) round(bi->rx_burst[i] * 255.0); } bool trxd_send_burst_ind_v0(size_t chan, int fd, const struct trx_ul_burst_ind *bi) { -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I71f815fe794a00934ee0e876848af56f30a21bfe Gerrit-Change-Number: 18920 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 Fri Jun 19 20:35:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:35:24 +0000 Subject: Change in osmo-bsc[master]: bsc: Allow setting negative nominal tx power through VTY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18917 ) Change subject: bsc: Allow setting negative nominal tx power through VTY ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia53c303d1bea23e219de42e1242cb8a5b357a2ae Gerrit-Change-Number: 18917 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20:35:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:35:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:35:50 +0000 Subject: Change in osmo-bsc[master]: bsc: Allow setting negative nominal tx power through VTY In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18917 ) Change subject: bsc: Allow setting negative nominal tx power through VTY ...................................................................... bsc: Allow setting negative nominal tx power through VTY Some SDRs may provide tx power below 0 dBm on some bands. Related: OS#4583 Change-Id: Ia53c303d1bea23e219de42e1242cb8a5b357a2ae --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 916ab96..c5bcfc4 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4361,7 +4361,7 @@ DEFUN(cfg_trx_nominal_power, cfg_trx_nominal_power_cmd, - "nominal power <0-100>", + "nominal power <-20-100>", "Nominal TRX RF Power in dBm\n" "Nominal TRX RF Power in dBm\n" "Nominal TRX RF Power in dBm\n") -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia53c303d1bea23e219de42e1242cb8a5b357a2ae Gerrit-Change-Number: 18917 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:36:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:36:18 +0000 Subject: Change in osmo-bts[master]: tx_power: Support controlling BTS with nominal tx pwr < 0dBm In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18916 ) Change subject: tx_power: Support controlling BTS with nominal tx pwr < 0dBm ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 Gerrit-Change-Number: 18916 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20:36: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 Jun 19 20:36:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:36:27 +0000 Subject: Change in osmo-bts[master]: tx_power: Log bypass param in power_ramp_start In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18915 ) Change subject: tx_power: Log bypass param in power_ramp_start ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72559a50570cf447b5930f8995b1f345baeb1ee5 Gerrit-Change-Number: 18915 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 19 Jun 2020 20: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 Fri Jun 19 20:36:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:36:31 +0000 Subject: Change in osmo-bts[master]: tx_power: Log bypass param in power_ramp_start In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18915 ) Change subject: tx_power: Log bypass param in power_ramp_start ...................................................................... tx_power: Log bypass param in power_ramp_start Change-Id: I72559a50570cf447b5930f8995b1f345baeb1ee5 --- M src/common/tx_power.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/tx_power.c b/src/common/tx_power.c index 6469c86..68cc0e3 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -247,8 +247,8 @@ * the maximum total system power subtracted by OML as well as RSL * reductions */ - LOGPTRX(trx, DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d)\n", - tpp->p_total_cur_mdBm, p_total_tgt_mdBm); + LOGPTRX(trx, DL1C, LOGL_INFO, "power_ramp_start(cur=%d, tgt=%d%s)\n", + tpp->p_total_cur_mdBm, p_total_tgt_mdBm, bypass ? ", bypass" : ""); if (!bypass && (p_total_tgt_mdBm > get_p_nominal_mdBm(trx))) { LOGPTRX(trx, DL1C, LOGL_ERROR, "Asked to ramp power up to " -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I72559a50570cf447b5930f8995b1f345baeb1ee5 Gerrit-Change-Number: 18915 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:41:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:41:16 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h File include/osmocom/mgcp/mgcp_endp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h at 44 PS1, Line 44: #define OSMO_RTP_MSG_CTX(MSGB) (*(struct osmo_rtp_msg_ctx**)&((MSGB)->dst)) > Accordng to msgb.h: [?] Ack https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 497 PS1, Line 497: msg->len msgb_length() ? https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 503 PS1, Line 503: -> msgb_data()? - In general it's more customary to use the accessor macros/functions than to directly access members of the struct. https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 922 PS1, Line 922: uint8_t *data = msg->data + 12; just an idea: we might want to use msgb->lXXh to point to IuUP vs. RTP header? https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 1310 PS1, Line 1310: LOG_CONN_RTP(conn_src, LOGL_DEBUG, "msg ctx: %d %p %s\n", > Do we really want to call osmo_hexdump for ALL rtp packets received? Even if it's not printed... doesn't the logging system ensure the actual printf never happens unless soembody enabled this log category/subsystem? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20:41:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:41:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:41:34 +0000 Subject: Change in osmo-msc[master]: use new osmo_mobile_identity API everywhere In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18715 ) Change subject: use new osmo_mobile_identity API everywhere ...................................................................... use new osmo_mobile_identity API everywhere Depends: Ic3f969e739654c1e8c387aedeeba5cce07fe2307 (libosmocore) Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea --- M TODO-RELEASE M include/osmocom/msc/gsm_04_08.h M include/osmocom/msc/msub.h M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/msub.c M src/libmsc/ran_msg_a.c M src/libmsc/sgs_iface.c M src/libvlr/vlr.c M src/libvlr/vlr_access_req_fsm.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 21 files changed, 233 insertions(+), 255 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72..17dc17a 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -8,3 +8,5 @@ # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 +libosmocore osmo_mobile_identity Depends on libosmocore > 1.3.0 +osmo-msc Mobile Identity Coding OsmoMSC is stricter in rejecting invalid coding of Mobile Identity IEs diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h index 661da42..bfc8027 100644 --- a/include/osmocom/msc/gsm_04_08.h +++ b/include/osmocom/msc/gsm_04_08.h @@ -54,8 +54,6 @@ int h_len); int send_siemens_mrpci(struct gsm_lchan *lchan, uint8_t *classmark2_lv); -int gsm48_extract_mi(uint8_t *classmark2, int length, char *mi_string, uint8_t *mi_type); -int gsm48_paging_extract_mi(struct gsm48_pag_resp *pag, int length, char *mi_string, uint8_t *mi_type); int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t lchan_mode); int gsm48_rx_rr_modif_ack(struct msgb *msg); diff --git a/include/osmocom/msc/msub.h b/include/osmocom/msc/msub.h index 2418feb..14f3e76 100644 --- a/include/osmocom/msc/msub.h +++ b/include/osmocom/msc/msub.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include @@ -64,7 +66,7 @@ const char *file, int line); int msub_tx_an_apdu(struct msub *msub, enum msc_role from_role, enum msc_role to_role, struct an_apdu *an_apdu); -void msub_update_id_from_mi(struct msub *msub, const uint8_t mi[], uint8_t mi_len); +void msub_update_id_from_mi(struct msub *msub, const struct osmo_mobile_identity *mi); void msub_update_id(struct msub *msub); void msub_update_id_for_vsub(struct vlr_subscr *for_vsub); diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 615c6c8..83f83c7 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -23,6 +23,7 @@ LOGP(DVLR, level, "SUBSCR(%s) " fmt, vlr_subscr_name(vsub), ## args) struct log_target; +struct osmo_mobile_identity; #define VLR_SUBSCRIBER_NO_EXPIRATION 0 #define VLR_SUBSCRIBER_LU_EXPIRATION_INTERVAL 60 /* in seconds */ @@ -302,7 +303,7 @@ /* tell the VLR that the RAN connection is gone */ int vlr_subscr_disconnected(struct vlr_subscr *vsub); bool vlr_subscr_expire(struct vlr_subscr *vsub); -int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const uint8_t *mi, size_t mi_len); +int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const struct osmo_mobile_identity *mi); int vlr_subscr_rx_auth_resp(struct vlr_subscr *vsub, bool is_r99, bool is_utran, const uint8_t *res, uint8_t res_len); int vlr_subscr_rx_auth_fail(struct vlr_subscr *vsub, const uint8_t *auts); @@ -440,7 +441,7 @@ void *parent_event_data, struct vlr_instance *vlr, void *msc_conn_ref, enum vlr_parq_type type, enum osmo_cm_service_type cm_service_type, - const uint8_t *mi_lv, + const struct osmo_mobile_identity *mi, const struct osmo_location_area_id *lai, bool authentication_required, bool ciphering_required, diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index d612e40..a70c4b9 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -116,13 +116,15 @@ struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 LOC UPD ACC"); struct gsm48_hdr *gh; struct gsm48_loc_area_id *lai; - uint8_t *mid; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub = msc_a_vsub(msc_a); struct osmo_location_area_id laid = { .plmn = net->plmn, .lac = vsub->cgi.lai.lac, }; + uint8_t *l; + int rc; + struct osmo_mobile_identity mi = {}; gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); gh->proto_discr = GSM48_PDISC_MM; @@ -135,23 +137,28 @@ /* we did not allocate a TMSI to the MS, so we need to * include the IMSI in order for the MS to delete any * old TMSI that might still be allocated */ - uint8_t mi[10]; - int len; - len = gsm48_generate_mid_from_imsi(mi, vsub->imsi); - mid = msgb_put(msg, len); - memcpy(mid, mi, len); + mi.type = GSM_MI_TYPE_IMSI; + OSMO_STRLCPY_ARRAY(mi.imsi, vsub->imsi); DEBUGP(DMM, "-> %s LOCATION UPDATE ACCEPT\n", vlr_subscr_name(vsub)); } else { /* Include the TMSI, which means that the MS will send a * TMSI REALLOCATION COMPLETE, and we should wait for * that until T3250 expiration */ - mid = msgb_put(msg, GSM48_MID_TMSI_LEN); - gsm48_generate_mid_from_tmsi(mid, send_tmsi); + mi.type = GSM_MI_TYPE_TMSI; + mi.tmsi = send_tmsi; DEBUGP(DMM, "-> %s LOCATION UPDATE ACCEPT (TMSI = 0x%08x)\n", vlr_subscr_name(vsub), send_tmsi); } + l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + msgb_free(msg); + return -EINVAL; + } + *l = rc; + /* TODO: Follow-on proceed */ /* TODO: CTS permission */ /* TODO: Equivalent PLMNs */ @@ -180,10 +187,11 @@ static int mm_rx_id_resp(struct msc_a *msc_a, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); - uint8_t *mi = gh->data+1; + uint8_t *mi_data = gh->data+1; uint8_t mi_len = gh->data[0]; - uint8_t mi_type; struct vlr_subscr *vsub = msc_a_vsub(msc_a); + struct osmo_mobile_identity mi; + int rc; if (!vsub) { LOGP(DMM, LOGL_ERROR, @@ -198,26 +206,26 @@ return -EINVAL; } - /* Make sure we got what we expected */ - mi_type = mi[0] & GSM_MI_TYPE_MASK; - if (mi_type == GSM_MI_TYPE_NONE) { - LOGP(DMM, LOGL_NOTICE, "MM Identity Response contains no identity, " - "perhaps the MS has no Mobile Identity type %s?\n", - gsm48_mi_type_name(msc_a->mm_id_req_type)); + rc = osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + if (rc) { + LOGP(DMM, LOGL_ERROR, "Failure to decode Mobile Identity in MM Identity Response (rc=%d)\n", rc); return -EINVAL; - } else if (mi_type != msc_a->mm_id_req_type) { + } + + /* Make sure we got what we expected */ + if (mi.type != msc_a->mm_id_req_type) { LOGP(DMM, LOGL_NOTICE, "MM Identity Response contains unexpected " "Mobile Identity type %s (extected %s)\n", - gsm48_mi_type_name(mi_type), + gsm48_mi_type_name(mi.type), gsm48_mi_type_name(msc_a->mm_id_req_type)); return -EINVAL; } - DEBUGP(DMM, "IDENTITY RESPONSE: MI=%s\n", osmo_mi_name(mi, mi_len)); + DEBUGP(DMM, "IDENTITY RESPONSE: %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, gh->data); - return vlr_subscr_rx_id_resp(vsub, mi, mi_len); + return vlr_subscr_rx_id_resp(vsub, &mi); } /* 9.2.5 CM service accept */ @@ -311,8 +319,6 @@ { struct gsm48_hdr *gh = msgb_l3(msg); struct gsm48_loc_upd_req *lu; - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; enum vlr_lu_type vlr_lu_type = VLR_LU_TYPE_REGULAR; uint32_t tmsi; char *imsi; @@ -321,6 +327,15 @@ bool is_utran; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; + + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, + "Failed to decode Mobile Identity in Location Updating Request\n"); + return -EINVAL; + } lu = (struct gsm48_loc_upd_req *) gh->data; @@ -328,7 +343,7 @@ LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "Cannot accept another LU, conn already busy establishing authenticity;" " extraneous LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); return -EINVAL; } @@ -336,17 +351,18 @@ LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "Cannot accept another LU, conn already established;" " extraneous LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); return -EINVAL; } msc_a->complete_layer3_type = COMPLETE_LAYER3_LU; - msub_update_id_from_mi(msc_a->c.msub, lu->mi, lu->mi_len); + + msub_update_id_from_mi(msc_a->c.msub, &mi); LOG_MSC_A_CAT(msc_a, DMM, LOGL_DEBUG, "LOCATION UPDATING REQUEST: MI=%s LU-type=%s\n", - osmo_mi_name(lu->mi, lu->mi_len), osmo_lu_type_name(lu->type)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi), osmo_lu_type_name(lu->type)); - osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &lu->mi_len); + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &mi); switch (lu->type) { case GSM48_LUPD_NORMAL: @@ -368,15 +384,13 @@ /* TODO: 10.5.7.8 Device properties */ /* TODO: 10.5.1.15 MS network feature support */ - mi_type = lu->mi[0] & GSM_MI_TYPE_MASK; - gsm48_mi_to_string(mi_string, sizeof(mi_string), lu->mi, lu->mi_len); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: tmsi = GSM_RESERVED_TMSI; - imsi = mi_string; + imsi = mi.imsi; break; case GSM_MI_TYPE_TMSI: - tmsi = tmsi_from_string(mi_string); + tmsi = mi.tmsi; imsi = NULL; break; default: @@ -654,37 +668,30 @@ static int msc_vlr_tx_cm_serv_rej(void *msc_conn_ref, enum osmo_cm_service_type cm_service_type, enum gsm48_reject_value cause); -static int cm_serv_reuse_conn(struct msc_a *msc_a, const uint8_t *mi_lv, enum osmo_cm_service_type cm_serv_type) +static int cm_serv_reuse_conn(struct msc_a *msc_a, const struct osmo_mobile_identity *mi, enum osmo_cm_service_type cm_serv_type) { - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - uint32_t tmsi; struct gsm_network *net = msc_a_net(msc_a); struct vlr_subscr *vsub = msc_a_vsub(msc_a); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi_lv+1, mi_lv[0]); - mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - if (vlr_subscr_matches_imsi(vsub, mi_string)) + if (vlr_subscr_matches_imsi(vsub, mi->imsi)) goto accept_reuse; break; case GSM_MI_TYPE_TMSI: - tmsi = osmo_load32be(mi_lv+2); - if (vlr_subscr_matches_tmsi(vsub, tmsi)) + if (vlr_subscr_matches_tmsi(vsub, mi->tmsi)) goto accept_reuse; break; case GSM_MI_TYPE_IMEI: - if (vlr_subscr_matches_imei(vsub, mi_string)) + if (vlr_subscr_matches_imei(vsub, mi->imei)) goto accept_reuse; break; default: break; } - LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "CM Service Request with mismatching mobile identity: %s %s\n", - gsm48_mi_type_name(mi_type), mi_string); + LOG_MSC_A_CAT(msc_a, DMM, LOGL_ERROR, "CM Service Request with mismatching mobile identity: %s\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, mi)); msc_vlr_tx_cm_serv_rej(msc_a, cm_serv_type, GSM48_REJECT_ILLEGAL_MS); return -EINVAL; @@ -714,10 +721,10 @@ struct gsm48_service_request *req; struct gsm48_classmark2 *cm2; uint8_t *cm2_buf, cm2_len; - uint8_t *mi_buf, mi_len; - uint8_t *mi, mi_type; bool is_utran; struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; /* Make sure that both header and CM Service Request fit into the buffer */ if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*req)) { @@ -726,6 +733,12 @@ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A(msc_a, LOGL_ERROR, "Rx CM SERVICE REQUEST: unable to decode Mobile Identity\n"); + return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); + } + gh = (struct gsm48_hdr *) msgb_l3(msg); req = (struct gsm48_service_request *) gh->data; @@ -742,18 +755,6 @@ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } - /* MI (Mobile Identity) LV follows the Classmark2 */ - mi_buf = cm2_buf + cm2_len; - mi_len = mi_buf[0]; - mi = mi_buf + 1; - - /* Prevent buffer overrun: check the length of MI */ - if (mi_buf + mi_len > msg->tail) { - LOG_MSC_A(msc_a, LOGL_ERROR, "Rx CM SERVICE REQUEST: Mobile Identity " - "length=%u is too big\n", cm2_len); - return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); - } - if (msc_a_is_establishing_auth_ciph(msc_a)) { LOG_MSC_A(msc_a, LOGL_ERROR, "Cannot accept CM Service Request, conn already busy establishing authenticity\n"); @@ -762,12 +763,11 @@ } msc_a->complete_layer3_type = COMPLETE_LAYER3_CM_SERVICE_REQ; - msub_update_id_from_mi(msc_a->c.msub, mi, mi_len); + msub_update_id_from_mi(msc_a->c.msub, &mi); LOG_MSC_A_CAT(msc_a, DMM, LOGL_DEBUG, "Rx CM SERVICE REQUEST cm_service_type=%s\n", osmo_cm_service_type_name(req->cm_service_type)); - mi_type = (mi && mi_len) ? (mi[0] & GSM_MI_TYPE_MASK) : GSM_MI_TYPE_NONE; - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_IMSI: case GSM_MI_TYPE_TMSI: /* continue below */ @@ -781,7 +781,7 @@ } /* fall-through for non-emergency setup */ default: - LOG_MSC_A(msc_a, LOGL_ERROR, "MI type is not expected: %s\n", gsm48_mi_type_name(mi_type)); + LOG_MSC_A(msc_a, LOGL_ERROR, "MI type is not expected: %s\n", gsm48_mi_type_name(mi.type)); return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_INCORRECT_MESSAGE); } @@ -789,9 +789,9 @@ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); if (msc_a_is_accepted(msc_a)) - return cm_serv_reuse_conn(msc_a, mi_buf, req->cm_service_type); + return cm_serv_reuse_conn(msc_a, &mi, req->cm_service_type); - osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, mi_buf); + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, &mi); msc_a_get(msc_a, msc_a_cm_service_type_to_use(req->cm_service_type)); @@ -801,7 +801,7 @@ net->vlr, msc_a, VLR_PR_ARQ_T_CM_SERV_REQ, req->cm_service_type, - mi-1, &msc_a->via_cell.lai, + &mi, &msc_a->via_cell.lai, is_utran || net->authentication_required, is_utran ? net->uea_encryption : net->a5_encryption_mask > 0x01, req->cipher_key_seq, @@ -824,18 +824,9 @@ /* Receive a CM Re-establish Request */ static int gsm48_rx_cm_reest_req(struct msc_a *msc_a, struct msgb *msg) { - uint8_t mi_type; - char mi_string[GSM48_MI_SIZE]; - struct gsm48_hdr *gh = msgb_l3(msg); - - uint8_t classmark2_len = gh->data[1]; - uint8_t *classmark2 = gh->data+2; - uint8_t mi_len = *(classmark2 + classmark2_len); - uint8_t *mi = (classmark2 + classmark2_len + 1); - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - mi_type = mi[0] & GSM_MI_TYPE_MASK; - DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST MI(%s)=%s\n", gsm48_mi_type_name(mi_type), mi_string); + struct osmo_mobile_identity mi; + osmo_mobile_identity_decode_from_l3(&mi, msg, false); + DEBUGP(DMM, "<- CM RE-ESTABLISH REQUEST %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); /* we don't support CM call re-establishment */ return msc_gsm48_tx_mm_serv_rej(msc_a, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); @@ -847,39 +838,41 @@ struct gsm48_hdr *gh = msgb_l3(msg); struct gsm48_imsi_detach_ind *idi = (struct gsm48_imsi_detach_ind *) gh->data; - uint8_t mi_type = idi->mi[0] & GSM_MI_TYPE_MASK; - char mi_string[GSM48_MI_SIZE]; + struct osmo_mobile_identity mi; struct vlr_subscr *vsub = NULL; - gsm48_mi_to_string(mi_string, sizeof(mi_string), idi->mi, idi->mi_len); - DEBUGP(DMM, "IMSI DETACH INDICATION: MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + int rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOGP(DMM, LOGL_ERROR, "IMSI DETACH INDICATION: cannot decode Mobile Identity\n"); + return -EINVAL; + } + + DEBUGP(DMM, "IMSI DETACH INDICATION: %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_LOC_UPDATE_TYPE_DETACH]); - switch (mi_type) { + switch (mi.type) { case GSM_MI_TYPE_TMSI: - vsub = vlr_subscr_find_by_tmsi(net->vlr, - tmsi_from_string(mi_string), __func__); + vsub = vlr_subscr_find_by_tmsi(net->vlr, mi.tmsi, __func__); break; case GSM_MI_TYPE_IMSI: - vsub = vlr_subscr_find_by_imsi(net->vlr, mi_string, __func__); + vsub = vlr_subscr_find_by_imsi(net->vlr, mi.imsi, __func__); break; case GSM_MI_TYPE_IMEI: case GSM_MI_TYPE_IMEISV: /* no sim card... FIXME: what to do ? */ - LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unimplemented mobile identity type\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "%s: unimplemented mobile identity type\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); break; default: - LOGP(DMM, LOGL_ERROR, "MI(%s)=%s: unknown mobile identity type\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "%s: unknown mobile identity type\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); break; } if (!vsub) { - LOGP(DMM, LOGL_ERROR, "IMSI DETACH for unknown subscriber MI(%s)=%s\n", - gsm48_mi_type_name(mi_type), mi_string); + LOGP(DMM, LOGL_ERROR, "IMSI DETACH for unknown subscriber %s\n", + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); } else { LOGP(DMM, LOGL_INFO, "IMSI DETACH for %s\n", vlr_subscr_name(vsub)); msub_set_vsub(msc_a->c.msub, vsub); @@ -1148,9 +1141,10 @@ uint8_t classmark2_len = gh->data[1]; uint8_t *classmark2_buf = gh->data+2; struct gsm48_classmark2 *cm2 = (void*)classmark2_buf; - uint8_t *mi_lv = classmark2_buf + classmark2_len; bool is_utran; struct vlr_subscr *vsub; + struct osmo_mobile_identity mi; + int rc; if (msc_a_is_establishing_auth_ciph(msc_a)) { LOG_MSC_A_CAT(msc_a, DRR, LOGL_ERROR, @@ -1163,9 +1157,15 @@ return 0; } + rc = osmo_mobile_identity_decode_from_l3(&mi, msg, false); + if (rc) { + LOG_MSC_A_CAT(msc_a, DRR, LOGL_ERROR, "Paging Response: cannot decode Mobile Identity\n"); + return -EINVAL; + } + msc_a->complete_layer3_type = COMPLETE_LAYER3_PAGING_RESP; - msub_update_id_from_mi(msc_a->c.msub, mi_lv + 1, *mi_lv); - LOG_MSC_A_CAT(msc_a, DRR, LOGL_DEBUG, "Rx PAGING RESPONSE\n"); + msub_update_id_from_mi(msc_a->c.msub, &mi); + LOG_MSC_A_CAT(msc_a, DRR, LOGL_DEBUG, "Rx PAGING RESPONSE %s\n", osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); msc_a_get(msc_a, MSC_A_USE_PAGING_RESPONSE); @@ -1173,7 +1173,7 @@ vlr_proc_acc_req(msc_a->c.fi, MSC_A_EV_AUTHENTICATED, MSC_A_EV_CN_CLOSE, NULL, net->vlr, msc_a, - VLR_PR_ARQ_T_PAGING_RESP, 0, mi_lv, &msc_a->via_cell.lai, + VLR_PR_ARQ_T_PAGING_RESP, 0, &mi, &msc_a->via_cell.lai, is_utran || net->authentication_required, is_utran ? net->uea_encryption : net->a5_encryption_mask > 0x01, pr->key_seq, @@ -1200,30 +1200,37 @@ struct gsm48_hdr *gh = msgb_l3(msg); unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); struct tlv_parsed tp; - struct tlv_p_entry *mi; + struct tlv_p_entry *mi_tlv; + struct osmo_mobile_identity mi; tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - mi = TLVP_GET(&tp, GSM48_IE_MOBILE_ID); + mi_tlv = TLVP_GET(&tp, GSM48_IE_MOBILE_ID); /* IMEI(SV) is optional for this message */ - if (!mi) + if (!mi_tlv) return 0; - if (!mi->len) + if (!mi_tlv->len) return -EINVAL; - if ((mi->val[0] & GSM_MI_TYPE_MASK) != GSM_MI_TYPE_IMEISV) { + + if (osmo_mobile_identity_decode(&mi, mi_tlv->val, mi_tlv->len, false)) { + LOGP(DMM, LOGL_ERROR, "RR Ciphering Mode Complete contains invalid Mobile Identity %s\n", + osmo_hexdump(mi_tlv->val, mi_tlv->len)); + return -EINVAL; + } + if (mi.type != GSM_MI_TYPE_IMEISV) { LOGP(DMM, LOGL_ERROR, "RR Ciphering Mode Complete contains " "unexpected Mobile Identity type %s\n", - gsm48_mi_type_name(mi->val[0] & GSM_MI_TYPE_MASK)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); return -EINVAL; } LOG_MSC_A(msc_a, LOGL_DEBUG, "RR Ciphering Mode Complete contains Mobile Identity: %s\n", - osmo_mi_name(mi->val, mi->len)); + osmo_mobile_identity_to_str_c(OTC_SELECT, &mi)); if (!vsub) return 0; - return vlr_subscr_rx_id_resp(vsub, mi->val, mi->len); + return vlr_subscr_rx_id_resp(vsub, &mi); } static int gsm48_rx_rr_app_info(struct msc_a *msc_a, struct msgb *msg) @@ -1460,27 +1467,3 @@ gh->data[0] = cause; return msg; } - -int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type) -{ - /* Check the size for the classmark */ - if (length < 1 + *classmark2_lv) - return -1; - - uint8_t *mi_lv = classmark2_lv + *classmark2_lv + 1; - if (length < 2 + *classmark2_lv + mi_lv[0]) - return -2; - - *mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - return gsm48_mi_to_string(mi_string, GSM48_MI_SIZE, mi_lv+1, *mi_lv); -} - -int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, - char *mi_string, uint8_t *mi_type) -{ - static const uint32_t classmark_offset = - offsetof(struct gsm48_pag_resp, classmark2); - uint8_t *classmark2_lv = (uint8_t *) &resp->classmark2; - return gsm48_extract_mi(classmark2_lv, length - classmark_offset, - mi_string, mi_type); -} diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index bc5b7ea..4d856d0 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1100,9 +1100,9 @@ /* Compose an ID almost like gsm48_mi_to_string(), but print the MI type along, and print a TMSI as hex. */ -void msc_a_update_id_from_mi(struct msc_a *msc_a, const uint8_t mi[], uint8_t mi_len) +void msc_a_update_id_from_mi(struct msc_a *msc_a, const struct osmo_mobile_identity *mi) { - _msc_a_update_id(msc_a, "%s", osmo_mi_name(mi, mi_len)); + _msc_a_update_id(msc_a, "%s", osmo_mobile_identity_to_str_c(OTC_SELECT, mi)); } /* Update msc_a->fi id string from current msc_a->vsub and msc_a->complete_layer3_type. */ diff --git a/src/libmsc/msub.c b/src/libmsc/msub.c index 2021ed8..112703a 100644 --- a/src/libmsc/msub.c +++ b/src/libmsc/msub.c @@ -488,9 +488,9 @@ } /* Compose an ID almost like gsm48_mi_to_string(), but print the MI type along, and print a TMSI as hex. */ -void msub_update_id_from_mi(struct msub *msub, const uint8_t mi[], uint8_t mi_len) +void msub_update_id_from_mi(struct msub *msub, const struct osmo_mobile_identity *mi) { - _msub_update_id(msub, osmo_mi_name(mi, mi_len)); + _msub_update_id(msub, osmo_mobile_identity_to_str_c(OTC_SELECT, mi)); } /* Update msub->fi id string from current msub->vsub and msub->complete_layer3_type. */ diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index cb228ef..28f99ce 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -497,7 +497,6 @@ struct gsm0808_encrypt_info encr_info; struct gsm0808_speech_codec_list scl; struct geran_encr geran_encr = {}; - char imsi[OSMO_IMSI_BUF_SIZE]; struct osmo_sockaddr_str rtp_ran_local; if (!ie_channel_type) { @@ -608,8 +607,12 @@ } if (ie_imsi) { - gsm48_mi_to_string(imsi, sizeof(imsi), ie_imsi->val, ie_imsi->len); - r->imsi = imsi; + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, ie_imsi->val, ie_imsi->len, false) + || mi.type != GSM_MI_TYPE_IMSI) + LOG_RAN_A_DEC_MSG(LOGL_ERROR, "IE IMSI: cannot decode IMSI identity\n"); + else + r->imsi = mi.imsi; } if (ie_aoip_transp_addr) { diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index 422ce72..b792e46 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -373,7 +373,7 @@ struct sgs_mme_ctx *mme; uint8_t new_id[2 + GSM48_TMSI_LEN]; uint8_t *new_id_ptr = new_id; - unsigned int new_id_len = 0; + int new_id_len = 0; uint8_t resp_msg_type; /* Determine message type that is sent next (needed for logging) */ @@ -398,9 +398,13 @@ /* Handle LU accept/reject */ if (response->accepted) { if (vsub->tmsi_new != GSM_RESERVED_TMSI) { - new_id_len = gsm48_generate_mid_from_tmsi(new_id, vsub->tmsi_new); - new_id_ptr = new_id + 2; - new_id_len -= 2; + struct osmo_mobile_identity tmsi_mi = { + .type = GSM_MI_TYPE_TMSI, + .tmsi = vsub->tmsi_new, + }; + new_id_len = osmo_mobile_identity_encode_buf(new_id, sizeof(new_id), &tmsi_mi, false); + if (new_id_len > 0) + new_id_ptr = new_id; } resp = gsm29118_create_lu_ack(vsub->imsi, &vsub->sgs.lai, new_id_ptr, new_id_len); sgs_tx(mme->conn, resp); @@ -958,12 +962,16 @@ } if (TLVP_PRESENT(&tp, SGSAP_IE_IMSI)) { - gsm48_mi_to_string(imsi, sizeof(imsi), TLVP_VAL(&tp, SGSAP_IE_IMSI), TLVP_LEN(&tp, SGSAP_IE_IMSI)); - if (strlen(imsi) < GSM23003_IMSI_MIN_DIGITS) { + struct osmo_mobile_identity mi; + if (osmo_mobile_identity_decode(&mi, + TLVP_VAL(&tp, SGSAP_IE_IMSI), + TLVP_LEN(&tp, SGSAP_IE_IMSI), false) + || mi.type != GSM_MI_TYPE_IMSI) { TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_INVALID_MAND_IE, - "SGsAP Message %s with short IMSI, dropping\n"); + "SGsAP Message %s with invalid IMSI, dropping\n"); goto error; } + OSMO_STRLCPY_ARRAY(imsi, mi.imsi); } /* Some messages contain an MME-NAME as mandatore IE, parse it right here. The diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 019e657..3a44d30 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1117,64 +1117,49 @@ } /* MSC->VLR: Subscriber has provided IDENTITY RESPONSE */ -int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, - const uint8_t *mi, size_t mi_len) +int vlr_subscr_rx_id_resp(struct vlr_subscr *vsub, const struct osmo_mobile_identity *mi) { - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_type = mi[0] & GSM_MI_TYPE_MASK; - - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); - /* update the vlr_subscr with the given identity */ - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - if (strlen(mi_string) >= sizeof(vsub->imsi)) { - LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP too long (>%zu bytes): %s\n", - sizeof(vsub->imsi) - 1, mi_string); - return -ENOSPC; /* ignore message; do not avance LU FSM */ - } else if (vsub->imsi[0] - && !vlr_subscr_matches_imsi(vsub, mi_string)) { + if (vsub->imsi[0] + && !vlr_subscr_matches_imsi(vsub, mi->imsi)) { LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP differs:" - " %s\n", mi_string); + " %s\n", mi->imsi); /* XXX Should we return an error, e.g. -EINVAL ? */ } else - vlr_subscr_set_imsi(vsub, mi_string); + vlr_subscr_set_imsi(vsub, mi->imsi); break; case GSM_MI_TYPE_IMEI: - vlr_subscr_set_imei(vsub, mi_string); + vlr_subscr_set_imei(vsub, mi->imei); break; case GSM_MI_TYPE_IMEISV: - vlr_subscr_set_imeisv(vsub, mi_string); + vlr_subscr_set_imeisv(vsub, mi->imeisv); break; default: return -EINVAL; } if (vsub->auth_fsm) { - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - osmo_fsm_inst_dispatch(vsub->auth_fsm, - VLR_AUTH_E_MS_ID_IMSI, mi_string); + return osmo_fsm_inst_dispatch(vsub->auth_fsm, + VLR_AUTH_E_MS_ID_IMSI, (void*)mi->imsi); break; } } if (vsub->lu_fsm) { - uint32_t event = 0; - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - event = VLR_ULA_E_ID_IMSI; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMSI, (void*)mi->imsi); case GSM_MI_TYPE_IMEI: - event = VLR_ULA_E_ID_IMEI; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMEI, (void*)mi->imei); case GSM_MI_TYPE_IMEISV: - event = VLR_ULA_E_ID_IMEISV; - break; + return osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_ID_IMEISV, (void*)mi->imeisv); default: return -EINVAL; } - osmo_fsm_inst_dispatch(vsub->lu_fsm, event, mi_string); } return 0; diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c index 73f8955..73f3435 100644 --- a/src/libvlr/vlr_access_req_fsm.c +++ b/src/libvlr/vlr_access_req_fsm.c @@ -632,7 +632,7 @@ void *parent_event_data, struct vlr_instance *vlr, void *msc_conn_ref, enum vlr_parq_type type, enum osmo_cm_service_type cm_service_type, - const uint8_t *mi_lv, + const struct osmo_mobile_identity *mi, const struct osmo_location_area_id *lai, bool authentication_required, bool ciphering_required, @@ -641,8 +641,6 @@ { struct osmo_fsm_inst *fi; struct proc_arq_priv *par; - char mi_string[GSM48_MI_SIZE]; - uint8_t mi_type; fi = osmo_fsm_inst_alloc_child(&proc_arq_vlr_fsm, parent, parent_event_failure); @@ -678,16 +676,14 @@ LOGPFSML(fi, LOGL_ERROR, "Authentication off on UTRAN network. Good luck.\n"); - gsm48_mi_to_string(mi_string, sizeof(mi_string), mi_lv+1, mi_lv[0]); - mi_type = mi_lv[1] & GSM_MI_TYPE_MASK; - switch (mi_type) { + switch (mi->type) { case GSM_MI_TYPE_IMSI: - osmo_strlcpy(par->imsi, mi_string, sizeof(par->imsi)); + OSMO_STRLCPY_ARRAY(par->imsi, mi->imsi); par->by_tmsi = false; break; case GSM_MI_TYPE_TMSI: par->by_tmsi = true; - par->tmsi = osmo_load32be(mi_lv+2); + par->tmsi = mi->tmsi; break; case GSM_MI_TYPE_IMEI: /* TODO: IMEI (emergency call) */ diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 288040f..fc33b38 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -458,7 +458,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -990,7 +990,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1598,7 +1598,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2242,7 +2242,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2630,7 +2630,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3038,7 +3038,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index b651659..a8c7984 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -695,7 +695,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1166,7 +1166,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index ad2b80c..7042355 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -352,7 +352,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -538,7 +538,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -983,7 +983,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1361,7 +1361,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1575,7 +1575,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1673,7 +1673,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1887,7 +1887,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2152,7 +2152,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2418,7 +2418,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2557,7 +2557,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2929,7 +2929,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -3115,7 +3115,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index d4b450b..e753096 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -388,7 +388,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -606,7 +606,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1088,7 +1088,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1306,7 +1306,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1527,7 +1527,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1625,7 +1625,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1909,7 +1909,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2130,7 +2130,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -2269,7 +2269,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 +DMM IMSI DETACH INDICATION: TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2666,7 +2666,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -2866,7 +2866,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342 DREF VLR subscr IMSI-901700000010650:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3292,7 +3292,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -3510,7 +3510,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-42342 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -3936,7 +3936,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -4132,7 +4132,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-42342 DREF VLR subscr IMSI-901700000004620:MSISDN-42342 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 6ccc82a..66ea0bb 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -646,7 +646,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 5 (attached,SMS-receiver,SMS,Paging,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 6 (attached,SMS-receiver,SMS,Paging,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 3350431..2ee21da 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -264,7 +264,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -405,7 +405,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -762,7 +762,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE TMSI-0x03020100 DREF msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(TMSI-0x03020100:GERAN-A:PAGING_RESP) @@ -1088,7 +1088,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1259,7 +1259,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1339,7 +1339,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1510,7 +1510,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-423423423423420 +DMM IDENTITY RESPONSE: IMEI-423423423423420 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI GSUP --> HLR: OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: 30010809710000004026f0500807244332244332240a0101 @@ -1625,7 +1625,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1714,7 +1714,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -1846,7 +1846,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1935,7 +1935,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2078,7 +2078,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2167,7 +2167,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2366,7 +2366,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-5234234234234276 +DMM IDENTITY RESPONSE: IMEI-SV-5234234234234276 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=5234234234234276 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=52342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2544,7 +2544,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 +DMM IMSI DETACH INDICATION: TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x07060504 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -2633,7 +2633,7 @@ DREF msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMEI-SV-4234234234234275 +DMM IDENTITY RESPONSE: IMEI-SV-4234234234234275 DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=42342342342342 DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV @@ -2813,7 +2813,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 DREF VLR subscr IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 8953c1d..48086a7 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -803,7 +803,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 2 (cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -1044,7 +1044,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 3 (2*cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -1480,7 +1480,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -1780,7 +1780,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) @@ -1893,7 +1893,7 @@ DREF msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: + rx_from_ms: now used by 2 (cm_service_sms,rx_from_ms) DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: RAN decode: DTAP DRLL msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTHENTICATED}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 3 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + vlr_subscr_cancel_attach_fsm: now used by 4 (attached,active-conn,gsm48_rx_mm_imsi_detach_ind,vlr_subscr_cancel_attach_fsm) @@ -2104,7 +2104,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index 4121a26..ad8d822 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -358,7 +358,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 +DMM IMSI DETACH INDICATION: IMSI-901700000004620 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000004620:MSISDN-46071 DREF VLR subscr IMSI-901700000004620:MSISDN-46071 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -466,7 +466,7 @@ DREF msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: + rx_from_ms: now used by 2 (lu,rx_from_ms) DBSSAP msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: DTAP DRLL msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: Dispatching 04.08 message: MM GSM48_MT_MM_ID_RESP -DMM IDENTITY RESPONSE: MI=IMSI-901700000004620 +DMM IDENTITY RESPONSE: IMSI-901700000004620 DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: Received Event VLR_ULA_E_ID_IMSI DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index db158d6..cd4cf5c 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -399,7 +399,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000004620 DREF msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000004620:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000004620:GERAN-A:PAGING_RESP) diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 3e5dbae..53cce79 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -369,7 +369,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:GERAN-A:PAGING_RESP) @@ -556,7 +556,7 @@ DREF msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DBSSAP msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:GERAN-A:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -975,7 +975,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1164,7 +1164,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) @@ -1599,7 +1599,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: RR GSM48_MT_RR_PAG_RESP -DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE +DRR msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: Rx PAGING RESPONSE IMSI-901700000010650 DREF msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){MSC_A_ST_VALIDATE_L3}: + paging-response: now used by 2 (rx_from_ms,paging-response) DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: Allocated DVLR Process_Access_Request_VLR(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP){PR_ARQ_S_INIT}: is child of msc_a(IMSI-901700000010650:UTRAN-Iu:PAGING_RESP) @@ -1796,7 +1796,7 @@ DREF msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: + rx_from_ms: now used by 1 (rx_from_ms) DIUCS msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: RAN decode: COMPL_L3 DRLL msc_a(unknown:UTRAN-Iu:NONE){MSC_A_ST_VALIDATE_L3}: Dispatching 04.08 message: MM GSM48_MT_MM_IMSI_DETACH_IND -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 +DMM IMSI DETACH INDICATION: IMSI-901700000010650 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + gsm48_rx_mm_imsi_detach_ind: now used by 2 (attached,gsm48_rx_mm_imsi_detach_ind) DMM IMSI DETACH for IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + active-conn: now used by 3 (attached,gsm48_rx_mm_imsi_detach_ind,active-conn) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Idfc8e576e10756aeaacf5569f6178068313eb7ea Gerrit-Change-Number: 18715 Gerrit-PatchSet: 6 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 Fri Jun 19 20:41:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:41:35 +0000 Subject: Change in osmo-msc[master]: add rudimentary NRI support for MSC pooling In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18770 ) Change subject: add rudimentary NRI support for MSC pooling ...................................................................... add rudimentary NRI support for MSC pooling This patch served for a manual testing counterpart for osmo-bsc to implement MSC pooling. This enables a basic MSC pooling setup, but for a production setup, osmo-msc would still lack various features related to unloading subscribers to another MSC as explained in 3GPP TS 23.236. Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 --- M include/osmocom/msc/vlr.h M src/libmsc/msc_vty.c M src/libvlr/vlr.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_call.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_hlr_timeout.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/test_nodes.vty 17 files changed, 217 insertions(+), 122 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 83f83c7..3b9bbc4 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -269,6 +269,8 @@ bool auth_reuse_old_sets_on_error; bool parq_retrieve_imsi; bool is_ps; + uint8_t nri_bitlen; + struct osmo_nri_ranges *nri_ranges; } cfg; /* A free-form pointer for use by the caller */ void *user_ctx; diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index a92609d..29deb5e 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -33,6 +33,7 @@ #include #include #include +#include #include @@ -657,6 +658,76 @@ return CMD_SUCCESS; } +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +DEFUN(cfg_msc_nri_bitlen, cfg_msc_nri_bitlen_cmd, + "nri bitlen <0-15>", + NRI_STR + "Set number of NRI bits to place in TMSI identities (always starting just after the most significant octet)\n" + "bit count (default: " OSMO_STRINGIFY_VAL(NRI_BITLEN_DEFAULT) ")\n") +{ + gsmnet->vlr->cfg.nri_bitlen = atoi(argv[0]); + return CMD_SUCCESS; +} + +#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" +#define NRI_ARGS_TO_STR_FMT "%s%s%s" +#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" +#define NRI_FIRST_LAST_STR "First value of the NRI value range, should not surpass the configured 'nri bitlen'.\n" \ + "Last value of the NRI value range, should not surpass the configured 'nri bitlen' and be larger than the" \ + " first value; if omitted, apply only the first value.\n" + +DEFUN(cfg_msc_nri_add, cfg_msc_nri_add_cmd, + "nri add <0-32767> [<0-32767>]", + NRI_STR "Add NRI value or range to the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + const char *message; + int rc = osmo_nri_ranges_vty_add(&message, NULL, gsmnet->vlr->cfg.nri_ranges, argc, argv, gsmnet->vlr->cfg.nri_bitlen); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_nri_del, cfg_msc_nri_del_cmd, + "nri del <0-32767> [<0-32767>]", + NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + const char *message; + int rc = osmo_nri_ranges_vty_del(&message, NULL, gsmnet->vlr->cfg.nri_ranges, argc, argv); + if (message) { + vty_out(vty, "%% %s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +static void msc_write_nri(struct vty *vty) +{ + struct osmo_nri_range *r; + + llist_for_each_entry(r, &gsmnet->vlr->cfg.nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } +} + +DEFUN(show_nri, show_nri_cmd, + "show nri", + SHOW_STR NRI_STR) +{ + msc_write_nri(vty); + return CMD_SUCCESS; +} + static int config_write_msc(struct vty *vty) { vty_out(vty, "msc%s", VTY_NEWLINE); @@ -722,6 +793,8 @@ /* Timer introspection commands (generic osmo_tdef API) */ osmo_tdef_vty_groups_write(vty, " "); + msc_write_nri(vty); + return CMD_SUCCESS; } @@ -2002,6 +2075,9 @@ install_element(MSC_NODE, &cfg_msc_no_sms_over_gsup_cmd); install_element(MSC_NODE, &cfg_msc_osmux_cmd); install_element(MSC_NODE, &cfg_msc_handover_number_range_cmd); + install_element(MSC_NODE, &cfg_msc_nri_bitlen_cmd); + install_element(MSC_NODE, &cfg_msc_nri_add_cmd); + install_element(MSC_NODE, &cfg_msc_nri_del_cmd); neighbor_ident_vty_init(msc_network); @@ -2023,6 +2099,7 @@ install_element_ve(&show_bsc_cmd); install_element_ve(&show_msc_conn_cmd); install_element_ve(&show_msc_transaction_cmd); + install_element_ve(&show_nri_cmd); install_element_ve(&sms_send_pend_cmd); install_element_ve(&sms_delete_expired_cmd); diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 3a44d30..33d6331 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -329,6 +330,15 @@ LOGP(DDB, LOGL_ERROR, "osmo_get_rand_id() failed: %s\n", strerror(-rc)); return rc; } + + if (!llist_empty(&vlr->cfg.nri_ranges->entries)) { + int16_t nri_v; + osmo_tmsi_nri_v_limit_by_ranges(&tmsi, vlr->cfg.nri_ranges, vlr->cfg.nri_bitlen); + osmo_tmsi_nri_v_get(&nri_v, tmsi, vlr->cfg.nri_bitlen); + LOGP(DVLR, LOGL_DEBUG, "New NRI from range [%s] = 0x%x --> TMSI 0x%08x\n", + osmo_nri_ranges_to_str_c(OTC_SELECT, vlr->cfg.nri_ranges), nri_v, tmsi); + } + /* throw the dice again, if the TSMI doesn't fit */ if (tmsi == GSM_RESERVED_TMSI) continue; @@ -1246,6 +1256,8 @@ /* defaults */ vlr->cfg.assign_tmsi = true; + vlr->cfg.nri_bitlen = OSMO_NRI_BITLEN_DEFAULT; + vlr->cfg.nri_ranges = osmo_nri_ranges_alloc(vlr); /* reset shared timer definitions */ osmo_tdefs_reset(msc_tdefs_vlr); diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index fc33b38..9b0dac2 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_twice_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -504,7 +504,7 @@ ===== test_auth_use_twice_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_twice_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1036,7 +1036,7 @@ ===== test_auth_use_twice_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_infinitely_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1644,7 +1644,7 @@ ===== test_auth_use_infinitely_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_auth_use_infinitely_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2288,7 +2288,7 @@ ===== test_auth_use_infinitely_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_auth_reuse_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2676,7 +2676,7 @@ ===== test_no_auth_reuse_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_auth_reuse_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3084,8 +3084,8 @@ ===== test_no_auth_reuse_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index a8c7984..337483c 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mo - Total time passed: 0.000000 s @@ -474,7 +474,7 @@ ===== test_call_mo: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mt - Total time passed: 0.000000 s @@ -945,7 +945,7 @@ ===== test_call_mt: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mt2 - Total time passed: 0.000000 s @@ -1370,7 +1370,7 @@ ===== test_call_mt2: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mo_to_unknown - Total time passed: 0.000000 s @@ -1798,7 +1798,7 @@ ===== test_call_mo_to_unknown: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_call_mo_to_unknown_timeout - Total time passed: 0.000000 s @@ -2222,8 +2222,8 @@ ===== test_call_mo_to_unknown_timeout: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index 7042355..3da091f 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen - Location Update request causes a GSUP Send Auth Info request to HLR @@ -584,7 +584,7 @@ ===== test_gsm_authen: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_tmsi - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1407,7 +1407,7 @@ ===== test_gsm_authen_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1719,7 +1719,7 @@ ===== test_gsm_authen_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_imei_nack - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1984,7 +1984,7 @@ ===== test_gsm_authen_imei_nack: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_imei_err - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2250,7 +2250,7 @@ ===== test_gsm_authen_imei_err: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_authen_tmsi_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2603,7 +2603,7 @@ ===== test_gsm_authen_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_milenage_authen - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3161,7 +3161,7 @@ ===== test_gsm_milenage_authen: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_wrong_sres_length - Total time passed: 0.000000 s @@ -3306,8 +3306,8 @@ ===== test_wrong_sres_length: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index e753096..edd4ee6 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph - Location Update request causes a GSUP Send Auth Info request to HLR @@ -652,7 +652,7 @@ ===== test_ciph: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_tmsi - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1352,7 +1352,7 @@ ===== test_ciph_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1671,7 +1671,7 @@ ===== test_ciph_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_imeisv - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1955,7 +1955,7 @@ ===== test_ciph_imeisv: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ciph_tmsi_imei - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2315,7 +2315,7 @@ ===== test_ciph_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_gsm_ciph_in_umts_env - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2912,7 +2912,7 @@ ===== test_gsm_ciph_in_umts_env: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_a5_3_supported - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3556,7 +3556,7 @@ ===== test_a5_3_supported: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_cm_service_needs_classmark_update - Location Update request causes a GSUP Send Auth Info request to HLR @@ -4178,8 +4178,8 @@ ===== test_cm_service_needs_classmark_update: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index f0d94b4..51fc0e8 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_unknown_imsi - Location Update request causes a GSUP Send Auth Info request to HLR @@ -101,7 +101,7 @@ ===== test_hlr_rej_auth_info_unknown_imsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_net_fail - Location Update request causes a GSUP Send Auth Info request to HLR @@ -202,7 +202,7 @@ ===== test_hlr_rej_auth_info_net_fail: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_net_fail_reuse_tuples @@ -528,7 +528,7 @@ ===== test_hlr_rej_auth_info_net_fail_reuse_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_net_fail_no_reuse_tuples @@ -794,7 +794,7 @@ ===== test_hlr_rej_auth_info_net_fail_no_reuse_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples @@ -1061,7 +1061,7 @@ ===== test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_acc_but_no_auth_tuples - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1161,7 +1161,7 @@ ===== test_hlr_acc_but_no_auth_tuples: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_rej_lu - Location Update request causes a GSUP LU request to HLR @@ -1264,7 +1264,7 @@ ===== test_hlr_rej_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_no_insert_data - Location Update request causes a GSUP LU request to HLR @@ -1380,8 +1380,8 @@ ===== test_hlr_no_insert_data: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 3717533..d68b4f7 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_timeout_lu_auth_info - Total time passed: 0.000000 s @@ -110,7 +110,7 @@ ===== test_hlr_timeout_lu_auth_info: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_hlr_timeout_lu_upd_loc_result - Total time passed: 0.000000 s @@ -237,8 +237,8 @@ ===== test_hlr_timeout_lu_upd_loc_result: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 66ea0bb..653e56c 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ms_timeout_lu_auth_resp - Total time passed: 0.000000 s @@ -129,7 +129,7 @@ ===== test_ms_timeout_lu_auth_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ms_timeout_cm_auth_resp - Total time passed: 0.000000 s @@ -402,7 +402,7 @@ ===== test_ms_timeout_cm_auth_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ms_timeout_paging - Total time passed: 0.000000 s @@ -710,7 +710,7 @@ ===== test_ms_timeout_paging: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_classmark_update_timeout - Total time passed: 0.000000 s @@ -863,8 +863,8 @@ ===== test_classmark_update_timeout: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 2ee21da..a74c18f 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen - Location Update request causes a GSUP LU request to HLR @@ -451,7 +451,7 @@ ===== test_no_authen: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_tmsi - Location Update request causes a GSUP LU request to HLR @@ -1134,7 +1134,7 @@ ===== test_no_authen_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imei - Location Update request causes a GSUP LU request to HLR @@ -1385,7 +1385,7 @@ ===== test_no_authen_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_tmsi_imei - Location Update request causes a GSUP LU request to HLR @@ -1671,7 +1671,7 @@ ===== test_no_authen_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv - Location Update request causes an IMEISV ID request back to the MS @@ -1892,7 +1892,7 @@ ===== test_no_authen_imeisv: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv_imei - Location Update request causes an IMEISV ID request back to the MS @@ -2124,7 +2124,7 @@ ===== test_no_authen_imeisv_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv_tmsi - Location Update request causes an IMEISV ID request back to the MS @@ -2590,7 +2590,7 @@ ===== test_no_authen_imeisv_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_imeisv_tmsi_imei - Location Update request causes an IMEISV ID request back to the MS @@ -2859,7 +2859,7 @@ ===== test_no_authen_imeisv_tmsi_imei: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_no_authen_subscr_expire - Total time passed: 0.000000 s @@ -2994,8 +2994,8 @@ ===== test_no_authen_subscr_expire: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 48086a7..4bad93e 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_2nd_conn - Location Update Request on one connection @@ -190,7 +190,7 @@ ===== test_reject_2nd_conn: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_lu_during_lu - Location Update Request @@ -331,7 +331,7 @@ ===== test_reject_lu_during_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_cm_during_lu - Location Update Request @@ -477,7 +477,7 @@ ===== test_reject_cm_during_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_paging_resp_during_lu - Location Update Request @@ -617,7 +617,7 @@ ===== test_reject_paging_resp_during_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_lu_during_cm @@ -853,7 +853,7 @@ ===== test_reject_lu_during_cm: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_cm_during_cm @@ -1094,7 +1094,7 @@ ===== test_reject_cm_during_cm: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_paging_resp_during_cm @@ -1319,7 +1319,7 @@ ===== test_reject_paging_resp_during_cm: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_lu_during_paging_resp @@ -1619,7 +1619,7 @@ ===== test_reject_lu_during_paging_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_accept_cm_during_paging_resp @@ -1943,7 +1943,7 @@ ===== test_accept_cm_during_paging_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_reject_paging_resp_during_paging_resp @@ -2240,8 +2240,8 @@ ===== test_reject_paging_resp_during_paging_resp: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index ad8d822..be1a888 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_cm_service_without_lu - CM Service Request without a prior Location Updating @@ -65,7 +65,7 @@ ===== test_cm_service_without_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_two_lu - Location Update request causes a GSUP LU request to HLR @@ -404,7 +404,7 @@ ===== test_two_lu: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_lu_unknown_tmsi - Location Update request with unknown TMSI sends ID Request for IMSI @@ -584,8 +584,8 @@ ===== test_lu_unknown_tmsi: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index cd4cf5c..f7f3e78 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ss_ussd_mo_geran - Location Update request causes a GSUP LU request to HLR @@ -237,7 +237,7 @@ ===== test_ss_ussd_mo_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_ss_ussd_no_geran - Location Update request causes a GSUP LU request to HLR @@ -499,8 +499,8 @@ ===== test_ss_ussd_no_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 53cce79..0b049b9 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,6 +1,6 @@ DLMGCP MGCP client: using endpoint domain '@mgw' full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -602,7 +602,7 @@ ===== test_umts_authen_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1210,7 +1210,7 @@ ===== test_umts_authen_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_auth_ciph_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -1842,7 +1842,7 @@ ===== test_umts_auth_ciph_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_resync_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2074,7 +2074,7 @@ ===== test_umts_authen_resync_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_resync_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2308,7 +2308,7 @@ ===== test_umts_authen_resync_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_auth_ciph_resync_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2552,7 +2552,7 @@ ===== test_umts_auth_ciph_resync_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_short_res_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2670,7 +2670,7 @@ ===== test_umts_authen_too_short_res_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_short_res_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2788,7 +2788,7 @@ ===== test_umts_authen_too_short_res_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_long_res_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -2906,7 +2906,7 @@ ===== test_umts_authen_too_long_res_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_too_long_res_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3024,7 +3024,7 @@ ===== test_umts_authen_too_long_res_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_only_sres_geran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3142,7 +3142,7 @@ ===== test_umts_authen_only_sres_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 ===== test_umts_authen_only_sres_utran - Location Update request causes a GSUP Send Auth Info request to HLR @@ -3260,8 +3260,8 @@ ===== test_umts_authen_only_sres_utran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 19 +talloc_total_blocks(tall_bsc_ctx) == 20 diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index e00c337..21af3ca 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -1049,30 +1049,31 @@ talloc_report_full(msgb_ctx, stderr); /* Expecting these to stick around in msc_vlr_tests_ctx: * full talloc report on 'msgb' (total 0 bytes in 1 blocks) - * talloc_total_blocks(tall_bsc_ctx) == 19 - * full talloc report on 'msc_vlr_tests_ctx' (total 6532 bytes in 19 blocks) - * struct osmo_gsup_client contains 256 bytes in 1 blocks (ref 0) 0x56143306aa10 - * struct gsm_network contains 4775 bytes in 11 blocks (ref 0) 0x5614330697e0 - * struct mgcp_client contains 688 bytes in 1 blocks (ref 0) 0x56143306ad80 - * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x56143306ac80 - * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x56143306ab80 - * struct gsup_client_mux contains 152 bytes in 2 blocks (ref 0) 0x56143306a8a0 - * struct ipaccess_unit contains 64 bytes in 1 blocks (ref 0) 0x56143306a960 - * struct vlr_instance contains 248 bytes in 1 blocks (ref 0) 0x56143306a740 - * no_gsup_server contains 15 bytes in 1 blocks (ref 0) 0x56143306a6c0 - * stat_item.c:96 contains 144 bytes in 2 blocks (ref 0) 0x56143306a550 - * stat_item.c:118 contains 96 bytes in 1 blocks (ref 0) 0x56143306a5f0 - * rate_ctr.c:234 contains 2352 bytes in 1 blocks (ref 0) 0x561433069bb0 - * logging contains 1501 bytes in 5 blocks (ref 0) 0x561433068fe0 - * struct log_target contains 244 bytes in 2 blocks (ref 0) 0x561433069610 - * struct log_category contains 76 bytes in 1 blocks (ref 0) 0x561433069720 - * struct log_info contains 1256 bytes in 2 blocks (ref 0) 0x561433069050 - * struct log_info_cat contains 1216 bytes in 1 blocks (ref 0) 0x5614330690e0 - * msgb contains 0 bytes in 1 blocks (ref 0) 0x561433068f70 + * talloc_total_blocks(tall_bsc_ctx) == 20 + * full talloc report on 'msc_vlr_tests_ctx' (total 6556 bytes in 20 blocks) + * struct osmo_gsup_client contains 264 bytes in 1 blocks (ref 0) 0x613000000260 + * struct gsm_network contains 4791 bytes in 12 blocks (ref 0) 0x6190000000e0 + * struct mgcp_client contains 688 bytes in 1 blocks (ref 0) 0x6180000000e0 + * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x611000000320 + * struct sccp_ran_inst contains 152 bytes in 1 blocks (ref 0) 0x6110000001e0 + * struct gsup_client_mux contains 152 bytes in 2 blocks (ref 0) 0x6100000001a0 + * struct ipaccess_unit contains 64 bytes in 1 blocks (ref 0) 0x60e000023180 + * struct vlr_instance contains 264 bytes in 2 blocks (ref 0) 0x6130000000a0 + * struct osmo_nri_ranges contains 16 bytes in 1 blocks (ref 0) 0x60b000000360 + * no_gsup_server contains 15 bytes in 1 blocks (ref 0) 0x60b0000002b0 + * ../../../src/libosmocore/src/stat_item.c:96 contains 144 bytes in 2 blocks (ref 0) 0x60d000000170 + * ../../../src/libosmocore/src/stat_item.c:118 contains 96 bytes in 1 blocks (ref 0) 0x6100000000a0 + * ../../../src/libosmocore/src/rate_ctr.c:234 contains 2352 bytes in 1 blocks (ref 0) 0x61e0000000e0 + * logging contains 1501 bytes in 5 blocks (ref 0) 0x60b000000200 + * struct log_target contains 244 bytes in 2 blocks (ref 0) 0x6120000000a0 + * struct log_category contains 76 bytes in 1 blocks (ref 0) 0x60f0000000a0 + * struct log_info contains 1256 bytes in 2 blocks (ref 0) 0x60d0000000a0 + * struct log_info_cat contains 1216 bytes in 1 blocks (ref 0) 0x61a0000000e0 + * msgb contains 0 bytes in 1 blocks (ref 0) 0x608000000180 */ fprintf(stderr, "talloc_total_blocks(tall_bsc_ctx) == %zu\n", talloc_total_blocks(msc_vlr_tests_ctx)); - if (talloc_total_blocks(msc_vlr_tests_ctx) != 19) + if (talloc_total_blocks(msc_vlr_tests_ctx) != 20) talloc_report_full(msc_vlr_tests_ctx, stderr); fprintf(stderr, "\n"); } diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index edb891b..520f07c 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -63,6 +63,9 @@ no sms-over-gsup osmux (on|off|only) handover-number range MSISDN_FIRST MSISDN_LAST + nri bitlen <0-15> + nri add <0-32767> [<0-32767>] + nri del <0-32767> [<0-32767>] neighbor (a|iu) lac <0-65535> (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME neighbor (a|iu) lac-ci <0-65535> <0-65535> (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME neighbor (a|iu) cgi <0-999> <0-999> <0-65535> <0-65535> (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iafe0878a0a2c8669080d757b34a398ea75fced36 Gerrit-Change-Number: 18770 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:43:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:43:30 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20:43:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:44:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:44:03 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20:44:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 20:46:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:46:42 +0000 Subject: Change in osmocom-bb[master]: trxcon: use libosmocore's TDMA frame number API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18872 ) Change subject: trxcon: use libosmocore's TDMA frame number API ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I49a043d8483e116cf2d91820edb511846175173f Gerrit-Change-Number: 18872 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 20: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 Jun 19 20:46:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 19 Jun 2020 20:46:45 +0000 Subject: Change in osmocom-bb[master]: trxcon: use libosmocore's TDMA frame number API In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/18872 ) Change subject: trxcon: use libosmocore's TDMA frame number API ...................................................................... trxcon: use libosmocore's TDMA frame number API Depends: (libosmocore) Ic291fd3644f34964374227a191c7045d79d77e0d Change-Id: I49a043d8483e116cf2d91820edb511846175173f --- M src/host/trxcon/l1ctl.c M src/host/trxcon/sched_clck.c M src/host/trxcon/sched_lchan_tchh.c M src/host/trxcon/sched_trx.c M src/host/trxcon/scheduler.h 5 files changed, 22 insertions(+), 39 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/host/trxcon/l1ctl.c b/src/host/trxcon/l1ctl.c index 192cdd1..aec304f 100644 --- a/src/host/trxcon/l1ctl.c +++ b/src/host/trxcon/l1ctl.c @@ -370,9 +370,9 @@ /* Start FBSB expire timer */ l1l->fbsb_timer.data = l1l; l1l->fbsb_timer.cb = fbsb_timer_cb; - LOGP(DL1C, LOGL_INFO, "Starting FBSB timer %u ms\n", timeout * FRAME_DURATION_uS / 1000); + LOGP(DL1C, LOGL_INFO, "Starting FBSB timer %u ms\n", timeout * GSM_TDMA_FN_DURATION_uS / 1000); osmo_timer_schedule(&l1l->fbsb_timer, 0, - timeout * FRAME_DURATION_uS); + timeout * GSM_TDMA_FN_DURATION_uS); exit: msgb_free(msg); diff --git a/src/host/trxcon/sched_clck.c b/src/host/trxcon/sched_clck.c index 7c814dc..9476ccd 100644 --- a/src/host/trxcon/sched_clck.c +++ b/src/host/trxcon/sched_clck.c @@ -50,7 +50,7 @@ struct trx_sched *sched = (struct trx_sched *) data; struct timespec tv_now, *tv_clock, elapsed; int64_t elapsed_us; - const struct timespec frame_duration = { .tv_sec = 0, .tv_nsec = FRAME_DURATION_uS * 1000 }; + const struct timespec frame_duration = { .tv_sec = 0, .tv_nsec = GSM_TDMA_FN_DURATION_nS }; /* Check if transceiver is still alive */ if (sched->fn_counter_lost++ == TRX_LOSS_FRAMES) { @@ -68,7 +68,7 @@ elapsed_us = (elapsed.tv_sec * 1000000) + (elapsed.tv_nsec / 1000); /* If someone played with clock, or if the process stalled */ - if (elapsed_us > FRAME_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { + if (elapsed_us > GSM_TDMA_FN_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { LOGP(DSCH, LOGL_NOTICE, "PC clock skew: " "elapsed uS %" PRId64 "\n", elapsed_us); @@ -78,11 +78,11 @@ } /* Schedule next FN clock */ - while (elapsed_us > FRAME_DURATION_uS / 2) { + while (elapsed_us > GSM_TDMA_FN_DURATION_uS / 2) { timespecadd(tv_clock, &frame_duration, tv_clock); - elapsed_us -= FRAME_DURATION_uS; + elapsed_us -= GSM_TDMA_FN_DURATION_uS; - TDMA_FN_INC(&sched->fn_counter_proc); + GSM_TDMA_FN_INC(sched->fn_counter_proc); /* Call frame callback */ if (sched->clock_cb) @@ -90,7 +90,7 @@ } osmo_timer_schedule(&sched->clock_timer, 0, - FRAME_DURATION_uS - elapsed_us); + GSM_TDMA_FN_DURATION_uS - elapsed_us); } static void sched_clck_correct(struct trx_sched *sched, @@ -108,7 +108,7 @@ sched->clock_timer.cb = sched_clck_tick; sched->clock_timer.data = sched; - osmo_timer_schedule(&sched->clock_timer, 0, FRAME_DURATION_uS); + osmo_timer_schedule(&sched->clock_timer, 0, GSM_TDMA_FN_DURATION_uS); } int sched_clck_handle(struct trx_sched *sched, uint32_t fn) @@ -140,10 +140,10 @@ /* Calculate elapsed time / frames since last processed fn */ timespecsub(&tv_now, tv_clock, &elapsed); elapsed_us = (elapsed.tv_sec * 1000000) + (elapsed.tv_nsec / 1000); - elapsed_fn = TDMA_FN_SUB(fn, sched->fn_counter_proc); + elapsed_fn = GSM_TDMA_FN_SUB(fn, sched->fn_counter_proc); if (elapsed_fn >= 135774) - elapsed_fn -= GSM_HYPERFRAME; + elapsed_fn -= GSM_TDMA_HYPERFRAME; /* Check for max clock skew */ if (elapsed_fn > MAX_FN_SKEW || elapsed_fn < -MAX_FN_SKEW) { @@ -155,7 +155,7 @@ } LOGP(DSCH, LOGL_INFO, "GSM clock jitter: %" PRId64 "\n", - elapsed_fn * FRAME_DURATION_uS - elapsed_us); + elapsed_fn * GSM_TDMA_FN_DURATION_uS - elapsed_us); /* Too many frames have been processed already */ if (elapsed_fn < 0) { @@ -164,21 +164,21 @@ * Set clock to the time or last FN should * have been transmitted */ - duration.tv_nsec = (0 - elapsed_fn) * FRAME_DURATION_uS * 1000; + duration.tv_nsec = (0 - elapsed_fn) * GSM_TDMA_FN_DURATION_nS; duration.tv_sec = duration.tv_nsec / 1000000000; duration.tv_nsec = duration.tv_nsec % 1000000000; timespecadd(&tv_now, &duration, tv_clock); /* Set time to the time our next FN has to be transmitted */ osmo_timer_schedule(&sched->clock_timer, 0, - FRAME_DURATION_uS * (1 - elapsed_fn)); + GSM_TDMA_FN_DURATION_uS * (1 - elapsed_fn)); return 0; } /* Transmit what we still need to transmit */ while (fn != sched->fn_counter_proc) { - TDMA_FN_INC(&sched->fn_counter_proc); + GSM_TDMA_FN_INC(sched->fn_counter_proc); /* Call frame callback */ if (sched->clock_cb) @@ -187,7 +187,7 @@ /* Schedule next FN to be transmitted */ *tv_clock = tv_now; - osmo_timer_schedule(&sched->clock_timer, 0, FRAME_DURATION_uS); + osmo_timer_schedule(&sched->clock_timer, 0, GSM_TDMA_FN_DURATION_uS); return 0; } diff --git a/src/host/trxcon/sched_lchan_tchh.c b/src/host/trxcon/sched_lchan_tchh.c index 5edbfcd..b6f0708 100644 --- a/src/host/trxcon/sched_lchan_tchh.c +++ b/src/host/trxcon/sched_lchan_tchh.c @@ -171,8 +171,8 @@ #define BLOCK_FIRST_FN(map) \ do { \ if (map[i][ARRAY_SIZE(map[i]) - 1] == fn_mf) { \ - fn_diff = TDMA_FN_DIFF(fn_mf, map[i][0]); \ - return TDMA_FN_SUB(last_fn, fn_diff); \ + fn_diff = GSM_TDMA_FN_DIFF(fn_mf, map[i][0]); \ + return GSM_TDMA_FN_SUB(last_fn, fn_diff); \ } \ } while (++i < ARRAY_SIZE(map)) diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c index e172610..b6087ef 100644 --- a/src/host/trxcon/sched_trx.c +++ b/src/host/trxcon/sched_trx.c @@ -68,8 +68,7 @@ * Advance frame number, giving the transceiver more * time until a burst must be transmitted... */ - fn = TDMA_FN_SUM(sched->fn_counter_proc, - sched->fn_counter_advance); + fn = GSM_TDMA_FN_SUM(sched->fn_counter_proc, sched->fn_counter_advance); /* Get frame from multiframe */ offset = fn % ts->mf_layout->period; @@ -636,7 +635,7 @@ mf = lchan->ts->mf_layout; /* How many frames elapsed since the last one? */ - elapsed = TDMA_FN_SUB(fn, lchan->tdma.last_proc); + elapsed = GSM_TDMA_FN_SUB(fn, lchan->tdma.last_proc); if (elapsed > mf->period) { LOGP(DSCHD, LOGL_NOTICE, "Too many (>%u) contiguous TDMA frames elapsed (%u) " "since the last processed fn=%u\n", mf->period, @@ -656,7 +655,7 @@ /* Traverse from fp till the current frame */ for (i = 0; i < elapsed - 1; i++) { - fp = &mf->frames[TDMA_FN_INC(&fake_meas.fn) % mf->period]; + fp = &mf->frames[GSM_TDMA_FN_INC(fake_meas.fn) % mf->period]; if (fp->dl_chan != lchan->type) continue; diff --git a/src/host/trxcon/scheduler.h b/src/host/trxcon/scheduler.h index e3c0cb0..43127cc 100644 --- a/src/host/trxcon/scheduler.h +++ b/src/host/trxcon/scheduler.h @@ -4,23 +4,7 @@ #include #include - -#define FRAME_DURATION_uS 4615 - -#define GSM_SUPERFRAME (26 * 51) -#define GSM_HYPERFRAME (2048 * GSM_SUPERFRAME) - -/* TDMA frame number arithmetics */ -#define TDMA_FN_SUM(a, b) \ - ((a + b) % GSM_HYPERFRAME) -#define TDMA_FN_SUB(a, b) \ - ((a + GSM_HYPERFRAME - b) % GSM_HYPERFRAME) -#define TDMA_FN_INC(fn) \ - (*fn = TDMA_FN_SUM(*fn, 1)) -#define TDMA_FN_MIN(a, b) \ - (a < b ? a : b) -#define TDMA_FN_DIFF(a, b) \ - TDMA_FN_MIN(TDMA_FN_SUB(a, b), TDMA_FN_SUB(b, a)) +#include enum tdma_sched_clck_state { SCH_CLCK_STATE_WAIT, -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/18872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I49a043d8483e116cf2d91820edb511846175173f Gerrit-Change-Number: 18872 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 19 21:00:33 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 21:00:33 +0000 Subject: Change in osmo-msc[master]: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18924 ) Change subject: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc --- M src/osmo-msc/msc_main.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/18924/1 diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index cf1e504..c04ccdd 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -131,12 +131,14 @@ printf(" -V --version Print the version of OsmoMSC.\n"); printf(" -e --log-level number Set a global loglevel.\n"); printf(" -M --mncc-sock-path PATH Disable built-in MNCC handler and offer socket.\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { {"help", 0, 0, 'h'}, {"debug", 1, 0, 'd'}, @@ -149,6 +151,7 @@ {"log-level", 1, 0, 'e'}, {"mncc-sock-path", 1, 0, 'M'}, {"no-dbcounter", 0, 0, 'C'}, /* deprecated */ + {"vty-ref-xml", 0, &long_option, 1}, {0, 0, 0, 0} }; @@ -162,6 +165,15 @@ print_usage(); print_help(); exit(0); + case 0: + switch (long_option) { + case 1: + vty_dump_xml_ref(stdout); + exit(0); + default: + fprintf(stderr, "error parsing cmdline options\n"); + exit(2); + } case 's': log_set_use_color(osmo_stderr_target, 0); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc Gerrit-Change-Number: 18924 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 Jun 19 21:00:33 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 21:00:33 +0000 Subject: Change in osmo-msc[master]: manuals: generate vty reference xml at build time References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18925 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... manuals: generate vty reference xml at build time Move 'doc' subdir further down to "make sure" the osmo-msc binary is built before the docs. Remove msc_vty_reference.xml from the source tree. In manuals/Makefile.am use the new BUILT_REFERENCE_XML feature recently added to osmo-gsm-manuals, and add a build target to generate the XML using the new osmo-msc --vty-ref-xml cmdline switch. Depends: I613d692328050a036d05b49a436ab495fc2087ba (osmo-gsm-manuals) Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 --- M Makefile.am M doc/manuals/Makefile.am D doc/manuals/vty/msc_vty_reference.xml 3 files changed, 6 insertions(+), 3,255 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/25/18925/1 diff --git a/Makefile.am b/Makefile.am index bfc3b6c..759f396 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,9 +9,9 @@ $(NULL) SUBDIRS = \ - doc \ include \ src \ + doc \ contrib \ tests \ $(NULL) diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index 3b50d4e..8ef124a 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -14,6 +14,11 @@ VTY_REFERENCE = osmomsc-vty-reference.xml include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc + BUILT_REFERENCE_XML = $(builddir)/vty/msc_vty_reference.xml + $(builddir)/vty/msc_vty_reference.xml: $(top_builddir)/src/osmo-msc/osmo-msc + mkdir -p $(builddir)/vty + $(top_builddir)/src/osmo-msc/osmo-msc --vty-ref-xml > $@ + OSMO_REPOSITORY = osmo-msc include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc endif diff --git a/doc/manuals/vty/msc_vty_reference.xml b/doc/manuals/vty/msc_vty_reference.xml deleted file mode 100644 index 3939c08..0000000 --- a/doc/manuals/vty/msc_vty_reference.xml +++ /dev/null @@ -1,3254 +0,0 @@ - - - Common Commands - These commands are available on all VTY nodes. They are listed here only once, to unclutter the VTY reference. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - view - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-stats - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-line - - - - - - - - - - - - - - - - - - - - - config-ctrl - - - - - - - - - config-cs7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-as - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-asp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-sccpaddr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-sccpaddr-gt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-msc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-mncc-int - - - - - - - - - - - - - - - - - - - - config-smpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-smpp-esme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-hlr - - - - - - - - - - - - - - - - - - - - - config-sgs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 Gerrit-Change-Number: 18925 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 Jun 19 21:19:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 21:19:19 +0000 Subject: Change in osmo-mgw[master]: add osmo-mgw --vty-ref-xml: dump VTY ref XML to stdout References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18926 ) Change subject: add osmo-mgw --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-mgw --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: Ia988ea1c3f5169bdb4d21f2f05933665711cfcbf --- M src/osmo-mgw/mgw_main.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/26/18926/1 diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index 99e2499..6ca1800 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -98,18 +98,21 @@ printf(" -s --disable-color\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); printf(" -V --version Print the version number\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); } 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'}, {"config-file", 1, 0, 'c'}, {"daemonize", 0, 0, 'D'}, {"version", 0, 0, 'V'}, {"disable-color", 0, 0, 's'}, + {"vty-ref-xml", 0, &long_option, 1}, {0, 0, 0, 0}, }; @@ -123,6 +126,15 @@ print_help(); exit(0); break; + case 0: + switch (long_option) { + case 1: + vty_dump_xml_ref(stdout); + exit(0); + default: + fprintf(stderr, "error parsing cmdline options\n"); + exit(2); + } case 'c': config_file = talloc_strdup(tall_bsc_ctx, optarg); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia988ea1c3f5169bdb4d21f2f05933665711cfcbf Gerrit-Change-Number: 18926 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 Jun 19 21:19:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 21:19:20 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build time References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18927 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... manuals: generate vty reference xml at build time Move 'doc' subdir further down to "make sure" the osmo-mgw binary is built before the docs. Remove mgw_vty_reference.xml from the source tree. In manuals/Makefile.am use the new BUILT_REFERENCE_XML feature recently added to osmo-gsm-manuals, and add a build target to generate the XML using the new osmo-mgw --vty-ref-xml cmdline switch. Depends: I613d692328050a036d05b49a436ab495fc2087ba (osmo-gsm-manuals) Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 --- M doc/manuals/Makefile.am D doc/manuals/vty/mgw_vty_reference.xml 2 files changed, 5 insertions(+), 1,677 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/27/18927/1 diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index a82f95d..4134840 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -13,6 +13,11 @@ VTY_REFERENCE = osmomgw-vty-reference.xml include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc + BUILT_REFERENCE_XML = $(builddir)/vty/mgw_vty_reference.xml + $(builddir)/vty/mgw_vty_reference.xml: $(top_builddir)/src/osmo-mgw/osmo-mgw + mkdir -p $(builddir)/vty + $(top_builddir)/src/osmo-mgw/osmo-mgw --vty-ref-xml > $@ + OSMO_REPOSITORY = osmo-mgw include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc endif diff --git a/doc/manuals/vty/mgw_vty_reference.xml b/doc/manuals/vty/mgw_vty_reference.xml deleted file mode 100644 index 047a2ad..0000000 --- a/doc/manuals/vty/mgw_vty_reference.xml +++ /dev/null @@ -1,1677 +0,0 @@ - - - Common Commands - These commands are available on all VTY nodes. They are listed here only once, to unclutter the VTY reference. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - view - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-stats - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-line - - - - - - - - - - - - - - - - - - - - - config-mgcp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-mgcp-trunk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 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 Jun 19 23:38:03 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 23:38:03 +0000 Subject: Change in osmo-bsc[master]: merge files: absorb osmo_bsc_vty.c into bsc_vty.c In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18892 ) Change subject: merge files: absorb osmo_bsc_vty.c into bsc_vty.c ...................................................................... merge files: absorb osmo_bsc_vty.c into bsc_vty.c For historical reasons we had bsc_vty.c and osmo_bsc_vty.c. Ever since the osmo-nitb split, there is no reason to keep these files separate. Merge osmo_bsc_vty.c into bsc_vty.c (because osmo_bsc_vty.c is smaller). I noticed this particularly because adding the NRI configuration required adding things like #define NRI_STR in two separate files: once for the 'network' level vty, and once for the 'msc' level. Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 --- M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_vty.c D src/osmo-bsc/osmo_bsc_vty.c M tests/handover/Makefile.am 4 files changed, 976 insertions(+), 1,033 deletions(-) Approvals: laforge: Looks good to me, approved neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 51e0e7f9..0665af6 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -80,7 +80,6 @@ osmo_bsc_mgcp.c \ osmo_bsc_msc.c \ osmo_bsc_sigtran.c \ - osmo_bsc_vty.c \ paging.c \ pcu_sock.c \ penalty_timers.c \ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index c5bcfc4..1ab10d3 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -72,6 +72,7 @@ #include #include #include +#include #include #include @@ -2077,6 +2078,10 @@ " first value; if omitted, apply only the first value.\n" #define NRI_ARGS_TO_STR_FMT "%s%s%s" #define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" +#define NRI_WARN(MSC, FORMAT, args...) do { \ + vty_out(vty, "%% Warning: msc %d: " FORMAT "%s", MSC->nr, ##args, VTY_NEWLINE); \ + LOGP(DMSC, LOGL_ERROR, "msc %d: " FORMAT "\n", MSC->nr, ##args); \ + } while (0) DEFUN(cfg_net_nri_bitlen, cfg_net_nri_bitlen_cmd, @@ -5391,7 +5396,907 @@ return CMD_SUCCESS; } -extern int bsc_vty_init_extra(void); +static struct bsc_msc_data *bsc_msc_data(struct vty *vty) +{ + return vty->index; +} + +static struct cmd_node bsc_node = { + BSC_NODE, + "%s(config-bsc)# ", + 1, +}; + +static struct cmd_node msc_node = { + MSC_NODE, + "%s(config-msc)# ", + 1, +}; + +#define MSC_NR_RANGE "<0-1000>" + +DEFUN(cfg_net_msc, cfg_net_msc_cmd, + "msc [" MSC_NR_RANGE "]", "Configure MSC details\n" "MSC connection to configure\n") +{ + int index = argc == 1 ? atoi(argv[0]) : 0; + struct bsc_msc_data *msc; + + msc = osmo_msc_data_alloc(bsc_gsmnet, index); + if (!msc) { + vty_out(vty, "%%Failed to allocate MSC data.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty->index = msc; + vty->node = MSC_NODE; + return CMD_SUCCESS; +} + +DEFUN(cfg_net_bsc, cfg_net_bsc_cmd, + "bsc", "Configure BSC\n") +{ + vty->node = BSC_NODE; + return CMD_SUCCESS; +} + +static void write_msc_amr_options(struct vty *vty, struct bsc_msc_data *msc) +{ +#define WRITE_AMR(vty, msc, name, var) \ + vty_out(vty, " amr-config %s %s%s", \ + name, msc->amr_conf.var ? "allowed" : "forbidden", \ + VTY_NEWLINE); + + WRITE_AMR(vty, msc, "12_2k", m12_2); + WRITE_AMR(vty, msc, "10_2k", m10_2); + WRITE_AMR(vty, msc, "7_95k", m7_95); + WRITE_AMR(vty, msc, "7_40k", m7_40); + WRITE_AMR(vty, msc, "6_70k", m6_70); + WRITE_AMR(vty, msc, "5_90k", m5_90); + WRITE_AMR(vty, msc, "5_15k", m5_15); + WRITE_AMR(vty, msc, "4_75k", m4_75); +#undef WRITE_AMR + + if (msc->amr_octet_aligned) + vty_out(vty, " amr-payload octet-aligned%s", VTY_NEWLINE); + else + vty_out(vty, " amr-payload bandwith-efficient%s", VTY_NEWLINE); +} + +static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose); + +static void write_msc(struct vty *vty, struct bsc_msc_data *msc) +{ + vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); + if (msc->core_plmn.mnc != GSM_MCC_MNC_INVALID) + vty_out(vty, " core-mobile-network-code %s%s", + osmo_mnc_name(msc->core_plmn.mnc, msc->core_plmn.mnc_3_digits), VTY_NEWLINE); + if (msc->core_plmn.mcc != GSM_MCC_MNC_INVALID) + vty_out(vty, " core-mobile-country-code %s%s", + osmo_mcc_name(msc->core_plmn.mcc), VTY_NEWLINE); + if (msc->core_lac != -1) + vty_out(vty, " core-location-area-code %d%s", + msc->core_lac, VTY_NEWLINE); + if (msc->core_ci != -1) + vty_out(vty, " core-cell-identity %d%s", + msc->core_ci, VTY_NEWLINE); + + if (msc->audio_length != 0) { + int i; + + vty_out(vty, " codec-list "); + for (i = 0; i < msc->audio_length; ++i) { + if (i != 0) + vty_out(vty, " "); + + if (msc->audio_support[i]->hr) + vty_out(vty, "hr%.1u", msc->audio_support[i]->ver); + else + vty_out(vty, "fr%.1u", msc->audio_support[i]->ver); + } + vty_out(vty, "%s", VTY_NEWLINE); + + } + + vty_out(vty, " allow-emergency %s%s", msc->allow_emerg ? + "allow" : "deny", VTY_NEWLINE); + + /* write amr options */ + write_msc_amr_options(vty, msc); + + /* write sccp connection configuration */ + if (msc->a.bsc_addr_name) { + vty_out(vty, " bsc-addr %s%s", + msc->a.bsc_addr_name, VTY_NEWLINE); + } + if (msc->a.msc_addr_name) { + vty_out(vty, " msc-addr %s%s", + msc->a.msc_addr_name, VTY_NEWLINE); + } + vty_out(vty, " asp-protocol %s%s", osmo_ss7_asp_protocol_name(msc->a.asp_proto), VTY_NEWLINE); + vty_out(vty, " lcls-mode %s%s", get_value_string(bsc_lcls_mode_names, msc->lcls_mode), + VTY_NEWLINE); + + if (msc->lcls_codec_mismatch_allow) + vty_out(vty, " lcls-codec-mismatch allowed%s", VTY_NEWLINE); + else + vty_out(vty, " lcls-codec-mismatch forbidden%s", VTY_NEWLINE); + + /* write MGW configuration */ + mgcp_client_config_write(vty, " "); + + if (msc->x_osmo_ign_configured) { + if (!msc->x_osmo_ign) + vty_out(vty, " no mgw x-osmo-ign%s", VTY_NEWLINE); + else + vty_out(vty, " mgw x-osmo-ign call-id%s", VTY_NEWLINE); + } + + if (msc->use_osmux != OSMUX_USAGE_OFF) { + vty_out(vty, " osmux %s%s", msc->use_osmux == OSMUX_USAGE_ON ? "on" : "only", + VTY_NEWLINE); + } + + msc_write_nri(vty, msc, false); + + if (!msc->allow_attach) + vty_out(vty, " no allow-attach%s", VTY_NEWLINE); +} + +static int config_write_msc(struct vty *vty) +{ + struct bsc_msc_data *msc; + + llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) + write_msc(vty, msc); + + return CMD_SUCCESS; +} + +static int config_write_bsc(struct vty *vty) +{ + vty_out(vty, "bsc%s", VTY_NEWLINE); + vty_out(vty, " mid-call-timeout %d%s", bsc_gsmnet->mid_call_timeout, VTY_NEWLINE); + if (bsc_gsmnet->rf_ctrl_name) + vty_out(vty, " bsc-rf-socket %s%s", + bsc_gsmnet->rf_ctrl_name, VTY_NEWLINE); + + if (bsc_gsmnet->auto_off_timeout != -1) + vty_out(vty, " bsc-auto-rf-off %d%s", + bsc_gsmnet->auto_off_timeout, VTY_NEWLINE); + + return CMD_SUCCESS; +} + +DEFUN(cfg_net_bsc_ncc, + cfg_net_bsc_ncc_cmd, + "core-mobile-network-code <1-999>", + "Use this network code for the core network\n" "MNC value\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + uint16_t mnc; + bool mnc_3_digits; + + if (osmo_mnc_from_str(argv[0], &mnc, &mnc_3_digits)) { + vty_out(vty, "%% Error decoding MNC: %s%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + data->core_plmn.mnc = mnc; + data->core_plmn.mnc_3_digits = mnc_3_digits; + return CMD_SUCCESS; +} + +DEFUN(cfg_net_bsc_mcc, + cfg_net_bsc_mcc_cmd, + "core-mobile-country-code <1-999>", + "Use this country code for the core network\n" "MCC value\n") +{ + uint16_t mcc; + struct bsc_msc_data *data = bsc_msc_data(vty); + if (osmo_mcc_from_str(argv[0], &mcc)) { + vty_out(vty, "%% Error decoding MCC: %s%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + data->core_plmn.mcc = mcc; + return CMD_SUCCESS; +} + +DEFUN(cfg_net_bsc_lac, + cfg_net_bsc_lac_cmd, + "core-location-area-code <0-65535>", + "Use this location area code for the core network\n" "LAC value\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + data->core_lac = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_bsc_ci, + cfg_net_bsc_ci_cmd, + "core-cell-identity <0-65535>", + "Use this cell identity for the core network\n" "CI value\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + data->core_ci = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN_DEPRECATED(cfg_net_bsc_rtp_base, + cfg_net_bsc_rtp_base_cmd, + "ip.access rtp-base <1-65000>", + "deprecated\n" "deprecated, RTP is handled by the MGW\n" "deprecated\n") +{ + vty_out(vty, "%% deprecated: 'ip.access rtp-base' has no effect, RTP is handled by the MGW%s", VTY_NEWLINE); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_bsc_codec_list, + cfg_net_bsc_codec_list_cmd, + "codec-list .LIST", + "Set the allowed audio codecs\n" + "List of audio codecs, e.g. fr3 fr1 hr3\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + int i; + + /* free the old list... if it exists */ + if (data->audio_support) { + talloc_free(data->audio_support); + data->audio_support = NULL; + data->audio_length = 0; + } + + /* create a new array */ + data->audio_support = + talloc_zero_array(bsc_gsmnet, struct gsm_audio_support *, argc); + data->audio_length = argc; + + for (i = 0; i < argc; ++i) { + /* check for hrX or frX */ + if (strlen(argv[i]) != 3 + || argv[i][1] != 'r' + || (argv[i][0] != 'h' && argv[i][0] != 'f') + || argv[i][2] < 0x30 + || argv[i][2] > 0x39) + goto error; + + data->audio_support[i] = talloc_zero(data->audio_support, + struct gsm_audio_support); + data->audio_support[i]->ver = atoi(argv[i] + 2); + + if (strncmp("hr", argv[i], 2) == 0) + data->audio_support[i]->hr = 1; + else if (strncmp("fr", argv[i], 2) == 0) + data->audio_support[i]->hr = 0; + } + + return CMD_SUCCESS; + +error: + vty_out(vty, "Codec name must be hrX or frX. Was '%s'%s", + argv[i], VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; +} + +#define LEGACY_STR "This command has no effect, it is kept to support legacy config files\n" + +DEFUN_DEPRECATED(deprecated_ussd_text, + cfg_net_msc_welcome_ussd_cmd, + "bsc-welcome-text .TEXT", LEGACY_STR LEGACY_STR) +{ + vty_out(vty, "%% osmo-bsc no longer supports USSD notification. These commands have no effect:%s" + "%% bsc-welcome-text, bsc-msc-lost-text, mid-call-text, bsc-grace-text, missing-msc-text%s", + VTY_NEWLINE, VTY_NEWLINE); + return CMD_WARNING; +} + +DEFUN_DEPRECATED(deprecated_no_ussd_text, + cfg_net_msc_no_welcome_ussd_cmd, + "no bsc-welcome-text", + NO_STR LEGACY_STR) +{ + return CMD_SUCCESS; +} + +ALIAS_DEPRECATED(deprecated_ussd_text, + cfg_net_msc_lost_ussd_cmd, + "bsc-msc-lost-text .TEXT", LEGACY_STR LEGACY_STR); + +ALIAS_DEPRECATED(deprecated_no_ussd_text, + cfg_net_msc_no_lost_ussd_cmd, + "no bsc-msc-lost-text", NO_STR LEGACY_STR); + +ALIAS_DEPRECATED(deprecated_ussd_text, + cfg_net_msc_grace_ussd_cmd, + "bsc-grace-text .TEXT", LEGACY_STR LEGACY_STR); + +ALIAS_DEPRECATED(deprecated_no_ussd_text, + cfg_net_msc_no_grace_ussd_cmd, + "no bsc-grace-text", NO_STR LEGACY_STR); + +ALIAS_DEPRECATED(deprecated_ussd_text, + cfg_net_bsc_missing_msc_ussd_cmd, + "missing-msc-text .TEXT", LEGACY_STR LEGACY_STR); + +ALIAS_DEPRECATED(deprecated_no_ussd_text, + cfg_net_bsc_no_missing_msc_text_cmd, + "no missing-msc-text", NO_STR LEGACY_STR); + +DEFUN_DEPRECATED(cfg_net_msc_type, + cfg_net_msc_type_cmd, + "type (normal|local)", + LEGACY_STR LEGACY_STR) +{ + vty_out(vty, "%% 'msc' / 'type' config is deprecated and no longer has any effect%s", + VTY_NEWLINE); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_msc_emerg, + cfg_net_msc_emerg_cmd, + "allow-emergency (allow|deny)", + "Allow CM ServiceRequests with type emergency\n" + "Allow\n" "Deny\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + data->allow_emerg = strcmp("allow", argv[0]) == 0; + return CMD_SUCCESS; +} + +#define AMR_CONF_STR "AMR Multirate Configuration\n" +#define AMR_COMMAND(name) \ + DEFUN(cfg_net_msc_amr_##name, \ + cfg_net_msc_amr_##name##_cmd, \ + "amr-config " #name "k (allowed|forbidden)", \ + AMR_CONF_STR "Bitrate\n" "Allowed\n" "Forbidden\n") \ +{ \ + struct bsc_msc_data *msc = bsc_msc_data(vty); \ + \ + msc->amr_conf.m##name = strcmp(argv[0], "allowed") == 0; \ + return CMD_SUCCESS; \ +} + +AMR_COMMAND(12_2) +AMR_COMMAND(10_2) +AMR_COMMAND(7_95) +AMR_COMMAND(7_40) +AMR_COMMAND(6_70) +AMR_COMMAND(5_90) +AMR_COMMAND(5_15) +AMR_COMMAND(4_75) + +/* Make sure only standard SSN numbers are used. If no ssn number is + * configured, silently apply the default SSN */ +static void enforce_standard_ssn(struct vty *vty, struct osmo_sccp_addr *addr) +{ + if (addr->presence & OSMO_SCCP_ADDR_T_SSN) { + if (addr->ssn != OSMO_SCCP_SSN_BSSAP) + vty_out(vty, + "setting an SSN (%u) different from the standard (%u) is not allowed, will use standard SSN for address: %s%s", + addr->ssn, OSMO_SCCP_SSN_BSSAP, osmo_sccp_addr_dump(addr), VTY_NEWLINE); + } + + addr->presence |= OSMO_SCCP_ADDR_T_SSN; + addr->ssn = OSMO_SCCP_SSN_BSSAP; +} + +DEFUN(cfg_msc_cs7_bsc_addr, + cfg_msc_cs7_bsc_addr_cmd, + "bsc-addr NAME", + "Calling Address (local address of this BSC)\n" "SCCP address name\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + const char *bsc_addr_name = argv[0]; + struct osmo_ss7_instance *ss7; + + ss7 = osmo_sccp_addr_by_name(&msc->a.bsc_addr, bsc_addr_name); + if (!ss7) { + vty_out(vty, "Error: No such SCCP addressbook entry: '%s'%s", bsc_addr_name, VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + /* Prevent mixing addresses from different CS7/SS7 instances */ + if (msc->a.cs7_instance_valid) { + if (msc->a.cs7_instance != ss7->cfg.id) { + vty_out(vty, + "Error: SCCP addressbook entry from mismatching CS7 instance: '%s'%s", + bsc_addr_name, VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + } + + msc->a.cs7_instance = ss7->cfg.id; + msc->a.cs7_instance_valid = true; + enforce_standard_ssn(vty, &msc->a.bsc_addr); + msc->a.bsc_addr_name = talloc_strdup(msc, bsc_addr_name); + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_cs7_msc_addr, + cfg_msc_cs7_msc_addr_cmd, + "msc-addr NAME", + "Called Address (remote address of the MSC)\n" "SCCP address name\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + const char *msc_addr_name = argv[0]; + struct osmo_ss7_instance *ss7; + + ss7 = osmo_sccp_addr_by_name(&msc->a.msc_addr, msc_addr_name); + if (!ss7) { + vty_out(vty, "Error: No such SCCP addressbook entry: '%s'%s", msc_addr_name, VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + /* Prevent mixing addresses from different CS7/SS7 instances */ + if (msc->a.cs7_instance_valid) { + if (msc->a.cs7_instance != ss7->cfg.id) { + vty_out(vty, + "Error: SCCP addressbook entry from mismatching CS7 instance: '%s'%s", + msc_addr_name, VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + } + + msc->a.cs7_instance = ss7->cfg.id; + msc->a.cs7_instance_valid = true; + enforce_standard_ssn(vty, &msc->a.msc_addr); + msc->a.msc_addr_name = talloc_strdup(msc, msc_addr_name); + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_cs7_asp_proto, + cfg_msc_cs7_asp_proto_cmd, + "asp-protocol (m3ua|sua|ipa)", + "A interface protocol to use for this MSC)\n" + "MTP3 User Adaptation\n" + "SCCP User Adaptation\n" + "IPA Multiplex (SCCP Lite)\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + + msc->a.asp_proto = get_string_value(osmo_ss7_asp_protocol_vals, argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_msc_lcls_mode, + cfg_net_msc_lcls_mode_cmd, + "lcls-mode (disabled|mgw-loop|bts-loop)", + "Configure 3GPP LCLS (Local Call, Local Switch)\n" + "Disable LCLS for all calls of this MSC\n" + "Enable LCLS with looping traffic in MGW\n" + "Enable LCLS with looping traffic between BTS\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + data->lcls_mode = get_string_value(bsc_lcls_mode_names, argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_msc_lcls_mismtch, + cfg_net_msc_lcls_mismtch_cmd, + "lcls-codec-mismatch (allowed|forbidden)", + "Allow 3GPP LCLS (Local Call, Local Switch) when call legs use different codec/rate\n" + "Allow LCLS only only for calls that use the same codec/rate on both legs\n" + "Do not Allow LCLS for calls that use a different codec/rate on both legs\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + + if (strcmp(argv[0], "allowed") == 0) + data->lcls_codec_mismatch_allow = true; + else + data->lcls_codec_mismatch_allow = false; + + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_mgw_x_osmo_ign, + cfg_msc_mgw_x_osmo_ign_cmd, + "mgw x-osmo-ign call-id", + MGCP_CLIENT_MGW_STR + "Set a (non-standard) X-Osmo-IGN header in all CRCX messages for RTP streams" + " associated with this MSC, useful for A/SCCPlite MSCs, since osmo-bsc cannot know" + " the MSC's chosen CallID. This is enabled by default for A/SCCPlite connections," + " disabled by default for all others.\n" + "Send 'X-Osmo-IGN: C' to ignore CallID mismatches. See OsmoMGW.\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->x_osmo_ign |= MGCP_X_OSMO_IGN_CALLID; + msc->x_osmo_ign_configured = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_no_mgw_x_osmo_ign, + cfg_msc_no_mgw_x_osmo_ign_cmd, + "no mgw x-osmo-ign", + NO_STR + MGCP_CLIENT_MGW_STR + "Do not send X-Osmo-IGN MGCP header to this MSC\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->x_osmo_ign = 0; + msc->x_osmo_ign_configured = true; + return CMD_SUCCESS; +} + +#define OSMUX_STR "RTP multiplexing\n" +DEFUN(cfg_msc_osmux, + cfg_msc_osmux_cmd, + "osmux (on|off|only)", + OSMUX_STR "Enable OSMUX\n" "Disable OSMUX\n" "Only use OSMUX\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + if (strcmp(argv[0], "off") == 0) + msc->use_osmux = OSMUX_USAGE_OFF; + else if (strcmp(argv[0], "on") == 0) + msc->use_osmux = OSMUX_USAGE_ON; + else if (strcmp(argv[0], "only") == 0) + msc->use_osmux = OSMUX_USAGE_ONLY; + + return CMD_SUCCESS; +} + +ALIAS_DEPRECATED(deprecated_ussd_text, + cfg_net_bsc_mid_call_text_cmd, + "mid-call-text .TEXT", + LEGACY_STR LEGACY_STR); + +DEFUN(cfg_net_bsc_mid_call_timeout, + cfg_net_bsc_mid_call_timeout_cmd, + "mid-call-timeout NR", + "Switch from Grace to Off in NR seconds.\n" "Timeout in seconds\n") +{ + bsc_gsmnet->mid_call_timeout = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_rf_socket, + cfg_net_rf_socket_cmd, + "bsc-rf-socket PATH", + "Set the filename for the RF control interface.\n" "RF Control path\n") +{ + osmo_talloc_replace_string(bsc_gsmnet, &bsc_gsmnet->rf_ctrl_name, argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_rf_off_time, + cfg_net_rf_off_time_cmd, + "bsc-auto-rf-off <1-65000>", + "Disable RF on MSC Connection\n" "Timeout\n") +{ + bsc_gsmnet->auto_off_timeout = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_net_no_rf_off_time, + cfg_net_no_rf_off_time_cmd, + "no bsc-auto-rf-off", + NO_STR "Disable RF on MSC Connection\n") +{ + bsc_gsmnet->auto_off_timeout = -1; + return CMD_SUCCESS; +} + +DEFUN(show_statistics, + show_statistics_cmd, + "show statistics", + SHOW_STR "Statistics about the BSC\n") +{ + openbsc_vty_print_statistics(vty, bsc_gsmnet); + return CMD_SUCCESS; +} + +DEFUN(show_mscs, + show_mscs_cmd, + "show mscs", + SHOW_STR "MSC Connections and State\n") +{ + struct bsc_msc_data *msc; + llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) { + vty_out(vty, "%d %s %s ", + msc->a.cs7_instance, + osmo_ss7_asp_protocol_name(msc->a.asp_proto), + osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.bsc_addr)); + vty_out(vty, "%s%s", + osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.msc_addr), + VTY_NEWLINE); + } + + return CMD_SUCCESS; +} + +DEFUN(show_pos, + show_pos_cmd, + "show position", + SHOW_STR "Position information of the BTS\n") +{ + struct gsm_bts *bts; + struct bts_location *curloc; + struct tm time; + char timestr[50]; + + llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { + if (llist_empty(&bts->loc_list)) { + vty_out(vty, "BTS Nr: %d position invalid%s", bts->nr, + VTY_NEWLINE); + continue; + } + curloc = llist_entry(bts->loc_list.next, struct bts_location, list); + if (gmtime_r(&curloc->tstamp, &time) == NULL) { + vty_out(vty, "Time conversion failed for BTS %d%s", bts->nr, + VTY_NEWLINE); + continue; + } + if (asctime_r(&time, timestr) == NULL) { + vty_out(vty, "Time conversion failed for BTS %d%s", bts->nr, + VTY_NEWLINE); + continue; + } + /* Last character in asctime is \n */ + timestr[strlen(timestr)-1] = 0; + + vty_out(vty, "BTS Nr: %d position: %s time: %s%s", bts->nr, + get_value_string(bts_loc_fix_names, curloc->valid), timestr, + VTY_NEWLINE); + vty_out(vty, " lat: %f lon: %f height: %f%s", curloc->lat, curloc->lon, + curloc->height, VTY_NEWLINE); + } + return CMD_SUCCESS; +} + +DEFUN(gen_position_trap, + gen_position_trap_cmd, + "generate-location-state-trap <0-255>", + "Generate location state report\n" + "BTS to report\n") +{ + int bts_nr; + struct gsm_bts *bts; + struct gsm_network *net = bsc_gsmnet; + + bts_nr = atoi(argv[0]); + if (bts_nr >= net->num_bts) { + vty_out(vty, "%% can't find BTS '%s'%s", argv[0], + VTY_NEWLINE); + return CMD_WARNING; + } + + bts = gsm_bts_num(net, bts_nr); + bsc_gen_location_state_trap(bts); + return CMD_SUCCESS; +} + +DEFUN(logging_fltr_imsi, + logging_fltr_imsi_cmd, + "logging filter imsi IMSI", + LOGGING_STR FILTER_STR + "Filter log messages by IMSI\n" "IMSI to be used as filter\n") +{ + struct bsc_subscr *bsc_subscr; + struct log_target *tgt = osmo_log_vty2tgt(vty); + const char *imsi = argv[0]; + + if (!tgt) + return CMD_WARNING; + + bsc_subscr = bsc_subscr_find_or_create_by_imsi(bsc_gsmnet->bsc_subscribers, imsi); + + if (!bsc_subscr) { + vty_out(vty, "%%failed to enable logging for subscriber with IMSI(%s)%s", + imsi, VTY_NEWLINE); + return CMD_WARNING; + } + + log_set_filter_bsc_subscr(tgt, bsc_subscr); + /* log_set_filter has grabbed its own reference */ + bsc_subscr_put(bsc_subscr); + + return CMD_SUCCESS; +} + +static void dump_one_sub(struct vty *vty, struct bsc_subscr *bsub) +{ + vty_out(vty, " %15s %08x %5u %d%s", bsub->imsi, bsub->tmsi, bsub->lac, bsub->use_count, + VTY_NEWLINE); +} + +DEFUN(show_subscr_all, + show_subscr_all_cmd, + "show subscriber all", + SHOW_STR "Display information about subscribers\n" "All Subscribers\n") +{ + struct bsc_subscr *bsc_subscr; + + vty_out(vty, " IMSI TMSI LAC Use%s", VTY_NEWLINE); + /* " 001010123456789 ffffffff 65534 1" */ + + llist_for_each_entry(bsc_subscr, bsc_gsmnet->bsc_subscribers, entry) + dump_one_sub(vty, bsc_subscr); + + return CMD_SUCCESS; +} + +DEFUN_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_ping_time_cmd, + "timeout-ping ARG", LEGACY_STR "-\n") +{ + vty_out(vty, "%% timeout-ping / timeout-pong config is deprecated and has no effect%s", + VTY_NEWLINE); + return CMD_WARNING; +} + +ALIAS_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_no_ping_time_cmd, + "no timeout-ping [ARG]", NO_STR LEGACY_STR "-\n"); + +ALIAS_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_pong_time_cmd, + "timeout-pong ARG", LEGACY_STR "-\n"); + +DEFUN_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_dest_cmd, + "dest A.B.C.D <1-65000> <0-255>", LEGACY_STR "-\n" "-\n" "-\n") +{ + vty_out(vty, "%% dest config is deprecated and has no effect%s", VTY_NEWLINE); + return CMD_WARNING; +} + +ALIAS_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_no_dest_cmd, + "no dest A.B.C.D <1-65000> <0-255>", NO_STR LEGACY_STR "-\n" "-\n" "-\n"); + +DEFUN(cfg_net_msc_amr_octet_align, + cfg_net_msc_amr_octet_align_cmd, + "amr-payload (octet-aligned|bandwith-efficient", + "Set AMR payload framing mode\n" + "payload fields aligned on octet boundaries\n" + "payload fields packed (AoIP)\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + + if (strcmp(argv[0], "octet-aligned") == 0) + data->amr_octet_aligned = true; + else if (strcmp(argv[0], "bandwith-efficient") == 0) + data->amr_octet_aligned = false; + + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_nri_add, cfg_msc_nri_add_cmd, + "nri add <0-32767> [<0-32767>]", + NRI_STR "Add NRI value or range to the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + struct bsc_msc_data *other_msc; + bool before; + int rc; + const char *message; + struct osmo_nri_range add_range; + + rc = osmo_nri_ranges_vty_add(&message, &add_range, msc->nri_ranges, argc, argv, bsc_gsmnet->nri_bitlen); + if (message) { + NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + + /* Issue a warning about NRI range overlaps (but still allow them). + * Overlapping ranges will map to whichever MSC comes fist in the bsc_gsmnet->mscs llist, + * which is not necessarily in the order of increasing msc->nr. */ + before = true; + llist_for_each_entry(other_msc, &bsc_gsmnet->mscs, entry) { + if (other_msc == msc) { + before = false; + continue; + } + if (osmo_nri_range_overlaps_ranges(&add_range, other_msc->nri_ranges)) { + NRI_WARN(msc, "NRI range [%d..%d] overlaps between msc %d and msc %d." + " For overlaps, msc %d has higher priority than msc %d", + add_range.first, add_range.last, msc->nr, other_msc->nr, + before ? other_msc->nr : msc->nr, before ? msc->nr : other_msc->nr); + } + } + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_nri_del, cfg_msc_nri_del_cmd, + "nri del <0-32767> [<0-32767>]", + NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" + NRI_FIRST_LAST_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + int rc; + const char *message; + + rc = osmo_nri_ranges_vty_del(&message, NULL, msc->nri_ranges, argc, argv); + if (message) { + NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); + } + if (rc < 0) + return CMD_WARNING; + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_allow_attach, cfg_msc_allow_attach_cmd, + "allow-attach", + "Allow this MSC to attach new subscribers (default).\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->allow_attach = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_msc_no_allow_attach, cfg_msc_no_allow_attach_cmd, + "no allow-attach", + NO_STR + "Do not assign new subscribers to this MSC." + " Useful if an MSC in an MSC pool is configured to off-load subscribers." + " The MSC will still be operational for already IMSI-Attached subscribers," + " but the NAS node selection function will skip this MSC for new subscribers\n") +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc->allow_attach = false; + return CMD_SUCCESS; +} + +static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose) +{ + struct osmo_nri_range *r; + + if (verbose) { + vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); + if (llist_empty(&msc->nri_ranges->entries)) { + vty_out(vty, " %% no NRI mappings%s", VTY_NEWLINE); + return; + } + } + + llist_for_each_entry(r, &msc->nri_ranges->entries, entry) { + if (osmo_nri_range_validate(r, 255)) + vty_out(vty, " %% INVALID RANGE:"); + vty_out(vty, " nri add %d", r->first); + if (r->first != r->last) + vty_out(vty, " %d", r->last); + vty_out(vty, "%s", VTY_NEWLINE); + } +} + +DEFUN(cfg_msc_show_nri, cfg_msc_show_nri_cmd, + "show nri", + SHOW_STR NRI_STR) +{ + struct bsc_msc_data *msc = bsc_msc_data(vty); + msc_write_nri(vty, msc, true); + return CMD_SUCCESS; +} + +DEFUN(show_nri, show_nri_cmd, + "show nri [" MSC_NR_RANGE "]", + SHOW_STR NRI_STR "Optional MSC number to limit to\n") +{ + struct bsc_msc_data *msc; + if (argc > 0) { + int msc_nr = atoi(argv[0]); + msc = osmo_msc_data_find(bsc_gsmnet, msc_nr); + if (!msc) { + vty_out(vty, "%% No such MSC%s", VTY_NEWLINE); + return CMD_SUCCESS; + } + msc_write_nri(vty, msc, true); + return CMD_SUCCESS; + } + + llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) { + msc_write_nri(vty, msc, true); + } + return CMD_SUCCESS; +} + +/* Hidden since it exists only for use by ttcn3 tests */ +DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, + "mscpool roundrobin next " MSC_NR_RANGE, + "MSC pooling: load balancing across multiple MSCs.\n" + "Adjust current state of the MSC round-robin algorithm (for testing).\n" + "Set the MSC nr to direct the next new subscriber to (for testing).\n" + "MSC number, as in the config file; if the number does not exist," + " the round-robin continues to the next valid number.\n") +{ + bsc_gsmnet->mscs_round_robin_next_nr = atoi(argv[0]); + return CMD_SUCCESS; +} int bsc_vty_init(struct gsm_network *network) { @@ -5639,7 +6544,76 @@ cbc_vty_init(); smscb_vty_init(); - bsc_vty_init_extra(); + install_element(CONFIG_NODE, &cfg_net_msc_cmd); + install_element(CONFIG_NODE, &cfg_net_bsc_cmd); + + install_node(&bsc_node, config_write_bsc); + install_element(BSC_NODE, &cfg_net_bsc_mid_call_text_cmd); + install_element(BSC_NODE, &cfg_net_bsc_mid_call_timeout_cmd); + install_element(BSC_NODE, &cfg_net_rf_socket_cmd); + install_element(BSC_NODE, &cfg_net_rf_off_time_cmd); + install_element(BSC_NODE, &cfg_net_no_rf_off_time_cmd); + install_element(BSC_NODE, &cfg_net_bsc_missing_msc_ussd_cmd); + install_element(BSC_NODE, &cfg_net_bsc_no_missing_msc_text_cmd); + + install_node(&msc_node, config_write_msc); + install_element(MSC_NODE, &cfg_net_bsc_ncc_cmd); + install_element(MSC_NODE, &cfg_net_bsc_mcc_cmd); + install_element(MSC_NODE, &cfg_net_bsc_lac_cmd); + install_element(MSC_NODE, &cfg_net_bsc_ci_cmd); + install_element(MSC_NODE, &cfg_net_bsc_rtp_base_cmd); + install_element(MSC_NODE, &cfg_net_bsc_codec_list_cmd); + install_element(MSC_NODE, &cfg_net_msc_dest_cmd); + install_element(MSC_NODE, &cfg_net_msc_no_dest_cmd); + install_element(MSC_NODE, &cfg_net_msc_welcome_ussd_cmd); + install_element(MSC_NODE, &cfg_net_msc_no_welcome_ussd_cmd); + install_element(MSC_NODE, &cfg_net_msc_lost_ussd_cmd); + install_element(MSC_NODE, &cfg_net_msc_no_lost_ussd_cmd); + install_element(MSC_NODE, &cfg_net_msc_grace_ussd_cmd); + install_element(MSC_NODE, &cfg_net_msc_no_grace_ussd_cmd); + install_element(MSC_NODE, &cfg_net_msc_type_cmd); + install_element(MSC_NODE, &cfg_net_msc_emerg_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_12_2_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_10_2_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_7_95_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_7_40_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_6_70_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_5_90_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_5_15_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_4_75_cmd); + install_element(MSC_NODE, &cfg_net_msc_amr_octet_align_cmd); + install_element(MSC_NODE, &cfg_net_msc_lcls_mode_cmd); + install_element(MSC_NODE, &cfg_net_msc_lcls_mismtch_cmd); + install_element(MSC_NODE, &cfg_msc_cs7_bsc_addr_cmd); + install_element(MSC_NODE, &cfg_msc_cs7_msc_addr_cmd); + install_element(MSC_NODE, &cfg_msc_cs7_asp_proto_cmd); + install_element(MSC_NODE, &cfg_msc_nri_add_cmd); + install_element(MSC_NODE, &cfg_msc_nri_del_cmd); + install_element(MSC_NODE, &cfg_msc_show_nri_cmd); + install_element(MSC_NODE, &cfg_msc_allow_attach_cmd); + install_element(MSC_NODE, &cfg_msc_no_allow_attach_cmd); + + /* Deprecated: ping time config, kept to support legacy config files. */ + install_element(MSC_NODE, &cfg_net_msc_no_ping_time_cmd); + install_element(MSC_NODE, &cfg_net_msc_ping_time_cmd); + install_element(MSC_NODE, &cfg_net_msc_pong_time_cmd); + + install_element_ve(&show_statistics_cmd); + install_element_ve(&show_mscs_cmd); + install_element_ve(&show_pos_cmd); + install_element_ve(&logging_fltr_imsi_cmd); + install_element_ve(&show_subscr_all_cmd); + install_element_ve(&show_nri_cmd); + + install_element(ENABLE_NODE, &gen_position_trap_cmd); + install_element(ENABLE_NODE, &mscpool_roundrobin_next_cmd); + + install_element(CFG_LOG_NODE, &logging_fltr_imsi_cmd); + + mgcp_client_vty_init(network, MSC_NODE, network->mgw.conf); + install_element(MSC_NODE, &cfg_msc_mgw_x_osmo_ign_cmd); + install_element(MSC_NODE, &cfg_msc_no_mgw_x_osmo_ign_cmd); + install_element(MSC_NODE, &cfg_msc_osmux_cmd); return 0; } diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c deleted file mode 100644 index a1cfe4f..0000000 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ /dev/null @@ -1,1029 +0,0 @@ -/* Osmo BSC VTY Configuration */ -/* (C) 2009-2015 by Holger Hans Peter Freyther - * (C) 2009-2014 by On-Waves - * (C) 2018 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 - -static struct bsc_msc_data *bsc_msc_data(struct vty *vty) -{ - return vty->index; -} - -static struct cmd_node bsc_node = { - BSC_NODE, - "%s(config-bsc)# ", - 1, -}; - -static struct cmd_node msc_node = { - MSC_NODE, - "%s(config-msc)# ", - 1, -}; - -#define MSC_NR_RANGE "<0-1000>" - -DEFUN(cfg_net_msc, cfg_net_msc_cmd, - "msc [" MSC_NR_RANGE "]", "Configure MSC details\n" "MSC connection to configure\n") -{ - int index = argc == 1 ? atoi(argv[0]) : 0; - struct bsc_msc_data *msc; - - msc = osmo_msc_data_alloc(bsc_gsmnet, index); - if (!msc) { - vty_out(vty, "%%Failed to allocate MSC data.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vty->index = msc; - vty->node = MSC_NODE; - return CMD_SUCCESS; -} - -DEFUN(cfg_net_bsc, cfg_net_bsc_cmd, - "bsc", "Configure BSC\n") -{ - vty->node = BSC_NODE; - return CMD_SUCCESS; -} - -static void write_msc_amr_options(struct vty *vty, struct bsc_msc_data *msc) -{ -#define WRITE_AMR(vty, msc, name, var) \ - vty_out(vty, " amr-config %s %s%s", \ - name, msc->amr_conf.var ? "allowed" : "forbidden", \ - VTY_NEWLINE); - - WRITE_AMR(vty, msc, "12_2k", m12_2); - WRITE_AMR(vty, msc, "10_2k", m10_2); - WRITE_AMR(vty, msc, "7_95k", m7_95); - WRITE_AMR(vty, msc, "7_40k", m7_40); - WRITE_AMR(vty, msc, "6_70k", m6_70); - WRITE_AMR(vty, msc, "5_90k", m5_90); - WRITE_AMR(vty, msc, "5_15k", m5_15); - WRITE_AMR(vty, msc, "4_75k", m4_75); -#undef WRITE_AMR - - if (msc->amr_octet_aligned) - vty_out(vty, " amr-payload octet-aligned%s", VTY_NEWLINE); - else - vty_out(vty, " amr-payload bandwith-efficient%s", VTY_NEWLINE); -} - -static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose); - -static void write_msc(struct vty *vty, struct bsc_msc_data *msc) -{ - vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); - if (msc->core_plmn.mnc != GSM_MCC_MNC_INVALID) - vty_out(vty, " core-mobile-network-code %s%s", - osmo_mnc_name(msc->core_plmn.mnc, msc->core_plmn.mnc_3_digits), VTY_NEWLINE); - if (msc->core_plmn.mcc != GSM_MCC_MNC_INVALID) - vty_out(vty, " core-mobile-country-code %s%s", - osmo_mcc_name(msc->core_plmn.mcc), VTY_NEWLINE); - if (msc->core_lac != -1) - vty_out(vty, " core-location-area-code %d%s", - msc->core_lac, VTY_NEWLINE); - if (msc->core_ci != -1) - vty_out(vty, " core-cell-identity %d%s", - msc->core_ci, VTY_NEWLINE); - - if (msc->audio_length != 0) { - int i; - - vty_out(vty, " codec-list "); - for (i = 0; i < msc->audio_length; ++i) { - if (i != 0) - vty_out(vty, " "); - - if (msc->audio_support[i]->hr) - vty_out(vty, "hr%.1u", msc->audio_support[i]->ver); - else - vty_out(vty, "fr%.1u", msc->audio_support[i]->ver); - } - vty_out(vty, "%s", VTY_NEWLINE); - - } - - vty_out(vty, " allow-emergency %s%s", msc->allow_emerg ? - "allow" : "deny", VTY_NEWLINE); - - /* write amr options */ - write_msc_amr_options(vty, msc); - - /* write sccp connection configuration */ - if (msc->a.bsc_addr_name) { - vty_out(vty, " bsc-addr %s%s", - msc->a.bsc_addr_name, VTY_NEWLINE); - } - if (msc->a.msc_addr_name) { - vty_out(vty, " msc-addr %s%s", - msc->a.msc_addr_name, VTY_NEWLINE); - } - vty_out(vty, " asp-protocol %s%s", osmo_ss7_asp_protocol_name(msc->a.asp_proto), VTY_NEWLINE); - vty_out(vty, " lcls-mode %s%s", get_value_string(bsc_lcls_mode_names, msc->lcls_mode), - VTY_NEWLINE); - - if (msc->lcls_codec_mismatch_allow) - vty_out(vty, " lcls-codec-mismatch allowed%s", VTY_NEWLINE); - else - vty_out(vty, " lcls-codec-mismatch forbidden%s", VTY_NEWLINE); - - /* write MGW configuration */ - mgcp_client_config_write(vty, " "); - - if (msc->x_osmo_ign_configured) { - if (!msc->x_osmo_ign) - vty_out(vty, " no mgw x-osmo-ign%s", VTY_NEWLINE); - else - vty_out(vty, " mgw x-osmo-ign call-id%s", VTY_NEWLINE); - } - - if (msc->use_osmux != OSMUX_USAGE_OFF) { - vty_out(vty, " osmux %s%s", msc->use_osmux == OSMUX_USAGE_ON ? "on" : "only", - VTY_NEWLINE); - } - - msc_write_nri(vty, msc, false); - - if (!msc->allow_attach) - vty_out(vty, " no allow-attach%s", VTY_NEWLINE); -} - -static int config_write_msc(struct vty *vty) -{ - struct bsc_msc_data *msc; - - llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) - write_msc(vty, msc); - - return CMD_SUCCESS; -} - -static int config_write_bsc(struct vty *vty) -{ - vty_out(vty, "bsc%s", VTY_NEWLINE); - vty_out(vty, " mid-call-timeout %d%s", bsc_gsmnet->mid_call_timeout, VTY_NEWLINE); - if (bsc_gsmnet->rf_ctrl_name) - vty_out(vty, " bsc-rf-socket %s%s", - bsc_gsmnet->rf_ctrl_name, VTY_NEWLINE); - - if (bsc_gsmnet->auto_off_timeout != -1) - vty_out(vty, " bsc-auto-rf-off %d%s", - bsc_gsmnet->auto_off_timeout, VTY_NEWLINE); - - return CMD_SUCCESS; -} - -DEFUN(cfg_net_bsc_ncc, - cfg_net_bsc_ncc_cmd, - "core-mobile-network-code <1-999>", - "Use this network code for the core network\n" "MNC value\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - uint16_t mnc; - bool mnc_3_digits; - - if (osmo_mnc_from_str(argv[0], &mnc, &mnc_3_digits)) { - vty_out(vty, "%% Error decoding MNC: %s%s", argv[0], VTY_NEWLINE); - return CMD_WARNING; - } - data->core_plmn.mnc = mnc; - data->core_plmn.mnc_3_digits = mnc_3_digits; - return CMD_SUCCESS; -} - -DEFUN(cfg_net_bsc_mcc, - cfg_net_bsc_mcc_cmd, - "core-mobile-country-code <1-999>", - "Use this country code for the core network\n" "MCC value\n") -{ - uint16_t mcc; - struct bsc_msc_data *data = bsc_msc_data(vty); - if (osmo_mcc_from_str(argv[0], &mcc)) { - vty_out(vty, "%% Error decoding MCC: %s%s", argv[0], VTY_NEWLINE); - return CMD_WARNING; - } - data->core_plmn.mcc = mcc; - return CMD_SUCCESS; -} - -DEFUN(cfg_net_bsc_lac, - cfg_net_bsc_lac_cmd, - "core-location-area-code <0-65535>", - "Use this location area code for the core network\n" "LAC value\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - data->core_lac = atoi(argv[0]); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_bsc_ci, - cfg_net_bsc_ci_cmd, - "core-cell-identity <0-65535>", - "Use this cell identity for the core network\n" "CI value\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - data->core_ci = atoi(argv[0]); - return CMD_SUCCESS; -} - -DEFUN_DEPRECATED(cfg_net_bsc_rtp_base, - cfg_net_bsc_rtp_base_cmd, - "ip.access rtp-base <1-65000>", - "deprecated\n" "deprecated, RTP is handled by the MGW\n" "deprecated\n") -{ - vty_out(vty, "%% deprecated: 'ip.access rtp-base' has no effect, RTP is handled by the MGW%s", VTY_NEWLINE); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_bsc_codec_list, - cfg_net_bsc_codec_list_cmd, - "codec-list .LIST", - "Set the allowed audio codecs\n" - "List of audio codecs, e.g. fr3 fr1 hr3\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - int i; - - /* free the old list... if it exists */ - if (data->audio_support) { - talloc_free(data->audio_support); - data->audio_support = NULL; - data->audio_length = 0; - } - - /* create a new array */ - data->audio_support = - talloc_zero_array(bsc_gsmnet, struct gsm_audio_support *, argc); - data->audio_length = argc; - - for (i = 0; i < argc; ++i) { - /* check for hrX or frX */ - if (strlen(argv[i]) != 3 - || argv[i][1] != 'r' - || (argv[i][0] != 'h' && argv[i][0] != 'f') - || argv[i][2] < 0x30 - || argv[i][2] > 0x39) - goto error; - - data->audio_support[i] = talloc_zero(data->audio_support, - struct gsm_audio_support); - data->audio_support[i]->ver = atoi(argv[i] + 2); - - if (strncmp("hr", argv[i], 2) == 0) - data->audio_support[i]->hr = 1; - else if (strncmp("fr", argv[i], 2) == 0) - data->audio_support[i]->hr = 0; - } - - return CMD_SUCCESS; - -error: - vty_out(vty, "Codec name must be hrX or frX. Was '%s'%s", - argv[i], VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; -} - -#define LEGACY_STR "This command has no effect, it is kept to support legacy config files\n" - -DEFUN_DEPRECATED(deprecated_ussd_text, - cfg_net_msc_welcome_ussd_cmd, - "bsc-welcome-text .TEXT", LEGACY_STR LEGACY_STR) -{ - vty_out(vty, "%% osmo-bsc no longer supports USSD notification. These commands have no effect:%s" - "%% bsc-welcome-text, bsc-msc-lost-text, mid-call-text, bsc-grace-text, missing-msc-text%s", - VTY_NEWLINE, VTY_NEWLINE); - return CMD_WARNING; -} - -DEFUN_DEPRECATED(deprecated_no_ussd_text, - cfg_net_msc_no_welcome_ussd_cmd, - "no bsc-welcome-text", - NO_STR LEGACY_STR) -{ - return CMD_SUCCESS; -} - -ALIAS_DEPRECATED(deprecated_ussd_text, - cfg_net_msc_lost_ussd_cmd, - "bsc-msc-lost-text .TEXT", LEGACY_STR LEGACY_STR); - -ALIAS_DEPRECATED(deprecated_no_ussd_text, - cfg_net_msc_no_lost_ussd_cmd, - "no bsc-msc-lost-text", NO_STR LEGACY_STR); - -ALIAS_DEPRECATED(deprecated_ussd_text, - cfg_net_msc_grace_ussd_cmd, - "bsc-grace-text .TEXT", LEGACY_STR LEGACY_STR); - -ALIAS_DEPRECATED(deprecated_no_ussd_text, - cfg_net_msc_no_grace_ussd_cmd, - "no bsc-grace-text", NO_STR LEGACY_STR); - -ALIAS_DEPRECATED(deprecated_ussd_text, - cfg_net_bsc_missing_msc_ussd_cmd, - "missing-msc-text .TEXT", LEGACY_STR LEGACY_STR); - -ALIAS_DEPRECATED(deprecated_no_ussd_text, - cfg_net_bsc_no_missing_msc_text_cmd, - "no missing-msc-text", NO_STR LEGACY_STR); - -DEFUN_DEPRECATED(cfg_net_msc_type, - cfg_net_msc_type_cmd, - "type (normal|local)", - LEGACY_STR LEGACY_STR) -{ - vty_out(vty, "%% 'msc' / 'type' config is deprecated and no longer has any effect%s", - VTY_NEWLINE); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_msc_emerg, - cfg_net_msc_emerg_cmd, - "allow-emergency (allow|deny)", - "Allow CM ServiceRequests with type emergency\n" - "Allow\n" "Deny\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - data->allow_emerg = strcmp("allow", argv[0]) == 0; - return CMD_SUCCESS; -} - -#define AMR_CONF_STR "AMR Multirate Configuration\n" -#define AMR_COMMAND(name) \ - DEFUN(cfg_net_msc_amr_##name, \ - cfg_net_msc_amr_##name##_cmd, \ - "amr-config " #name "k (allowed|forbidden)", \ - AMR_CONF_STR "Bitrate\n" "Allowed\n" "Forbidden\n") \ -{ \ - struct bsc_msc_data *msc = bsc_msc_data(vty); \ - \ - msc->amr_conf.m##name = strcmp(argv[0], "allowed") == 0; \ - return CMD_SUCCESS; \ -} - -AMR_COMMAND(12_2) -AMR_COMMAND(10_2) -AMR_COMMAND(7_95) -AMR_COMMAND(7_40) -AMR_COMMAND(6_70) -AMR_COMMAND(5_90) -AMR_COMMAND(5_15) -AMR_COMMAND(4_75) - -/* Make sure only standard SSN numbers are used. If no ssn number is - * configured, silently apply the default SSN */ -static void enforce_standard_ssn(struct vty *vty, struct osmo_sccp_addr *addr) -{ - if (addr->presence & OSMO_SCCP_ADDR_T_SSN) { - if (addr->ssn != OSMO_SCCP_SSN_BSSAP) - vty_out(vty, - "setting an SSN (%u) different from the standard (%u) is not allowed, will use standard SSN for address: %s%s", - addr->ssn, OSMO_SCCP_SSN_BSSAP, osmo_sccp_addr_dump(addr), VTY_NEWLINE); - } - - addr->presence |= OSMO_SCCP_ADDR_T_SSN; - addr->ssn = OSMO_SCCP_SSN_BSSAP; -} - -DEFUN(cfg_msc_cs7_bsc_addr, - cfg_msc_cs7_bsc_addr_cmd, - "bsc-addr NAME", - "Calling Address (local address of this BSC)\n" "SCCP address name\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - const char *bsc_addr_name = argv[0]; - struct osmo_ss7_instance *ss7; - - ss7 = osmo_sccp_addr_by_name(&msc->a.bsc_addr, bsc_addr_name); - if (!ss7) { - vty_out(vty, "Error: No such SCCP addressbook entry: '%s'%s", bsc_addr_name, VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - /* Prevent mixing addresses from different CS7/SS7 instances */ - if (msc->a.cs7_instance_valid) { - if (msc->a.cs7_instance != ss7->cfg.id) { - vty_out(vty, - "Error: SCCP addressbook entry from mismatching CS7 instance: '%s'%s", - bsc_addr_name, VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - } - - msc->a.cs7_instance = ss7->cfg.id; - msc->a.cs7_instance_valid = true; - enforce_standard_ssn(vty, &msc->a.bsc_addr); - msc->a.bsc_addr_name = talloc_strdup(msc, bsc_addr_name); - return CMD_SUCCESS; -} - -DEFUN(cfg_msc_cs7_msc_addr, - cfg_msc_cs7_msc_addr_cmd, - "msc-addr NAME", - "Called Address (remote address of the MSC)\n" "SCCP address name\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - const char *msc_addr_name = argv[0]; - struct osmo_ss7_instance *ss7; - - ss7 = osmo_sccp_addr_by_name(&msc->a.msc_addr, msc_addr_name); - if (!ss7) { - vty_out(vty, "Error: No such SCCP addressbook entry: '%s'%s", msc_addr_name, VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - /* Prevent mixing addresses from different CS7/SS7 instances */ - if (msc->a.cs7_instance_valid) { - if (msc->a.cs7_instance != ss7->cfg.id) { - vty_out(vty, - "Error: SCCP addressbook entry from mismatching CS7 instance: '%s'%s", - msc_addr_name, VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - } - - msc->a.cs7_instance = ss7->cfg.id; - msc->a.cs7_instance_valid = true; - enforce_standard_ssn(vty, &msc->a.msc_addr); - msc->a.msc_addr_name = talloc_strdup(msc, msc_addr_name); - return CMD_SUCCESS; -} - -DEFUN(cfg_msc_cs7_asp_proto, - cfg_msc_cs7_asp_proto_cmd, - "asp-protocol (m3ua|sua|ipa)", - "A interface protocol to use for this MSC)\n" - "MTP3 User Adaptation\n" - "SCCP User Adaptation\n" - "IPA Multiplex (SCCP Lite)\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - - msc->a.asp_proto = get_string_value(osmo_ss7_asp_protocol_vals, argv[0]); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_msc_lcls_mode, - cfg_net_msc_lcls_mode_cmd, - "lcls-mode (disabled|mgw-loop|bts-loop)", - "Configure 3GPP LCLS (Local Call, Local Switch)\n" - "Disable LCLS for all calls of this MSC\n" - "Enable LCLS with looping traffic in MGW\n" - "Enable LCLS with looping traffic between BTS\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - data->lcls_mode = get_string_value(bsc_lcls_mode_names, argv[0]); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_msc_lcls_mismtch, - cfg_net_msc_lcls_mismtch_cmd, - "lcls-codec-mismatch (allowed|forbidden)", - "Allow 3GPP LCLS (Local Call, Local Switch) when call legs use different codec/rate\n" - "Allow LCLS only only for calls that use the same codec/rate on both legs\n" - "Do not Allow LCLS for calls that use a different codec/rate on both legs\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - - if (strcmp(argv[0], "allowed") == 0) - data->lcls_codec_mismatch_allow = true; - else - data->lcls_codec_mismatch_allow = false; - - return CMD_SUCCESS; -} - -DEFUN(cfg_msc_mgw_x_osmo_ign, - cfg_msc_mgw_x_osmo_ign_cmd, - "mgw x-osmo-ign call-id", - MGCP_CLIENT_MGW_STR - "Set a (non-standard) X-Osmo-IGN header in all CRCX messages for RTP streams" - " associated with this MSC, useful for A/SCCPlite MSCs, since osmo-bsc cannot know" - " the MSC's chosen CallID. This is enabled by default for A/SCCPlite connections," - " disabled by default for all others.\n" - "Send 'X-Osmo-IGN: C' to ignore CallID mismatches. See OsmoMGW.\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - msc->x_osmo_ign |= MGCP_X_OSMO_IGN_CALLID; - msc->x_osmo_ign_configured = true; - return CMD_SUCCESS; -} - -DEFUN(cfg_msc_no_mgw_x_osmo_ign, - cfg_msc_no_mgw_x_osmo_ign_cmd, - "no mgw x-osmo-ign", - NO_STR - MGCP_CLIENT_MGW_STR - "Do not send X-Osmo-IGN MGCP header to this MSC\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - msc->x_osmo_ign = 0; - msc->x_osmo_ign_configured = true; - return CMD_SUCCESS; -} - -#define OSMUX_STR "RTP multiplexing\n" -DEFUN(cfg_msc_osmux, - cfg_msc_osmux_cmd, - "osmux (on|off|only)", - OSMUX_STR "Enable OSMUX\n" "Disable OSMUX\n" "Only use OSMUX\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - if (strcmp(argv[0], "off") == 0) - msc->use_osmux = OSMUX_USAGE_OFF; - else if (strcmp(argv[0], "on") == 0) - msc->use_osmux = OSMUX_USAGE_ON; - else if (strcmp(argv[0], "only") == 0) - msc->use_osmux = OSMUX_USAGE_ONLY; - - return CMD_SUCCESS; -} - -ALIAS_DEPRECATED(deprecated_ussd_text, - cfg_net_bsc_mid_call_text_cmd, - "mid-call-text .TEXT", - LEGACY_STR LEGACY_STR); - -DEFUN(cfg_net_bsc_mid_call_timeout, - cfg_net_bsc_mid_call_timeout_cmd, - "mid-call-timeout NR", - "Switch from Grace to Off in NR seconds.\n" "Timeout in seconds\n") -{ - bsc_gsmnet->mid_call_timeout = atoi(argv[0]); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_rf_socket, - cfg_net_rf_socket_cmd, - "bsc-rf-socket PATH", - "Set the filename for the RF control interface.\n" "RF Control path\n") -{ - osmo_talloc_replace_string(bsc_gsmnet, &bsc_gsmnet->rf_ctrl_name, argv[0]); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_rf_off_time, - cfg_net_rf_off_time_cmd, - "bsc-auto-rf-off <1-65000>", - "Disable RF on MSC Connection\n" "Timeout\n") -{ - bsc_gsmnet->auto_off_timeout = atoi(argv[0]); - return CMD_SUCCESS; -} - -DEFUN(cfg_net_no_rf_off_time, - cfg_net_no_rf_off_time_cmd, - "no bsc-auto-rf-off", - NO_STR "Disable RF on MSC Connection\n") -{ - bsc_gsmnet->auto_off_timeout = -1; - return CMD_SUCCESS; -} - -DEFUN(show_statistics, - show_statistics_cmd, - "show statistics", - SHOW_STR "Statistics about the BSC\n") -{ - openbsc_vty_print_statistics(vty, bsc_gsmnet); - return CMD_SUCCESS; -} - -DEFUN(show_mscs, - show_mscs_cmd, - "show mscs", - SHOW_STR "MSC Connections and State\n") -{ - struct bsc_msc_data *msc; - llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) { - vty_out(vty, "%d %s %s ", - msc->a.cs7_instance, - osmo_ss7_asp_protocol_name(msc->a.asp_proto), - osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.bsc_addr)); - vty_out(vty, "%s%s", - osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.msc_addr), - VTY_NEWLINE); - } - - return CMD_SUCCESS; -} - -DEFUN(show_pos, - show_pos_cmd, - "show position", - SHOW_STR "Position information of the BTS\n") -{ - struct gsm_bts *bts; - struct bts_location *curloc; - struct tm time; - char timestr[50]; - - llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { - if (llist_empty(&bts->loc_list)) { - vty_out(vty, "BTS Nr: %d position invalid%s", bts->nr, - VTY_NEWLINE); - continue; - } - curloc = llist_entry(bts->loc_list.next, struct bts_location, list); - if (gmtime_r(&curloc->tstamp, &time) == NULL) { - vty_out(vty, "Time conversion failed for BTS %d%s", bts->nr, - VTY_NEWLINE); - continue; - } - if (asctime_r(&time, timestr) == NULL) { - vty_out(vty, "Time conversion failed for BTS %d%s", bts->nr, - VTY_NEWLINE); - continue; - } - /* Last character in asctime is \n */ - timestr[strlen(timestr)-1] = 0; - - vty_out(vty, "BTS Nr: %d position: %s time: %s%s", bts->nr, - get_value_string(bts_loc_fix_names, curloc->valid), timestr, - VTY_NEWLINE); - vty_out(vty, " lat: %f lon: %f height: %f%s", curloc->lat, curloc->lon, - curloc->height, VTY_NEWLINE); - } - return CMD_SUCCESS; -} - -DEFUN(gen_position_trap, - gen_position_trap_cmd, - "generate-location-state-trap <0-255>", - "Generate location state report\n" - "BTS to report\n") -{ - int bts_nr; - struct gsm_bts *bts; - struct gsm_network *net = bsc_gsmnet; - - bts_nr = atoi(argv[0]); - if (bts_nr >= net->num_bts) { - vty_out(vty, "%% can't find BTS '%s'%s", argv[0], - VTY_NEWLINE); - return CMD_WARNING; - } - - bts = gsm_bts_num(net, bts_nr); - bsc_gen_location_state_trap(bts); - return CMD_SUCCESS; -} - -DEFUN(logging_fltr_imsi, - logging_fltr_imsi_cmd, - "logging filter imsi IMSI", - LOGGING_STR FILTER_STR - "Filter log messages by IMSI\n" "IMSI to be used as filter\n") -{ - struct bsc_subscr *bsc_subscr; - struct log_target *tgt = osmo_log_vty2tgt(vty); - const char *imsi = argv[0]; - - if (!tgt) - return CMD_WARNING; - - bsc_subscr = bsc_subscr_find_or_create_by_imsi(bsc_gsmnet->bsc_subscribers, imsi); - - if (!bsc_subscr) { - vty_out(vty, "%%failed to enable logging for subscriber with IMSI(%s)%s", - imsi, VTY_NEWLINE); - return CMD_WARNING; - } - - log_set_filter_bsc_subscr(tgt, bsc_subscr); - /* log_set_filter has grabbed its own reference */ - bsc_subscr_put(bsc_subscr); - - return CMD_SUCCESS; -} - -static void dump_one_sub(struct vty *vty, struct bsc_subscr *bsub) -{ - vty_out(vty, " %15s %08x %5u %d%s", bsub->imsi, bsub->tmsi, bsub->lac, bsub->use_count, - VTY_NEWLINE); -} - -DEFUN(show_subscr_all, - show_subscr_all_cmd, - "show subscriber all", - SHOW_STR "Display information about subscribers\n" "All Subscribers\n") -{ - struct bsc_subscr *bsc_subscr; - - vty_out(vty, " IMSI TMSI LAC Use%s", VTY_NEWLINE); - /* " 001010123456789 ffffffff 65534 1" */ - - llist_for_each_entry(bsc_subscr, bsc_gsmnet->bsc_subscribers, entry) - dump_one_sub(vty, bsc_subscr); - - return CMD_SUCCESS; -} - -DEFUN_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_ping_time_cmd, - "timeout-ping ARG", LEGACY_STR "-\n") -{ - vty_out(vty, "%% timeout-ping / timeout-pong config is deprecated and has no effect%s", - VTY_NEWLINE); - return CMD_WARNING; -} - -ALIAS_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_no_ping_time_cmd, - "no timeout-ping [ARG]", NO_STR LEGACY_STR "-\n"); - -ALIAS_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_pong_time_cmd, - "timeout-pong ARG", LEGACY_STR "-\n"); - -DEFUN_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_dest_cmd, - "dest A.B.C.D <1-65000> <0-255>", LEGACY_STR "-\n" "-\n" "-\n") -{ - vty_out(vty, "%% dest config is deprecated and has no effect%s", VTY_NEWLINE); - return CMD_WARNING; -} - -ALIAS_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_no_dest_cmd, - "no dest A.B.C.D <1-65000> <0-255>", NO_STR LEGACY_STR "-\n" "-\n" "-\n"); - -DEFUN(cfg_net_msc_amr_octet_align, - cfg_net_msc_amr_octet_align_cmd, - "amr-payload (octet-aligned|bandwith-efficient", - "Set AMR payload framing mode\n" - "payload fields aligned on octet boundaries\n" - "payload fields packed (AoIP)\n") -{ - struct bsc_msc_data *data = bsc_msc_data(vty); - - if (strcmp(argv[0], "octet-aligned") == 0) - data->amr_octet_aligned = true; - else if (strcmp(argv[0], "bandwith-efficient") == 0) - data->amr_octet_aligned = false; - - return CMD_SUCCESS; -} - -#define NRI_STR "Mapping of Network Resource Indicators to this MSC, for MSC pooling\n" -#define NRI_FIRST_LAST_STR "First value of the NRI value range, should not surpass the configured 'nri bitlen'.\n" \ - "Last value of the NRI value range, should not surpass the configured 'nri bitlen' and be larger than the" \ - " first value; if omitted, apply only the first value.\n" - -#define NRI_WARN(MSC, FORMAT, args...) do { \ - vty_out(vty, "%% Warning: msc %d: " FORMAT "%s", MSC->nr, ##args, VTY_NEWLINE); \ - LOGP(DMSC, LOGL_ERROR, "msc %d: " FORMAT "\n", MSC->nr, ##args); \ - } while (0) - -#define NRI_ARGS_TO_STR_FMT "%s%s%s" -#define NRI_ARGS_TO_STR_ARGS(ARGC, ARGV) ARGV[0], (ARGC>1)? ".." : "", (ARGC>1)? ARGV[1] : "" - -DEFUN(cfg_msc_nri_add, cfg_msc_nri_add_cmd, - "nri add <0-32767> [<0-32767>]", - NRI_STR "Add NRI value or range to the NRI mapping for this MSC\n" - NRI_FIRST_LAST_STR) -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - struct bsc_msc_data *other_msc; - bool before; - int rc; - const char *message; - struct osmo_nri_range add_range; - - rc = osmo_nri_ranges_vty_add(&message, &add_range, msc->nri_ranges, argc, argv, bsc_gsmnet->nri_bitlen); - if (message) { - NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); - } - if (rc < 0) - return CMD_WARNING; - - /* Issue a warning about NRI range overlaps (but still allow them). - * Overlapping ranges will map to whichever MSC comes fist in the bsc_gsmnet->mscs llist, - * which is not necessarily in the order of increasing msc->nr. */ - before = true; - llist_for_each_entry(other_msc, &bsc_gsmnet->mscs, entry) { - if (other_msc == msc) { - before = false; - continue; - } - if (osmo_nri_range_overlaps_ranges(&add_range, other_msc->nri_ranges)) { - NRI_WARN(msc, "NRI range [%d..%d] overlaps between msc %d and msc %d." - " For overlaps, msc %d has higher priority than msc %d", - add_range.first, add_range.last, msc->nr, other_msc->nr, - before ? other_msc->nr : msc->nr, before ? msc->nr : other_msc->nr); - } - } - return CMD_SUCCESS; -} - -DEFUN(cfg_msc_nri_del, cfg_msc_nri_del_cmd, - "nri del <0-32767> [<0-32767>]", - NRI_STR "Remove NRI value or range from the NRI mapping for this MSC\n" - NRI_FIRST_LAST_STR) -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - int rc; - const char *message; - - rc = osmo_nri_ranges_vty_del(&message, NULL, msc->nri_ranges, argc, argv); - if (message) { - NRI_WARN(msc, "%s: " NRI_ARGS_TO_STR_FMT, message, NRI_ARGS_TO_STR_ARGS(argc, argv)); - } - if (rc < 0) - return CMD_WARNING; - return CMD_SUCCESS; -} - -DEFUN(cfg_msc_allow_attach, cfg_msc_allow_attach_cmd, - "allow-attach", - "Allow this MSC to attach new subscribers (default).\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - msc->allow_attach = true; - return CMD_SUCCESS; -} - -DEFUN(cfg_msc_no_allow_attach, cfg_msc_no_allow_attach_cmd, - "no allow-attach", - NO_STR - "Do not assign new subscribers to this MSC." - " Useful if an MSC in an MSC pool is configured to off-load subscribers." - " The MSC will still be operational for already IMSI-Attached subscribers," - " but the NAS node selection function will skip this MSC for new subscribers\n") -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - msc->allow_attach = false; - return CMD_SUCCESS; -} - -static void msc_write_nri(struct vty *vty, struct bsc_msc_data *msc, bool verbose) -{ - struct osmo_nri_range *r; - - if (verbose) { - vty_out(vty, "msc %d%s", msc->nr, VTY_NEWLINE); - if (llist_empty(&msc->nri_ranges->entries)) { - vty_out(vty, " %% no NRI mappings%s", VTY_NEWLINE); - return; - } - } - - llist_for_each_entry(r, &msc->nri_ranges->entries, entry) { - if (osmo_nri_range_validate(r, 255)) - vty_out(vty, " %% INVALID RANGE:"); - vty_out(vty, " nri add %d", r->first); - if (r->first != r->last) - vty_out(vty, " %d", r->last); - vty_out(vty, "%s", VTY_NEWLINE); - } -} - -DEFUN(cfg_msc_show_nri, cfg_msc_show_nri_cmd, - "show nri", - SHOW_STR NRI_STR) -{ - struct bsc_msc_data *msc = bsc_msc_data(vty); - msc_write_nri(vty, msc, true); - return CMD_SUCCESS; -} - -DEFUN(show_nri, show_nri_cmd, - "show nri [" MSC_NR_RANGE "]", - SHOW_STR NRI_STR "Optional MSC number to limit to\n") -{ - struct bsc_msc_data *msc; - if (argc > 0) { - int msc_nr = atoi(argv[0]); - msc = osmo_msc_data_find(bsc_gsmnet, msc_nr); - if (!msc) { - vty_out(vty, "%% No such MSC%s", VTY_NEWLINE); - return CMD_SUCCESS; - } - msc_write_nri(vty, msc, true); - return CMD_SUCCESS; - } - - llist_for_each_entry(msc, &bsc_gsmnet->mscs, entry) { - msc_write_nri(vty, msc, true); - } - return CMD_SUCCESS; -} - -DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, - "mscpool roundrobin next " MSC_NR_RANGE, - "MSC pooling: load balancing across multiple MSCs.\n" - "Adjust current state of the MSC round-robin algorithm (for testing).\n" - "Set the MSC nr to direct the next new subscriber to (for testing).\n" - "MSC number, as in the config file; if the number does not exist," - " the round-robin continues to the next valid number.\n") -{ - bsc_gsmnet->mscs_round_robin_next_nr = atoi(argv[0]); - return CMD_SUCCESS; -} - -int bsc_vty_init_extra(void) -{ - struct gsm_network *net = bsc_gsmnet; - - install_element(CONFIG_NODE, &cfg_net_msc_cmd); - install_element(CONFIG_NODE, &cfg_net_bsc_cmd); - - install_node(&bsc_node, config_write_bsc); - install_element(BSC_NODE, &cfg_net_bsc_mid_call_text_cmd); - install_element(BSC_NODE, &cfg_net_bsc_mid_call_timeout_cmd); - install_element(BSC_NODE, &cfg_net_rf_socket_cmd); - install_element(BSC_NODE, &cfg_net_rf_off_time_cmd); - install_element(BSC_NODE, &cfg_net_no_rf_off_time_cmd); - install_element(BSC_NODE, &cfg_net_bsc_missing_msc_ussd_cmd); - install_element(BSC_NODE, &cfg_net_bsc_no_missing_msc_text_cmd); - - install_node(&msc_node, config_write_msc); - install_element(MSC_NODE, &cfg_net_bsc_ncc_cmd); - install_element(MSC_NODE, &cfg_net_bsc_mcc_cmd); - install_element(MSC_NODE, &cfg_net_bsc_lac_cmd); - install_element(MSC_NODE, &cfg_net_bsc_ci_cmd); - install_element(MSC_NODE, &cfg_net_bsc_rtp_base_cmd); - install_element(MSC_NODE, &cfg_net_bsc_codec_list_cmd); - install_element(MSC_NODE, &cfg_net_msc_dest_cmd); - install_element(MSC_NODE, &cfg_net_msc_no_dest_cmd); - install_element(MSC_NODE, &cfg_net_msc_welcome_ussd_cmd); - install_element(MSC_NODE, &cfg_net_msc_no_welcome_ussd_cmd); - install_element(MSC_NODE, &cfg_net_msc_lost_ussd_cmd); - install_element(MSC_NODE, &cfg_net_msc_no_lost_ussd_cmd); - install_element(MSC_NODE, &cfg_net_msc_grace_ussd_cmd); - install_element(MSC_NODE, &cfg_net_msc_no_grace_ussd_cmd); - install_element(MSC_NODE, &cfg_net_msc_type_cmd); - install_element(MSC_NODE, &cfg_net_msc_emerg_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_12_2_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_10_2_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_7_95_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_7_40_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_6_70_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_5_90_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_5_15_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_4_75_cmd); - install_element(MSC_NODE, &cfg_net_msc_amr_octet_align_cmd); - install_element(MSC_NODE, &cfg_net_msc_lcls_mode_cmd); - install_element(MSC_NODE, &cfg_net_msc_lcls_mismtch_cmd); - install_element(MSC_NODE, &cfg_msc_cs7_bsc_addr_cmd); - install_element(MSC_NODE, &cfg_msc_cs7_msc_addr_cmd); - install_element(MSC_NODE, &cfg_msc_cs7_asp_proto_cmd); - install_element(MSC_NODE, &cfg_msc_nri_add_cmd); - install_element(MSC_NODE, &cfg_msc_nri_del_cmd); - install_element(MSC_NODE, &cfg_msc_show_nri_cmd); - install_element(MSC_NODE, &cfg_msc_allow_attach_cmd); - install_element(MSC_NODE, &cfg_msc_no_allow_attach_cmd); - - /* Deprecated: ping time config, kept to support legacy config files. */ - install_element(MSC_NODE, &cfg_net_msc_no_ping_time_cmd); - install_element(MSC_NODE, &cfg_net_msc_ping_time_cmd); - install_element(MSC_NODE, &cfg_net_msc_pong_time_cmd); - - install_element_ve(&show_statistics_cmd); - install_element_ve(&show_mscs_cmd); - install_element_ve(&show_pos_cmd); - install_element_ve(&logging_fltr_imsi_cmd); - install_element_ve(&show_subscr_all_cmd); - install_element_ve(&show_nri_cmd); - - install_element(ENABLE_NODE, &gen_position_trap_cmd); - install_element(ENABLE_NODE, &mscpool_roundrobin_next_cmd); - - install_element(CFG_LOG_NODE, &logging_fltr_imsi_cmd); - - mgcp_client_vty_init(net, MSC_NODE, net->mgw.conf); - install_element(MSC_NODE, &cfg_msc_mgw_x_osmo_ign_cmd); - install_element(MSC_NODE, &cfg_msc_no_mgw_x_osmo_ign_cmd); - install_element(MSC_NODE, &cfg_msc_osmux_cmd); - - return 0; -} diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index fcd171b..736b444 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -82,7 +82,6 @@ $(top_builddir)/src/osmo-bsc/osmo_bsc_lcls.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_mgcp.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_msc.o \ - $(top_builddir)/src/osmo-bsc/osmo_bsc_vty.o \ $(top_builddir)/src/osmo-bsc/paging.o \ $(top_builddir)/src/osmo-bsc/pcu_sock.o \ $(top_builddir)/src/osmo-bsc/penalty_timers.o \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7fd2ee631b22e38f3d96d8159dc1deaaca6a7013 Gerrit-Change-Number: 18892 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 Fri Jun 19 23:44:48 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 19 Jun 2020 23:44:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... Patch Set 3: yep -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 19 Jun 2020 23:44:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 07:32:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 20 Jun 2020 07:32:51 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 20 Jun 2020 07:32: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 Jun 20 14:06:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 14:06:11 +0000 Subject: Change in docker-playground[master]: bsc: adjust osmo-bsc.cfg for MSC pooling tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18775 ) Change subject: bsc: adjust osmo-bsc.cfg for MSC pooling tests ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b Gerrit-Change-Number: 18775 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 20 Jun 2020 14:06: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 Jun 20 14:06:18 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 14:06:18 +0000 Subject: Change in docker-playground[master]: bsc: adjust osmo-bsc.cfg for MSC pooling tests In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18775 ) Change subject: bsc: adjust osmo-bsc.cfg for MSC pooling tests ...................................................................... bsc: adjust osmo-bsc.cfg for MSC pooling tests Depends: I6c251f2744d7be26fc4ad74adefc96a6a3fe08b0 (osmo-bsc) Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b --- M ttcn3-bsc-test/osmo-bsc.cfg 1 file changed, 25 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve neels: Verified diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg index 271b228..d49e6f2 100644 --- a/ttcn3-bsc-test/osmo-bsc.cfg +++ b/ttcn3-bsc-test/osmo-bsc.cfg @@ -58,6 +58,10 @@ cs7 instance 0 asp asp-clnt-msc-0 2905 2905 m3ua remote-ip 172.18.2.200 + sccp-address msc2 + point-code 0.0.2 + sccp-address msc3 + point-code 0.0.3 network network country code 1 mobile network code 1 @@ -389,6 +393,27 @@ codec-list fr1 fr2 fr3 hr1 hr3 mgw remote-ip 172.18.2.203 lcls-mode mgw-loop +msc 1 + msc-addr msc2 + mgw remote-ip 172.18.2.203 +msc 2 + msc-addr msc3 + mgw remote-ip 172.18.2.203 + +network + nri bitlen 10 + # a NULL NRI that is outside the NRI ranges used by the MSCs: + nri null add 0 + # a NULL NRI that is also used by an MSC: + nri null add 1 +msc 0 + nri add 1 255 +msc 1 + nri add 256 511 +msc 2 + nri add 512 767 + # range 768-1024 is not assigned to any MSC on purpose + bsc mid-call-timeout 0 no missing-msc-text -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b Gerrit-Change-Number: 18775 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Jun 20 14:10:52 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 14:10:52 +0000 Subject: Change in docker-playground[master]: bsc: adjust osmo-bsc.cfg for MSC pooling tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18775 ) Change subject: bsc: adjust osmo-bsc.cfg for MSC pooling tests ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18775/1/ttcn3-bsc-test/osmo-bsc.cfg File ttcn3-bsc-test/osmo-bsc.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18775/1/ttcn3-bsc-test/osmo-bsc.cfg at 405 PS1, Line 405: # a > Wow, I wasn't even aware that any other character than '!' can be used for comments in our config fi [?] vty comment characters are exactly '!' and '#', I learned from reading the sources while fixing vty itches. I like '#' much better because it is the more commonly used comment delim. One thing to note in vty: comments don't work on one line with commands, the line needs to *start* with a comment. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I353a2023d41d9f083acdd61da11109cb5a002f9b Gerrit-Change-Number: 18775 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 20 Jun 2020 14:10:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 16:28:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 20 Jun 2020 16:28:32 +0000 Subject: Change in osmo-bts[master]: configure: Use subdir-objects In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18906 ) Change subject: configure: Use subdir-objects ...................................................................... Patch Set 2: we have tried several times to use subdir-objects, always unsuccessfully. Hence we simply ignore the warning :/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If68bcdf28e1d9f66c6bc91cc2c257665224b3adb Gerrit-Change-Number: 18906 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 20 Jun 2020 16:28: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 Sat Jun 20 16:42:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 16:42:53 +0000 Subject: Change in docker-playground[master]: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18928 ) Change subject: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run ...................................................................... attempt to capture core dump from osmo-stp during ttcn3-bsc-test run Change-Id: Idd67fcb3f564b9cff9b4596bf639ed1bd1b58daf --- M osmo-stp-master/Dockerfile M ttcn3-bsc-test/jenkins.sh 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/28/18928/1 diff --git a/osmo-stp-master/Dockerfile b/osmo-stp-master/Dockerfile index a91313f..6396b32 100644 --- a/osmo-stp-master/Dockerfile +++ b/osmo-stp-master/Dockerfile @@ -38,7 +38,7 @@ ;; \ esac -WORKDIR /tmp +WORKDIR /data ARG OSMO_STP_BRANCH="master" diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 7db65d2..0f6f2ce 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -24,6 +24,7 @@ --network $NET_NAME --ip 172.18.2.200 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ + --ulimit core=-1 \ $DOCKER_ARGS \ $REPO_USER/osmo-stp-$IMAGE_SUFFIX -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idd67fcb3f564b9cff9b4596bf639ed1bd1b58daf Gerrit-Change-Number: 18928 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 16:44:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 16:44:14 +0000 Subject: Change in docker-playground[master]: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/18928 ) Change subject: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run ...................................................................... attempt to capture core dump from osmo-stp during ttcn3-bsc-test run When launching osmo-stp-master from ttcn3-bsc-test, set ulimit=-1 to allow core files. In osmo-stp-master set WORKDIR to /data to hopefully get the core file ending up there without the need to set a /proc/sys/kernel/core_pattern globally in the jenkins slave. Change-Id: Idd67fcb3f564b9cff9b4596bf639ed1bd1b58daf --- M osmo-stp-master/Dockerfile M ttcn3-bsc-test/jenkins.sh 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/28/18928/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idd67fcb3f564b9cff9b4596bf639ed1bd1b58daf Gerrit-Change-Number: 18928 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 Sat Jun 20 16:45:11 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 16:45:11 +0000 Subject: Change in docker-playground[master]: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18928 ) Change subject: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run ...................................................................... Patch Set 2: Verified+1 Code-Review+2 fast track this because I need to investigate test fallout -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idd67fcb3f564b9cff9b4596bf639ed1bd1b58daf Gerrit-Change-Number: 18928 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-Comment-Date: Sat, 20 Jun 2020 16:45: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 Jun 20 16:45:15 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 16:45:15 +0000 Subject: Change in docker-playground[master]: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18928 ) Change subject: attempt to capture core dump from osmo-stp during ttcn3-bsc-test run ...................................................................... attempt to capture core dump from osmo-stp during ttcn3-bsc-test run When launching osmo-stp-master from ttcn3-bsc-test, set ulimit=-1 to allow core files. In osmo-stp-master set WORKDIR to /data to hopefully get the core file ending up there without the need to set a /proc/sys/kernel/core_pattern globally in the jenkins slave. Change-Id: Idd67fcb3f564b9cff9b4596bf639ed1bd1b58daf --- M osmo-stp-master/Dockerfile M ttcn3-bsc-test/jenkins.sh 2 files changed, 2 insertions(+), 1 deletion(-) Approvals: neels: Looks good to me, approved; Verified diff --git a/osmo-stp-master/Dockerfile b/osmo-stp-master/Dockerfile index a91313f..6396b32 100644 --- a/osmo-stp-master/Dockerfile +++ b/osmo-stp-master/Dockerfile @@ -38,7 +38,7 @@ ;; \ esac -WORKDIR /tmp +WORKDIR /data ARG OSMO_STP_BRANCH="master" diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 7db65d2..0f6f2ce 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -24,6 +24,7 @@ --network $NET_NAME --ip 172.18.2.200 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ + --ulimit core=-1 \ $DOCKER_ARGS \ $REPO_USER/osmo-stp-$IMAGE_SUFFIX -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Idd67fcb3f564b9cff9b4596bf639ed1bd1b58daf Gerrit-Change-Number: 18928 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 18:49:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 18:49:19 +0000 Subject: Change in docker-playground[master]: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18929 ) Change subject: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere ...................................................................... collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 --- M nplab-m3ua-test/jenkins.sh M nplab-sua-test/jenkins.sh M osmo-gsm-tester/jenkins.sh M osmo-stp-latest/Dockerfile M ttcn3-bsc-test/jenkins-sccplite.sh M ttcn3-bsc-test/jenkins.sh M ttcn3-bscnat-test/jenkins.sh M ttcn3-bts-test/jenkins.sh M ttcn3-ggsn-test/jenkins.sh M ttcn3-hlr-test/jenkins.sh M ttcn3-mgw-test/jenkins.sh M ttcn3-msc-test/jenkins.sh M ttcn3-nitb-sysinfo/jenkins.sh M ttcn3-pcu-test/jenkins-sns.sh M ttcn3-pcu-test/jenkins.sh M ttcn3-remsim-test/jenkins.sh M ttcn3-sccp-test/jenkins.sh M ttcn3-sgsn-test/jenkins.sh M ttcn3-sip-test/jenkins.sh M ttcn3-stp-test/jenkins.sh 20 files changed, 52 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/29/18929/1 diff --git a/nplab-m3ua-test/jenkins.sh b/nplab-m3ua-test/jenkins.sh index 5021ff2..4543b91 100755 --- a/nplab-m3ua-test/jenkins.sh +++ b/nplab-m3ua-test/jenkins.sh @@ -21,6 +21,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.7.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp \ -d $REPO_USER/osmo-stp-$IMAGE_SUFFIX @@ -28,6 +29,7 @@ # start docker container with tests docker run --rm \ --network $NET_NAME --ip 172.18.7.2 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/m3ua-tester:/data \ --name ${BUILD_TAG}-m3ua-test \ $REPO_USER/nplab-m3ua-test > $VOL_BASE_DIR/junit-xml-m3ua.log diff --git a/nplab-sua-test/jenkins.sh b/nplab-sua-test/jenkins.sh index 56a323d..1d3111e 100755 --- a/nplab-sua-test/jenkins.sh +++ b/nplab-sua-test/jenkins.sh @@ -21,6 +21,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.6.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp \ -d $REPO_USER/osmo-stp-$IMAGE_SUFFIX @@ -28,6 +29,7 @@ # start docker container with tests docker run --rm \ --network $NET_NAME --ip 172.18.6.3 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sua-tester:/data \ --name ${BUILD_TAG}-sua-test \ $REPO_USER/nplab-sua-test > $VOL_BASE_DIR/junit-xml-sua.log diff --git a/osmo-gsm-tester/jenkins.sh b/osmo-gsm-tester/jenkins.sh index a198608..0973774 100755 --- a/osmo-gsm-tester/jenkins.sh +++ b/osmo-gsm-tester/jenkins.sh @@ -74,6 +74,7 @@ --device /dev/net/tun:/dev/net/tun \ --network $NET_NAME \ --ip 172.18.50.100 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ogt-slave:/data \ --name ${BUILD_TAG}-ogt-slave -d \ $REPO_USER/osmo-gsm-tester \ @@ -89,6 +90,7 @@ --device /dev/net/tun:/dev/net/tun \ --network $NET_NAME \ --ip 172.18.50.2 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ogt-master:/data \ -v "${TRIAL_DIR}:/tmp/trial" \ -e "OSMO_GSM_TESTER_CONF=${OSMO_GSM_TESTER_CONF}" \ diff --git a/osmo-stp-latest/Dockerfile b/osmo-stp-latest/Dockerfile index 72872a1..563378b 100644 --- a/osmo-stp-latest/Dockerfile +++ b/osmo-stp-latest/Dockerfile @@ -21,7 +21,7 @@ telnet && \ apt-get clean -WORKDIR /tmp +WORKDIR /data VOLUME /data COPY osmo-stp.cfg /data/ diff --git a/ttcn3-bsc-test/jenkins-sccplite.sh b/ttcn3-bsc-test/jenkins-sccplite.sh index 7c628db..f91e603 100755 --- a/ttcn3-bsc-test/jenkins-sccplite.sh +++ b/ttcn3-bsc-test/jenkins-sccplite.sh @@ -21,6 +21,7 @@ echo Starting container with BSC docker run --rm \ --network $NET_NAME --ip 172.18.12.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ @@ -30,6 +31,7 @@ echo Starting container with OML for BTS$i docker run --rm \ --network $NET_NAME --ip 172.18.12.10$i \ + --ulimit core=-1 \ --name ${BUILD_TAG}-bts$i -d \ $DOCKER_ARGS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ @@ -39,6 +41,7 @@ echo Starting container with BSC testsuite docker run --rm \ --network $NET_NAME --ip 172.18.12.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bsc-tester:/data \ --name ${BUILD_TAG}-ttcn3-bsc-test \ diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 0f6f2ce..75d5401 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -22,6 +22,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.2.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ --ulimit core=-1 \ @@ -31,6 +32,7 @@ echo Starting container with BSC docker run --rm \ --network $NET_NAME --ip 172.18.2.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ @@ -40,6 +42,7 @@ echo Starting container with OML for BTS$i docker run --rm \ --network $NET_NAME --ip 172.18.2.10$i \ + --ulimit core=-1 \ --name ${BUILD_TAG}-bts$i -d \ $DOCKER_ARGS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ @@ -49,6 +52,7 @@ echo Starting container with BSC testsuite docker run --rm \ --network $NET_NAME --ip 172.18.2.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bsc-tester:/data \ --name ${BUILD_TAG}-ttcn3-bsc-test \ diff --git a/ttcn3-bscnat-test/jenkins.sh b/ttcn3-bscnat-test/jenkins.sh index 4057b44..1d771eb 100755 --- a/ttcn3-bscnat-test/jenkins.sh +++ b/ttcn3-bscnat-test/jenkins.sh @@ -19,6 +19,7 @@ echo Starting container with BSCNAT docker run --rm \ --network $NET_NAME --ip 172.18.15.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bscnat:/data \ --name ${BUILD_TAG}-bscnat -d \ $DOCKER_ARGS \ @@ -28,6 +29,7 @@ echo Starting container with BSCNAT testsuite docker run --rm \ --network $NET_NAME --ip 172.18.15.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bscnat-tester:/data \ --name ${BUILD_TAG}-ttcn3-bscnat-test \ diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 20ad748..d85c82f 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -13,6 +13,7 @@ echo Starting container with BSC docker run --rm \ --network $NET_NAME --ip 172.18.9.11 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ @@ -30,6 +31,7 @@ fi docker run --rm \ --network $NET_NAME --ip 172.18.9.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bts:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-bts -d \ @@ -42,6 +44,7 @@ echo Starting container with fake_trx docker run --rm \ --network $NET_NAME --ip 172.18.9.21 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/fake_trx:/data \ --name ${BUILD_TAG}-fake_trx -d \ $DOCKER_ARGS \ @@ -61,6 +64,7 @@ echo Starting container with trxcon docker run --rm \ --network $NET_NAME --ip 172.18.9.22 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/trxcon:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-trxcon -d \ @@ -73,6 +77,7 @@ echo Starting container with virtphy docker run --rm \ --network $NET_NAME --ip 172.18.9.22 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/virtphy:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-virtphy -d \ @@ -85,6 +90,7 @@ echo Starting container with BTS testsuite docker run --rm \ --network $NET_NAME --ip 172.18.9.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bts-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-ggsn-test/jenkins.sh b/ttcn3-ggsn-test/jenkins.sh index 72c25e6..c950cc6 100755 --- a/ttcn3-ggsn-test/jenkins.sh +++ b/ttcn3-ggsn-test/jenkins.sh @@ -20,6 +20,7 @@ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --rm \ --network $NET_NAME --ip 172.18.3.201 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ggsn:/data \ --name ${BUILD_TAG}-ggsn -d \ $DOCKER_ARGS \ @@ -30,6 +31,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.3.202 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ggsn-tester:/data \ -e "TTCN3_PCAP_PATH=/data" \ --name ${BUILD_TAG}-ggsn-test \ diff --git a/ttcn3-hlr-test/jenkins.sh b/ttcn3-hlr-test/jenkins.sh index 74fe429..7bfacd6 100755 --- a/ttcn3-hlr-test/jenkins.sh +++ b/ttcn3-hlr-test/jenkins.sh @@ -23,6 +23,7 @@ echo Starting container with HLR docker run --rm \ --network $NET_NAME --ip 172.18.10.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/hlr:/data \ --name ${BUILD_TAG}-hlr -d \ $DOCKER_ARGS \ @@ -32,6 +33,7 @@ echo Starting container with HLR testsuite docker run --rm \ --network $NET_NAME --ip 172.18.10.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/hlr-tester:/data \ --name ${BUILD_TAG}-ttcn3-hlr-test \ diff --git a/ttcn3-mgw-test/jenkins.sh b/ttcn3-mgw-test/jenkins.sh index 3b6dd41..d0ce189 100755 --- a/ttcn3-mgw-test/jenkins.sh +++ b/ttcn3-mgw-test/jenkins.sh @@ -17,6 +17,7 @@ # start container with mgw in background docker run --rm \ --network $NET_NAME --ip 172.18.4.180 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/mgw:/data \ --name ${BUILD_TAG}-mgw -d \ $DOCKER_ARGS \ @@ -25,6 +26,7 @@ # start docker container with testsuite in foreground docker run --rm \ --network $NET_NAME --ip 172.18.4.181 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/mgw-tester:/data \ -e "TTCN3_PCAP_PATH=/data" \ --name ${BUILD_TAG}-ttcn3-mgw-test \ diff --git a/ttcn3-msc-test/jenkins.sh b/ttcn3-msc-test/jenkins.sh index e701b0d..6ad7b97 100755 --- a/ttcn3-msc-test/jenkins.sh +++ b/ttcn3-msc-test/jenkins.sh @@ -25,6 +25,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.1.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ $REPO_USER/osmo-stp-$IMAGE_SUFFIX @@ -32,6 +33,7 @@ echo Starting container with MSC docker run --rm \ --network $NET_NAME --ip 172.18.1.10 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/msc:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-msc -d \ @@ -42,6 +44,7 @@ echo Starting container with MSC testsuite docker run --rm \ --network $NET_NAME --ip 172.18.1.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/msc-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-nitb-sysinfo/jenkins.sh b/ttcn3-nitb-sysinfo/jenkins.sh index 530b4ee..eaef78d 100755 --- a/ttcn3-nitb-sysinfo/jenkins.sh +++ b/ttcn3-nitb-sysinfo/jenkins.sh @@ -9,6 +9,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.5.20 \ + --ulimit core=-1 \ -v nitb-vol:/data \ --name ${BUILD_TAG}-nitb -d \ $REPO_USER/osmo-nitb-master @@ -18,6 +19,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.5.210 \ + --ulimit core=-1 \ -v bts-vol:/data \ --name ${BUILD_TAG}-bts -d \ $REPO_USER/osmo-bts-master @@ -28,6 +30,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.5.230 \ + --ulimit core=-1 \ -v ttcn3-nitb-sysinfo-vol:/data \ --name ${BUILD_TAG}-ttcn3-nitb-sysinfo \ $REPO_USER/ttcn3-nitb-sysinfo diff --git a/ttcn3-pcu-test/jenkins-sns.sh b/ttcn3-pcu-test/jenkins-sns.sh index edebd0b..9c8f293 100755 --- a/ttcn3-pcu-test/jenkins-sns.sh +++ b/ttcn3-pcu-test/jenkins-sns.sh @@ -21,6 +21,7 @@ echo Starting container with PCU docker run --rm \ --network $NET_NAME --ip 172.18.14.101 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/pcu:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-pcu-sns -d \ @@ -31,6 +32,7 @@ echo Starting container with PCU testsuite docker run --rm \ --network $NET_NAME --ip 172.18.14.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/pcu-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh index 7942d1a..3867e76 100755 --- a/ttcn3-pcu-test/jenkins.sh +++ b/ttcn3-pcu-test/jenkins.sh @@ -21,6 +21,7 @@ echo Starting container with PCU docker run --rm \ --network $NET_NAME --ip 172.18.13.101 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/pcu:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-pcu -d \ @@ -31,6 +32,7 @@ echo Starting container with PCU testsuite docker run --rm \ --network $NET_NAME --ip 172.18.13.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/pcu-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-remsim-test/jenkins.sh b/ttcn3-remsim-test/jenkins.sh index c5f8692..1da2883 100755 --- a/ttcn3-remsim-test/jenkins.sh +++ b/ttcn3-remsim-test/jenkins.sh @@ -10,6 +10,7 @@ echo Starting container with osmo-remsim-server docker run --rm \ --network $NET_NAME --ip 172.18.17.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/server:/data \ --name ${BUILD_TAG}-server -d \ $DOCKER_ARGS \ @@ -21,6 +22,7 @@ echo Starting container with osmo-remsim-bankd docker run --rm \ --network $NET_NAME --ip 172.18.17.30 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bankd:/data \ --name ${BUILD_TAG}-bankd -d \ $DOCKER_ARGS \ @@ -32,6 +34,7 @@ echo Starting container with osmo-remsim-client docker run --rm \ --network $NET_NAME --ip 172.18.17.40 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/client:/data \ --name ${BUILD_TAG}-client-d \ $DOCKER_ARGS \ @@ -45,6 +48,7 @@ echo Starting container with REMSIM testsuite docker run --rm \ --network $NET_NAME --ip 172.18.17.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/remsim-tester:/data \ --name ${BUILD_TAG}-ttcn3-remsim-test \ diff --git a/ttcn3-sccp-test/jenkins.sh b/ttcn3-sccp-test/jenkins.sh index f802b2d..25fe5ac 100755 --- a/ttcn3-sccp-test/jenkins.sh +++ b/ttcn3-sccp-test/jenkins.sh @@ -18,6 +18,7 @@ echo Starting container with sccp_demo_user docker run --rm \ --network $NET_NAME --ip 172.18.22.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sccp:/data \ --name ${BUILD_TAG}-stp -d \ $DOCKER_ARGS \ @@ -28,6 +29,7 @@ echo Starting container with SCCP testsuite docker run --rm \ --network $NET_NAME --ip 172.18.22.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sccp-tester:/data \ --name ${BUILD_TAG}-ttcn3-sccp-test \ diff --git a/ttcn3-sgsn-test/jenkins.sh b/ttcn3-sgsn-test/jenkins.sh index 9b77abf..08af31c 100755 --- a/ttcn3-sgsn-test/jenkins.sh +++ b/ttcn3-sgsn-test/jenkins.sh @@ -23,6 +23,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.8.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ $DOCKER_ARGS \ @@ -31,6 +32,7 @@ echo Starting container with SGSN docker run --rm \ --network $NET_NAME --ip 172.18.8.10 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sgsn:/data \ --name ${BUILD_TAG}-sgsn -d \ $DOCKER_ARGS \ @@ -40,6 +42,7 @@ echo Starting container with SGSN testsuite docker run --rm \ --network $NET_NAME --ip 172.18.8.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sgsn-tester:/data \ --name ${BUILD_TAG}-ttcn3-sgsn-test \ @@ -49,6 +52,7 @@ echo Starting container to merge logs docker run --rm \ --network $NET_NAME --ip 172.18.8.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sgsn-tester:/data \ --name ${BUILD_TAG}-ttcn3-sgsn-test-logmerge \ diff --git a/ttcn3-sip-test/jenkins.sh b/ttcn3-sip-test/jenkins.sh index 702a6f5..52916cd 100755 --- a/ttcn3-sip-test/jenkins.sh +++ b/ttcn3-sip-test/jenkins.sh @@ -21,6 +21,7 @@ echo Starting container with osmo-sip-connector docker run --rm \ --network $NET_NAME --ip 172.18.11.10 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sip:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-sip-connector -d \ @@ -31,6 +32,7 @@ echo Starting container with SIP testsuite docker run --rm \ --network $NET_NAME --ip 172.18.11.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sip-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-stp-test/jenkins.sh b/ttcn3-stp-test/jenkins.sh index ba00f30..c45d157 100755 --- a/ttcn3-stp-test/jenkins.sh +++ b/ttcn3-stp-test/jenkins.sh @@ -17,6 +17,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.19.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ $DOCKER_ARGS \ @@ -25,6 +26,7 @@ echo Starting container with STP testsuite docker run --rm \ --network $NET_NAME --ip 172.18.19.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/stp-tester:/data \ --name ${BUILD_TAG}-ttcn3-stp-test \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 Gerrit-Change-Number: 18929 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 18:51:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 20 Jun 2020 18:51:23 +0000 Subject: Change in gapk[master]: don't assert just because a broken RTP packet (wrong lenth) is received References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/gapk/+/18930 ) Change subject: don't assert just because a broken RTP packet (wrong lenth) is received ...................................................................... don't assert just because a broken RTP packet (wrong lenth) is received Change-Id: I373308ed40614d29d9b578ddc056f27e20e4aa21 --- M src/fmt_rtp_efr.c M src/fmt_rtp_hr_etsi.c M src/fmt_rtp_hr_ietf.c 3 files changed, 15 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/30/18930/1 diff --git a/src/fmt_rtp_efr.c b/src/fmt_rtp_efr.c index accfd4f..f0c46d1 100644 --- a/src/fmt_rtp_efr.c +++ b/src/fmt_rtp_efr.c @@ -52,7 +52,11 @@ { int i; - assert(src_len == EFR_LEN); + /* broken RTP frames may be short; substitute empty frame */ + if (src_len != EFR_CANON_LEN) { + memset(dst, 0, EFR_CANON_LEN); + return EFR_CANON_LEN; + } for (i=0; i<(EFR_LEN-1); i++) dst[i] = (src[i] << 4) | (src[i+1] >> 4); diff --git a/src/fmt_rtp_hr_etsi.c b/src/fmt_rtp_hr_etsi.c index 9ed9b22..0b7e392 100644 --- a/src/fmt_rtp_hr_etsi.c +++ b/src/fmt_rtp_hr_etsi.c @@ -42,7 +42,11 @@ rtp_hr_etsi_to_canon(uint8_t *dst, const uint8_t *src, unsigned int src_len) { /* according to TS 101 318 */ - assert(src_len == HR_CANON_LEN); + /* broken RTP frames may be short; substitute empty frame */ + if (src_len != HR_CANON_LEN) { + memset(dst, 0, HR_CANON_LEN); + return HR_CANON_LEN; + } memcpy(dst, src, src_len); return HR_CANON_LEN; diff --git a/src/fmt_rtp_hr_ietf.c b/src/fmt_rtp_hr_ietf.c index 4ee548f..a840d4b 100644 --- a/src/fmt_rtp_hr_ietf.c +++ b/src/fmt_rtp_hr_ietf.c @@ -60,7 +60,11 @@ rtp_hr_ietf_to_canon(uint8_t *dst, const uint8_t *src, unsigned int src_len) { /* according to RFC5993 */ - assert(src_len == HR_LEN); + /* broken RTP frames may be short; substitute empty frame */ + if (src_len != HR_LEN) { + memset(dst, 0, HR_LEN); + return HR_CANON_LEN; + } /* Remove ToC byte */ memcpy(dst, src+1, HR_CANON_LEN); -- To view, visit https://gerrit.osmocom.org/c/gapk/+/18930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I373308ed40614d29d9b578ddc056f27e20e4aa21 Gerrit-Change-Number: 18930 Gerrit-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 Jun 20 19:08:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 20 Jun 2020 19:08:10 +0000 Subject: Change in libosmo-abis[master]: add 'trau2rtp' demo program illustrating the use of new TRAU code References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18931 ) Change subject: add 'trau2rtp' demo program illustrating the use of new TRAU code ...................................................................... add 'trau2rtp' demo program illustrating the use of new TRAU code Change-Id: I0190872dd282bcfe0f97bb4f8ab8d09023f9f06b --- A contrib/trau2rtp/Makefile A contrib/trau2rtp/README A contrib/trau2rtp/e1_ts2_efr.bin A contrib/trau2rtp/e1_ts2_efr.log.bz2 A contrib/trau2rtp/e1_ts2_fr.bin A contrib/trau2rtp/e1_ts2_fr.log.bz2 A contrib/trau2rtp/flip.c A contrib/trau2rtp/flip.h A contrib/trau2rtp/strace-write-parse.py A contrib/trau2rtp/trau2rtp.c 10 files changed, 206 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/31/18931/1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I0190872dd282bcfe0f97bb4f8ab8d09023f9f06b Gerrit-Change-Number: 18931 Gerrit-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 Jun 20 19:44:34 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:44:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 ) Change subject: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk ...................................................................... Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk First user will be new MSC pooling tests in ttcn3-bsc-test, see I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f. Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 --- M library/Osmocom_CTRL_Functions.ttcn 1 file changed, 113 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/18932/1 diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index 22ed405..804a4f5 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -148,4 +148,117 @@ } + /* --- Retrieve and verify rate counter values in bulk --- + * + * BSC_Tests.ttcn shows a nice way to conveniently shorten the code needed to use these functions, see + * f_ctrs_msc_init() and f_ctrs_msc_expect(). + * + * Here also a full usage example: + * + * const CounterNameVals my_counternames := { + * { "mscpool:subscr:new", 0 }, + * { "mscpool:subscr:known", 0 }, + * { "mscpool:subscr:attach_lost", 0 }, + * }; + * + * var CounterNameValsList my_counters := f_counter_name_vals_get_n(instance_name := "msc", instance_count := 3, counternames := my_counternames); + * + * // run some tests that increment rate counters in the program, + * // and increment expected counters accordingly: + * my_counters := f_counter_name_vals_list_add(my_counters, instance_nr := 1, "mscpool:subscr:new", 7); + * my_counters := f_counter_name_vals_list_add(my_counters, instance_nr := 2, "mscpool:subscr:attach_lost", 3); + * + * // verify that the program reflects the expected counters: + * f_counter_name_vals_expect_n(instance_name := "msc", my_counters); + * + * // run some more tests... + * my_counters := f_counter_name_vals_list_add(my_counters, instance_nr := 0, "mscpool:subscr:known"); + * // and verify again + * f_counter_name_vals_expect_n(instance_name := "msc", my_counters); + */ + + /* One counter value, e.g. { "name", 23 } */ + type record CounterNameVal { + charstring name, + integer val + } + + /* List of one instance's counters, + * e.g. { {"foo",23}, {"bar",42} } + */ + type record of CounterNameVal CounterNameVals; + + /* List of numerous instances' counters, + * e.g. { { {"foo",23}, {"bar",42} }, + * { {"foo",23}, {"bar",42} } } + */ + type record of CounterNameVals CounterNameValsList; + + /* Retrieve one instance's rate counter values of the given names. */ + function f_counter_name_vals_get(IPA_CTRL_PT pt, charstring instance_name, integer instance_nr, CounterNameVals counternames) return CounterNameVals { + var CounterNameVals vals; + for (var integer i := 0; i < lengthof(counternames); i := i + 1) { + vals[i] := { + name := counternames[i].name, + val := f_ctrl_get_ratectr_abs(pt, instance_name, instance_nr, counternames[i].name) + }; + } + return vals; + } + + /* Retrieve the first N instances' rate counter values of the given names */ + function f_counter_name_vals_get_n(IPA_CTRL_PT pt, charstring instance_name := "msc", integer instance_count, CounterNameVals counternames) return CounterNameValsList { + var CounterNameValsList valslist; + for (var integer instance_nr := 0; instance_nr < instance_count; instance_nr := instance_nr + 1) { + valslist[instance_nr] := f_counter_name_vals_get(pt, instance_name, instance_nr, counternames); + } + log("retrieved rate counters: ", instance_name, ": ", valslist); + return valslist; + } + + /* In a list of one instance's counters, increment a specifically named counter. */ + function f_counter_name_vals_add(CounterNameVals vals, charstring countername, integer val := 1) return CounterNameVals{ + for (var integer i := 0; i < lengthof(vals); i := i + 1) { + if (vals[i].name == countername) { + vals[i].val := vals[i].val + val; + return vals; + } + } + /* name not found, append */ + vals[lengthof(vals)] := { + name := countername, + val := val + } + return vals; + } + + /* In a list of several instances' counters, increment a specific instance's specifically named counter. */ + function f_counter_name_vals_list_add(CounterNameValsList vals, integer idx, charstring countername, integer val := 1) return CounterNameValsList { + vals[idx] := f_counter_name_vals_add(vals[idx], countername, val); + return vals; + } + + /* For a specific instance, call f_counter_name_vals_get() and compare with expected counter values. + * Set the test verdict accordingly. */ + function f_counter_name_vals_expect(IPA_CTRL_PT pt, charstring instance_name, integer instance_nr, CounterNameVals vals) { + var CounterNameVals now := f_counter_name_vals_get(pt, instance_name, instance_nr, vals); + for (var integer i := 0; i < lengthof(vals); i := i + 1) { + if (now[i].name != vals[i].name) { + setverdict(fail, "Internal error"); + } + if (now[i].val != vals[i].val) { + setverdict(fail, "Rate counter mismatch: ", instance_name, " ", instance_nr, " ", vals[i].name, " is at ", now[i].val, " but expected ", vals[i].val); + } + } + setverdict(pass); + } + + /* For N instances, call f_counter_name_vals_get() and compare with expected counter values. + * Set the test verdict accordingly. The number of instances is given by lengthof(valslist). */ + function f_counter_name_vals_expect_n(IPA_CTRL_PT pt, charstring instance_name, CounterNameValsList valslist) { + for (var integer instance_nr := 0; instance_nr < lengthof(valslist); instance_nr := instance_nr + 1) { + f_counter_name_vals_expect(pt, instance_name, instance_nr, valslist[instance_nr]); + } + } + } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 Gerrit-Change-Number: 18932 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 19:52:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:52:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: undup pars.sccp_addr_msc and _bsc In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 ) Change subject: bsc: undup pars.sccp_addr_msc and _bsc ...................................................................... bsc: undup pars.sccp_addr_msc and _bsc Handover testing required passing MSC and BSC addresses to f_tc_* functions and added pars.handover.sccp_addr_msc and .handover.sccp_addr_bsc. MSC pool tests added a separate sub-record pars.mscpool which also contains these two fields. Move them both up one level, to form a single pair of pars.sccp_addr_msc and pars.sccp_addr_bsc. This eliminates the pars.handover sub-record. Change-Id: Iae81ca58001455099218ce769a97dc6402832490 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn 2 files changed, 25 insertions(+), 32 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 377b193..485411b 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3313,7 +3313,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3368,8 +3368,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_into_this_bsc), pars); vc_conn.done; @@ -3385,7 +3385,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3441,8 +3441,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_msc_clears), pars); vc_conn.done; @@ -3463,7 +3463,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3521,8 +3521,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_msc_clears_after_ho_detect), pars); vc_conn.done; @@ -3539,7 +3539,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3602,8 +3602,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_no_detect), pars); vc_conn.done; @@ -3620,7 +3620,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); activate(as_Media()); - BSSAP.send(ts_BSSAP_Conn_Req(g_pars.handover.sccp_addr_bsc, g_pars.handover.sccp_addr_msc, + BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); @@ -3673,8 +3673,8 @@ f_init(1, true); f_sleep(1.0); - pars.handover.sccp_addr_msc := g_bssap[0].sccp_addr_own; - pars.handover.sccp_addr_bsc := g_bssap[0].sccp_addr_peer; + 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_ho_in_fail_no_detect2), pars); vc_conn.done; @@ -4901,7 +4901,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); - paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Paging(imsi, cid_list, omit, bssmap_chneed)))); BSSAP.send(paging); @@ -4930,8 +4930,8 @@ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; - pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; - pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + pars1.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_imsi), pars1); vc_conn1.done; } @@ -4949,7 +4949,7 @@ f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); - paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.mscpool.sccp_addr_bsc, g_pars.mscpool.sccp_addr_msc, + paging := valueof(ts_BSSAP_UNITDATA_req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Paging('001010000000011'H, cid_list, tmsi, bssmap_chneed)))); BSSAP.send(paging); @@ -4979,8 +4979,8 @@ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; - pars1.mscpool.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; - pars1.mscpool.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; + pars1.sccp_addr_bsc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_peer; + pars1.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_tmsi), pars1); vc_conn1.done; } diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index fece825..8ac7051 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -509,15 +509,8 @@ boolean adjust_cx_exp } -type record TestHdlrParamsHandover { - SCCP_PAR_Address sccp_addr_msc, - SCCP_PAR_Address sccp_addr_bsc -} - type record TestHdlrParamsMSCPool { integer bssap_idx, - SCCP_PAR_Address sccp_addr_msc optional, - SCCP_PAR_Address sccp_addr_bsc optional, integer rsl_idx, PDU_ML3_MS_NW l3_info optional } @@ -533,7 +526,8 @@ bitstring expect_mr_s0_s7 optional, /* typically present for AMR codecs */ TestHdlrEncrParams encr optional, TestHdlrParamsLcls lcls, - TestHdlrParamsHandover handover optional, + SCCP_PAR_Address sccp_addr_msc optional, + SCCP_PAR_Address sccp_addr_bsc optional, uint5_t exp_ms_power_level, boolean exp_ms_power_params, boolean aoip, @@ -561,15 +555,14 @@ exp_sts := omit, adjust_cx_exp := true }, - handover := omit, + sccp_addr_msc := omit, + sccp_addr_bsc := omit, exp_ms_power_level := 7, /* calculated from osmo-bsc.cfg "ms max power" */ exp_ms_power_params := false, aoip := true, use_osmux := false, mscpool := { bssap_idx := 0, - sccp_addr_msc := omit, - sccp_addr_bsc := omit, rsl_idx := 0, l3_info := omit } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iae81ca58001455099218ce769a97dc6402832490 Gerrit-Change-Number: 18794 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 19:52:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:52:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAN_Emulation: drop unused function f_bssap_wait_for_reset() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18845 ) Change subject: RAN_Emulation: drop unused function f_bssap_wait_for_reset() ...................................................................... RAN_Emulation: drop unused function f_bssap_wait_for_reset() Change-Id: I9ecf4fdeaee8e5437427564ef860c9053ffa4241 --- M library/RAN_Emulation.ttcnpp 1 file changed, 0 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index 5450706..a400dcd 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -518,28 +518,6 @@ return g_ran_ops.unitdata_cb.apply(bssap); } -private function f_bssap_wait_for_reset() runs on RAN_Emulation_CT { - var BSSAP_N_UNITDATA_ind ud_ind; - timer T := 20.0; - var boolean append_osmux_support := append_osmux_ie(); - - T.start; - alt { - [] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset(append_osmux_support))) -> value ud_ind { - BSSAP.send(ts_BSSAP_UNITDATA_req(ud_ind.callingAddress, ud_ind.calledAddress, - ts_BSSMAP_ResetAck(append_osmux_support))); - } - [] as_reset_ack(append_osmux_support); - [] BSSAP.receive { - repeat; - } - [] T.timeout { - setverdict(fail, "Timeout waiting for BSSAP RESET"); - mtc.stop; - } - } -} - function f_bssap_reset(SCCP_PAR_Address peer, SCCP_PAR_Address own) runs on RAN_Emulation_CT { timer T := 5.0; var boolean append_osmux_support := append_osmux_ie(); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf4fdeaee8e5437427564ef860c9053ffa4241 Gerrit-Change-Number: 18845 Gerrit-PatchSet: 3 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 Sat Jun 20 19:52:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:52:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: allow individual T_guard timeout via f_init() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18846 ) Change subject: bsc: allow individual T_guard timeout via f_init() ...................................................................... bsc: allow individual T_guard timeout via f_init() The TC_ho_neighbor_config_* tests sometimes take longer than 30 seconds, because they run multiple handovers. Since they don't have access to the Test_CT, they cannot restart the T_guard. The simplest solution is to choose a longer T_guard timeout for those tests specifically, by adding an argument to f_init(). (A longer timeout for those tests is following in another patch.) Why f_init()? Assigning a different default value to T_guard seems to not be possible, but a different timeout value can be passed to T_guard.start(), which happens in f_init(). Change-Id: I14918f6a44d6fa1bd5c3e133757ebdbe32813b33 --- M bsc/BSC_Tests.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 485411b..f0117ed 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -104,7 +104,7 @@ /*Configure T(tiar) over VTY, seconds */ var integer g_bsc_sccp_timer_iar := 15 * 60; - /* global test case guard timer */ + /* global test case guard timer (actual timeout value is set in f_init()) */ timer T_guard := 30.0; } @@ -384,7 +384,7 @@ * \param nr_msc Number of virtual MSCs to bring up to connect to osmo-bsc. */ function f_init(integer nr_bts := NUM_BTS, boolean handler_mode := false, boolean allow_osmux := false, - integer nr_msc := 1) runs on test_CT { + integer nr_msc := 1, float guard_timeout := 30.0) runs on test_CT { var integer bssap_idx; var integer i; @@ -393,7 +393,7 @@ } g_initialized := true; - T_guard.start; + T_guard.start(guard_timeout); activate(as_Tguard()); f_init_vty("VirtMSC"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I14918f6a44d6fa1bd5c3e133757ebdbe32813b33 Gerrit-Change-Number: 18846 Gerrit-PatchSet: 3 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 Sat Jun 20 19:52:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:52:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: set longer T_guard for TC_ho_neighbor_config tests In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18847 ) Change subject: bsc: set longer T_guard for TC_ho_neighbor_config tests ...................................................................... bsc: set longer T_guard for TC_ho_neighbor_config tests They perform several handover runs and tend to timeout prematurely on my machine. Change-Id: I9d641c9b5d5a6f2c2edbc2c782f33872cf7a483f --- M bsc/BSC_Tests.ttcn 1 file changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f0117ed..7398612 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3988,28 +3988,28 @@ testcase TC_ho_neighbor_config_1() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 60.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_1)); vc_conn.done; } testcase TC_ho_neighbor_config_2() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_2)); vc_conn.done; } testcase TC_ho_neighbor_config_3() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_3)); vc_conn.done; } testcase TC_ho_neighbor_config_4() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_4)); vc_conn.done; @@ -4030,7 +4030,7 @@ } testcase TC_ho_neighbor_config_7() runs on test_CT { var MSC_ConnHdlr vc_conn; - f_init(3, true); + f_init(3, true, guard_timeout := 50.0); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_neighbor_config_7)); vc_conn.done; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9d641c9b5d5a6f2c2edbc2c782f33872cf7a483f Gerrit-Change-Number: 18847 Gerrit-PatchSet: 3 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 Sat Jun 20 19:55:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:55:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk 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/+/18932 to look at the new patch set (#2). Change subject: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk ...................................................................... Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk First user will be new MSC pooling tests in ttcn3-bsc-test, see I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f. Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 --- M library/Osmocom_CTRL_Functions.ttcn 1 file changed, 121 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/18932/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 Gerrit-Change-Number: 18932 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 Sat Jun 20 19:56:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:56:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk 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/+/18932 to look at the new patch set (#3). Change subject: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk ...................................................................... Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk First user will be new MSC pooling tests in ttcn3-bsc-test, see I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f. Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 --- M library/Osmocom_CTRL_Functions.ttcn 1 file changed, 122 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/18932/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 Gerrit-Change-Number: 18932 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 19:57:41 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:57:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk 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/+/18932 to look at the new patch set (#4). Change subject: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk ...................................................................... Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk First user will be new MSC pooling tests in ttcn3-bsc-test, see I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f. Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 --- M library/Osmocom_CTRL_Functions.ttcn 1 file changed, 123 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/18932/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 Gerrit-Change-Number: 18932 Gerrit-PatchSet: 4 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 Sat Jun 20 19:58:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 19:58:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... Patch Set 7: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 20 Jun 2020 19:58: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 Sat Jun 20 20:00:46 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 20:00:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: skip MSC pooling tests in SCCPlite In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18844 ) Change subject: bsc: skip MSC pooling tests in SCCPlite ...................................................................... Abandoned already merged as part of adding the MSC pooling tests -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0b393d26feb56738e2f5ef213a8a922bb5e90a7 Gerrit-Change-Number: 18844 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Sat Jun 20 20:02:52 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 20:02:52 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust logging config In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18852 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust logging config ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg File ttcn3-bsc-test/sccplite/osmo-bsc.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18852/1/ttcn3-bsc-test/sccplite/osmo-bsc.cfg at 18 PS1, Line 18: logging print level 1 > wondering waht this does lol 'print level 1' prints the logging level, i.e. DEBUG, INFO, ERROR... very annoying to see logs often lacking this. ('file basename last' shows the source file and line.) -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 Gerrit-Change-Number: 18852 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 20 Jun 2020 20:02:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 20 20:02:56 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 20:02:56 +0000 Subject: Change in docker-playground[master]: bsc.cfg: SCCPlite = AoIP: adjust logging config In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18852 ) Change subject: bsc.cfg: SCCPlite = AoIP: adjust logging config ...................................................................... bsc.cfg: SCCPlite = AoIP: adjust logging config Adjust the SCCPlite osmo-bsc.cfg according to changes applied in osmo-bsc.cfg, which were obviously forgotten to also apply to the SCCPlite test runs. Do the same logging in both SCCPlite and AoIP osmo-bsc.cfg. Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 --- M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 1 file changed, 4 insertions(+), 15 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved neels: Verified diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index 0441492..0f5b520 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -13,21 +13,10 @@ 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 - logging level rsl notice - logging level nm info - logging level pag notice - logging level meas notice - logging level msc notice - logging level ho notice - logging level ref notice - logging level ctrl notice - logging level filter debug - logging level pcu debug - logging level lglobal notice + logging print category-hex 0 + logging print file basename last + logging print level 1 + logging level set-all debug logging level llapd notice logging level linp notice logging level lmux notice -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I4a8fe459ec580078228c6775df357b6e0acbbb03 Gerrit-Change-Number: 18852 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Sat Jun 20 20:05:31 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 20 Jun 2020 20:05:31 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18873 ) Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... Patch Set 5: Code-Review-1 (I still think it is nicer to show commands that exist and let the user decide about usefulness) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 20 Jun 2020 20:05: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 Jun 20 20:10:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 20 Jun 2020 20:10:38 +0000 Subject: Change in docker-playground[master]: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18929 ) Change subject: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 Gerrit-Change-Number: 18929 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 20 Jun 2020 20: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 Sat Jun 20 20:12:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 20 Jun 2020 20:12:39 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18873 ) Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... Patch Set 5: > Patch Set 5: Code-Review-1 > > (I still think it is nicer to show commands that exist and let the user decide about usefulness) that's because you are a developer, and not a network operator. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 20 Jun 2020 20:12: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 Sat Jun 20 20:18:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 20 Jun 2020 20:18:33 +0000 Subject: Change in libosmo-abis[master]: e1_input: Support I.460 timeslot type References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18933 ) Change subject: e1_input: Support I.460 timeslot type ...................................................................... e1_input: Support I.460 timeslot type Unlike the legacy TRAU mode, this only adds I460 mux/demux, without any TRAU frame synchronization. The user must still be adding the actual sub-channels using osmo_i460_subchan_add() depending on his requirements. Change-Id: I44da6dfec77ef475adb35001a0e4fa11d549aa02 --- M include/osmocom/abis/e1_input.h M src/e1_input.c M src/input/dahdi.c M src/input/e1d.c M src/input/misdn.c 5 files changed, 41 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/33/18933/1 diff --git a/include/osmocom/abis/e1_input.h b/include/osmocom/abis/e1_input.h index 8230e44..cdd5b7c 100644 --- a/include/osmocom/abis/e1_input.h +++ b/include/osmocom/abis/e1_input.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -72,9 +73,10 @@ E1INP_TS_TYPE_TRAU, E1INP_TS_TYPE_RAW, E1INP_TS_TYPE_HDLC, + E1INP_TS_TYPE_I460, }; const char *e1inp_tstype_name(enum e1inp_ts_type tp); -extern const struct value_string e1inp_ts_type_names[6]; +extern const struct value_string e1inp_ts_type_names[]; /* A timeslot in the E1 interface */ struct e1inp_ts { @@ -114,6 +116,9 @@ /* queue of pending to-be-transmitted msgbs */ struct llist_head tx_queue; } hdlc; + struct { + struct osmo_i460_timeslot i460_ts; + } i460; }; union { struct { diff --git a/src/e1_input.c b/src/e1_input.c index 9ea4f17..79393b0 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #define NUM_E1_TS 32 @@ -240,12 +241,13 @@ return get_value_string(e1inp_sign_type_names, tp); } -const struct value_string e1inp_ts_type_names[6] = { +const struct value_string e1inp_ts_type_names[] = { { E1INP_TS_TYPE_NONE, "None" }, { E1INP_TS_TYPE_SIGN, "Signalling" }, { E1INP_TS_TYPE_TRAU, "TRAU" }, { E1INP_TS_TYPE_RAW, "RAW" }, { E1INP_TS_TYPE_HDLC, "HDLC" }, + { E1INP_TS_TYPE_I460, "I460" }, { 0, NULL } }; @@ -312,6 +314,17 @@ return 0; } +int e1inp_ts_config_i460(struct e1inp_ts *ts, struct e1inp_line *line) +{ + if (ts->type == E1INP_TS_TYPE_I460 && ts->line && line) + return 0; + + ts->type = E1INP_TS_TYPE_I460; + ts->line = line; + osmo_i460_ts_init(&ts->i460.i460_ts); + return 0; +} + void e1inp_ts_name(char *out, size_t out_len, const struct e1inp_ts *ts) { if (ts->line->name) @@ -656,6 +669,10 @@ case E1INP_TS_TYPE_HDLC: ts->hdlc.recv_cb(ts, msg); break; + case E1INP_TS_TYPE_I460: + osmo_i460_demux_in(&ts->i460.i460_ts, msg->l2h, msgb_l2len(msg)); + msgb_free(msg); + break; default: ret = -EINVAL; LOGPITS(ts, DLMI, LOGL_ERROR, "unknown TS type %u\n", ts->type); @@ -786,6 +803,13 @@ /* Get msgb from tx_queue */ msg = msgb_dequeue(&e1i_ts->hdlc.tx_queue); break; + case E1INP_TS_TYPE_I460: + msg = msgb_alloc(TSX_ALLOC_SIZE, "I460_TX"); + if (!msg) + return NULL; + len = osmo_i460_mux_out(&e1i_ts->i460.i460_ts, msg->data, 40); + msgb_put(msg, len); + break; default: LOGPITS(e1i_ts, DLMI, LOGL_ERROR, "unsupported E1 TS type %u\n", e1i_ts->type); return NULL; diff --git a/src/input/dahdi.c b/src/input/dahdi.c index a461f27..075b7ff 100644 --- a/src/input/dahdi.c +++ b/src/input/dahdi.c @@ -198,7 +198,8 @@ /* We never include the DAHDI B-Channel FD into the * writeset, since it doesn't support poll() based * write flow control */ - if (e1i_ts->type == E1INP_TS_TYPE_TRAU) { + if (e1i_ts->type == E1INP_TS_TYPE_TRAU || + e1i_ts->type == E1INP_TS_TYPE_I460) { LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "Trying to write TRAU ts\n"); return 0; } @@ -501,6 +502,7 @@ handle_hdlc_write(bfd); break; case E1INP_TS_TYPE_TRAU: + case E1INP_TS_TYPE_I460: if (what & BSC_FD_EXCEPT) handle_dahdi_exception(e1i_ts); if (what & BSC_FD_READ) @@ -702,6 +704,7 @@ return ret; break; case E1INP_TS_TYPE_TRAU: + case E1INP_TS_TYPE_I460: case E1INP_TS_TYPE_RAW: /* close/release LAPD instance, if any */ if (e1i_ts->lapd) { diff --git a/src/input/e1d.c b/src/input/e1d.c index f7a0b18..617c747 100644 --- a/src/input/e1d.c +++ b/src/input/e1d.c @@ -162,7 +162,8 @@ e1d_want_write(struct e1inp_ts *e1i_ts) { /* We never include the DAHDI B-Channel FD into the writeset */ - if (e1i_ts->type == E1INP_TS_TYPE_TRAU) { + if (e1i_ts->type == E1INP_TS_TYPE_TRAU || + e1i_ts->type == E1INP_TS_TYPE_I460) { LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "Trying to write TRAU ts\n"); return 0; } @@ -285,6 +286,7 @@ bfd->when = BSC_FD_READ; break; case E1INP_TS_TYPE_TRAU: + case E1INP_TS_TYPE_I460: case E1INP_TS_TYPE_RAW: /* close/release LAPD instance, if any */ if (e1i_ts->lapd) { diff --git a/src/input/misdn.c b/src/input/misdn.c index 564d008..9fe2989 100644 --- a/src/input/misdn.c +++ b/src/input/misdn.c @@ -213,7 +213,8 @@ /* We never include the mISDN B-Channel FD into the * writeset, since it doesn't support poll() based * write flow control */ - if (e1i_ts->type == E1INP_TS_TYPE_TRAU) + if (e1i_ts->type == E1INP_TS_TYPE_TRAU || + e1i_ts->type == E1INP_TS_TYPE_I460) return 0; e1i_ts->driver.misdn.fd.when |= BSC_FD_WRITE; @@ -615,6 +616,7 @@ bfd->when = BSC_FD_READ; break; case E1INP_TS_TYPE_TRAU: + case E1INP_TS_TYPE_I460: case E1INP_TS_TYPE_RAW: bfd->fd = socket(PF_ISDN, SOCK_DGRAM, ISDN_P_B_RAW); /* We never include the mISDN B-Channel FD into the -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I44da6dfec77ef475adb35001a0e4fa11d549aa02 Gerrit-Change-Number: 18933 Gerrit-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 Jun 21 11:03:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 11:03:08 +0000 Subject: Change in gapk[master]: don't assert just because a broken RTP packet (wrong lenth) is received In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/gapk/+/18930 ) Change subject: don't assert just because a broken RTP packet (wrong lenth) is received ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/gapk/+/18930/1/src/fmt_rtp_efr.c File src/fmt_rtp_efr.c: https://gerrit.osmocom.org/c/gapk/+/18930/1/src/fmt_rtp_efr.c at 56 PS1, Line 56: EFR_CANON_LEN Shouldn't it be EFR_LEN? -- To view, visit https://gerrit.osmocom.org/c/gapk/+/18930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I373308ed40614d29d9b578ddc056f27e20e4aa21 Gerrit-Change-Number: 18930 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 21 Jun 2020 11:03: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 Sun Jun 21 11:54:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 11:54:51 +0000 Subject: Change in docker-playground[master]: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18929 ) Change subject: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18929/1/ttcn3-bsc-test/jenkins.sh File ttcn3-bsc-test/jenkins.sh: https://gerrit.osmocom.org/c/docker-playground/+/18929/1/ttcn3-bsc-test/jenkins.sh at 28 PS1, Line 28: --ulimit core=-1 \ It's already set here. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 Gerrit-Change-Number: 18929 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 21 Jun 2020 11:54:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 13:34:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 13:34:07 +0000 Subject: Change in libosmocore[master]: bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18934 ) Change subject: bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION ...................................................................... bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION This feature indicates if the given BTS supports paging coordination, that is the transmission of CS paging (received on Abis) to be sent via PACCH/PCU in PS domain fro MS with active TBF. Change-Id: Ifb2e83eaf05dd36e5b203ed2de1a74864b039e38 Related: OS#2406 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/18934/1 diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index 27a3983..22461a6 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -24,6 +24,7 @@ BTS_FEAT_SPEECH_F_AMR, BTS_FEAT_SPEECH_H_AMR, BTS_FEAT_ETWS_PN, + BTS_FEAT_PAGING_COORDINATION, /* BTS hands CS paging to PCU/PACCH */ _NUM_BTS_FEAT }; diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index e4ff76c..5a4b7f6 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -39,6 +39,7 @@ { BTS_FEAT_SPEECH_F_AMR, "Fullrate speech AMR" }, { BTS_FEAT_SPEECH_H_AMR, "Halfrate speech AMR" }, { BTS_FEAT_ETWS_PN, "ETWS Primary Notification via PCH" }, + { BTS_FEAT_PAGING_COORDINATION, "BSS Paging Coordination" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifb2e83eaf05dd36e5b203ed2de1a74864b039e38 Gerrit-Change-Number: 18934 Gerrit-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 Jun 21 13:42:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 13:42:12 +0000 Subject: Change in osmo-bsc[master]: [cosmetic] system_information: Values are not guesses; more comments References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18935 ) Change subject: [cosmetic] system_information: Values are not guesses; more comments ...................................................................... [cosmetic] system_information: Values are not guesses; more comments Change-Id: I978fbcd0c82658444b7603b082c236d23b0fa04b --- M src/osmo-bsc/system_information.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/35/18935/1 diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index d5be3f2..de01112 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -1152,9 +1152,8 @@ .ctrl_ack_type_use_block = true, .ext_info_present = 0, .ext_info = { - /* The values below are just guesses ! */ - .egprs_supported = 0, - .use_egprs_p_ch_req = 0, + .egprs_supported = 0, /* overridden in gsm_generate_si() */ + .use_egprs_p_ch_req = 0, /* overridden in generate_si13() */ .bep_period = 5, .pfc_supported = 0, .dtm_supported = 0, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I978fbcd0c82658444b7603b082c236d23b0fa04b Gerrit-Change-Number: 18935 Gerrit-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 Jun 21 13:42:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 13:42:12 +0000 Subject: Change in osmo-bsc[master]: system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18936 ) Change subject: system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts ...................................................................... system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts osmo-bts (in combination with osmo-pcu) has been supporting paging for CS services via PCU/PACCH for a very long time. Let's make sure this is reflected by the correct BSS_PAGING_COORDINATION bit. Change-Id: I0e80ca5afc06737273b6699bde6e325e454b57f6 Requires: libosmocore.git Ifb2e83eaf05dd36e5b203ed2de1a74864b039e38 Related: OS#2406 --- M src/osmo-bsc/bts_sysmobts.c M src/osmo-bsc/system_information.c 2 files changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/36/18936/1 diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c index ad12733..6f9dc77 100644 --- a/src/osmo-bsc/bts_sysmobts.c +++ b/src/osmo-bsc/bts_sysmobts.c @@ -58,6 +58,7 @@ 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); return gsm_bts_model_register(&model_sysmobts); } diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index de01112..4a1118e 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -1202,6 +1202,11 @@ else si13_default.cell_opts.ext_info.use_egprs_p_ch_req = 0; + if (osmo_bts_has_feature(&bts->features, BTS_FEAT_PAGING_COORDINATION)) + si13_default.cell_opts.ext_info.bss_paging_coordination = 1; + else + si13_default.cell_opts.ext_info.bss_paging_coordination = 0; + ret = rest_octets_si13(si13->rest_octets, &si13_default); if (ret < 0) return ret; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e80ca5afc06737273b6699bde6e325e454b57f6 Gerrit-Change-Number: 18936 Gerrit-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 Jun 21 13:42:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 13:42:18 +0000 Subject: Change in osmo-bsc[master]: bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18937 ) Change subject: bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist ...................................................................... bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist Particularly on BS-11 with only one TRX installed, this will improve the output of bs11_config from PHASE: 2 Load MBCCU MBCCU0: Load BTSDRX MBCCU1: unknown 0x8 Abis-link: Down to Change-Id: I10a77315d537681985f8390b838a4cabfb7d27f3 PHASE: 2 Load MBCCU MBCCU0: Load BTSDRX MBCCU1: Not equipped Abis-link: Down --- M src/utils/bs11_config.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/37/18937/1 diff --git a/src/utils/bs11_config.c b/src/utils/bs11_config.c index 7cd4203..1156233 100644 --- a/src/utils/bs11_config.c +++ b/src/utils/bs11_config.c @@ -232,6 +232,7 @@ { 3, "Load BTSBBX" }, { 4, "Load BTSARC" }, { 5, "Load" }, + { 8, "Not Equipped" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I10a77315d537681985f8390b838a4cabfb7d27f3 Gerrit-Change-Number: 18937 Gerrit-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 Jun 21 13:52:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 13:52:37 +0000 Subject: Change in libosmocore[master]: bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18934 ) Change subject: bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifb2e83eaf05dd36e5b203ed2de1a74864b039e38 Gerrit-Change-Number: 18934 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 21 Jun 2020 13:52: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 Jun 21 13:53:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 13:53:07 +0000 Subject: Change in osmo-bsc[master]: system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18936 ) Change subject: system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e80ca5afc06737273b6699bde6e325e454b57f6 Gerrit-Change-Number: 18936 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 21 Jun 2020 13:53: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 Jun 21 13:53:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 13:53:37 +0000 Subject: Change in osmo-bsc[master]: [cosmetic] system_information: Values are not guesses; more comments In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18935 ) Change subject: [cosmetic] system_information: Values are not guesses; more comments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I978fbcd0c82658444b7603b082c236d23b0fa04b Gerrit-Change-Number: 18935 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 21 Jun 2020 13:53: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 Jun 21 13:53:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 13:53:58 +0000 Subject: Change in osmo-bsc[master]: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment chang... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18938 ) Change subject: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment changemark ...................................................................... vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment changemark We assume the SI shall be re-sent because something has changed. This means that change_mark should be incremented. Let's call gsm_bts_set_system_infos() which already does the trick. Change-Id: I73d9bd3cddc561f3a7af8bcc225fac126dca3f78 Closes: OS#3679 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/38/18938/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 1ab10d3..6bdbb21 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4761,7 +4761,6 @@ "Re-generate + re-send BCCH SYSTEM INFORMATION\n") { struct gsm_network *gsmnet; - struct gsm_bts_trx *trx; struct gsm_bts *bts; unsigned int bts_nr; @@ -4780,8 +4779,7 @@ return CMD_WARNING; } - llist_for_each_entry_reverse(trx, &bts->trx_list, list) - gsm_bts_trx_set_system_infos(trx); + gsm_bts_set_system_infos(bts); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73d9bd3cddc561f3a7af8bcc225fac126dca3f78 Gerrit-Change-Number: 18938 Gerrit-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 Jun 21 14:07:12 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 14:07:12 +0000 Subject: Change in osmo-bsc[master]: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment chang... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18938 ) Change subject: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment changemark ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73d9bd3cddc561f3a7af8bcc225fac126dca3f78 Gerrit-Change-Number: 18938 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 21 Jun 2020 14:07: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 Sun Jun 21 14:08:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 14:08:03 +0000 Subject: Change in osmo-bsc[master]: Count RSL DELETE INDICATION received from BTS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18939 ) Change subject: Count RSL DELETE INDICATION received from BTS ...................................................................... Count RSL DELETE INDICATION received from BTS If the BTS downlink CCCH (PCH + AGCH) queue is full, it sends us an RSL DELETE INDICATION. So far, osmo-bsc logs this as <0004> abis_rsl.c:2026 Unimplemented Abis RSL TRX message type 0x14 which is not very helpful. Instead, make the log message more descriptive and add a rate counter for monitoring. Change-Id: I9bd2966db90e39ccca442d6bc9abc91e9a9147d4 Closes: OS#3190 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c 2 files changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/18939/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 9874706..8c1c545 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1403,6 +1403,7 @@ BTS_CTR_CHAN_ACT_NACK, BTS_CTR_RSL_UNKNOWN, BTS_CTR_RSL_IPA_NACK, + BTS_CTR_RSL_DELETE_IND, BTS_CTR_MODE_MODIFY_NACK, BTS_CTR_LCHAN_BORKEN_FROM_UNUSED, BTS_CTR_LCHAN_BORKEN_FROM_WAIT_ACTIV_ACK, @@ -1458,6 +1459,7 @@ [BTS_CTR_CHAN_ACT_NACK] = {"chan_act:nack", "Number of Channel Activations that the BTS NACKed"}, [BTS_CTR_RSL_UNKNOWN] = {"rsl:unknown", "Number of unknown/unsupported RSL messages received from BTS"}, [BTS_CTR_RSL_IPA_NACK] = {"rsl:ipa_nack", "Number of IPA (RTP/dyn-PDCH) related NACKs received from BTS"}, + [BTS_CTR_RSL_DELETE_IND] = {"rsl:delete_ind", "Number of RSL DELETE INDICATION (DL CCCH overload)"}, [BTS_CTR_MODE_MODIFY_NACK] = {"chan:mode_modify_nack", "Number of Channel Mode Modify NACKs received from BTS"}, /* lchan/TS BORKEN state counters */ @@ -1489,6 +1491,7 @@ [BTS_CTR_ASSIGNMENT_TIMEOUT] = {"assignment:timeout", "Assignment timed out"}, [BTS_CTR_ASSIGNMENT_FAILED] = {"assignment:failed", "Received Assignment Failure message"}, [BTS_CTR_ASSIGNMENT_ERROR] = {"assignment:error", "Assignment failed for other reason"}, + }; static const struct rate_ctr_group_desc bts_ctrg_desc = { diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 2fb1a22..8376f98 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1591,8 +1591,8 @@ break; case RSL_MT_DELETE_IND: /* CCCH overloaded, IMM_ASSIGN was dropped */ - LOGP(DRSL, LOGL_NOTICE, "Unimplemented Abis RSL CChan message " - "type %s\n", rsl_msg_name(rslh->c.msg_type)); + LOGPLCHAN(msg->lchan, DRSL, LOGL_NOTICE, "DELETE INDICATION (Downlink CCCH overload)\n"); + rate_ctr_inc(&sign_link->trx->bts->bts_ctrs->ctr[BTS_CTR_RSL_DELETE_IND]); break; case RSL_MT_CBCH_LOAD_IND: /* current load on the CBCH */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9bd2966db90e39ccca442d6bc9abc91e9a9147d4 Gerrit-Change-Number: 18939 Gerrit-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 Jun 21 14:19:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 14:19:01 +0000 Subject: Change in osmo-bsc[master]: Count RSL DELETE INDICATION received from BTS In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18939 ) Change subject: Count RSL DELETE INDICATION received from BTS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9bd2966db90e39ccca442d6bc9abc91e9a9147d4 Gerrit-Change-Number: 18939 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 21 Jun 2020 14:19:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 16:04:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:04:00 +0000 Subject: Change in osmo-bsc[master]: [cosmetic] system_information: Values are not guesses; more comments In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18935 ) Change subject: [cosmetic] system_information: Values are not guesses; more comments ...................................................................... [cosmetic] system_information: Values are not guesses; more comments Change-Id: I978fbcd0c82658444b7603b082c236d23b0fa04b --- M src/osmo-bsc/system_information.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index d5be3f2..de01112 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -1152,9 +1152,8 @@ .ctrl_ack_type_use_block = true, .ext_info_present = 0, .ext_info = { - /* The values below are just guesses ! */ - .egprs_supported = 0, - .use_egprs_p_ch_req = 0, + .egprs_supported = 0, /* overridden in gsm_generate_si() */ + .use_egprs_p_ch_req = 0, /* overridden in generate_si13() */ .bep_period = 5, .pfc_supported = 0, .dtm_supported = 0, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I978fbcd0c82658444b7603b082c236d23b0fa04b Gerrit-Change-Number: 18935 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 Jun 21 16:04:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:04:25 +0000 Subject: Change in libosmocore[master]: bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18934 ) Change subject: bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION ...................................................................... bts_features.h: Introduce BTS_FEAT_PAGING_COORDINATION This feature indicates if the given BTS supports paging coordination, that is the transmission of CS paging (received on Abis) to be sent via PACCH/PCU in PS domain fro MS with active TBF. Change-Id: Ifb2e83eaf05dd36e5b203ed2de1a74864b039e38 Related: OS#2406 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c 2 files changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index 27a3983..22461a6 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -24,6 +24,7 @@ BTS_FEAT_SPEECH_F_AMR, BTS_FEAT_SPEECH_H_AMR, BTS_FEAT_ETWS_PN, + BTS_FEAT_PAGING_COORDINATION, /* BTS hands CS paging to PCU/PACCH */ _NUM_BTS_FEAT }; diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index e4ff76c..5a4b7f6 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -39,6 +39,7 @@ { BTS_FEAT_SPEECH_F_AMR, "Fullrate speech AMR" }, { BTS_FEAT_SPEECH_H_AMR, "Halfrate speech AMR" }, { BTS_FEAT_ETWS_PN, "ETWS Primary Notification via PCH" }, + { BTS_FEAT_PAGING_COORDINATION, "BSS Paging Coordination" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifb2e83eaf05dd36e5b203ed2de1a74864b039e38 Gerrit-Change-Number: 18934 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 Jun 21 16:05:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:05:00 +0000 Subject: Change in osmo-bsc[master]: bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18937 ) Change subject: bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I10a77315d537681985f8390b838a4cabfb7d27f3 Gerrit-Change-Number: 18937 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 21 Jun 2020 16:05: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 Jun 21 16:05:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:05:03 +0000 Subject: Change in osmo-bsc[master]: bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18937 ) Change subject: bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist ...................................................................... bs11_config: Print "Not Equipped" for MBCCU (TRX) that don't exist Particularly on BS-11 with only one TRX installed, this will improve the output of bs11_config from PHASE: 2 Load MBCCU MBCCU0: Load BTSDRX MBCCU1: unknown 0x8 Abis-link: Down to Change-Id: I10a77315d537681985f8390b838a4cabfb7d27f3 PHASE: 2 Load MBCCU MBCCU0: Load BTSDRX MBCCU1: Not equipped Abis-link: Down --- M src/utils/bs11_config.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/utils/bs11_config.c b/src/utils/bs11_config.c index 7cd4203..1156233 100644 --- a/src/utils/bs11_config.c +++ b/src/utils/bs11_config.c @@ -232,6 +232,7 @@ { 3, "Load BTSBBX" }, { 4, "Load BTSARC" }, { 5, "Load" }, + { 8, "Not Equipped" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I10a77315d537681985f8390b838a4cabfb7d27f3 Gerrit-Change-Number: 18937 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 Sun Jun 21 16:06:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:06:28 +0000 Subject: Change in libosmo-sccp[master]: M3UA: Accept DATA without routing context IE if only a single AS in ASP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 ) Change subject: M3UA: Accept DATA without routing context IE if only a single AS in ASP ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/18818/1/src/m3ua.c File src/m3ua.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/18818/1/src/m3ua.c at 590 PS1, Line 590: LOGPASP(asp, DLM3UA, LOGL_ERROR, > I don't think we really need to pass __func__ here, it's avilable already through the log macros. really? We only log the file and line number, AFAIR. And I'm just using the same style as in the existing code I'm modifying... -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Gerrit-Change-Number: 18818 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 21 Jun 2020 16:06:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 16:06:42 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:06:42 +0000 Subject: Change in libosmo-sccp[master]: M3UA: Accept DATA without routing context IE if only a single AS in ASP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 ) Change subject: M3UA: Accept DATA without routing context IE if only a single AS in ASP ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Gerrit-Change-Number: 18818 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 21 Jun 2020 16:06: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 Jun 21 16:06:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:06:45 +0000 Subject: Change in libosmo-sccp[master]: M3UA: Accept DATA without routing context IE if only a single AS in ASP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 ) Change subject: M3UA: Accept DATA without routing context IE if only a single AS in ASP ...................................................................... M3UA: Accept DATA without routing context IE if only a single AS in ASP There are some M3UA implementations out there who use a routing context during the ASPAC procedure, but who then don't use it in subsequent DATA transmission. This behavior seems to be at the edge of what's possible within the spec; if you don't configure a routing context, The RCTX IE it is not required to be sent. And if you have multiple routing contexts/AS within one ASP, it *must* be sent. But the situation where a routing context has been configured (but not multiple) is not explicitly covered. Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Closes: OS#4594 --- M src/m3ua.c 1 file changed, 49 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved neels: Looks good to me, but someone else must approve diff --git a/src/m3ua.c b/src/m3ua.c index 5ab3e79..08a89b5 100644 --- a/src/m3ua.c +++ b/src/m3ua.c @@ -532,9 +532,26 @@ return data_hdr; } +/* if given ASP only has one AS, return that AS */ +static struct osmo_ss7_as *find_single_as_for_asp(struct osmo_ss7_asp *asp) +{ + struct osmo_ss7_as *as, *as_found = NULL; + + llist_for_each_entry(as, &asp->inst->as_list, list) { + if (!osmo_ss7_as_has_asp(as, asp)) + continue; + /* check if we already had found another AS within this ASP -> not unique */ + if (as_found) + return NULL; + as_found = as; + } + + return as_found; +} + static int m3ua_rx_xfer(struct osmo_ss7_asp *asp, struct xua_msg *xua) { - uint32_t rctx = xua_msg_get_u32(xua, M3UA_IEI_ROUTE_CTX); + struct xua_msg_part *rctx_ie = xua_msg_find_tag(xua, M3UA_IEI_ROUTE_CTX); struct m3ua_data_hdr *dh; struct osmo_ss7_as *as; @@ -548,23 +565,33 @@ return M3UA_ERR_UNSUPP_MSG_TYPE; } - /* Use routing context IE to look up the AS for which the - * message was received. */ - as = osmo_ss7_as_find_by_rctx(asp->inst, rctx); - if (!as) { - LOGPASP(asp, DLM3UA, LOGL_ERROR, - "%s(): invalid routing context: %u\n", - __func__, rctx); - return M3UA_ERR_INVAL_ROUT_CTX; - } + if (rctx_ie) { + uint32_t rctx = xua_msg_part_get_u32(rctx_ie); + /* Use routing context IE to look up the AS for which the + * message was received. */ + as = osmo_ss7_as_find_by_rctx(asp->inst, rctx); + if (!as) { + LOGPASP(asp, DLM3UA, LOGL_ERROR, "%s(): invalid routing context: %u\n", + __func__, rctx); + return M3UA_ERR_INVAL_ROUT_CTX; + } - /* Verify that this ASP is part of the AS. */ - if (!osmo_ss7_as_has_asp(as, asp)) { - LOGPASP(asp, DLM3UA, LOGL_ERROR, - "%s(): This Application Server Process is not part of the AS %s resolved by" - " routing context %u\n", - __func__, (as)->cfg.name, rctx); - return M3UA_ERR_NO_CONFGD_AS_FOR_ASP; + /* Verify that this ASP is part of the AS. */ + if (!osmo_ss7_as_has_asp(as, asp)) { + LOGPASP(asp, DLM3UA, LOGL_ERROR, + "%s(): This Application Server Process is not part of the AS %s " + "resolved by routing context %u\n", __func__, (as)->cfg.name, rctx); + return M3UA_ERR_NO_CONFGD_AS_FOR_ASP; + } + } else { + /* no explicit routing context; this only works if there is only one AS in the ASP */ + as = find_single_as_for_asp(asp); + if (!as) { + LOGPASP(asp, DLM3UA, LOGL_ERROR, + "%s(): ASP sent M3UA without Routing Context IE but unable to uniquely " + "identify the AS for this message\n", __func__); + return M3UA_ERR_INVAL_ROUT_CTX; + } } /* FIXME: check for AS state == ACTIVE */ @@ -579,9 +606,11 @@ __func__, xua->mtp.opc, osmo_ss7_pointcode_print(asp->inst, xua->mtp.opc), xua->mtp.dpc, osmo_ss7_pointcode_print2(asp->inst, xua->mtp.dpc)); - /* remove ROUTE_CTX as in the routing case we want to add a new - * routing context on the outbound side */ - xua_msg_free_tag(xua, M3UA_IEI_ROUTE_CTX); + if (rctx_ie) { + /* remove ROUTE_CTX as in the routing case we want to add a new + * routing context on the outbound side */ + xua_msg_free_tag(xua, M3UA_IEI_ROUTE_CTX); + } return m3ua_hmdc_rx_from_l2(asp->inst, xua); /* xua will be freed by caller m3ua_rx_msg() */ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I59f47a999f40411aadc88b8f362d8d2b89a66332 Gerrit-Change-Number: 18818 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder 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 Sun Jun 21 16:07:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:07:15 +0000 Subject: Change in osmo-bsc[master]: Count RSL DELETE INDICATION received from BTS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18939 ) Change subject: Count RSL DELETE INDICATION received from BTS ...................................................................... Count RSL DELETE INDICATION received from BTS If the BTS downlink CCCH (PCH + AGCH) queue is full, it sends us an RSL DELETE INDICATION. So far, osmo-bsc logs this as <0004> abis_rsl.c:2026 Unimplemented Abis RSL TRX message type 0x14 which is not very helpful. Instead, make the log message more descriptive and add a rate counter for monitoring. Change-Id: I9bd2966db90e39ccca442d6bc9abc91e9a9147d4 Closes: OS#3190 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c 2 files changed, 5 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 9874706..8c1c545 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1403,6 +1403,7 @@ BTS_CTR_CHAN_ACT_NACK, BTS_CTR_RSL_UNKNOWN, BTS_CTR_RSL_IPA_NACK, + BTS_CTR_RSL_DELETE_IND, BTS_CTR_MODE_MODIFY_NACK, BTS_CTR_LCHAN_BORKEN_FROM_UNUSED, BTS_CTR_LCHAN_BORKEN_FROM_WAIT_ACTIV_ACK, @@ -1458,6 +1459,7 @@ [BTS_CTR_CHAN_ACT_NACK] = {"chan_act:nack", "Number of Channel Activations that the BTS NACKed"}, [BTS_CTR_RSL_UNKNOWN] = {"rsl:unknown", "Number of unknown/unsupported RSL messages received from BTS"}, [BTS_CTR_RSL_IPA_NACK] = {"rsl:ipa_nack", "Number of IPA (RTP/dyn-PDCH) related NACKs received from BTS"}, + [BTS_CTR_RSL_DELETE_IND] = {"rsl:delete_ind", "Number of RSL DELETE INDICATION (DL CCCH overload)"}, [BTS_CTR_MODE_MODIFY_NACK] = {"chan:mode_modify_nack", "Number of Channel Mode Modify NACKs received from BTS"}, /* lchan/TS BORKEN state counters */ @@ -1489,6 +1491,7 @@ [BTS_CTR_ASSIGNMENT_TIMEOUT] = {"assignment:timeout", "Assignment timed out"}, [BTS_CTR_ASSIGNMENT_FAILED] = {"assignment:failed", "Received Assignment Failure message"}, [BTS_CTR_ASSIGNMENT_ERROR] = {"assignment:error", "Assignment failed for other reason"}, + }; static const struct rate_ctr_group_desc bts_ctrg_desc = { diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 2fb1a22..8376f98 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1591,8 +1591,8 @@ break; case RSL_MT_DELETE_IND: /* CCCH overloaded, IMM_ASSIGN was dropped */ - LOGP(DRSL, LOGL_NOTICE, "Unimplemented Abis RSL CChan message " - "type %s\n", rsl_msg_name(rslh->c.msg_type)); + LOGPLCHAN(msg->lchan, DRSL, LOGL_NOTICE, "DELETE INDICATION (Downlink CCCH overload)\n"); + rate_ctr_inc(&sign_link->trx->bts->bts_ctrs->ctr[BTS_CTR_RSL_DELETE_IND]); break; case RSL_MT_CBCH_LOAD_IND: /* current load on the CBCH */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9bd2966db90e39ccca442d6bc9abc91e9a9147d4 Gerrit-Change-Number: 18939 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 Sun Jun 21 16:09:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:09:11 +0000 Subject: Change in osmo-bsc[master]: vty: hide 'mscpool roundrobin next' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18873 ) Change subject: vty: hide 'mscpool roundrobin next' ...................................................................... vty: hide 'mscpool roundrobin next' The 'mscpool roundrobin next' command is intended for use only by ttcn3 tests. Hide it. Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 7 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified Objections: neels: I would prefer this is not merged as is diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 1ab10d3..9896bff 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -6286,13 +6286,13 @@ } /* Hidden since it exists only for use by ttcn3 tests */ -DEFUN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, - "mscpool roundrobin next " MSC_NR_RANGE, - "MSC pooling: load balancing across multiple MSCs.\n" - "Adjust current state of the MSC round-robin algorithm (for testing).\n" - "Set the MSC nr to direct the next new subscriber to (for testing).\n" - "MSC number, as in the config file; if the number does not exist," - " the round-robin continues to the next valid number.\n") +DEFUN_HIDDEN(mscpool_roundrobin_next, mscpool_roundrobin_next_cmd, + "mscpool roundrobin next " MSC_NR_RANGE, + "MSC pooling: load balancing across multiple MSCs.\n" + "Adjust current state of the MSC round-robin algorithm (for testing).\n" + "Set the MSC nr to direct the next new subscriber to (for testing).\n" + "MSC number, as in the config file; if the number does not exist," + " the round-robin continues to the next valid number.\n") { bsc_gsmnet->mscs_round_robin_next_nr = atoi(argv[0]); return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie8799b61b74cfb34acd5aa4aeb1fb69ae7d216e2 Gerrit-Change-Number: 18873 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 16:09:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 16:09:51 +0000 Subject: Change in osmo-bsc[master]: Implement support for receiving BSSMAP CommonID from MSC References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18942 ) Change subject: Implement support for receiving BSSMAP CommonID from MSC ...................................................................... Implement support for receiving BSSMAP CommonID from MSC The MSC may at any time send a BSSMAP CommonID message via a SCCP connection to inform us of the IMSI of the subscriber. Let's make use of that information by associating a related bsc_subscr and updating the identity of the bsc_subscr_conn_fsm for improved logging / filtering. Closes: OS#2969 Change-Id: I52c43fb940f0db796adf4c0adb2260321c721c39 --- M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_msc.c 5 files changed, 55 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/42/18942/1 diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index b1fe14d..43ace25 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -64,6 +64,7 @@ MSC_CTR_BSSMAP_RX_DT1_HANDOVER_CMD, MSC_CTR_BSSMAP_RX_DT1_CLASSMARK_RQST, MSC_CTR_BSSMAP_RX_DT1_CONFUSION, + MSC_CTR_BSSMAP_RX_DT1_COMMON_ID, MSC_CTR_BSSMAP_RX_DT1_UNKNOWN, MSC_CTR_BSSMAP_RX_DT1_DTAP, MSC_CTR_BSSMAP_RX_DT1_DTAP_ERROR, diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h index 5475272..1c88e42 100644 --- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h +++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h @@ -12,6 +12,8 @@ GSCON_EV_A_CLEAR_CMD, /* MSC SCCP disconnect indication */ GSCON_EV_A_DISC_IND, + /* MSC has sent a BSSMAP COMMON ID */ + GSCON_EV_A_COMMON_ID_IND, GSCON_EV_ASSIGNMENT_START, GSCON_EV_ASSIGNMENT_END, diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 1d30246..b723526 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -72,6 +72,7 @@ {GSCON_EV_A_CONN_CFM, "MO-CONNECT.cfm"}, {GSCON_EV_A_CLEAR_CMD, "CLEAR_CMD"}, {GSCON_EV_A_DISC_IND, "DISCONNET.ind"}, + {GSCON_EV_A_COMMON_ID_IND, "COMMON_ID.ind"}, {GSCON_EV_ASSIGNMENT_START, "ASSIGNMENT_START"}, {GSCON_EV_ASSIGNMENT_END, "ASSIGNMENT_END"}, {GSCON_EV_HANDOVER_START, "HANDOVER_START"}, @@ -746,6 +747,7 @@ static void gscon_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_subscriber_connection *conn = fi->priv; + struct osmo_mobile_identity *mi_imsi; /* Regular allstate event processing */ switch (event) { @@ -788,6 +790,17 @@ break; case GSCON_EV_LCLS_FAIL: break; + case GSCON_EV_A_COMMON_ID_IND: + mi_imsi = data; + if (!conn->bsub) + conn->bsub = bsc_subscr_find_or_create_by_imsi(conn->network->bsc_subscribers, mi_imsi->imsi); + 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); + } + gscon_update_id(conn); + break; default: OSMO_ASSERT(false); break; @@ -879,7 +892,8 @@ .name = "SUBSCR_CONN", .states = gscon_fsm_states, .num_states = ARRAY_SIZE(gscon_fsm_states), - .allstate_event_mask = S(GSCON_EV_A_DISC_IND) | S(GSCON_EV_A_CLEAR_CMD) | S(GSCON_EV_RSL_CONN_FAIL) | + .allstate_event_mask = S(GSCON_EV_A_DISC_IND) | S(GSCON_EV_A_CLEAR_CMD) | S(GSCON_EV_A_COMMON_ID_IND) | + S(GSCON_EV_RSL_CONN_FAIL) | S(GSCON_EV_LCLS_FAIL) | S(GSCON_EV_FORGET_LCHAN) | S(GSCON_EV_FORGET_MGW_ENDPOINT), diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 6b225e4..6cbe6fb 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -1060,6 +1060,38 @@ return 0; } +/* Common ID; 3GPP TS 48.008 3.2.1.68 */ +static int bssmap_handle_common_id(struct gsm_subscriber_connection *conn, + 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); + + /* Check for the mandatory elements */ + if (!TLVP_PRESENT(&tp, GSM0808_IE_IMSI)) { + LOGPFSML(conn->fi, LOGL_ERROR, + "CommonID: missing mandatory IMSI IE: %s\n", + osmo_hexdump(msg->l4h, length)); + return -EINVAL; + } else if ((TLVP_VAL(&tp, GSM0808_IE_IMSI)[0] & GSM_MI_TYPE_MASK) != GSM_MI_TYPE_IMSI) { + LOGPFSML(conn->fi, LOGL_ERROR, "CommonID: Wrong content in the IMSI IE\n"); + 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); + + return 0; +} + + static int bssmap_rcvmsg_udt(struct bsc_msc_data *msc, struct msgb *msg, unsigned int length) { @@ -1140,6 +1172,10 @@ rate_ctr_inc(&ctrs[MSC_CTR_BSSMAP_RX_DT1_CONFUSION]); ret = bssmap_handle_confusion(conn, msg, length); break; + case BSS_MAP_MSG_COMMON_ID: + rate_ctr_inc(&ctrs[MSC_CTR_BSSMAP_RX_DT1_COMMON_ID]); + ret = bssmap_handle_common_id(conn, msg, length); + break; default: rate_ctr_inc(&ctrs[MSC_CTR_BSSMAP_RX_DT1_UNKNOWN]); LOGP(DMSC, LOGL_NOTICE, "Unimplemented msg type: %s\n", diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index 9b00ffc..aa2a671 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -57,6 +57,7 @@ [MSC_CTR_BSSMAP_RX_DT1_HANDOVER_CMD] = {"bssmap:rx:dt1:handover:cmd", "Number of received BSSMAP DT1 HANDOVER CMD messages"}, [MSC_CTR_BSSMAP_RX_DT1_CLASSMARK_RQST] = {"bssmap:rx:dt1:classmark:rqst", "Number of received BSSMAP DT1 CLASSMARK RQST messages"}, [MSC_CTR_BSSMAP_RX_DT1_CONFUSION] = {"bssmap:rx:dt1:confusion", "Number of received BSSMAP DT1 CONFUSION messages"}, + [MSC_CTR_BSSMAP_RX_DT1_COMMON_ID] = {"bssmap:rx:dt1:common_id", "Number of received BSSMAP DT1 COMMON ID messages"}, [MSC_CTR_BSSMAP_RX_DT1_UNKNOWN] = {"bssmap:rx:dt1:err_unknown", "Number of received BSSMAP unknown DT1 messages"}, [MSC_CTR_BSSMAP_RX_DT1_DTAP] = {"bssmap:rx:dt1:dtap:good", "Number of received BSSMAP DTAP messages"}, [MSC_CTR_BSSMAP_RX_DT1_DTAP_ERROR] = {"bssmap:rx:dt1:dtap:error", "Number of received BSSMAP DTAP messages with errors"}, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I52c43fb940f0db796adf4c0adb2260321c721c39 Gerrit-Change-Number: 18942 Gerrit-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 Jun 21 17:45:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 17:45:30 +0000 Subject: Change in osmo-bsc[master]: system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18936 ) Change subject: system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts ...................................................................... system_information: Set BSS_PAGING_COORDINATION in SI13 for osmo-bts osmo-bts (in combination with osmo-pcu) has been supporting paging for CS services via PCU/PACCH for a very long time. Let's make sure this is reflected by the correct BSS_PAGING_COORDINATION bit. Change-Id: I0e80ca5afc06737273b6699bde6e325e454b57f6 Requires: libosmocore.git Ifb2e83eaf05dd36e5b203ed2de1a74864b039e38 Related: OS#2406 --- M src/osmo-bsc/bts_sysmobts.c M src/osmo-bsc/system_information.c 2 files changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c index ad12733..6f9dc77 100644 --- a/src/osmo-bsc/bts_sysmobts.c +++ b/src/osmo-bsc/bts_sysmobts.c @@ -58,6 +58,7 @@ 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); return gsm_bts_model_register(&model_sysmobts); } diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index de01112..4a1118e 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -1202,6 +1202,11 @@ else si13_default.cell_opts.ext_info.use_egprs_p_ch_req = 0; + if (osmo_bts_has_feature(&bts->features, BTS_FEAT_PAGING_COORDINATION)) + si13_default.cell_opts.ext_info.bss_paging_coordination = 1; + else + si13_default.cell_opts.ext_info.bss_paging_coordination = 0; + ret = rest_octets_si13(si13->rest_octets, &si13_default); if (ret < 0) return ret; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e80ca5afc06737273b6699bde6e325e454b57f6 Gerrit-Change-Number: 18936 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 Sun Jun 21 18:28:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 18:28:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: osmo-bsc.cfg: Remove access-list directive References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18943 ) Change subject: osmo-bsc.cfg: Remove access-list directive ...................................................................... osmo-bsc.cfg: Remove access-list directive This was removed when libfilter was removed from osmo-bsc. For some strange reason apparently the config files were not used/tested while testing the removal of libfilter. Also, irrespective of breaking TTCN3 test execution, we must introduce a dummy 'access-list' VTY command to osmo-bsc to ensure we don't break virtually every config file out there. Change-Id: I5d703b9f2f1066654daa43519999585cf9ec7e78 --- M bsc/osmo-bsc.cfg M bts/osmo-bsc.cfg 2 files changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/43/18943/1 diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index cd698b0..6e80e83 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -385,7 +385,6 @@ bsc mid-call-timeout 0 no missing-msc-text - access-list-name bsc-list cbc remote-ip 127.0.0.1 remote-port 48049 diff --git a/bts/osmo-bsc.cfg b/bts/osmo-bsc.cfg index 9025fe4..84a3a3c 100644 --- a/bts/osmo-bsc.cfg +++ b/bts/osmo-bsc.cfg @@ -157,4 +157,3 @@ bsc mid-call-timeout 0 no missing-msc-text - access-list-name bsc-list -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d703b9f2f1066654daa43519999585cf9ec7e78 Gerrit-Change-Number: 18943 Gerrit-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 Jun 21 18:28:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 18:28:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Sync osmo-{bsc, stp}.cfg with docker-playground.git References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18944 ) Change subject: bsc: Sync osmo-{bsc,stp}.cfg with docker-playground.git ...................................................................... bsc: Sync osmo-{bsc,stp}.cfg with docker-playground.git It appears some changes were made only to the files in docker-playground.git, but not here. This means that running tests locally produced unexpected results. We must always ensure that the tests run both without and with docker, which means making sure the configs are all maintained! Change-Id: I3a3f4c572b8a390882fb8f12807018ca19e4827c --- M bsc/BSC_Tests.ttcn M bsc/osmo-bsc.cfg M bsc/osmo-stp.cfg 3 files changed, 66 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/44/18944/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 7398612..84f8eaf 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -131,7 +131,7 @@ peer_pc := 187, /* 0.23.3 osmo-bsc */ peer_ssn := 254, sio := '83'O, - rctx := 0 + rctx := 1 }, { transport := BSSAP_TRANSPORT_AoIP, diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index 6e80e83..a4c767a 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -6,10 +6,11 @@ log stderr logging filter all 1 logging color 1 - logging print category 0 - logging timestamp 0 + logging print category 1 + logging timestamp 1 + logging print extended-timestamp 1 + logging level all everything logging level rll notice - logging level cc notice logging level mm notice logging level rr notice logging level rsl notice @@ -17,10 +18,8 @@ logging level pag notice logging level meas notice logging level msc notice - logging level mgcp notice logging level ho notice logging level ref notice - logging level nat notice logging level ctrl notice logging level filter debug logging level pcu debug @@ -46,11 +45,19 @@ ! line vty no login + bind 127.0.0.1 ! e1_input e1_line 0 driver ipa e1_line 0 port 0 no e1_line 0 keepalive +cs7 instance 0 + asp asp-clnt-msc-0 2905 1905 m3ua + remote-ip 127.0.0.1 + sccp-address msc2 + point-code 0.0.2 + sccp-address msc3 + point-code 0.0.3 network network country code 1 mobile network code 1 @@ -64,9 +71,8 @@ handover power budget interval 6 handover power budget hysteresis 3 handover maximum distance 9999 - dyn_ts_allow_tch_f 1 - periodic location update 30 timer t3113 10 + timer t3212 30 bts 0 type sysmobts band DCS1800 @@ -95,7 +101,6 @@ si5 neighbor-list add arfcn 20 codec-support fr hr efr amr gprs mode gprs - gprs 11bit_rach_support_for_egprs 0 gprs routing area 0 gprs network-control-order nc0 gprs cell bvci 1234 @@ -127,6 +132,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -134,7 +140,7 @@ max_power_red 20 rsl e1 tei 0 timeslot 0 - phys_chan_config CCCH+SDCCH4+CBCH + phys_chan_config CCCH+SDCCH4 hopping enabled 0 timeslot 1 phys_chan_config TCH/F @@ -185,7 +191,6 @@ si5 neighbor-list add arfcn 20 codec-support fr hr efr amr gprs mode gprs - gprs 11bit_rach_support_for_egprs 0 gprs routing area 0 gprs network-control-order nc0 gprs cell bvci 1235 @@ -217,6 +222,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -224,7 +230,7 @@ max_power_red 20 rsl e1 tei 0 timeslot 0 - phys_chan_config CCCH+SDCCH4+CBCH + phys_chan_config CCCH+SDCCH4 hopping enabled 0 timeslot 1 phys_chan_config TCH/F @@ -275,7 +281,6 @@ si5 neighbor-list add arfcn 20 codec-support fr hr efr amr gprs mode gprs - gprs 11bit_rach_support_for_egprs 0 gprs routing area 0 gprs network-control-order nc0 gprs cell bvci 1236 @@ -307,6 +312,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -314,7 +320,7 @@ max_power_red 20 rsl e1 tei 0 timeslot 0 - phys_chan_config CCCH+SDCCH4+CBCH + phys_chan_config CCCH+SDCCH4 hopping enabled 0 timeslot 1 phys_chan_config TCH/F @@ -341,7 +347,7 @@ type sysmobts band DCS1800 cell_identity 3 - location_area_code 2 + location_area_code 3 # re-use bts 2's ARFCN 871 and BSIC 12 (to test handover config) base_station_id_code 12 trx 0 @@ -381,10 +387,34 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 + mgw remote-ip 127.0.0.1 lcls-mode mgw-loop +msc 1 + msc-addr msc2 + mgw remote-ip 127.0.0.1 +msc 2 + msc-addr msc3 + mgw remote-ip 127.0.0.1 + +network + nri bitlen 10 + # a NULL NRI that is outside the NRI ranges used by the MSCs: + nri null add 0 + # a NULL NRI that is also used by an MSC: + nri null add 1 +msc 0 + nri add 1 255 +msc 1 + nri add 256 511 +msc 2 + nri add 512 767 + # range 768-1024 is not assigned to any MSC on purpose + bsc mid-call-timeout 0 no missing-msc-text +ctrl + bind 127.0.0.1 cbc remote-ip 127.0.0.1 remote-port 48049 diff --git a/bsc/osmo-stp.cfg b/bsc/osmo-stp.cfg index f40a02f..8b8ccdb 100644 --- a/bsc/osmo-stp.cfg +++ b/bsc/osmo-stp.cfg @@ -6,7 +6,8 @@ logging filter all 1 logging color 1 logging print category 1 - logging timestamp 0 + logging timestamp 1 + logging print extended-timestamp 1 logging level all everything logging level lglobal notice logging level llapd notice @@ -31,23 +32,34 @@ ! cs7 instance 0 xua rkm routing-key-allocation dynamic-permitted -! asp virt-bsc0-0 22905 2905 m3ua -! local-ip 127.0.0.1 -! remote-ip 127.0.0.1 asp virt-msc0-0 23905 2905 m3ua local-ip 127.0.0.1 remote-ip 127.0.0.1 as mahlzeit ipa - routing-key 1 0.23.4 + routing-key 0 0.23.4 point-code override dpc 0.23.1 -! as virt-bsc0 m3ua -! asp virt-bsc0-0 -! routing-key 0 0.24.1 as virt-msc0 m3ua asp virt-msc0-0 - routing-key 0 0.23.1 + routing-key 1 0.23.1 + + asp virt-msc1-0 23906 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-msc1 m3ua + asp virt-msc1-0 + routing-key 2 0.0.2 + + asp virt-msc2-0 23907 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-msc2 m3ua + asp virt-msc2-0 + routing-key 3 0.0.3 + route-table system update route 0.23.1 7.255.7 linkset virt-msc0 + update route 0.0.2 7.255.7 linkset virt-msc1 + update route 0.0.3 7.255.7 linkset virt-msc2 listen m3ua 2905 accept-asp-connections dynamic-permitted listen ipa 5000 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3a3f4c572b8a390882fb8f12807018ca19e4827c Gerrit-Change-Number: 18944 Gerrit-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 Jun 21 18:29:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 18:29:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: osmo-bsc.cfg: Remove access-list directive In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18943 ) Change subject: osmo-bsc.cfg: Remove access-list directive ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d703b9f2f1066654daa43519999585cf9ec7e78 Gerrit-Change-Number: 18943 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 21 Jun 2020 18:29: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 Jun 21 18:29:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 18:29:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Sync osmo-{bsc, stp}.cfg with docker-playground.git In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18944 ) Change subject: bsc: Sync osmo-{bsc,stp}.cfg with docker-playground.git ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3a3f4c572b8a390882fb8f12807018ca19e4827c Gerrit-Change-Number: 18944 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 21 Jun 2020 18:29: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 Jun 21 18:29:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 18:29:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: osmo-bsc.cfg: Remove access-list directive In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18943 ) Change subject: osmo-bsc.cfg: Remove access-list directive ...................................................................... osmo-bsc.cfg: Remove access-list directive This was removed when libfilter was removed from osmo-bsc. For some strange reason apparently the config files were not used/tested while testing the removal of libfilter. Also, irrespective of breaking TTCN3 test execution, we must introduce a dummy 'access-list' VTY command to osmo-bsc to ensure we don't break virtually every config file out there. Change-Id: I5d703b9f2f1066654daa43519999585cf9ec7e78 --- M bsc/osmo-bsc.cfg M bts/osmo-bsc.cfg 2 files changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index cd698b0..6e80e83 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -385,7 +385,6 @@ bsc mid-call-timeout 0 no missing-msc-text - access-list-name bsc-list cbc remote-ip 127.0.0.1 remote-port 48049 diff --git a/bts/osmo-bsc.cfg b/bts/osmo-bsc.cfg index 9025fe4..84a3a3c 100644 --- a/bts/osmo-bsc.cfg +++ b/bts/osmo-bsc.cfg @@ -157,4 +157,3 @@ bsc mid-call-timeout 0 no missing-msc-text - access-list-name bsc-list -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5d703b9f2f1066654daa43519999585cf9ec7e78 Gerrit-Change-Number: 18943 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 18:29:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 18:29:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Sync osmo-{bsc, stp}.cfg with docker-playground.git In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18944 ) Change subject: bsc: Sync osmo-{bsc,stp}.cfg with docker-playground.git ...................................................................... bsc: Sync osmo-{bsc,stp}.cfg with docker-playground.git It appears some changes were made only to the files in docker-playground.git, but not here. This means that running tests locally produced unexpected results. We must always ensure that the tests run both without and with docker, which means making sure the configs are all maintained! Change-Id: I3a3f4c572b8a390882fb8f12807018ca19e4827c --- M bsc/BSC_Tests.ttcn M bsc/osmo-bsc.cfg M bsc/osmo-stp.cfg 3 files changed, 66 insertions(+), 24 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 7398612..84f8eaf 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -131,7 +131,7 @@ peer_pc := 187, /* 0.23.3 osmo-bsc */ peer_ssn := 254, sio := '83'O, - rctx := 0 + rctx := 1 }, { transport := BSSAP_TRANSPORT_AoIP, diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index 6e80e83..a4c767a 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -6,10 +6,11 @@ log stderr logging filter all 1 logging color 1 - logging print category 0 - logging timestamp 0 + logging print category 1 + logging timestamp 1 + logging print extended-timestamp 1 + logging level all everything logging level rll notice - logging level cc notice logging level mm notice logging level rr notice logging level rsl notice @@ -17,10 +18,8 @@ logging level pag notice logging level meas notice logging level msc notice - logging level mgcp notice logging level ho notice logging level ref notice - logging level nat notice logging level ctrl notice logging level filter debug logging level pcu debug @@ -46,11 +45,19 @@ ! line vty no login + bind 127.0.0.1 ! e1_input e1_line 0 driver ipa e1_line 0 port 0 no e1_line 0 keepalive +cs7 instance 0 + asp asp-clnt-msc-0 2905 1905 m3ua + remote-ip 127.0.0.1 + sccp-address msc2 + point-code 0.0.2 + sccp-address msc3 + point-code 0.0.3 network network country code 1 mobile network code 1 @@ -64,9 +71,8 @@ handover power budget interval 6 handover power budget hysteresis 3 handover maximum distance 9999 - dyn_ts_allow_tch_f 1 - periodic location update 30 timer t3113 10 + timer t3212 30 bts 0 type sysmobts band DCS1800 @@ -95,7 +101,6 @@ si5 neighbor-list add arfcn 20 codec-support fr hr efr amr gprs mode gprs - gprs 11bit_rach_support_for_egprs 0 gprs routing area 0 gprs network-control-order nc0 gprs cell bvci 1234 @@ -127,6 +132,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -134,7 +140,7 @@ max_power_red 20 rsl e1 tei 0 timeslot 0 - phys_chan_config CCCH+SDCCH4+CBCH + phys_chan_config CCCH+SDCCH4 hopping enabled 0 timeslot 1 phys_chan_config TCH/F @@ -185,7 +191,6 @@ si5 neighbor-list add arfcn 20 codec-support fr hr efr amr gprs mode gprs - gprs 11bit_rach_support_for_egprs 0 gprs routing area 0 gprs network-control-order nc0 gprs cell bvci 1235 @@ -217,6 +222,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -224,7 +230,7 @@ max_power_red 20 rsl e1 tei 0 timeslot 0 - phys_chan_config CCCH+SDCCH4+CBCH + phys_chan_config CCCH+SDCCH4 hopping enabled 0 timeslot 1 phys_chan_config TCH/F @@ -275,7 +281,6 @@ si5 neighbor-list add arfcn 20 codec-support fr hr efr amr gprs mode gprs - gprs 11bit_rach_support_for_egprs 0 gprs routing area 0 gprs network-control-order nc0 gprs cell bvci 1236 @@ -307,6 +312,7 @@ gprs nsvc 1 remote udp port 0 gprs nsvc 1 remote ip 0.0.0.0 no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 trx 0 rf_locked 0 arfcn 871 @@ -314,7 +320,7 @@ max_power_red 20 rsl e1 tei 0 timeslot 0 - phys_chan_config CCCH+SDCCH4+CBCH + phys_chan_config CCCH+SDCCH4 hopping enabled 0 timeslot 1 phys_chan_config TCH/F @@ -341,7 +347,7 @@ type sysmobts band DCS1800 cell_identity 3 - location_area_code 2 + location_area_code 3 # re-use bts 2's ARFCN 871 and BSIC 12 (to test handover config) base_station_id_code 12 trx 0 @@ -381,10 +387,34 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 + mgw remote-ip 127.0.0.1 lcls-mode mgw-loop +msc 1 + msc-addr msc2 + mgw remote-ip 127.0.0.1 +msc 2 + msc-addr msc3 + mgw remote-ip 127.0.0.1 + +network + nri bitlen 10 + # a NULL NRI that is outside the NRI ranges used by the MSCs: + nri null add 0 + # a NULL NRI that is also used by an MSC: + nri null add 1 +msc 0 + nri add 1 255 +msc 1 + nri add 256 511 +msc 2 + nri add 512 767 + # range 768-1024 is not assigned to any MSC on purpose + bsc mid-call-timeout 0 no missing-msc-text +ctrl + bind 127.0.0.1 cbc remote-ip 127.0.0.1 remote-port 48049 diff --git a/bsc/osmo-stp.cfg b/bsc/osmo-stp.cfg index f40a02f..8b8ccdb 100644 --- a/bsc/osmo-stp.cfg +++ b/bsc/osmo-stp.cfg @@ -6,7 +6,8 @@ logging filter all 1 logging color 1 logging print category 1 - logging timestamp 0 + logging timestamp 1 + logging print extended-timestamp 1 logging level all everything logging level lglobal notice logging level llapd notice @@ -31,23 +32,34 @@ ! cs7 instance 0 xua rkm routing-key-allocation dynamic-permitted -! asp virt-bsc0-0 22905 2905 m3ua -! local-ip 127.0.0.1 -! remote-ip 127.0.0.1 asp virt-msc0-0 23905 2905 m3ua local-ip 127.0.0.1 remote-ip 127.0.0.1 as mahlzeit ipa - routing-key 1 0.23.4 + routing-key 0 0.23.4 point-code override dpc 0.23.1 -! as virt-bsc0 m3ua -! asp virt-bsc0-0 -! routing-key 0 0.24.1 as virt-msc0 m3ua asp virt-msc0-0 - routing-key 0 0.23.1 + routing-key 1 0.23.1 + + asp virt-msc1-0 23906 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-msc1 m3ua + asp virt-msc1-0 + routing-key 2 0.0.2 + + asp virt-msc2-0 23907 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-msc2 m3ua + asp virt-msc2-0 + routing-key 3 0.0.3 + route-table system update route 0.23.1 7.255.7 linkset virt-msc0 + update route 0.0.2 7.255.7 linkset virt-msc1 + update route 0.0.3 7.255.7 linkset virt-msc2 listen m3ua 2905 accept-asp-connections dynamic-permitted listen ipa 5000 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I3a3f4c572b8a390882fb8f12807018ca19e4827c Gerrit-Change-Number: 18944 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 18:51:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 18:51:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 ) Change subject: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed ...................................................................... bsc: Add CommonID Test: Send CommonID from MSC and check it is processed Related: OS#2969 Change-Id: I501108bc6c19b17d3fc680211c7290a31770a159 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/BSSMAP_Templates.ttcn 3 files changed, 60 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/45/18945/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 84f8eaf..9cb15f2 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2777,6 +2777,33 @@ vc_conn.done; } +/* Send a CommonID from the simulated MSC and verify that the information is used to + * fill BSC-internal data structures (specifically, bsc_subscr associated with subscr_conn) */ +private function f_tc_common_id(charstring id) runs on MSC_ConnHdlr { + g_pars := f_gen_test_hdlr_pars(); + f_MscConnHdlr_init_vty(); + + f_create_chan_and_exp(); + /* we should now have a COMPL_L3 at the MSC */ + BSSAP.receive(tr_BSSMAP_ComplL3); + + /* Send CommonID */ + BSSAP.send(ts_BSSMAP_CommonId(g_pars.imsi)); + + /* Use VTY to verify that the IMSI of the subscr_conn is set */ + var charstring regex := "*(IMSI: " & hex2str(g_pars.imsi) & ")*"; + f_vty_transceive_match_regexp_retry(BSCVTY, "show conns", regex, 0, 4, 1.0); + + setverdict(pass); +} +testcase TC_common_id() runs on test_CT { + var MSC_ConnHdlr vc_conn; + f_init(1, true); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_tc_common_id)); + vc_conn.done; +} + private function f_est_single_l3(template PDU_ML3_MS_NW l3) runs on MSC_ConnHdlr { g_pars := f_gen_test_hdlr_pars(); f_create_chan_and_exp(); @@ -5206,6 +5233,7 @@ execute( TC_oml_unknown_unit_id() ); execute( TC_classmark() ); + execute( TC_common_id() ); execute( TC_unsol_ass_fail() ); execute( TC_unsol_ass_compl() ); execute( TC_unsol_ho_fail() ); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 8ac7051..67650b2 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -431,9 +431,7 @@ var boolean g_vty_initialized := false; } -/* initialize all parameters */ -function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) runs on MSC_ConnHdlr { - f_MediaState_init(g_media, i, bts, mgw, codecType); +function f_MscConnHdlr_init_vty() runs on MSC_ConnHdlr { if (not g_vty_initialized) { map(self:BSCVTY, system:BSCVTY); f_vty_set_prompts(BSCVTY); @@ -442,6 +440,12 @@ } } +/* initialize all parameters */ +function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) runs on MSC_ConnHdlr { + f_MediaState_init(g_media, i, bts, mgw, codecType); + f_MscConnHdlr_init_vty(); +} + private function get_next_trans_id() runs on MSC_ConnHdlr return MgcpTransId { var MgcpTransId tid := int2str(g_trans_id); g_trans_id := g_trans_id + 1; diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 406dfc5..776e8be 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1599,6 +1599,31 @@ } } +template PDU_BSSAP ts_BSSMAP_CommonId(hexstring imsi_digits) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + commonID := { + messageType := '2F'O, + iMSI := ts_BSSMAP_Imsi(imsi_digits), + sNAAccessInformation := omit + } + } + } +} + +template PDU_BSSAP tr_BSSMAP_CommonId(template hexstring imsi_digits) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + commonID := { + messageType := '2F'O, + iMSI := tr_BSSMAP_Imsi(imsi_digits), + sNAAccessInformation := * + } + } + } +} -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I501108bc6c19b17d3fc680211c7290a31770a159 Gerrit-Change-Number: 18945 Gerrit-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 Jun 21 20:05:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:05:48 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... gsm0808: Add gsm0808_create_common_id() This function encodes a GSM 08.08 / 48.008 "Common ID" message. Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Related: OS#2969 --- M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 3 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/18946/1 diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 34cec3c..2a26fb5 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -104,6 +104,9 @@ enum gsm0808_lcls_control control); struct msgb *gsm0808_create_lcls_conn_ctrl_ack(enum gsm0808_lcls_status status); struct msgb *gsm0808_create_lcls_notification(enum gsm0808_lcls_status status, bool break_req); +struct msgb *gsm0808_create_common_id(const char *imsi, + const struct osmo_plmn_id *selected_plmn_id, + const struct osmo_plmn_id *last_used_eutran_plnm_id); /*! 3GPP TS 48.008 ?3.2.2.5.8 Old BSS to New BSS information */ diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 9fdf379..e1db175 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -1235,6 +1235,48 @@ return msg; } +struct msgb *gsm0808_create_common_id(const char *imsi, + const struct osmo_plmn_id *selected_plmn_id, + const struct osmo_plmn_id *last_used_eutran_plnm_id) +{ + struct msgb *msg; + uint8_t mid_buf[GSM48_MI_SIZE + 2]; + uint8_t *out; + int mid_len; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "COMMON-ID"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_COMMON_ID); + + /* mandatory IMSI 3.2.2.6 */ + mid_len = gsm48_generate_mid_from_imsi(mid_buf, imsi); + msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); + + /* not implemented: SNA Access Information */ + + /* Selected PLMN ID */ + if (selected_plmn_id) { + msgb_v_put(msg, GSM0808_IE_SELECTED_PLMN_ID); + out = msgb_put(msg, 3); + osmo_plmn_to_bcd(out, selected_plmn_id); + } + + /* Last used E-UTRAN PLMN ID */ + if (last_used_eutran_plnm_id) { + msgb_v_put(msg, GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID); + out = msgb_put(msg, 3); + osmo_plmn_to_bcd(out, last_used_eutran_plnm_id); + } + + /* prepend header with final length */ + msg->l3h = msgb_tv_push(msg, BSSAP_MSG_BSS_MANAGEMENT, msgb_length(msg)); + + return msg; +} + /*! Prepend a DTAP header to given Message Buffer * \param[in] msgb Message Buffer * \param[in] link_id Link Identifier */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 742cec3..713ffe3 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -202,6 +202,7 @@ gsm0808_create_handover_complete; gsm0808_create_handover_failure; gsm0808_create_handover_performed; +gsm0808_create_common_id; gsm0808_prepend_dtap_header; gsm0808_enc_cause; gsm0808_enc_aoip_trasp_addr; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 Gerrit-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 Jun 21 20:27:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 20:27:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: fix comment near f_rslem_suspend() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18947 ) Change subject: library/RSL_Emulation: fix comment near f_rslem_suspend() ...................................................................... library/RSL_Emulation: fix comment near f_rslem_suspend() Change-Id: If6487065329a4fc44275999de1972f76ded06562 --- M library/RSL_Emulation.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/47/18947/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 618cf11..9cc77ba 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -684,7 +684,7 @@ } } -/* resume handling of RSL DChan messages from IPA until f_rslem_resume() is called */ +/* suspend handling of RSL DChan messages from IPA until f_rslem_resume() is called */ function f_rslem_suspend(RSLEM_PROC_PT PT) runs on RSL_DchanHdlr { PT.call(RSLEM_suspend:{true}) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6487065329a4fc44275999de1972f76ded06562 Gerrit-Change-Number: 18947 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 Jun 21 20:27:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 20:27:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_ConnectionHandler: fix race condition in f_establish_fully() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18948 ) Change subject: MSC_ConnectionHandler: fix race condition in f_establish_fully() ...................................................................... MSC_ConnectionHandler: fix race condition in f_establish_fully() For more details, see I25e10e28de174337233e6a3bb32cc16f2d7d614e. Change-Id: Icdb4f2e0edc4cb6e2010a9299331e7e93d0ca007 Related: OS#4619 --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/48/18948/1 diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 8ac7051..0d4c81b 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -801,6 +801,9 @@ /* register our component for this channel number at the RSL Emulation */ f_rslem_register(0, new_chan_nr); + /* dispatch queued messages for this channel (if any) */ + f_rslem_dchan_queue_dispatch(); + var PDU_ML3_MS_NW l3_tx := valueof(ts_RRM_AssignmentComplete('00'O)); /* send assignment complete over the new channel */ RSL.send(ts_RSL_EST_IND(new_chan_nr, valueof(ts_RslLinkID_DCCH(0)), @@ -1093,6 +1096,15 @@ g_media.mgcp_conn[1].mdcx_seen_exp := 0; } + /* On receipt of the BSSAP Assignment Command, the IUT (osmo-bsc) will allocate + * a channel and send us RR Assignment Command together with ip.access CRCX. + * There is a risk that the RSL Emulation component would dequeue and process + * ip.access CRCX faster than we process the Assignment Command and register + * the corresponding handler for the indicated RSL channel number. This would + * result in a failure, because at that moment there will be no handler for + * ip.access CRCX. Let's guard against this and enable additional queueing. */ + f_rslem_dchan_queue_enable(); + f_create_mgcp_expect(mgcpcrit); BSSAP.send(ass_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icdb4f2e0edc4cb6e2010a9299331e7e93d0ca007 Gerrit-Change-Number: 18948 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 Jun 21 20:27:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 21 Jun 2020 20:27:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: implement waiting queue for DChan messages In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 ) Change subject: library/RSL_Emulation: implement waiting queue for DChan messages ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Gerrit-Change-Number: 18923 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 21 Jun 2020 20:27: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 Sun Jun 21 20:33:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:33:55 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() 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/+/18946 to look at the new patch set (#2). Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... gsm0808: Add gsm0808_create_common_id() This function encodes a GSM 08.08 / 48.008 "Common ID" message. Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Related: OS#2969 --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 47 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/18946/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 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 Jun 21 20:38:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:38:02 +0000 Subject: Change in osmo-msc[master]: Send "BSSMAP CommonID" to tell BSC about the IMSI References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18949 ) Change subject: Send "BSSMAP CommonID" to tell BSC about the IMSI ...................................................................... Send "BSSMAP CommonID" to tell BSC about the IMSI We're already sending the RANAP CommonID message to the RNC, let's do the same using BSSMAP CommonId towards the BSC. This way the BSC knows about the IMSI of the served subscriber, which is very useful for logging/debugging. Change-Id: I2552736477663adb250c55728093500e8ae83ebb Closes: OS#2969 Requires: libosmocore.git I353adc1aa72377f7d4b3336d2ff47791fb73d62c --- M src/libmsc/ran_msg_a.c M src/libvlr/vlr_access_req_fsm.c M src/libvlr/vlr_lu_fsm.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_hlr_reject.err M tests/msc_vlr/msc_vlr_test_hlr_timeout.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_rest.err M tests/msc_vlr/msc_vlr_test_ss.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 14 files changed, 195 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/49/18949/1 diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index 28f99ce..55ac1ef 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -1218,6 +1218,9 @@ case RAN_MSG_ASSIGNMENT_COMMAND: 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); + 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/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c index 73f3435..b3660ff 100644 --- a/src/libvlr/vlr_access_req_fsm.c +++ b/src/libvlr/vlr_access_req_fsm.c @@ -246,16 +246,13 @@ { struct proc_arq_priv *par = fi->priv; struct vlr_subscr *vsub = par->vsub; + int rc; LOGPFSM(fi, "%s()\n", __func__); - if (par->is_utran) { - int rc; - rc = par->vlr->ops.tx_common_id(par->msc_conn_ref); - if (rc) - LOGPFSML(fi, LOGL_ERROR, - "Error while sending Common ID (%d)\n", rc); - } + rc = par->vlr->ops.tx_common_id(par->msc_conn_ref); + if (rc) + LOGPFSML(fi, LOGL_ERROR, "Error while sending Common ID (%d)\n", rc); vsub->conf_by_radio_contact_ind = true; if (vsub->loc_conf_in_hlr_ind == false) { diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c index d5425e7..53e614d 100644 --- a/src/libvlr/vlr_lu_fsm.c +++ b/src/libvlr/vlr_lu_fsm.c @@ -818,18 +818,15 @@ { struct lu_fsm_priv *lfp = lu_fsm_fi_priv(fi); struct vlr_subscr *vsub = lfp->vsub; + int rc; LOGPFSM(fi, "%s()\n", __func__); OSMO_ASSERT(vsub); - if (lfp->is_utran) { - int rc; - rc = lfp->vlr->ops.tx_common_id(lfp->msc_conn_ref); - if (rc) - LOGPFSML(fi, LOGL_ERROR, - "Error while sending Common ID (%d)\n", rc); - } + rc = lfp->vlr->ops.tx_common_id(lfp->msc_conn_ref); + if (rc) + LOGPFSML(fi, LOGL_ERROR, "Error while sending Common ID (%d)\n", rc); vsub->conf_by_radio_contact_ind = true; /* Update LAI */ diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 9b0dac2..f00470a 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -72,6 +72,8 @@ DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000010650:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -261,6 +263,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -389,6 +393,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -1108,6 +1114,8 @@ DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000010650:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1297,6 +1305,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -1413,6 +1423,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -1529,6 +1541,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -2360,6 +2374,8 @@ DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000010650:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2561,6 +2577,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index 3da091f..94a257d 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -97,6 +97,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -257,6 +259,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -410,6 +414,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -681,6 +687,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -888,6 +896,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -1041,6 +1051,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -1214,6 +1226,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1504,6 +1518,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1816,6 +1832,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2081,6 +2099,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2347,6 +2367,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2674,6 +2696,8 @@ DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000010650:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2834,6 +2858,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -2987,6 +3013,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index edd4ee6..53e8ee6 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -105,6 +105,8 @@ DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -298,6 +300,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -479,6 +483,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -758,6 +764,8 @@ DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -998,6 +1006,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -1179,6 +1189,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -1457,6 +1469,8 @@ DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1781,6 +1795,8 @@ DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2060,6 +2076,8 @@ DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2401,6 +2419,8 @@ DBSSAP msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000010650:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2576,6 +2596,8 @@ DBSSAP msc_a(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -2739,6 +2761,8 @@ DBSSAP msc_a(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -3009,6 +3033,8 @@ DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -3202,6 +3228,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -3383,6 +3411,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -3653,6 +3683,8 @@ DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -3846,6 +3878,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() @@ -4005,6 +4039,8 @@ DBSSAP msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN decode: CIPHER_MODE_COMPLETE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index 51fc0e8..d115d48 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -276,6 +276,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -438,6 +440,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -602,6 +606,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -868,6 +874,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1195,6 +1203,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1298,6 +1308,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index d68b4f7..07fb621 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -145,6 +145,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 653e56c..2405b65 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -201,6 +201,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -437,6 +439,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index a74c18f..236aacd 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -34,6 +34,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -168,6 +170,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -277,6 +281,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -485,6 +491,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -666,6 +674,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -775,6 +785,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -921,6 +933,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1168,6 +1182,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1419,6 +1435,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1722,6 +1740,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1954,6 +1974,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2175,6 +2197,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2374,6 +2398,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:MSISDN-46071:TMSI-0x03020100:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2652,6 +2678,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_WAIT_HLR_CHECK_IMEI_EARLY}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2895,6 +2923,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 4bad93e..9b780c5 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -34,6 +34,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -224,6 +226,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -365,6 +369,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -511,6 +517,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -654,6 +662,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -769,6 +779,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -890,6 +902,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1005,6 +1019,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -1131,6 +1147,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1246,6 +1264,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -1356,6 +1376,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1493,6 +1515,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -1656,6 +1680,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -1793,6 +1819,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -1980,6 +2008,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -2117,6 +2147,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index be1a888..51b27db 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -99,6 +99,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -238,6 +240,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:MSISDN-46071:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -474,6 +478,8 @@ DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_post_ciph() +DMSC msc_a(TMSI-0x23422342:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(TMSI-0x23422342:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(TMSI-0x23422342:GERAN-A:LU){VLR_ULA_S_WAIT_IMSI}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(TMSI-0x23422342:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index f7f3e78..ca18094 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -34,6 +34,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -153,6 +155,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() @@ -271,6 +275,8 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A:LU){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000004620:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -412,6 +418,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-46071:GERAN-A:PAGING_RESP){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 0b049b9..7f345a1 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -72,6 +72,8 @@ DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000010650:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated @@ -274,6 +276,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:CM_SERVICE_REQ){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -428,6 +432,8 @@ DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() +DMSC msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() DVLR Process_Access_Request_VLR(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:GERAN-A:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() @@ -1942,6 +1948,8 @@ DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() +DMSC msc_a(IMSI-901700000010650:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: COMMON_ID on GERAN-A +DMSC dummy_msc_i(IMSI-901700000010650:GERAN-A:LU){0}: Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() DVLR vlr_lu_fsm(IMSI-901700000010650:GERAN-A:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD DVLR upd_hlr_vlr_fsm(IMSI-901700000010650:GERAN-A:LU){UPD_HLR_VLR_S_INIT}: Allocated -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I2552736477663adb250c55728093500e8ae83ebb Gerrit-Change-Number: 18949 Gerrit-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 Jun 21 20:38:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:38:03 +0000 Subject: Change in osmo-msc[master]: remove empty + unused ran_up_l2.c References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18950 ) Change subject: remove empty + unused ran_up_l2.c ...................................................................... remove empty + unused ran_up_l2.c Change-Id: I5a0fa6a78dd8f32912afc69f4b154caad44a9e78 --- D src/libmsc/ran_up_l2.c 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/50/18950/1 diff --git a/src/libmsc/ran_up_l2.c b/src/libmsc/ran_up_l2.c deleted file mode 100644 index e69de29..0000000 --- a/src/libmsc/ran_up_l2.c +++ /dev/null -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I5a0fa6a78dd8f32912afc69f4b154caad44a9e78 Gerrit-Change-Number: 18950 Gerrit-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 Jun 21 20:45:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:45:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: fix comment near f_rslem_suspend() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18947 ) Change subject: library/RSL_Emulation: fix comment near f_rslem_suspend() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6487065329a4fc44275999de1972f76ded06562 Gerrit-Change-Number: 18947 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 21 Jun 2020 20:45: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 Jun 21 20:46:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:46:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: implement waiting queue for DChan messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 ) Change subject: library/RSL_Emulation: implement waiting queue for DChan messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Gerrit-Change-Number: 18923 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 21 Jun 2020 20:46: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 Jun 21 20:46:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:46:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_ConnectionHandler: fix race condition in f_establish_fully() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18948 ) Change subject: MSC_ConnectionHandler: fix race condition in f_establish_fully() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icdb4f2e0edc4cb6e2010a9299331e7e93d0ca007 Gerrit-Change-Number: 18948 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 21 Jun 2020 20:46: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 Jun 21 20:46:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:46:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: fix comment near f_rslem_suspend() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18947 ) Change subject: library/RSL_Emulation: fix comment near f_rslem_suspend() ...................................................................... library/RSL_Emulation: fix comment near f_rslem_suspend() Change-Id: If6487065329a4fc44275999de1972f76ded06562 --- M library/RSL_Emulation.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 618cf11..9cc77ba 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -684,7 +684,7 @@ } } -/* resume handling of RSL DChan messages from IPA until f_rslem_resume() is called */ +/* suspend handling of RSL DChan messages from IPA until f_rslem_resume() is called */ function f_rslem_suspend(RSLEM_PROC_PT PT) runs on RSL_DchanHdlr { PT.call(RSLEM_suspend:{true}) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If6487065329a4fc44275999de1972f76ded06562 Gerrit-Change-Number: 18947 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 Jun 21 20:46:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:46:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL_Emulation: implement waiting queue for DChan messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 ) Change subject: library/RSL_Emulation: implement waiting queue for DChan messages ...................................................................... library/RSL_Emulation: implement waiting queue for DChan messages Since change [1] has been merged, we see multiple regressions in ttcn3-bsc-test (all LCLS test cases) and ttcn3-bsc-test-sccplite (sporadic failures). In all failed cases, the reason is similar: RSL for unknown Dchan BSC_Tests.ttcn:4501 BSC_Tests control part BSC_Tests.ttcn:2176 TC_assignment_codec_fr testcase The mentioned change enables TCP_NODELAY option for all IPA based connections, including both OML and RSL. This option disables Nagle's algorithm [2], so we get less delays on IPA based links. It took me a lot of time to investigate, and finally, I figured out what is actually causing those regressions. The TCP_NODELAY itself is not a problem, of course. As it turned out, the problem is here, in our TTCN-3 test case framework. Each test case involves several components (actors) running in parallel. One of them is RSL_Emulation_CT, which is responsible for handling and routing of RSL messages between the connected components. A test case may register dedicated channel handlers by calling f_rslem_register(), so DCHAN/RLL/IPACCESS messages will be matched by RslChannelNr/TrxNr and routed to the corresponding one. If no handler is found for a given RSL message, the RSL_Emulation_CT would abort the test case execution. And that's where the problem is. Given that all components are running in parallel, it may happen that a received RSL message would be processed by the RSL emulation component faster than the test case would call f_rslem_register(). The test case would be aborted due to "RSL for unknown Dchan". Speaking in context of the failing BSC test cases, a test case calls f_rslem_register() on receipt of an Assignment Command as it contains all the assignment parameters. After that we expect to receive an RSL ip.access CRCX for that channel. The problem is that both Assignment Command and ip.access CRCX messages are sent by the BSC simultaneously, so the later may be handled faster than the first one. Race condition! Let's work this around by maintaining a waiting queue, where the messages, for which no handler was found, will be kept until the corresponding dedicated channel is registered. This is an optional feature that needs to be enabled explicitly by calling f_rslem_dchan_queue_enable(), and then explicitly disabled by calling f_rslem_dchan_queue_disable(). If at the moment of calling f_rslem_dchan_queue_disable() the waiting queue is not empty, e.g. because the IUT sent us more messages than we expected, test execution will be terminated. The actial fix for the LCLS test cases will be submitted next. [1] Ia3d4c41bf0659e682f0b7ae5f3d58ed0f28edb58 [2] https://en.wikipedia.org/wiki/Nagle%27s_algorithm Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Related: OS#4619 --- M library/RSL_Emulation.ttcn 1 file changed, 75 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 9cc77ba..41c689f 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -103,10 +103,13 @@ signature RSLEM_register(uint8_t trx_nr, RslChannelNr chan_nr, RSL_DchanHdlr hdlr); signature RSLEM_unregister(uint8_t trx_nr, RslChannelNr chan_nr, RSL_DchanHdlr hdlr); signature RSLEM_suspend(boolean suspend); +signature RSLEM_wait_queue(boolean enable); signature RSLEM_get_last_act(in uint8_t trx_nr, in RslChannelNr chan_nr, out RSL_Message chan_act); type port RSLEM_PROC_PT procedure { - inout RSLEM_register, RSLEM_unregister, RSLEM_suspend, RSLEM_get_last_act; + inout RSLEM_register, RSLEM_unregister, + RSLEM_suspend, RSLEM_wait_queue, + RSLEM_get_last_act; } with { extension "internal" }; /*********************************************************************** @@ -415,6 +418,8 @@ testcase.stop("Failed to patch IPA stream ID in ASP RSL UD: ", ud); } +private type record of ASP_RSL_Unitdata ASP_RSL_UDList; + type component RSL_Emulation_CT { /* port facing down towards IPA emulation */ port IPA_RSL_PT IPA_PT; @@ -428,6 +433,9 @@ /* state of all concurrent connections / dedicated channels */ var ConnectionData ConnectionTable[64]; + /* RSL messages for which no handler is currently registered */ + var ASP_RSL_UDList WaitingQueue := { }; + /* last RSL CHAN ACT for each chan_nr */ var LastActData LastActTable[64]; @@ -466,6 +474,10 @@ var integer i; /* special synchronization handling during hand-over */ var boolean dchan_suspended := false; + /* Whether to keep RSL messages, for which no handler is found in ConnectionTable, + * in a queue. These messages will remain in the queue until the appropriate + * connection handler is registered. */ + var boolean wait_queue_enabled := false; f_conn_table_init(); f_trx_conn_map_init(); @@ -584,6 +596,9 @@ rx_rsl.rsl.ies[0].body.chan_nr); if (cid != -1) { CLIENT_PT.send(rx_rsl.rsl) to ConnectionTable[cid].comp_ref; + } else if (wait_queue_enabled) { + log("Storing an RSL message in the waiting queue"); + WaitingQueue := WaitingQueue & { rx_rsl }; } else { setverdict(fail, "RSL for unknown Dchan"); mtc.stop; @@ -650,6 +665,26 @@ RSL_PROC.reply(RSLEM_suspend:{false}) to vc_conn; } + [not wait_queue_enabled] RSL_PROC.getcall(RSLEM_wait_queue:{true}) -> sender vc_conn { + wait_queue_enabled := true; + log("Enabled queueing of DChan messages"); + RSL_PROC.reply(RSLEM_wait_queue:{wait_queue_enabled}) to vc_conn; + } + + [wait_queue_enabled] RSL_PROC.getcall(RSLEM_wait_queue:{false}) -> sender vc_conn { + /* Dispatch stalled messages (if any) */ + f_WaitingQueue_dispatch(); + + wait_queue_enabled := false; + log("Disabled queueing of DChan messages"); + RSL_PROC.reply(RSLEM_wait_queue:{wait_queue_enabled}) to vc_conn; + } + + [] RSL_PROC.getcall(RSLEM_wait_queue:{?}) -> sender vc_conn { + log("Queueing of DChan messages is already enabled/disabled"); + RSL_PROC.reply(RSLEM_wait_queue:{wait_queue_enabled}) to vc_conn; + } + [] RSL_PROC.getcall(RSLEM_get_last_act:{?,?,?}) -> param(trx_nr, chan_nr) sender vc_conn { var RSL_Message last_chan_act := f_lookup_last_act(trx_nr, chan_nr); RSL_PROC.reply(RSLEM_get_last_act:{trx_nr, chan_nr, last_chan_act}) to vc_conn; @@ -668,6 +703,27 @@ } } +private function f_WaitingQueue_dispatch() +runs on RSL_Emulation_CT { + var integer cid; + + for (var integer i := 0; i < lengthof(WaitingQueue); i := i + 1) { + cid := f_cid_by_chan_nr(f_trx_by_streamId(WaitingQueue[i].streamId), + WaitingQueue[i].rsl.ies[0].body.chan_nr); + if (cid == -1) { + setverdict(fail, "No Dchan handler found for: ", WaitingQueue[i]); + mtc.stop; + break; + } + + /* Dispatch a stalled message to the appropriate handler */ + CLIENT_PT.send(WaitingQueue[i].rsl) to ConnectionTable[cid].comp_ref; + } + + /* All messages dispatched, clear the queue */ + WaitingQueue := { }; +} + /* client/conn_hdlr side function to use procedure port to register stream_id/chan_nr */ function f_rslem_register(uint8_t trx_nr, RslChannelNr chan_nr, RSLEM_PROC_PT PT := RSL_PROC) runs on RSL_DchanHdlr { @@ -700,6 +756,24 @@ } } +/* Enable queueing of RSL DChan messages from IPA until f_rslem_dchan_queue_disable() is called. */ +function f_rslem_dchan_queue_enable(RSLEM_PROC_PT PT := RSL_PROC) +runs on RSL_DchanHdlr { + PT.call(RSLEM_wait_queue:{true}) { + [] PT.getreply(RSLEM_wait_queue:{true}) {}; + } +} + +/* Disable queueing of RSL DChan messages after f_rslem_dchan_queue_enable() is called. + * Dispatch all stalled messages to the registered handlers. Make sure that no + * messages for which there is no handler are left in the queue (mtc.stop if so). */ +function f_rslem_dchan_queue_dispatch(RSLEM_PROC_PT PT := RSL_PROC) +runs on RSL_DchanHdlr { + PT.call(RSLEM_wait_queue:{false}) { + [] PT.getreply(RSLEM_wait_queue:{false}) {}; + } +} + /* obtain the last RSL_CHAN_ACT message for the given chan_nr */ function f_rslem_get_last_act(RSLEM_PROC_PT PT, uint8_t trx_nr, RslChannelNr chan_nr) runs on RSL_DchanHdlr return RSL_Message { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I25e10e28de174337233e6a3bb32cc16f2d7d614e Gerrit-Change-Number: 18923 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 20:46:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:46:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_ConnectionHandler: fix race condition in f_establish_fully() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18948 ) Change subject: MSC_ConnectionHandler: fix race condition in f_establish_fully() ...................................................................... MSC_ConnectionHandler: fix race condition in f_establish_fully() For more details, see I25e10e28de174337233e6a3bb32cc16f2d7d614e. Change-Id: Icdb4f2e0edc4cb6e2010a9299331e7e93d0ca007 Related: OS#4619 --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 8ac7051..0d4c81b 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -801,6 +801,9 @@ /* register our component for this channel number at the RSL Emulation */ f_rslem_register(0, new_chan_nr); + /* dispatch queued messages for this channel (if any) */ + f_rslem_dchan_queue_dispatch(); + var PDU_ML3_MS_NW l3_tx := valueof(ts_RRM_AssignmentComplete('00'O)); /* send assignment complete over the new channel */ RSL.send(ts_RSL_EST_IND(new_chan_nr, valueof(ts_RslLinkID_DCCH(0)), @@ -1093,6 +1096,15 @@ g_media.mgcp_conn[1].mdcx_seen_exp := 0; } + /* On receipt of the BSSAP Assignment Command, the IUT (osmo-bsc) will allocate + * a channel and send us RR Assignment Command together with ip.access CRCX. + * There is a risk that the RSL Emulation component would dequeue and process + * ip.access CRCX faster than we process the Assignment Command and register + * the corresponding handler for the indicated RSL channel number. This would + * result in a failure, because at that moment there will be no handler for + * ip.access CRCX. Let's guard against this and enable additional queueing. */ + f_rslem_dchan_queue_enable(); + f_create_mgcp_expect(mgcpcrit); BSSAP.send(ass_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icdb4f2e0edc4cb6e2010a9299331e7e93d0ca007 Gerrit-Change-Number: 18948 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 Jun 21 20:58:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:58:14 +0000 Subject: Change in docker-playground[master]: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18929 ) Change subject: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 Gerrit-Change-Number: 18929 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 21 Jun 2020 20:58:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 20:58:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:58:19 +0000 Subject: Change in docker-playground[master]: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18929 ) Change subject: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 Gerrit-Change-Number: 18929 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 21 Jun 2020 20:58:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 21 20:58:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 21 Jun 2020 20:58:22 +0000 Subject: Change in docker-playground[master]: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18929 ) Change subject: collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere ...................................................................... collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 --- M nplab-m3ua-test/jenkins.sh M nplab-sua-test/jenkins.sh M osmo-gsm-tester/jenkins.sh M osmo-stp-latest/Dockerfile M ttcn3-bsc-test/jenkins-sccplite.sh M ttcn3-bsc-test/jenkins.sh M ttcn3-bscnat-test/jenkins.sh M ttcn3-bts-test/jenkins.sh M ttcn3-ggsn-test/jenkins.sh M ttcn3-hlr-test/jenkins.sh M ttcn3-mgw-test/jenkins.sh M ttcn3-msc-test/jenkins.sh M ttcn3-nitb-sysinfo/jenkins.sh M ttcn3-pcu-test/jenkins-sns.sh M ttcn3-pcu-test/jenkins.sh M ttcn3-remsim-test/jenkins.sh M ttcn3-sccp-test/jenkins.sh M ttcn3-sgsn-test/jenkins.sh M ttcn3-sip-test/jenkins.sh M ttcn3-stp-test/jenkins.sh 20 files changed, 52 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified fixeria: Looks good to me, but someone else must approve diff --git a/nplab-m3ua-test/jenkins.sh b/nplab-m3ua-test/jenkins.sh index 5021ff2..4543b91 100755 --- a/nplab-m3ua-test/jenkins.sh +++ b/nplab-m3ua-test/jenkins.sh @@ -21,6 +21,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.7.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp \ -d $REPO_USER/osmo-stp-$IMAGE_SUFFIX @@ -28,6 +29,7 @@ # start docker container with tests docker run --rm \ --network $NET_NAME --ip 172.18.7.2 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/m3ua-tester:/data \ --name ${BUILD_TAG}-m3ua-test \ $REPO_USER/nplab-m3ua-test > $VOL_BASE_DIR/junit-xml-m3ua.log diff --git a/nplab-sua-test/jenkins.sh b/nplab-sua-test/jenkins.sh index 56a323d..1d3111e 100755 --- a/nplab-sua-test/jenkins.sh +++ b/nplab-sua-test/jenkins.sh @@ -21,6 +21,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.6.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp \ -d $REPO_USER/osmo-stp-$IMAGE_SUFFIX @@ -28,6 +29,7 @@ # start docker container with tests docker run --rm \ --network $NET_NAME --ip 172.18.6.3 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sua-tester:/data \ --name ${BUILD_TAG}-sua-test \ $REPO_USER/nplab-sua-test > $VOL_BASE_DIR/junit-xml-sua.log diff --git a/osmo-gsm-tester/jenkins.sh b/osmo-gsm-tester/jenkins.sh index a198608..0973774 100755 --- a/osmo-gsm-tester/jenkins.sh +++ b/osmo-gsm-tester/jenkins.sh @@ -74,6 +74,7 @@ --device /dev/net/tun:/dev/net/tun \ --network $NET_NAME \ --ip 172.18.50.100 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ogt-slave:/data \ --name ${BUILD_TAG}-ogt-slave -d \ $REPO_USER/osmo-gsm-tester \ @@ -89,6 +90,7 @@ --device /dev/net/tun:/dev/net/tun \ --network $NET_NAME \ --ip 172.18.50.2 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ogt-master:/data \ -v "${TRIAL_DIR}:/tmp/trial" \ -e "OSMO_GSM_TESTER_CONF=${OSMO_GSM_TESTER_CONF}" \ diff --git a/osmo-stp-latest/Dockerfile b/osmo-stp-latest/Dockerfile index 72872a1..563378b 100644 --- a/osmo-stp-latest/Dockerfile +++ b/osmo-stp-latest/Dockerfile @@ -21,7 +21,7 @@ telnet && \ apt-get clean -WORKDIR /tmp +WORKDIR /data VOLUME /data COPY osmo-stp.cfg /data/ diff --git a/ttcn3-bsc-test/jenkins-sccplite.sh b/ttcn3-bsc-test/jenkins-sccplite.sh index 7c628db..f91e603 100755 --- a/ttcn3-bsc-test/jenkins-sccplite.sh +++ b/ttcn3-bsc-test/jenkins-sccplite.sh @@ -21,6 +21,7 @@ echo Starting container with BSC docker run --rm \ --network $NET_NAME --ip 172.18.12.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ @@ -30,6 +31,7 @@ echo Starting container with OML for BTS$i docker run --rm \ --network $NET_NAME --ip 172.18.12.10$i \ + --ulimit core=-1 \ --name ${BUILD_TAG}-bts$i -d \ $DOCKER_ARGS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ @@ -39,6 +41,7 @@ echo Starting container with BSC testsuite docker run --rm \ --network $NET_NAME --ip 172.18.12.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bsc-tester:/data \ --name ${BUILD_TAG}-ttcn3-bsc-test \ diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 0f6f2ce..75d5401 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -22,6 +22,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.2.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ --ulimit core=-1 \ @@ -31,6 +32,7 @@ echo Starting container with BSC docker run --rm \ --network $NET_NAME --ip 172.18.2.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ @@ -40,6 +42,7 @@ echo Starting container with OML for BTS$i docker run --rm \ --network $NET_NAME --ip 172.18.2.10$i \ + --ulimit core=-1 \ --name ${BUILD_TAG}-bts$i -d \ $DOCKER_ARGS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ @@ -49,6 +52,7 @@ echo Starting container with BSC testsuite docker run --rm \ --network $NET_NAME --ip 172.18.2.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bsc-tester:/data \ --name ${BUILD_TAG}-ttcn3-bsc-test \ diff --git a/ttcn3-bscnat-test/jenkins.sh b/ttcn3-bscnat-test/jenkins.sh index 4057b44..1d771eb 100755 --- a/ttcn3-bscnat-test/jenkins.sh +++ b/ttcn3-bscnat-test/jenkins.sh @@ -19,6 +19,7 @@ echo Starting container with BSCNAT docker run --rm \ --network $NET_NAME --ip 172.18.15.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bscnat:/data \ --name ${BUILD_TAG}-bscnat -d \ $DOCKER_ARGS \ @@ -28,6 +29,7 @@ echo Starting container with BSCNAT testsuite docker run --rm \ --network $NET_NAME --ip 172.18.15.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bscnat-tester:/data \ --name ${BUILD_TAG}-ttcn3-bscnat-test \ diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index 20ad748..d85c82f 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -13,6 +13,7 @@ echo Starting container with BSC docker run --rm \ --network $NET_NAME --ip 172.18.9.11 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ @@ -30,6 +31,7 @@ fi docker run --rm \ --network $NET_NAME --ip 172.18.9.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bts:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-bts -d \ @@ -42,6 +44,7 @@ echo Starting container with fake_trx docker run --rm \ --network $NET_NAME --ip 172.18.9.21 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/fake_trx:/data \ --name ${BUILD_TAG}-fake_trx -d \ $DOCKER_ARGS \ @@ -61,6 +64,7 @@ echo Starting container with trxcon docker run --rm \ --network $NET_NAME --ip 172.18.9.22 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/trxcon:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-trxcon -d \ @@ -73,6 +77,7 @@ echo Starting container with virtphy docker run --rm \ --network $NET_NAME --ip 172.18.9.22 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/virtphy:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-virtphy -d \ @@ -85,6 +90,7 @@ echo Starting container with BTS testsuite docker run --rm \ --network $NET_NAME --ip 172.18.9.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/bts-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-ggsn-test/jenkins.sh b/ttcn3-ggsn-test/jenkins.sh index 72c25e6..c950cc6 100755 --- a/ttcn3-ggsn-test/jenkins.sh +++ b/ttcn3-ggsn-test/jenkins.sh @@ -20,6 +20,7 @@ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --rm \ --network $NET_NAME --ip 172.18.3.201 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ggsn:/data \ --name ${BUILD_TAG}-ggsn -d \ $DOCKER_ARGS \ @@ -30,6 +31,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.3.202 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/ggsn-tester:/data \ -e "TTCN3_PCAP_PATH=/data" \ --name ${BUILD_TAG}-ggsn-test \ diff --git a/ttcn3-hlr-test/jenkins.sh b/ttcn3-hlr-test/jenkins.sh index 74fe429..7bfacd6 100755 --- a/ttcn3-hlr-test/jenkins.sh +++ b/ttcn3-hlr-test/jenkins.sh @@ -23,6 +23,7 @@ echo Starting container with HLR docker run --rm \ --network $NET_NAME --ip 172.18.10.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/hlr:/data \ --name ${BUILD_TAG}-hlr -d \ $DOCKER_ARGS \ @@ -32,6 +33,7 @@ echo Starting container with HLR testsuite docker run --rm \ --network $NET_NAME --ip 172.18.10.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/hlr-tester:/data \ --name ${BUILD_TAG}-ttcn3-hlr-test \ diff --git a/ttcn3-mgw-test/jenkins.sh b/ttcn3-mgw-test/jenkins.sh index 3b6dd41..d0ce189 100755 --- a/ttcn3-mgw-test/jenkins.sh +++ b/ttcn3-mgw-test/jenkins.sh @@ -17,6 +17,7 @@ # start container with mgw in background docker run --rm \ --network $NET_NAME --ip 172.18.4.180 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/mgw:/data \ --name ${BUILD_TAG}-mgw -d \ $DOCKER_ARGS \ @@ -25,6 +26,7 @@ # start docker container with testsuite in foreground docker run --rm \ --network $NET_NAME --ip 172.18.4.181 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/mgw-tester:/data \ -e "TTCN3_PCAP_PATH=/data" \ --name ${BUILD_TAG}-ttcn3-mgw-test \ diff --git a/ttcn3-msc-test/jenkins.sh b/ttcn3-msc-test/jenkins.sh index e701b0d..6ad7b97 100755 --- a/ttcn3-msc-test/jenkins.sh +++ b/ttcn3-msc-test/jenkins.sh @@ -25,6 +25,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.1.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ $REPO_USER/osmo-stp-$IMAGE_SUFFIX @@ -32,6 +33,7 @@ echo Starting container with MSC docker run --rm \ --network $NET_NAME --ip 172.18.1.10 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/msc:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-msc -d \ @@ -42,6 +44,7 @@ echo Starting container with MSC testsuite docker run --rm \ --network $NET_NAME --ip 172.18.1.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/msc-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-nitb-sysinfo/jenkins.sh b/ttcn3-nitb-sysinfo/jenkins.sh index 530b4ee..eaef78d 100755 --- a/ttcn3-nitb-sysinfo/jenkins.sh +++ b/ttcn3-nitb-sysinfo/jenkins.sh @@ -9,6 +9,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.5.20 \ + --ulimit core=-1 \ -v nitb-vol:/data \ --name ${BUILD_TAG}-nitb -d \ $REPO_USER/osmo-nitb-master @@ -18,6 +19,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.5.210 \ + --ulimit core=-1 \ -v bts-vol:/data \ --name ${BUILD_TAG}-bts -d \ $REPO_USER/osmo-bts-master @@ -28,6 +30,7 @@ docker run --rm \ --sysctl net.ipv6.conf.all.disable_ipv6=0 \ --network $NET_NAME --ip 172.18.5.230 \ + --ulimit core=-1 \ -v ttcn3-nitb-sysinfo-vol:/data \ --name ${BUILD_TAG}-ttcn3-nitb-sysinfo \ $REPO_USER/ttcn3-nitb-sysinfo diff --git a/ttcn3-pcu-test/jenkins-sns.sh b/ttcn3-pcu-test/jenkins-sns.sh index edebd0b..9c8f293 100755 --- a/ttcn3-pcu-test/jenkins-sns.sh +++ b/ttcn3-pcu-test/jenkins-sns.sh @@ -21,6 +21,7 @@ echo Starting container with PCU docker run --rm \ --network $NET_NAME --ip 172.18.14.101 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/pcu:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-pcu-sns -d \ @@ -31,6 +32,7 @@ echo Starting container with PCU testsuite docker run --rm \ --network $NET_NAME --ip 172.18.14.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/pcu-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh index 7942d1a..3867e76 100755 --- a/ttcn3-pcu-test/jenkins.sh +++ b/ttcn3-pcu-test/jenkins.sh @@ -21,6 +21,7 @@ echo Starting container with PCU docker run --rm \ --network $NET_NAME --ip 172.18.13.101 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/pcu:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-pcu -d \ @@ -31,6 +32,7 @@ echo Starting container with PCU testsuite docker run --rm \ --network $NET_NAME --ip 172.18.13.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/pcu-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-remsim-test/jenkins.sh b/ttcn3-remsim-test/jenkins.sh index c5f8692..1da2883 100755 --- a/ttcn3-remsim-test/jenkins.sh +++ b/ttcn3-remsim-test/jenkins.sh @@ -10,6 +10,7 @@ echo Starting container with osmo-remsim-server docker run --rm \ --network $NET_NAME --ip 172.18.17.20 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/server:/data \ --name ${BUILD_TAG}-server -d \ $DOCKER_ARGS \ @@ -21,6 +22,7 @@ echo Starting container with osmo-remsim-bankd docker run --rm \ --network $NET_NAME --ip 172.18.17.30 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/bankd:/data \ --name ${BUILD_TAG}-bankd -d \ $DOCKER_ARGS \ @@ -32,6 +34,7 @@ echo Starting container with osmo-remsim-client docker run --rm \ --network $NET_NAME --ip 172.18.17.40 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/client:/data \ --name ${BUILD_TAG}-client-d \ $DOCKER_ARGS \ @@ -45,6 +48,7 @@ echo Starting container with REMSIM testsuite docker run --rm \ --network $NET_NAME --ip 172.18.17.10 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/remsim-tester:/data \ --name ${BUILD_TAG}-ttcn3-remsim-test \ diff --git a/ttcn3-sccp-test/jenkins.sh b/ttcn3-sccp-test/jenkins.sh index f802b2d..25fe5ac 100755 --- a/ttcn3-sccp-test/jenkins.sh +++ b/ttcn3-sccp-test/jenkins.sh @@ -18,6 +18,7 @@ echo Starting container with sccp_demo_user docker run --rm \ --network $NET_NAME --ip 172.18.22.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sccp:/data \ --name ${BUILD_TAG}-stp -d \ $DOCKER_ARGS \ @@ -28,6 +29,7 @@ echo Starting container with SCCP testsuite docker run --rm \ --network $NET_NAME --ip 172.18.22.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sccp-tester:/data \ --name ${BUILD_TAG}-ttcn3-sccp-test \ diff --git a/ttcn3-sgsn-test/jenkins.sh b/ttcn3-sgsn-test/jenkins.sh index 9b77abf..08af31c 100755 --- a/ttcn3-sgsn-test/jenkins.sh +++ b/ttcn3-sgsn-test/jenkins.sh @@ -23,6 +23,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.8.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ $DOCKER_ARGS \ @@ -31,6 +32,7 @@ echo Starting container with SGSN docker run --rm \ --network $NET_NAME --ip 172.18.8.10 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sgsn:/data \ --name ${BUILD_TAG}-sgsn -d \ $DOCKER_ARGS \ @@ -40,6 +42,7 @@ echo Starting container with SGSN testsuite docker run --rm \ --network $NET_NAME --ip 172.18.8.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sgsn-tester:/data \ --name ${BUILD_TAG}-ttcn3-sgsn-test \ @@ -49,6 +52,7 @@ echo Starting container to merge logs docker run --rm \ --network $NET_NAME --ip 172.18.8.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sgsn-tester:/data \ --name ${BUILD_TAG}-ttcn3-sgsn-test-logmerge \ diff --git a/ttcn3-sip-test/jenkins.sh b/ttcn3-sip-test/jenkins.sh index 702a6f5..52916cd 100755 --- a/ttcn3-sip-test/jenkins.sh +++ b/ttcn3-sip-test/jenkins.sh @@ -21,6 +21,7 @@ echo Starting container with osmo-sip-connector docker run --rm \ --network $NET_NAME --ip 172.18.11.10 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/sip:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ --name ${BUILD_TAG}-sip-connector -d \ @@ -31,6 +32,7 @@ echo Starting container with SIP testsuite docker run --rm \ --network $NET_NAME --ip 172.18.11.103 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sip-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ diff --git a/ttcn3-stp-test/jenkins.sh b/ttcn3-stp-test/jenkins.sh index ba00f30..c45d157 100755 --- a/ttcn3-stp-test/jenkins.sh +++ b/ttcn3-stp-test/jenkins.sh @@ -17,6 +17,7 @@ echo Starting container with STP docker run --rm \ --network $NET_NAME --ip 172.18.19.200 \ + --ulimit core=-1 \ -v $VOL_BASE_DIR/stp:/data \ --name ${BUILD_TAG}-stp -d \ $DOCKER_ARGS \ @@ -25,6 +26,7 @@ echo Starting container with STP testsuite docker run --rm \ --network $NET_NAME --ip 172.18.19.203 \ + --ulimit core=-1 \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/stp-tester:/data \ --name ${BUILD_TAG}-ttcn3-stp-test \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185 Gerrit-Change-Number: 18929 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Jun 22 08:52:42 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 22 Jun 2020 08:52:42 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 to look at the new patch set (#7). Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 8 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 08:52:42 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 22 Jun 2020 08:52:42 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 to look at the new patch set (#3). Change subject: endp: add E1 endpoint interlocking ...................................................................... endp: add E1 endpoint interlocking E1 endpoint names also represent different rates, this may mean that some rate / subslot combinations are not possible because they overlap within nthe timeslot. When the equipment (BSC) is properly configured, this will be no problem, however invalid configuration may cause the selection of overlapping endpoints and this needs to be prevented, and logged. Also rate counters need to be in place. Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Related: OS#2547 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_ratectr.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_vty.c 6 files changed, 283 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/98/18898/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 3 Gerrit-Owner: dexter 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 Mon Jun 22 09:34:26 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:34:26 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 2: > Patch Set 2: > > would it make sense to have one "ramp" FSM that handles both ramping up and ramping down? It would make sense if we had to rewrite the ramping code from 0, but since the current tx_power.c ramping code is modular/enclosed enough, I'd say it's not worth spending time into moving that to an FSM right now and having to verify it everywhere. I simply needed to do some small fixes and add a "finished" callback and it's enough for now. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 09:34:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 09:35:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:35:58 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18910/1/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18910/1/src/osmo-bts-trx/l1_if.c at 415 PS1, Line 415: /* FIXME: There's currently no way to communicate to osmo-trx through : * TRXC that a specific TRX processing shall be paused. Let's simply : * make sure that at least we don't transmit with power on it: : */ > 0 mdBm == 0 dBm == 1mW. [?] Which value would you recommend? -10? -20? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 09:35:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 09:42:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:42:28 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 1310 PS1, Line 1310: LOG_CONN_RTP(conn_src, LOGL_DEBUG, "msg ctx: %d %p %s\n", > doesn't the logging system ensure the actual printf never happens unless soembody enabled this log c [?] Indeed good point, I was unsure whether the string was generated nevertheless of logging level but now I see it's like you say. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 09:42:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin 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 Jun 22 09:46:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:46:55 +0000 Subject: Change in osmo-bsc[master]: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment chang... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18938 ) Change subject: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment changemark ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73d9bd3cddc561f3a7af8bcc225fac126dca3f78 Gerrit-Change-Number: 18938 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 09: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 Jun 22 09:49:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:49:10 +0000 Subject: Change in osmo-bsc[master]: Implement support for receiving BSSMAP CommonID from MSC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18942 ) Change subject: Implement support for receiving BSSMAP CommonID from MSC ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I52c43fb940f0db796adf4c0adb2260321c721c39 Gerrit-Change-Number: 18942 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 09:49:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 09:52:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:52:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 ) Change subject: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I501108bc6c19b17d3fc680211c7290a31770a159 Gerrit-Change-Number: 18945 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 09:52:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 09:54:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:54:09 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 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 Mon Jun 22 09:56:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:56:13 +0000 Subject: Change in osmo-msc[master]: remove empty + unused ran_up_l2.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18950 ) Change subject: remove empty + unused ran_up_l2.c ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I5a0fa6a78dd8f32912afc69f4b154caad44a9e78 Gerrit-Change-Number: 18950 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 09:56:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 09:59:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 09:59:53 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 7: My last comment regarding return of strtoul was not either answered not applied... -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 09:59: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 Mon Jun 22 10:06:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:06:46 +0000 Subject: Change in libosmo-abis[master]: add 'trau2rtp' demo program illustrating the use of new TRAU code In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18931 ) Change subject: add 'trau2rtp' demo program illustrating the use of new TRAU code ...................................................................... Patch Set 1: Code-Review+1 (10 comments) https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/README File contrib/trau2rtp/README: https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/README at 11 PS1, Line 11: You can use the too like this: tool? https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/e1_ts2_efr.bin File contrib/trau2rtp/e1_ts2_efr.bin: https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/e1_ts2_efr.bin at 1 PS1, Line 1: UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEEEEEEEEeEeeUeEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEEEEEEeEEeuuuuEEEEEEEEeEeeUeeEeEEUEEEEeEEEUEUEuEEeEEEeeUUEEEEEueEeUEEeeEuEEEEUeEEEEEEEeEUEEeUEeEEEEEUeuEEEEEEEeEEEeEeEeEEuEEeEeUUEEUEEeeeEEEEEeEEEEEEEeEEUEEEeeEUUEuEEeEEeuuuuEEEEEEEEeEeeUeeEeEEEEEEEeEEEUEuEuEEeEEEeeUUEEEEEueEeUEEeeEuEEEEUeEEEEEEEeEUEEeUEeEEEEEUeuEEEEEEEeEEEeEeEeEEuEEeEeUUEEUEEeeeEEEEEeEEEEEEEeEEUEEEeeEUUEuEUeEEeuuuuEEEEEEEEeEeeUeeEueUeEeUueEUUEUUEeeUeuEEuueUUUueEeUueeEuUeUuEeeUuuUEEeEuEeeUEUueuuEUeeuEUeeuUuUuUeeeUeUeEueeueuuEuuuEEEEUeEUUeUuEeEeeEUuuueueeeuEeUUeeeeueeEeuuuuEEEEEEEEeEeeUeeEueUeEeUueEUUEUuEeeUeuEEuueUUUueEeUueeEuUeUuEeeUuuUEEeEuEeeUEUueuuEUeeuEUeeuUuUuUeeeUeUeEueeueuuEuuuEEEEUeEUUeUuEeEeeEUuuueueeeuEeUUeeeeueeEeuuuuEEEEEEEEeEeeUeeEueUeEeUueEUUEUuEeeUeuEEuueUUUueEeUueeEuUeUuEeeUuuUEEeEuEeeUEUueuuEUeeuEUeeuUuUuUeeeUeUeEueeueuuEuuuEEEEUeEUUeUuEeEeeEUuuueueeeuEeUUeeeeueeEeuuuuEEEEEEEEeEeeUeeEueUeEeUueEUUEUuEeeUeuEEuueUUUueEeUueeEuUeUuEeeUuuUEEeEuEeeUEUueuuEUeeuEUeeuUuUuUeeeUeUeEueeueuuEuuuEEEEUeEUUeUuEeEeeEUuuueueeeuEeUUeeeeueeEeuuuuEEEEEEEEeEeeUeeEuUUUUuEuuUeUeEEueueUuEeEuUUEUeUueeUUUEeeeuUuuUeeueeeeUeUeEueuueEueUUeeUeueEEuUEUeEEEueuEeUEuuuUeeEeuuuueueeeeEuueeeeuEuEueUueEUEueEeueeUeEEeuuuuEEEEEEEEeEeeUeeEuUUEUuEuuUeUeEeueueUuEeEuUUEUeUueeUUUEeeeuUuuUeeueeeeUeUeEueuueEueUUeeUeueEEuUEUeEEEueuEeUEuuuUeeEeuuuueueeeeEuueeeeuEuEueUueEUEueEeueeUeEEeuuuuEEEEEEEEeEeeUeeUuUUEUuEuuUeUeEeueueUuEeEuUUEUeUueeUUUEeeeuUuuUeeueeeeUeUeEueuueEueUUeeUeueEEuUEUeEEEueuEeUEuuuUeeEeuuuueueeeeEuueeeeuEuEueUueEUEueEeueeUeEEeuuuuEEEEEEEEeEeeUeeEuUUEUuEuuUeUeEeueueUuEeEuUUEUeUueeUUUEeeeuUuuUeeueeeeUeUeEueuueEueUUeeUeueEEuUEUeEEEueuEeUEuuuUeeEeuuuueueeeeEuueeeeuEuEueUueEUEueEeueeUeEEeuuuuEEEEEEEEeEeeUeeEuUUEUuEuuUeUeEeueueUuEeEuUUEUeUueeUUUEeeeuUuuUeeueeeeUeUeEueuueEueUUeeUeueEEuUEUeEEEueuEeUEuuuUeeEeuuuueueeeeEuueeeeuEuEueUueEUEueEeueeUeEEeuuuuEEEEEEEEeEeeUeeEeEeUuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUeueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeUeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEeEeeUeeEeEeEuUUuuEeeueuEueUEEeeEeEEEUUEeeeUEeUEueuUEeUEeeeEeeEEEeEEUEuUeueeUEeUEuEuUeeUEeeeEEeEEeUEeUEuUeUeuUEeUeUEuUEUUeEEeEEeueeUEuEEeeuUeuUUuueUeuuuuEEEEEEEEueeeUeEEueeeeeeuuuEUeEEeuUUUeEuUeEUuuUeeuUEEEeeeueEUEEUUueeueEEEeEEEeUEUuuEEeeUEeEEEEEUuuEEEEEEeeUeuEEueeeEEEUEEeEEEEueUuEEEEEEEeEEEEeeEeEEEEEEUeuEeuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEUuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEEEEueeeUeEEuEEeEUUuuUUeeUEeeEuueUUUeeuUUeEEeUuuEUuUeEUeEUeEeEuuUeuEeUeEeEUUuEEEeEEEeeUEEEEeeeeeuEEEeEEEEEEEeEEEEEEEeEEEEEueueeuEEEEeEEEEEEEeEEEEEEEeEueuuuuEEEEEAAAqaaaQiAIyEMaAYQqqQQaaYAaaAqqaYQQaaqQQiAAaQqqAYqQaAQaAYaAaAqqQiqAaQaAaIQQqAAAaIAAaaQAAIAaaaaaqIAAaAAAAIAAaAAAAIAAaAAAAIqaqaaqAIAAaAAAAIAAaAAAAIAAaAqaqyqqIMMMMAAAqaaaQiAYyEMiEYQqqUYiaYAeaEqyi]QQaaqUYiEAaQyqA]qQeIQeAYaAaAqqUmqAeYeAiMQQqAAAeIAAieUEAIAiaeiaqIAAaEAIIIAAaAIAEIEAaAAAIMuaqaaqMIMEaIAAAMAIeAAIEIAAaAyaqyqqIMMMMAAAqaaaQiAIyEMiAYQqqUYiaYAeaEqyi]QQaaqUYiEAaQyqA]qQeIQeAYaAaAqqUmqAeYeAiMQQqAAAeIAAieUEAIAiaeiaqIAAaEAIIIAAaAIAEIEAaAAAIMuaqaaqMIMEaIAAAMAIeAAIEIAAaAyauyqqIMMMMAAAqaaaQiAIyEMiAYQqqUYiaYAeaEqyi]QQaaqUYiEAaQyqA]qQeIQeAYaAaAqqUmqAeYeAiMQQqAAAeIAAieUEAIAiaeiaqIAAaEAIIIAAaAIAEIEAaAAAIMuaqaaqMIMEaIAAAMAIeAAIEIAAaAyauyqqIMMMMAAAqaaaQiAIyEMiAYQuuYYee]AiaAu}aYYQmmqUUmEIiU}qIYyUaE]eM]iImMqyUiuIiUeAaI]UqEIMmIAMmmUIEIImmeeiyMEEiAIMIMIMmIAMIIMImMAIII}mqaauIIIAmAMEAIEEmIEEIIIAeA}eu}y}IMMMMAAAqaaaQiAIyEMiAYQuqYYee]AiaAu}aYYQmmqUUmEIiU}qIYyUaE]eM]iImMqyUiuIiUeAaI]UqEIMmIAMmmUIEIImmeeiyMEEiAIMIMIMmIAMIIMImMAIII}mqaauIIIAmAMEAIEEmIEEIIIAeA}eu}y}IMMMMAAAqaaaQiAIyEMiAYQuqYYee]AiaAu}aYYQmmqUUmEIiU}qIYyUaE]eM]iImMqyUiuIiUeAaI]UqEIMmIAMmmUIEIImmeeiyMEEiAIMIMIMmIAMIIMImMAIII}mqaauIIIAmAMEAIEEmIEEIIIAeA}eu}y}IMMMMAAAqaaaQiAIyEMiAYQuqYYee]AiaAu}aYYQmmqUUmEIiU}qIYyUaE]eM]iImMqyUiuIiUeAaI]UqEIMmIAMmmUIEIImmeeiyMEEiAIMIMIMmIAMIIMImMAIII}mqaauIIIAmAMEAIEEmIEEIIIAeA}eu}y}IMMMMAAAqaaaQiAIyEMiA]]qyUQmeYMmeAq}eYQQiiqU]mMAiYq}IY}UiIYaAYiMiEuy]muIi]aAeMY]yEMEmMEIiiYEIIMeiimmqIMEaMAEMIAMaAEEMIIIeMIAAIqeuma}IMIIaMAAIIAAiEIAAMEAiMqm}y}qIMMMMAAAqaaaQiAIyEMiA]Qq}]Yai]IieI}qaYQUem}Q]mEIe]}yA]uUaA]eEYmMeMuq]iuIe]eEiIUQuMMIiMIMmeQIEIMaeimauMAAeAEAEIIAeIEEIIIImIEAAMqa}emyMIIEaAMEIMIEmMMEIMIImEqeyyuuIMMMMAAAqaaaQiAIyEMiAYUy}UYii]EaaA}umYUUeeyQQiEAeU}yE]uQmEUmA]aEiIu}UiuMiUaAeMQ]qMEIaMEAiiQEIIAmamemuIAEiAIMEIEIeIIEIMAEeEIEMMum}meuIMAEeIEIIMAAeMEIMIMMeAqey}q}IMMMMAAAqaaaQiAIyEMiAYUyyUYii]EaaA}}mYUUeeyQQiEAeU}yE]uQmEUmA]aEiIu}UiuMiUaAeMQ]qMEIaMEAiiQEIIAmamemuIAEiAIMEIEIeIIEIMAEeEIEMMum}meuIMAEeIEIIMAAeMEIMIMMeAqe}}q}IMMMMAAAqaaaQiAIyEMiAYUyyUYii]EaaA}}mYUUeeyQQiEAeU}yE]uQmEUmA]aEiIu}UiuMiUaAeMQ]qMEIaMEAiiQEIIAmamemuIAEiAIMEIEIeIIEIMAEeEIEMMum}meuIMAEeIEIIMAAeMEIMIMMeAqe}}q}IMMMMAAAqaaaQiAIyEMiA]Y}yUUaiYMmmMy}i]YQaiu]QmIMeUuuA]qUmI]iMYeAiIqy]iyIi]iEeI]QuAAEeMAIeiQAAMIaeemiqIAAiAIAAMMMmAIMMMAEmIAAMM}a}eayMIIEeEAMEMIAaAAAEMEMiAyaqy}uIMMMMAAAqaaaQiAIyEMaAYU}q]QieYMmiMy}i]YUee}UYmIMiUquE]yQmAUaM]aEiIu}UiyIi]iEeIUQuAEEeIAIaeQEAMEaeaei}IIMiEAAIMIIeAIIEIIMeMAEEMua}meyMIIEmAIIMIEAaMEAMMEEaM}m}yqyIMMMMAAAqaaaQiAIyEMaAYU}q]QieYMmiMy}i]YUee}UYmIMiUquE]yQmAUaI]aEiIu}UiyIi]iEeIUQuIEEeIAIaeQEAMEaeaei}IIMiEIAIMIIeAIIEMIMeMAEEMua}meyMIIEmAIIMIEAaMEAMMAEiM}i}}qyIMMMMAAAqaaaQiAIyEMiAYU}q]QieYMmiMy}i]YUee}UYmIMiUquE]yQmAUaI]aEiIu}UiyIi]iEeIUQuIEEeIAIaeQEAMEaeaei}IIMiEIAIMIIeAIIEMIMeMAEEMua}meyMIIEmAIIMIEAaMEAMMAEiM}i}}qyIMMMMAAAqaaaQiAIyEMiAYU}u]QimYMmaMq}i]YUae}U]mEMiUquE]}QmEUaI]aEiMu}UiyIi]iEmIUUuIEEeIAMamUEIMEaeaeiuIIMiEIAIMIIeAIIEMIMeMIEEMua}meyMIIEmAIIMIEAiMEIMIAMmMui}}uyIMMMMAAAqaaaQiAIyEMiAYU}q]QimYMmaMq}i]YUae}U]mEMiUquE]}QmEUaI]aEiMu}UiyIi]iEmIUUuIEEeIAMamUEIMEaeaeiuIIMiEIAIMIIeAIIEMIMeMIEEMua}meyMIIEmAIIMIEAiMEIMIAMmMui}}qyIMMMMAAAqaaaQiAIyEMiAYU}q]QimYMmaMq}i]YUae}U]mEMiUquE]}QmEUaI]aEiMu}UiyIi]iEmIUUuIEEeIAMamUEIMEaeaeiuIIMiEIAIMIIeAIIEMIMeMIEEMua}meyMIIEmAIIMIEAiMEIMIAMmMui}}qyIMMMMAAAqaaaQiAIyEMiAYU}q]QimYMmaMq}i]YUae}U]mEMiUquE]}QmEUaI]aEiMu}UiyIi]iEmIUUuIEEeIAMamUEIMEaeaeiuIIMiEIAIMIIeAIIEMIMeMIEEMua}meyMIIEmAIIMIEAiMEIMIAMmMui}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAYyEMiE]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQiAIyEMiA]Uuy]QeeYMmiMy}i]Y]ee}QYmIMmUq}E]yQmAUiI]eEiIu}UiyIi]iEeIUQuIEEmIAIaeQEAMEeeiei}IIIiEIAIMIIeAIMEIIMeMAEEMua}meyMIIEmAIIMIEAaMMAMMEEiM}m}}qyIMMMMAAAqaaaQmIIyEMaA]YyyQUam]MeeIqqmY]Qei}UUiAAm]uuI]uQeAYiMYaAaIqqQi}MaQaAaIQQqMEMeIIAaaQMMIEiaiaa}MAMaAIAAMEIiEAAAMAIiAEAAIqaume}AMMAaAEIEMIImIAAAIIIiMuiqyqqIMMMMAAAqaaaQmIIyEMaA]Y}q]Qei]IeiMuqmYUYimyUUiIMaQqqAYqQaAUaMYmAiAuu]iqAa]iMaIQQqAAAaIAAaaQAAIAaaaaayIIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]YuqUQee]AeeI}umYY]miq]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQUme]AieA}qiY]Yimu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuUQaaYIaiAuui]Q]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]miYAemM}qiYQYim}]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMiA]UqyQ]miYAemM}qiYQYim}]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmiIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmiIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qiYQYimyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]Q]miu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyU]QQMEAiaMmEYQe}M}qiiQYimyUUiIMeEIAAIAAaAAAAIAAaAAqQiqQmuIMEIMAaAAAAIAAaAAAAIAQqaaau]YiiMEEIIAAaAAAAIAAaAAAAyQaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIye]AQMUUuA]]myQumm}uiMq]miu]UiIMeEIAAIAAaAAAAIAAaAAqQiqQmuIMEIMAaAAAAIAAaAAAAIAQqaaau]YiiMEEIIAAaAAAAIAAaAAAAyQaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyeMQA]eQyQmmeIAummMqIiAYy]IUUyi}euYAaYAAqAQQAYaaqqQAAyAA}Uymey]QqqAQaiAAaAQAaYaAqAAaeMYyy}EEiiaQaAqaQyqqqaAQQyAqaQMeyMIi}AAaqiAQqAqqaYaaaAaaqyq}IMMMMAAAqaaaQmIYyeMae}uueA]}]yQumm]uimq]mYemUYI}eeyQQYAQaAaaayAaaaAAqIaAmUIMUYMQaqaaqIAqqaAqAiqqaAQAeMIyi]EeIYqAaAaqaYAQaAAaAIQqaAMuYMyi}aqqaiQaqQAQQiaQqaaaqyq}IMMMMAAAqaaaQmIIyUmaa}uAiQ}meIQu}]]AiiAIyMieUIYmeuyQqIqQaAQaAYQaaQaqQyQameY]EYMQaaqAaIQAaqqqAiqaaaAAumYiy]uEIyqaaAqqAIqqqqaaAYqAaAMeIMiYmqQAQIqaqAQqAIAaaQqaqyq}IMMMMAAAqaaaQmIIyE}QQMEUeQm]myAum]]eiMQMmYumUIImuUYqQiqaaqQqaiQQaaQqayqAmeyMEimqqqqqQiqqqQaQaYqaqqAaEMIyiMuEYyqAaAaQQIAQaQAaAYqQaqMeI}Iy}AaqaIQQaQqAaiaaqAAaqyq}IMMMMAAAqaaaQmIIyE}aA}uAyA]}uiQUm]]QYyQyy]IEUYI]uuYAQYAAaqaAqYQQaQaqAyqAmui]uyMQaqaQqiQQaQQaaiAqaAAQemIiiMEUyyQQqqQQayAQaQaaQyqQaqMey]Yi}aQAAyAqaaQaQYaQqaqaqyq}IMMMMAAAqaaaQmIIyE}aa]ueuQ]}mYAUm}meI}QMmiUMUiI]eUyqAyQqaqQAQIQAaQaaAiQAmeY}EyMaqaAAqIAaqAqQAiaaqQAqeMyYimUuiiqQqAaAQYAQaqaQayqAqAMuy}YimQQQqIaaqQaqQiAaaQaaqyq}IMMMMAAAqaaaQmIIyu}aA]Uqiq]]eIQE}}MAiIQyy]iEEIYmuUyaqIQaaAAAQYaQaaQqayAQ}uymUi}AaqaqQYqQqAaQQiqQqQAaUmYIi]uUIYQAaAAqAyQAaAAaAyAqqAMUi}IImQaaQYqAqaqAqYAQaAAaqyq}IMMMMAAAqaaaQmIIyE}aqMEUeQmMMYqUmMmei}A]}IEMUYI}uEIaQyaqqqqQQYAQaQqqAyqamEyMEimQaqaAqyaqqQqaAiaqaaQAUMYYi]eeIyQAaAAqqYqQqaaqAYAAqa]EYMyy}AQQqYAQaaaQqYaQqaqaqyq}IMMMMAAAqaaaQmIIyE}aA}uQyQm]eIQumM]QYYAyi]iEUiI}ueIAQyaqqAQAQIaaaQqQqYQamUimUYmaaQAQqIqqaqaaAiQAaqaauMYIiMUUiYaQqqqQAYQAaqAQqiQaaQMUI]iImQAAqYQQqaaQqiaaqAqaqyq}IMMMMAAAqaaaQmIIyUMQa]euuQmmMYqUmM]uI}q}}YUmuIiMeeiaaiAqqQQaQIaQaaQAaIAA}EimuyMQqQaaQyAqaAQqaiAaaaqaUMYIymEuYiqaaqqAQyqaaqAaQyAaaamEy]IYmQAaaiqqaaqAqyaaqAaaqyq}IMMMMAAAqaaaQmIIyE}aAmEQyQmMuyAe}M]QYIQIiMYEUIyMuEiaaiaaaAAQAIAAaaAaQIqamey]EIMQqAaaqIQQqQqQaiQQqqqaeMyIymueyyQQqQqQAiQQaAaaQIQAaAMei}YI}qqAQiQqaQQAQIAaaqqaqyq}IMMMMAAAqaaaQmIIyE}aa]eUeQ]}}iQU}}]Ei}Qm}IemeiImuuiqaiQAaAaqaYqaaaqAqIaa}UyMeyMAaQAqAyQQaqqaaiqqaaAQuMiYyMUeyIaAqqQqQiqaaQAaAYQaaAMUimIY}QqQaiaAaqAAaiAaqaqaqyq}IMMMMAAAqaaaQmIIyUmaa}uqiQmmUIaE}}]AiyQyyMieuyI]eUyAQYqaqAQaQYAqaqAqAYqAmuYmeI}QqaaaQIAaaaQqAiqQaqaqEMYiyMuUyYaQaQAAQIAQqAaaQIQQaQ]eyMYI}AQqaIAQaqaaqyaqaQQaqyq}IMMMMAAAqaaaQmIIyE}AA}eUuAmM}YAemM]Uy]Q}}YEmUYy}euYqQIQAaqqAayqQaqQAQIQA}uIMeI]aqaAQqIaaaAqAaiaQaAAAEMIYyMEuyyQAaaQqaiAAqAaaqiAAaA]eYmiI}aAqaIqAqAAqaIAqaQAaqyq}IMMMMAAAqaaaQmIIyU}aa]uAiaM]UIQe}mMqYiaYimiEUii]uEyqqIQqqaQaAyAAaaaQQYAAmUIMeImqqQaQAIqqaqQqAyQaqqqqumIyymUeYYqQqaAAQYQaqQaaaIQqqAMeiMYI}qaQaiqQaaaQQyaaqaAaqyq}IMMMMAAAqaaaQmIIyUMAa]uEeA]}]IaE}mmEYMQ}}YemUIYmeeYQaiQQqaAAqIaAaaqQQYAa}EI]UY]qqaAqaIAqaaaaAiqaqAQqEmiYy}EEYIQaqAAQQIAAaQAqAIAAaqMUI}yi}AAQaYqAqQQqQiaaqaQaqyq}IMMMMAAAqaaaQmIIyU}aA]uAyAm]UyQEmmMQiiAYymYEUYYmueYaQYQQqAAAQIaQaaAqqIqAmuiMEi]QaAaQayAaaQQqAyAQqAaAeMIyy}EeIYqQqAQaAYaaqQaaaIaqaQMeimIImqAqqYaqaqQAAYAqaaaaqyq}IMMMMAAAqaaaQmIIyU]Qa}ueeAm]]IaE}]meIMq]mYEMuiY]euYQqiaqaAQQQIqqaaAqAiaAmUi}EyMqqqaaaIqqaaAAaiAAqqqQemIyyMUeYiAaqaaAQIAAqqaqQYQAaAMeYMIy}aQQAYaaqaQqQyaQqqAaqyq}IMMMMAAAqaaaQmIIyU}Aa]eqyQ}mUYAumM]QIIayimieEii]ueIQQYaqaQAqqIAQaqQQAIQAmei}UyMQaQAaQYQqqAQqayAAqQaAuMYyi]UeYYqQqQQaaIQQaqAaAiaaqq]Ei}yYmQAqaiqaaQaAAiaqaQAaqyq}IMMMMAAAqaaaQmIIyUMQqMEUeQmm]IQUm]MeIMammiumEyi}eUYAqyAAqQqaAiaqaqAaQYqa}eY}eYmQaAQaAyaqaaqqAiqAqAQquMIIiMUUiyqAqAqqQiQAaQAqAyQaaA]uymIymQAQqiAAqQAqqyAaqAqaqyq}IMMMMAAAqaaaQmIIyU}Aa]uQyQm]uYAE}M]aiYqyimYuEIY}uUiQQIQQqAQaAYqAaqQqqIaamUI}Ei]AqQqQaIqaqQqqaiaqaqaqEMYii}EUIYqAaaaAQyQqqQAaqIAqqqMuYMYY}QaQaiqaaaaaaIaaqqaaqyq}IMMMMAAAqaaaQmIIyU]QA]uuuQ]}}iQU}}Mey]qM}iemUII}uuIqQyqaaaaqQIQQaqAqqIQA}EYmuImQqAaAaYqQaQaqayAQaaQaumIiimUuYYaQqQqAaiaqqAAaayAqqqMuimIImqqQQIAqqqAaAiAaaqaaqyq}IMMMMAAAqaaaQmIIyU}Aa}uqiQm]uiaUmM]QiyqyimieEyimueiAaIAaaAaAqiAqaaqQayAamuyMEYmAaaaaaiQqqaQAAiaQaaaqEMiiimUUIiAaaqAqqIqQqaaaqiqaqq]eYMYymaAaAIaQqaAQqyaaqqqaqyq}IMMMMAAAqaaaQmIIyE}AA]eueQmM}iQummMey}A]miemEiyMueyqaIaAaAQqaYqaaaAqaiQAmeyMEY}QaAAaaIAQaQQQAiaaqqaaEMYIi}uEIiQAaaaQAIQqqAaaQiAqqa]uYMiY}aqqAiqqaqAaQYAaqqaaqyq}IMMMMAAAqaaaQmIIyUmaa]uAiQm]EiaEmmmaIiAyy]iEEyYMuUIQQIQAqqqAqIQqaaAqAyqamUiMEi]aaqQQQiqQaaqaaYaaqAAAuMYyiMuuYiqAqQqqqIaqaAAaayqqaaMUi]yymaqqQyaaqAQaAYAaaQAaqyq}IMMMMAAAqaaaQmIYyUMAE]UuuQm}MyQEm}muYMqMmYuMEiy]euIaAiQaqQaQAyaqaQaAqYaamuY}uIMaqaqqAiAQaAaQAiAaaAQauMYIy}EUIyaqqQaAQIqAaaaaAYQaqaMeymiymAaAQyAAaaaqQiAQqqAaqyq}IMMMMAAAqaaaQmIIyE}qa]uAiaM]eYAU}}mayiAIy}ieUYymuEYaqyqQqaaqQIQAaaAQAyqAmEi]UY}qqqaAQYQqqAQQaYqaqQQqEmYIymuUIIqaaAaQQIaQqQAQQyQqaQMuYmyimQQaaYaqqAqAQIaaqAQaqyq}IMMMMAAAqaaaQmIIyUmaa]uUuAmM]yQE}]}ui}Q}mYUMEyIMeuIaAIaAqqqAQiAaaQQAaYaameI]EiMqqQqaqiaAaaAaAYAaaAAqUmIIimEUyiAqaqAAAIaAaQaQqiQaaAMEiMYimaQqQyaAaqaqqYaQaAAaqyq}IMMMMAAAqaaaQmIIyUMAa]eqyQmMuYAUm}mqYIaYi]YEEiyMeuYqQIaaaQQAAIqAaaaqQIqamUi}EY}qqQaAQiqqaAAaaYAAaAAaUMIYy}UeIiaAqQaQqiqaqAaQqiqaqaMey]YImAQaAIqqaqqaayaAqqAaqyq}IMMMMAAAqaaaQmIIyU}AA}uuea]mmYQe}mmeimQm}iuMEYYMuEYAQYaQaqAqayaAaaQqQYQA}UymEY}qaqAQAiQaqQAAaYaQqqAQuMYIiMEuiIAQaAqaqIQaqqAQQiQaaQMuy}IY}QaaQIqQqaAAqYaAqaAaqyq}IMMMMAAAqaaaQmIIyEMAaMEAiA}}uIAum}mqYIAIi}IeeYYMueYqqiaAaQAQaIQqqAAQqIAAmUIMey}aqqqQaiAQaQaAaYqaaAQAu}yyimueYIQAaaAQQiaaqQQAayAqaAMUY]yY}AqqqiAAaQqqqyAQqaQaqyq}IMMMMAAAqaaaQmIIyUmqa]eUea}M]iaE}m]ui}q}mie]EiymeUYqayAAaaaAqIqqaaAAqyAa}ey]eI]qaqqQAiQqaqQQAyqAqqqqU]yiiMeeiiQqaaQAQIaAaAAqAIAAaAMEI]iYmqaaqYQQqAqqayaQaqqaqyq}IMMMMAAAqaaaQmIIyE]AaMUqyq]}EyaEm}mAyiAYiMYEeiy}eUIAayQqqAqAQYAQaaaQQIaameymUi}qqQaAAiqaqqaqAiqqaAQauMIiymEUiYqaaQqAqiaqqQAaAYQaqaMEIMyi}QaaQyaaaqaAqyAaaQqaqyq}IMMMMAAAqaaaQmIIye}Aq}UeuAm}]yqu}]mUi}aM}YemEYImuEIaQYqqqAaQaYAqaaaAaIaamUi]Ei]QaAaqQYAQaAqAAYaqaQqAumYYy}EUyYaaaAaAqYAqqaAQaiqaaqMeImiimQaAayaqqAQAqIAaaQaaqyq}IMMMMAAAqaaaQmIIyE]AaMuQiA]}EyAu}]mAIiQyy}yEEii]eEyaQIqaaqaaayAaaQaqQiQamui]uYMaqqAAqyqaaqQqAiAqaaQAEMIii}ueyYqAaAQqQyqQqQAaAYaaaQMuI]yY}aaAAIQQaqQqaiAaaAAaqyq}IMMMMAAAqaaaQmIIyUmAQMeeua]m}IQe}mmuYmA}mYumeIy]ueiAQyqaaaQqqiAqaaAaQIaAmUy}eIMqqaaaAYQAqAAQAiAqaAAQEmYii]EuIYaAqaaaaYqqaAAaAiaQqqMuyMiI}QaQAYqaqaqQayAaaaaaqyq}IMMMMAAAqaaaQmIIyEmaA]UQiq]}EyQEmmmAYYayyMiEEyiMeeYAAiQQaQAAQIAQaQQAqyQamUYMuYMqaqqaAyAqqaqQAiQaaQQaEmiyi}UEyIQqaAAAqiaAqQAaQIaAqaMey]IimqQqqiqqqqQQayaaqAAaqyq}IMMMMAAAqaaaQmIIyE]Aq]EUeQ]}mYAem}mUi]am}ie]EIImuUYqQIaqaaqaqYQqaaqAaIAA}EI}uimAaaqqQiAAaaQAAiQaaAaaUMIYy]eeyiaaaQqqAYQqqAAaQIaqqaMeyMIImAaAQyAQaqQaQIAaqQaaqyq}IMMMMAAAqaaaQmIIyE]AaMuayA}]eYqumM]aIIAyi]yUeIiMeuYaaIqQqQqqQYqqaqQqQyaAmUyMUy]qaaaqAIAQaqAQaiqAaQqaU]IyymEeyIQqaqaQQiqAqQaaqiaAaQ}uy]YImQqqAYqAaAaqaIqAaqaaqyq}IMMMMAAAqaaaQmIIyE]Aameeea]}}iQUm]Mei}qMmye]EYimeEyAaIqQaaQaQIAqaQqaQIaAmUYMUYMqqqQQayQqqqAQAiAqaqqQuMiyyMeUIiQQaaAAaiQQqQAqqyAqaq]uyMiY}aAAaIaaaQaaQyAaaqqaqyq}IMMMMAAAqaaaQmIIyEMqAMUqyA}]EYqumMmqYyQIi}yeuYy]eUiAAIAqqAAAaiQqaaaaAiqa}uy}ei]AaQaQqIaAqaaaaiqaaaAaemyyymeEYiQAaQAQaIqqqqAaAIqAaamUymiImQaQQIaQaaQqaYaaaQQaqyq}IMMMMAAAqaaaQmIIyE]AamueeQ]M]IQemMMEi}qMmye}EiI}uEYqayqAqAQaQyQaaqQQQYqQmui]uY]QqqAqAyaqaqqaAiaqaaAqe}yYi}EeYyqQaQqaaiqAqAAaaYQAqAmuyMIi}qqQAYQAaaqAaiAaqaQaqyq}IMMMMAAAqaaaQmIIyU]Qa]eAyA]mEIaEmm}qYIqIymYUuyi]uUyAQyAQqAAaQIAqqAqQaYqq}uYMuiMqaaaAAiqQaQaQqIaAaqqQU]yyimEuYYaAqqaAAyaAaQqaAiqQqQ}uIMIy}AaQaIAqaaaAQyAqaaqaqyq}IMMMMAAAqaaaQmIIyE}aa}Eeeamm}yqu}MMUImQM}iEmEyy}ueiAAIqaqqQQqiaQqAaAQIAq}UIMuimaaAqQAYAqaQaQAyaAaaQAu]IIy]EEyYaAaaaQAIQQqAQAQYQAaqMui]YYmaaQQiqqqQaAAyqAaqqaqyq}IMMMMAAAqaaaQmIIyU]Qq]EAyaMMUyAu}mmQYIqIymYUuyYmeEIAayAQaqaAqYAqqAaQayqqmeIMeymAqqQaAiqaqAqQQIqaaqqqE]yyimUuiyAqqaAQQyqqqQqAQiQAaA}UI]iY}QqqaYqqqaAQqIqAqQQaqyq}IMMMMAAAqaaaQmIIyUMQamyiiAM}m]uumUIiQIyA}aEYAMyAuUYqAIqqaQQqAYqAaqaqayaqiII}EY]IqqA}IYIIyeyYyYQIue]mYMYeaEMeQmUyuUeuA}AyeaQIUiEy}qaQymqm}U]ueIiQyeiUU]QIeuMmuyq}IMMMMAAAqaaaQmIIyUMQa]aMyiMME}Ae}MmQImQIquEqAY]aiAaaMyQAuYi]ay]eyMyYqIEmyYeeIyyYmm}Qi]iMmueEi}iyuaYaU}Qye]aaIIuuaeYaeIUIuMYUEy]MqaQ}AI}qyIAY]mUuuImuYmeqqiqiy}yyIMMMMAAAqaaaQmIIyUMQamumaqU}E]u}mMAyAmYE}aY]a}A]quE}]YIuyIeUE]umuUMQuY]yqeUEeiQq}}eQ]Mm]u]yiuYEUmaYy]]YU}UieQI}AeiAMuYUI}}UMA}iymAqeAIeQyUMYAyemme]mEmUIyAIayy}}IMMMMAAAqaaaQmIIyUMQa]Q]mIi]IMeE}iUQiiyIyimea}U}aiYE]mEyuUeU]MyE}YE]YIIyiUeqq]mMeUmEAiAAeQiq}M]mui]qYMiuu]AYuIUIyEQqIMmmiYYMyMIiy}yUQMMemY}Eqmq}uMMiu]uAmueay}q}IMMMMAAAqaaaQmIYyE}AEmuaiaUEy}QEmaQEiMUIy]yUAmyYqUuaMme}}Qii]yIiy]]qUIUmqimYUI]YyQayq}uyu}]mMiyQai]YiYiUiEA}MIImyIYeuIUIeYuUm}mqyAQmUYeU}yyMayUAyYaUAyy]e}iayy}uIMMMMAAAqaaaQmIIyE}QaMuqyQy}yiUieMEQIiyIy]M]qmieeAyqaMeIuqeeMmmYey}E]IYYmuq}}mQiaaQqmia]eia]UYEEea]QIyQimIIymYUEiQeYIYeQyYQEYMUA}EeMM]qAyA}AEmqQmYM]uiyIuYAau}q}IMMMMAAAqaaaQmIIyEmQamQiiQmayYQIueUQi]QIy]a]A}eeuQuYUIUUyimU]Y}YuAaqqIY]q}Qqe}IYqMmYqIIM}eeAQ]]MeiY]QYIeqmqmQmme}q]I}]]MiQQAai]QyiQUAM]Mq}YUIiyYaIME]YQUayAay}uqIMMMMAAAqaaaQmIIyE]qAmqMaAmQIIUIemMaUMqIyA}EqMEQiY]IiYAIqYamEMyieyeAIyyeeuqyeImiqMmuEmeiaMYQQI]Qua]EamieuAmEuimA}iyu}i]aamqE}IaaiYI}AIquuu}aYy}Ayae}iI}Iyu]ayy}}IMMMMAAAqaaaQmIIyE]qQ]qemiYiqieie]UAMmEI}EmEa]eeqM}iImuaqEa]YmEQq]Qm}yYemQM}A}Uia]EaUmIeeiuAEmMmaYy}MIIUamI]yimu}]AYyiyEyuMmIy}IyYIYM]MEue}aYIIqaiMAiIm]qyUayyuyIMMMMAAAqaaaQmIIyE]aqmaYeYyQiYqyuA]qiYAYi}imAmUUa]maQIAeyauYEM]miuuQyYIemUqUI]uqiaQiE]MaeqA}a]q}aa]QeIIeuEyIemIeyAeEIMYumAMaAiaqyeEy]mmqiEyMmMEEemUqmYImquaau}}uIMMMMAAAqaaaQmIIyUmaa]q]yUqaYieYiemuQ}}yymImAmuaiyY}iYUmieIUuMyUaYAiAyymeeQqIYYiqAaamMAyqyIQaiMuaqy]}MAaama}mmMmqMUuiIQEemAaI}IIeMIaeYyQeYIQYiMmaauYaimeiQIa}yq}IMMMMAAAqaaaQmIIyE}aa]a]}iEiIYQIua]qyiyyymQaMiIqyUUy]}}Uyq]yq}yuqu}I]Iuuu}eIqiEyqqQUAIAeiEUAQm}YmI]YiiEeaUYq]YiQaU]AeIAUqaIIu]IYyqEIY]qUaeuaYi]e}MQYi]Ey}ieiu}yyIMMMMAAAqaaaQmIIye]qQME}mUqqEYQyaumea}EIi]}IEImuqQyyAYuIuqyYamUUuQi}QyYAi}QiIMauuaQEeYaUiyQAqMuEuIIy]IMMiaqiYMUMqayuQmyyuM]YYymy}eEqm]iuaqUiuie}mEeQAymyquiau}}uIMMMMAAAqaaaQmIIyEmaQMAMuA]i}yQyu]mE]Y}}}yuYqYuIaAMUayEmimmuQyQYyUiqyiYueeueIiiEqaQiMMuQiaAUqYMeiIyMqIUUuUiIEmMEuamMmY]eqYQYE]yIu}IqYMqQmUiimiaue}miy]QE}yaiyyyuIMMMMAAAqaaaQmIIyemAa}eqe]qUAYQuyImEMMiUiIIeMiM}qQmIU}]qeaEUQMMEyIiQuiiEe]]AII}IaemuaiQEyIaEUYMquiMEqmAq}UiqeiAQaiEuy]UieQ}I}yUAiQMiImiQumEUqyiuimq}Qi]IyeeiyyuqIMMMMAAAqaaaQmIIyumAamUMe]aAQiQIyA]qiIIYiIEEA}U]i]EqQM}iiqUUUiqYuUEuAYieaiyEYY]iqI}]iyaUyQaaA}uyuA]QIMEYiyyaIMEaqAuaY}MM}mYAMYuQemaiu]eyaIAYQiQueIyYi}YI}maay}qqIMMMMAAAqaaaQmIIyE}QaMuYqAYqQMQua}MuM}iYymQeUYUeieu}mmemiMq]Y}AqiqmQQyEma]eMQYEEaQAi}]iIaiAIAyYAyI]uQM]MqEQUeYQMuEmA}IIUiueqEiIyyUqq]y}EyYIMYIuaiiyAyy]IyI]iyyu}IMMMMAAAqaaaQmIIyEmQamAmeI]m}Yque]]eiYQYqAQYym}yquuqy}}uyq}yymyayq]mIYYquuyUqIMQeeiAMYAUuyAIiyuiaaI}MYAmeyQuUma]}IeeuMaQe}A}UieyiQemiiAEmYyI}Iyauaq}U}uQyMMa}yq}IMMMMAAAqaaaQmIIyE}aAMuquAYiyYIa}EUYqiMuqyQUA]A]qEQEAIIaqUeu]iYUuEumUYUYu}yeqIUiaqa]IyAQy]aiUMmYaaMU]ImMyamUqymUaUaeQ]A]qI]A]iyImYqUAIu}iYIqmmYqeEAQUyYMqqQiyyyqIMMMMAAAqaaaQmIIyE}AA]aumAU}]MQyuE]YQIyEeYeqUMquimeMYYMEmYI]Iy]myEYiEy}yqiIEaIIYqYMQUiyQuii]Y]IiiaI]I}}]eeiuu]mmmmiqyIiuuAqAayQIyQayEMIqmuiam}EE}]iaUYUE}uEa}yqyIMMMMAAAqaaaQmIIyE}aAMuqqiEeymUyyEYUmiiuuuyu]mUuieIM}iIea]QeUYeq}Im]qYY}aYM]a]MQeqaqu}QmqAaiuMQ]eaMU]YYAiQmAmMqQiEymAYEIiIYYY]Aiy]yqMYEIaQ}mU]EI}i]MI]Q]eEqay}uuIMMMMAAAqaaaQmIIyE}AA}AmaQem]MUiea]EYiQEiMa}QiuiqYquq]uy}QEYiiQ}yMYIAyiYuMaIeYMQmy]AIiE]e}yyuIUEuQ}}q}YQeu]Qeiq]iUiMAIQaueqMa]mq}auQ]yIEueUUA}EAqUa}QyqAe}Aay}}}IMMMMAAAqaaaQmIIyE}AA}EaeAe]]IUiieYUYMauuuAuQyuuayiEIMUme}}ymyuU}YYMUIY}aeqeImaQqYEYMmYeqQeyYYIImQy}EYYQuU]qUi}QqYiEqyqUeuuQIi}I}YeQ]IIUqmUI}IAAayI}]]YMqYEayy}}IMMMMAAAqaaaQmIIyEmqAMq]e]YieiQiam]am}MuyyeA]m}IaUMuqieqimUIQIIqqYeMMy]ay}QeA}MQum}MeiaEuAqqe}}}uY}eEyEmmAueU}Yey}EyaMEYeayEqiAq}QaA}}qeq]e]aYQMaUYmyiuYmMYa}yq}IMMMMAAAqaaaQmIIyEmQamaiiQimYMQeeI]AIImq}]}YM}mEeQ}}Q}UAmum]UiAIuUIeyIIQa]aq]IyuuaaEY]qIeaeeA}qIe]qQI}E]emQEeImUaA]mUy}MaquIaYqImum]EiaeeeqYMYqa}UQIiYU]aEEa}yuuIMMMMAAAqaaaQmIIyEmqAMqI}QimyMUeuMmuyIMyyAUy]Me]yieuy}AAa]Q}]m}YyII}Ay}qeuAaMIequ]UueMYqmmMQQIQmiY}AAYuMeAAyUyMAqYqmAIQIi}uIi]YImUiEaM}EiyE}QyYMm]Iqi}]Qi}Qa}yq}IMMMMAAAqaaaQmIIyE]qamaumYieUYQEeuYuyiiuayuI}}ueiyiyyIQI}e}qamyEuMMuyI]EaQ}MQ}Ea}mMeMMyIiyQaeyiQaQ}E}iE}uaamYy}mayMMyMaMeeIaq}Uy}AIQmmIuqAyQI]mm}Q]a}MmieeAi}y}yIMMMMAAAqaaaQmIIyE]QqmQyuqyiAye]uQUQ}yUIe}UAMi}}qYIAUy]eeMmM]IMAaaUUeIIMuEeqQMaqqqaqEYyymeYYIyqeeAi}i}UmaMqUiiyYi]IemmyeyueqeiEYyye}EmeAeUiqy}}aeemIyYQAmAAayy}qIMMMMAAAqaaaQmIYyUmqUMQumYIEQye]yUeA]IuiymmU}}qiyuUYyY]]qMeAey}quEmmyiiQ}q}]AmQamY}UAiiyqiaqQMIMaIMYMIEmqyQuUmaiyieEYyqqeU]EImuyeYqy}iIqieia]mQAuUYIIyyI}myayyu}IMMMMAAAqaaaQmIIyE}aqMAymy}MU]iQqqUqi}iM}IME}M}iaaImyIyMumaEEIQyqIaqmiei}yEMyYEyqIeM}m]IiaaquYAmmIMueIAqyiYuM}IiiyyAUM]aeqUEEiQAemUIuYu]eQE}yYuaeuAYuiQAi}}iyyquIMMMMAAAqaaaQmIIyEmqA]q}iUQYeyuqaUmIUI]eq}EAmmaIyUEMYIUmqe}QA]AeqUmiYIIEm}QEumIuuiUyEMI]uaQAAyqqyimeimAuqMQq}YY]uaaa]yEEaEuEI]uImeAYM]AQueYEQIAemIAAY]YMqYuiu}qqIMMMMAAAqaaaQmIIyUMQqMEyqUQquYAuaUmEymMiyEmE]]iyiaMAY]EieQIUUMAEeqmimyyaiymmyyYiaiUMu}qIeaqyyIYQqq}E}iEumYAYay}iqqeAumAU}]uEY]EiyyEqYIAAiEYQ}MUQ}uYU}mAqa}EayyyqIMMMMAAAqaaaQmIIyEmAA]Q]e]]eAyyymqeYaiQummmeemi]a]]]]Mu]y]AMuImMqQEuQIYEieMqeyUYqayAEMMiuAMqMyQQaymy}IY]iuqI}yeYiiIAUIQumUA}}]}IyiMe]yQqeiQEy}QIueay]YyAa]eiy}quIMMMMAAAqaaaQmIIyu}aA}EiaQieQYAEiYmyEyAIa]mAU]}aaia]Qi]EyaAQqImEaqmUMIyAuAu}qyYumiEaq]QyeaaamiaAeI}euIQAeEqaQyYMayaAm}iEaUiu]m}AyYAiq}}quIUiyIuiqIa}a}Iuaymay}yqIMMMMAAAqaaaQmIIyEMaAMeAqUaYA]QEuY]Em}qiqqme}yu]yeY]uIIEmaI]}YQ]iyYyEIEI}EQEAIUuma}EMYQauAyQimuieImUeiEQqaaUQyqqy]aIUMU}iMaYaYyaiIA]miAQuQaAYiAEqyeY}YAimAqiyyquIMMMMAAAqaaaQmIIyE}AA}uAya]MIIYUiuUUmYiYiiyEMyEaiQimE]IqaEAQeMQQaeU]uIIUma]YqmiyqYeAIiQyyiQ]immIiAYiEMAM}uYuuMaQaEiUqIAa}EIYu]IqyuMQIyYEieyAeiEyaU}qI]E]}QQayy}uIMMMMAAAqaaaQmIIye]aA]uqqQ}M]YYuuIeuQyIIyMqi]}ayiEqI]i}YmMYuU]AqeaIe]yeIiUUIayyIaQQuEmyIeyAQAiIAiq}ayIAaiMQIaMAU}YAUMm}]iaAiUIayiiIe}IEAqUuyAieAy]miiIm]y]Eau}yyIMMMMAAAqaaaQmIIyUmAQMaIumaaqYAeaM}uiyQyqQEiAi]aqeMYuyUEqIqaEyAEiU]UyiIaeYMUQyYIaiMQyiaqeeEme]uImqMUMmQaqmYau]AM}m}YeIUQmEAiYIyIyAEQqIyQeYymiiQ]mYUMUIiYiy]iy}quIMMMMAAAqaaaQmIIye]AQMAMyY}myYImqeea}}eie]mEYI]qi}m}Y}aiqIIqy]AyaU}e]YYIeuIUM}qQuqaiQyQQuAQumY}]yyIyAMiauUaEMiQmi}aAi}muuaiQiiQQiaAa]}YUuIIeimiiyauiYyMQqeuay}}yIMMMMAAAqaaaQmIIyeMaqMaYyeQQ]YQEuQmeyMaymEMEQIUei}qqU]e}yIumq}MIa]yeeIIEiYaYQmqum}iAAyaqeiaEaYM}qA}qYmiAm}YEimqmma}aaiyEuMiY}ieQyeIaEMmAiuayemMy}Qu]I}EaeAmay}qyIMMMMAAAqaaaQmIIyUmqQMEiy]qUe]Qe}Qmm}yeUmi]mmmeIuAYmQ}Qmqy]}}IMya]uquIiIaaqqQy]}aaAEQmyAiY]]m]yayqmayi]]euIyMMiQeEYM}}M]}QeUiIiyyiA]eiaQiyeIUiYAeEAiQYiYyuQiy}}uIMMMMAAAqaaaQmIIyU]aQMUAqEqqm}Iyi]uui}uIq}AuQYiaqEIii]uEuIiyi]}]m]]maYiM}AE}AMuUmq]}m]Q]yIAQmmA}}yyeEiU]}QIe}YMuuUQeqIuQemmYymQAmAEuaYeQiiiUMiQEuYmUe}eUqUMiyyu}IMMMMAAAqaaaQmIIye]aa]u}}UqieYQummmaimqyyqUIMmUEyEMEUyEqy]muUMyameIyeyYEqAYaA]aquiEUeyQeqYQae]IieymaAiUYauAAYiYmaqe]yMMuqImmEIyYyQM}aiIA}AmUameUaqQm]yAYquuay}yyIMMMMAAAqaaaQmIIyumQqMQi}mYiuYAUq}mayMmyyaUAUmaYaMYqAYUi}}]mUMYUemIU]iIMmMiEqYiE}YImuIQEyUEqa]]IaAYmmIQamuIuAMuqaYUma}a]mmIYqMAqyeMYmiIQaiMeq]q}q]]EImMYuyUiyyu}IMMMMAAAqaaaQmIIyemqA}q}imQqqYQemEmayYAIymI}EIIeqUEiqiI]ayMYEI}ImmEUiYYMaeIuYYIiaeqYuIqqqYA}MYaAeYiMmiAEuaaUqMEa}ya}AIYaammYm]Eii]Mqm]}auIi]eiiA}qQAamA]qm}ayy}yIMMMMAAAqaaaQmIIyU]AqMmmiEQeayYeyAeamMYyi}Qi]ImMyIQyYMy]m]eiqIIamiIi]Iye}MIEiMIueqaIYiqQaya}MiMYuyyM]iQaeUAaYIyY}}AmQyyUeEIIu}]IiMAyEYYYuM}qIyEueY}UAmEY}YAiyyuqIMMMMAAAqaaaQmIIyUmqAmQMaAmm]iQemq}qiiq}myqAMim}yuMeeMUMmEiuyMu}maa]qYYAmi}YmIUAiMUiM}EaaIQqE]iQqQ]qIImeyYQiUIQEam}EUYeA}MMYeYyIeiIuaMaQiimum]YyyayAy]AUmeQiy}uyIMMMMAAAqaaaQmIIyU]QqMuEui]]]Yaeyy]Yi}EYimiIMyEIaeemEiYeuYeA}iAAammU]iYeaEYEQi]U}yuMMMeqyIaQEiEyeyyy]IIiueyIAyyueEIIiye}euEYQm]YiueUAYAUqeIiQI]YqyM}umiaiYuiyyu}IMMMMAAAqaaaQmIIyeMAQMEquImmEmYaq}eayyiiiYummMmAyUQ}YYYQaMAuAYmAemIYiyyEeYeyyyEAeAamMIaqyYQuAYui}AiyMMa}uIQ}QmIaiMIUqYAiueI]I}}AyIE]AmyUqeqAYYequeiIyiami]may}q}IMMMMAAAqaaaQmIIye]AQMuYqEQee}Qauymm}M}IquYaaIUAyQ}yMyMaqUqyA}]eamEMUIiEi}UAay}uyIEEAmyUiaa]MiYqmAyMymAmiYyEI}QUmAyiI]iqemMQiIAayQAYeyeaayi]qIyIuqYuQMMYaaaiy}uyIMMMMAAAqaaaQmIIyE}qamUAeImimyUIqMqyamUyyiAaM}umaQiiqiiEe}YiyyuyeaQq}iuMiuyuq]Aqei]qEmeUyIQAamM}qY]U]iQqa}YeeMiA}QAyY]Ii}iAUaiMquYAyUiEUueIeAiQIeAIiYieeeIqay}uyIMMMMAAAqaaaQmIIyUmAA}ueuaMMuYAeeimyUmi]my]AMmIEqEiyq}IEu}]EUI]uiQ}qUiyAeQEMiMyEamaMQYIaqyauiiEy}qIyeIIyqMiu]Ya]}MyiQI}}}Ui]yyAqyaYEqYAaiiiQM]MMqQQAyIeYi}Uiyyu}IMMMMAAAqaaaQmIYyE}aemEAqa]mu]YeyYuquIu}myYM]miqyuq]IIuqm}uAayU]aaYIeIIAm]MAImAyqqAMU]qmiyA}IiAaeqi]qmUyiMaUEmEaumQuYIUumueYy}QIeEI}qiAA}Yiq]iAeeYQQymeUyyEayyu}IMMMMAAAqaaaQmIIyUmAQMyAaUqiU]E}m]eyQ]IiimEEQMQEaaqU}yMemEm]iyE]aQYMeiIUuA]EEMEYaAaMEMay}aaEmiaqyamqqiMiuiQY}YaQmEIe]iQqumAQYIIyuiEuUYaQmeYAuiuAeeyqY}I]y]]ayy}uIMMMMAAAqaaaQmIIyUmqamEAaaUMAYAUyY]qUYi]}yIAUmEQqaYm}}Iuu}YA]iyAeiQUYiUieeUmyiieyaQuQIYq}yaMimAuiyy}aMmMaAyqYYMmmIe}iIi}uYEQuyuAuMmI]iaqmeEUemmE}YiaI]eQmimiuyquIMMMMAAAqaaaQmIIyeMaQMuAyUQqQyIUm}eeI]qyu]iAIiqyqEueqIY}eE]yy]IAimI}eyyIeiYEA]QYqqQ]}yQQuQAAEYeeya]uyM]iqiQQEiEE}I]y]YI]qaEaIyqQeiMuEmYe}uiYqyaqaQUMeIMUmEyau}yyIMMMMAAAqaaaQmIIyE}AA]qY}A]}U}Meeyme}IUIyMQyAyEiqqYe]iQMi}U]u}qmeaeMEyIAeEaQqiyiaQqEeMUEeQAEImAQaQy}mMEymAQuQI]ea]A]aiYUieM]QyEayQQMimiAeuYaQyAM}IAAIyi]}Aeayyu}IMMMMAAAqaaaQmIIyeMqa}iayYm]qyIyuAeqMiUIiIqMAye]qAmUYyYaimqaaiUAi]ymayuea}YEMIAyaaaAaImiuIq]M]yeqAMIqMAi}AAqyM}YaQMMmiiyemEYyiEAumMmi]Auueiqi]m}aYUQiIAeaMIiyyqyIMMMMAAAqaaaQmIIyUMQqMA}qeQQU]YeeueayyeYi]IEQyeUaQIey}Eq}]aMAMQmiaMyayueemiqqmQIqmM]UmAymi}aeiEqeIMQUMQEuuQuq]]umMImAYIIiYeU]YMiiaMY}Y}QeIYAi]AieaaiyMAQeQeay}u}IMMMMAAAqaaaQmIIyUmqA}uUeiE]EMQu}Eme}]yyymUEUIEUauyYumI}iYqA}yiAiiYQqIEEiEAyayIiaQQqumeqiYqAMYqaaqMa]IYIqmyuIY]aaeI}Y}yYuUEQiIeqeM]Me}UqiEIqemeimieaYiMmiMmiyyuqIMMMMAAAqaaaQmIIyUMaqMEAemQ]Q]Qe}}mayyy}}iuMEy]qyQi]q}]}aM}uYIMuiQQQYYYEauQQIMaYaaaeEmiQayqqE]QQyqyI}MM}yiYuYMMEaM}AuYY]iaamUYEIyaIiAM]AayYa}M]miamu}YAUeI}iu}q}IMMMMAAAqaaaQmIIyU}qA]qMaQyaUMaIeeme}}QyimuiaMeUauQ]QIYMyYiI]IYuiiiYQyYAmIyEAyIeiaQ]}muIuqQAaYqq}yImym]yiQQEQmEaa}YU]}Ye}AI]yyQAuIMi}MAAm]qAyIyUquiyQ]m]i]Yayyq}IMMMMAAAqaaaQmIIyU]Aa}uqemQ]A]IqiQeauIYiyEmM]y]MaUUU]}iMyE]]eyeuamYmMYu]aq}IuYuiamIqQyimeaAQe]Q}ey}Uyi]Iu}YUEyYaeEQAq]UE}}MUuIAqummeQyyA}yyQA]UAiIauQ}iQamaiu}quIMMMMAAAqaaaQmIIyU}AA}uYaUaQeyAe}ema}}]iy]Yi]Y]UyeUeImeyeAqeAyiMeaM}MiYAi}A]U}QemqqiMmUquaAMaiAaqq}uiiMY}]IqIIIuuIqme}mAe]mUyYUQe}IyemuuqIiaIyyumYyay}MYieuau}}qIMMMMAAAqaaaQmIIye]AQMA]aA]]emUmyYuui}uyymmAQIqAyqYq]YymuqU}IIAEiaMEUiEmeQyi}i}IaQQe]y]ay}E}EYmMmiy]MIeYm}AqMiqAiqEEeI]I}qeUu]qQeMQMmiEQeIIAYYyIuqiqIYE]a}miyyyuIMMMMAAAqaaaQmIIyEmqa]uAe]qAY]Aemq]AiYiiy}]A]I]mqUeMQ}memeqyaM]meiiM}IeMaYI}mYEQ}iEq]}qYyaAaaYYayiI}UmQ}u]ieE}Ea}eYiiYAeiYAaAyUayaMMeYIuayYe}IIam]ImQMm]y]Mau}q}IMMMMAAAqaaaQmIIye]AA}qmiA]iymiAaIee}Ie]myQIAyaeqqMuYMu}yMIe]YeiaaEmyIiAyMAaIYeYaImamMQ}qYqqe]mi}YYy]M]IuEIqy}AU}}}QEIuAeQaeAIyayaM]qmMUqyiiEIUIyIEImyM]}]Mau}yqIMMMMAAAqaaaQmIIyE}aamEyqeQae]AueYmqiYAIy]Uu]}iIyaiaqiy}}]qe]}uYieAmeiYAiYiIIIiYaAA]uIQeiEeaemIm}Ai]AMIiuEYUumimuu]yQiueaEEQQiMye}QMqiuqyUiuyiAEaYeAyyaQyqIayyu}IMMMMAAAqaaaQmIIyeMaa}a}eImMEyEyiEmUimuYyMQI]MeYaUuQMyEUuuQM]iameQqqMieIiyIeuYYYaQaaQ]UAmAAaamIEyymqUi]iumYUMyIUquYU]}y]yimQi}uaei]EAIiAiIiQe}uYue]]EmAUu]QayyyyIMMMMAAAqaaaQmIIyUMQa}uimaEMAMiImAuAMyeiieMAuM}UiqYQQ]UAuu]U}}UyaiIY]IiAmUiqyyYiqaa}uyiamAmaEmMueAIEuMAmeyYaMMUe}uA]iiUY}MAQqmEQyQ]Ua]MamYimUyAyqQAqmii]uQMau}yqIMMMMAAAqaaaQmIIyUmQA}qye]aaaYEmm}eey]eIu}AeE]eQauqi]MQ}uQqEaimeieIA]IiAaUq]Imaia]EaIIaaqyQqAiYyeQmqum]}qaQuQYYE}AmMAi}uaiEYUiQQuIUayyUQuIYaY}aIaQYQiMAmeQMau}y}IMMMMAAAqaaaQmIIyUmaa}emqeAaEYAeim]Ua}UYi]YEmiMMqEMmQM]qy}IyMyEammEuyIuiaa]]QY}Iaqaua]eAiYaIIYuAmImy]i]YiUaiQyEIyaAmMMYAy]EiMI]YuM]aYyqeaIieyYyAeeYuqMEUiyuiu}y}IMMMMAAAqaaaQmIIyU]QAmUAiQmmI}E}y]eAyiaM}IumqMqQaaMeIIam}EeeuiE]eUyqyiUiaa}mI}EUiYuAi]myeYAQami}aAmumIUAeIyqYimMa]EamiiMyaMQqmaQuMA]QmYqeyiaiyeYimiqEmAiaQ}ayyy}IMMMMAAAqaaaQmIIyemQA]UMmuqaEyaE}mmUMiiIi}qEQIYiaeaQ}yYYyEi]iiiMameEIIUEmmeYQImyaAAuY}aiiyaYamiI}YI]iY}iu]YyU]AAemEYuMmAqmYEEmyAiQy}aYqq}eYayYQm}eQqiY}]aYYayyu}IMMMMAAAqaaaQmIIyEMqaMuayy}}u}UMimUa]yEyeMa]}y}Eaa}Eem]ayye}iYaaueue}IiAqmAAQ}QyauiIuYaUayAUE}uqiIiyMMYyeeqaYMuaauIIiyyMmA}AIImiiq}mA]uqyQMu]IeA}eiMYiQYq]}ayyuyIMMMMAAAqaaaQmIIyU}Aa]YAa]E}m]UMu]mAUiyIi}UuImIMaYUYq]MQiIaaq}uEa}qIqIuIi}qYAIeiaaqaQ}QaiUUEQMQyaaYMmyEIyeAu]YeMuQUiMm}YuUQIQ}QImaiAimIEiuYMA]ieiMMmIYi}}YUayy}qIMMMMAAAqaaaQmIYyE]qu]qiaQEQY]aMeiUqU]YIyMQuqMQmqye}}yY]mYAUMMIeyMIeyIyuqQeIEIeEmAAEM]qqueeMyMmI}iY]AyiA}U}yYiiauUyuamqAemm}Ui}IyeamQYYiiqiaymM}iQiiyYqIiEQiyyuuIMMMMAAAqaaaQmIIyEmqq]quu]E}M]UAiYQyq}yIy]MEa}QQuEAemiAiimYqAieEyI}YIyy]iEqYymMemqai]iIam}aqQMEaaaYUmYIeqE]auiQQ}iaI}YaquM}EE}}QiAaUEIiEmUuQy}iM}maieIauyeaayyqqIMMMMAAAqaaaQmIIyEmQQ]qe}YEUqYaMemUqU}qIy]q}Q]EaiYiQAmiiqEeQUY}QeeuyYIEIa}auUMUAiqQYAMAQyI}E}]AUaa]eiMyUeIuyy}]UaAUim}IIqQAmuYMqyqUUaMAY}EyAEy}}euq}IyyEem}i}yquIMMMMAAAqaaaQmIIyE]qa]AU}muMY}EYqiUau]UYmEEma]EEuQEMaMMM}uEmEIAQyUA]QiUieeAIuyIAua]ymMMImyqeA]uiqimUamYeeYmemImQiAYaUmyEyMuMiiMieYYEAYu}qmmeyIMyiMuuqMayuMMay}yqIMMMMAAAqaaaQmIIyEmQA]A]qAuAaYUIeQ]iqI]IqqymQ}]Q}UI]YMeMeEM}yiymimM]UI}imq}iuiuYi}myAI]AyM}aEiu]}i]qYiiUe}iieYmeeimUQmyIuAAeUIQIiQQIUMMQeemaEImq}YQAYyamyY}iuyyuIMMMMAAAqaaaQmIIyu]aA]AieAqE]meiq}eAeI]YiMeEQmIUaeaAaYYyqyMeImUUiUyYay}aqMqaEiYIqAAuyIQYyQUqey]yaaYUaYyyeUaAIiima]U]aYeyaqM}EYYYeiiau}ya}YIqi}]iyEIYqYe}u]uiyyqyIMMMMAAAqaaaQmIIyU}Aa]ameieM]}UMqUEa}iQ]mYEUQ]}}aIqY]}EQ}QeMIMyYuM]mMIUMyqYQum]qu]uE}yII}QAQuIIimYMAMmA}yUqQyMuUuAUiuMaiqmYQEMaqiA}}q]AQiuaQ}Mmmq}myyIyyaIqauy}uIMMMMAAAqaaaQmIIyE}qa]QE}Ie]qMIQi}EuIMiYy]MMQ]Mqqy}ue]Maa}mYimUamyiA}IYAiai}uYaumQAqM]y]yqaAuYe}uyyME]YyuqiYuyyq}uyqAY]mqmqaqIIAieEYEMqqyIyAUYeAi}QY}iy]y}Mayy}}IMMMMAAAqaaaQmIIyE]qAmuauAuyeYEyyaqe}iEIy}umAmuyyAIy}IMQiEAy}mYmyEm}IYUmemIA]]QYeAQEyy}ieyM}QIIyaA}QIiQEi}IaE]]A}Q]UM]YUiqQQAIiyyeM}]iAQiyMuiiaUeAIYaY}AiMuiy}yuIMMMMAAAqaaaQmIIyu}aAmAeaYuaAME}ei]umIYM}iMuqmmQyEa]I]e]aIqeY]iU}YiquiUeeuEuYIIQ}QQeIMq}aQyeyM]Quq}uaiaMquuMIIIu}mq}EmQEiiqYeiUI}AuMuYyA}iEmIYyE}}mQMIYIyuAiyyqqIMMMMAAAqaaaQmIIyE]qamaIiaIMYmU]yMmQemYyquuem}mQmIQEYm}iiEYM]MMMuAUaqYYeyEU]Q]IyqYuUYy]mi}UaeyyIaqy}QmiEmeimeMa}eyQUuyYa}iqUE}eiyeaUA}aQ}mAEEYyaa}aqUYQAuyiiyy}yIMMMMAAAqaaaQmIIyEmqAmQqmaUi}IQYuE]qeymMmiMeA}MeiYMQ}}iEiQ]IuMMquE]qiiYAqAMU]MmyaMMEE]AyaIeUUIAMiy}QaYyEmAAYIIm]}uqQEMUeqaY]QiqqiYIuemua}UEMYYaUmU]iyIIuqAYiyyuqIMMMMAAAqaaaQmIIyE]QamQiuiYuQMUyyEeQYMmIyA]EQMIEem]Ma}YaeQIAIMaEammYmYMMmeIEM}Qiqau}m]AYyy}ia}]}aQiEAMAMa}AeQ]}ei]aQqmA}aaqI]]qqeMy}am]IqyiUyyae}umuMyUmyeEi}yuqIMMMMAAAqaaaQmIIyE]qA}AumaYiqIYqaaaIA]iM}i}e]MeMuQqAUMuUmYAiIMQqi}M}mImeaYUYAmqUmqaIY}q}uyAaAiemyyiq}mAmqMuQemqmmqQaAyEayu}MMYqQyEAIEMaEayuuqya]a]umy}yYuM]au}}qIMMMMAAAqaaaQmIIyEMQq]aYuaiqIYaIe}]qm}mIymYQyIUUaIEyyiEyuMiaAyUi}]Y]UyiAiE}yem]UiAa}yYMiy]]uIImU}Ame]MAaaaaAYm]AaAe}yMY]uIqIMmIAeMMYqIiayuaqy}yYeAUUymEyqqMayyyuIMMMMAAAqaaaQmIIyEmAqmqq}ai}qYU}ymeEyMe]}imIEmUYaEaEIM}Y}E}}qmIEiiqaAieqqq}}]MMem}QyyIYquI]qUYuUqa}MQ]qiqEAya}eyiuAyQMaI}aQiaiMQyeuumMqAeYyayIUeeyMm]MAyeuUau}q}IMMMMAAAqaaaQmIIyEMqAmquyim}uYQyuU]uImqyaqyeAiEQqIyA]Y}ii}]ayyaMaUmeuiiqa]Y}yYIuuqQIAyemqAQAQ}M]yq}AMM]iy]}AEyQyiumqIYyamaYE]mEYu]}Q]YiqmyyAIMEMaEEquyyEm}Yayy}}IMMMMAAAqaaaQmIIyE]qQme}qQMIY}eIumQyQ}YuiueyEiUeiIeYamMmaMYMayI]q]QiamQ}}qE]M}mqu]}mM}eqyM}M]MM}y}eqaiaA}uQayiqa}eyEqMayeqQYUYQUeY]Im]MqeEUyq]aQqqqyqyqYeiEiu}uuIMMMMAAAqaaaQmIIyE]AamaqaiemaYAe}umIEImyi]yIqM]UiEMmy]qmuEAMAYMqm}aMyIYQqYqQayEummAeAiauaiaaUYmMmYmyYyqiuyUA]YEAyiuUiyMiqeqIE}mq}IeqYiiEuymmAyq}iIMIYY]ImmUa}y}uIMMMMAAAqaaaQmIIyE]qAmQimYIAU}yy}AUue]e}imiQamuUqiAammaea]]Ii]AMqeAq]IY}}MMQiiiQmYmY]yuMqqaqYIMIaQmuA]aU}MauY}]emEIEqmAi}MqImY}IyU]qeMIqe}QI]MmqeUEqq]yAmI}ay}yyIMMMMAAAqaaaQmIIyE]qAMqAuIuY]iYiiAUqmIayiyQYA}}EaiaymMEAieIMaYIeuQuQMyy}iaqQyiUaiaaEQy]AuiAm}ImaaQi}YyeIyIY}E]AEe}m}mMqeeuuEUyqIi}UEAiYum]YUmyeYqaMEMI]MiY}iy}yyIMMMMAAAqaaaQmIIyEmQAmaIuaYu}Yq}mY]uaMe}muyu]IMeiiueayie}iIAMMYiqMYiiyy}yEqA]IAIeMUa}MUiq]YqQYAamYyIayEimAaI]yuuy}IAy}Uiui]Muieqy}Qma}iumYY}UYiAaYAeuyqAiAyi}yq}IMMMMAAAqaaaQmIIyEmQamqAmQq]eMYUmMUqm]eyqQMymiMEmqeaIIqmuEEQQ]MuqIU]uYIUeQAQayyEeAQmQyIMqqAu}]I}uY}eiyaYu}aEa}EyyqIEAmAMmYyMm}QAiaiQyIqeaeEyEM]eeqQiI]q]uMEiy}yqIMMMMAAAqaaaQmIIyEmQAmAemQyiuMYiaaQumyi}}yiq]yI]}}A}uiu]i}mQQy}Eiuiu}IYMiuAyeIyyayEqAYAmiyMY]MmuqiMEa}U]eaiYqM]AiI]iq}UI}EqAqIQQiQama}]yamaAAiY]iyyyaYiquiaiyy}qIMMMMAAAqaaaQmIYyEmQemaEmYqIYMUUuMiEY}UIi]ui}MiQeqMuuMUeeuEAAIaEyMaQ]II]yUUyeiIiumaYqm}yeaMAq]ie}aMqE}e}y}UiMYmuiIQM]]UquIIueMYQmQmMA}}eyIIuQIaAiMMmiI]Q}]uiu}yqIMMMMAAAqaaaQmIIyEmQA}AemQYyuiUmiiUuiy]M}Ia]AyaUiEYIqyiq}i}]UY}AqEEQeyyaqYyUqImqimaQU}iiaAqqAyuqma]Qymm}yYQqM]]]imqUMYiq}iYiM}eqymQaUMYIaq]yMm}yyQYU}}YY}m}ayy}uIMMMMAAAqaaaQmIIyU}aq]AA}iIEymIQqQAUYiaiqUamqIuAe}Myi]yqa]qIQmAque}YYi]A}umqiII}}]Aae]YqqYeqUiUEmYyqqMMum]Amm}}umUA}Q}EymyYUAMqI}]UEi}]IaUaaUYMEq}AmIiumymMayyyqIMMMMAAAqaaaQmIIyE}AA]Qe}eAAUyIEiYUMQ]}iim]IEMiEqyiAQYAUiIAIMIEEyAE}uiMe}iq]IiyIqaqEi]yqyUyQQyQmqAMuaIYUeuauim}EqueEM}YEa]}a]yeYyAMUqYiauYiAMIqQuaIqI}yeiMQay}yyIMMMMAAAqaaaQmIIyUmaa}aiuUYyuiAieAMEeME]muuaA}qUyAMyEYUEmU]qYmy}yUUuiIyamUQeiMiumMqeI}eMeiaqQmu}aYMIEIaYaeqUA]UUeqYq}}eqeM}iq}}AiQEeQ]A]ueqMYyqiq]eYyMU]eamay}yuIMMMMAAAqaaaQmIIyE}qa]QiuI]m]IeMyIeuyMeIi}AIUY}maIEU]Me]a]M}QYYeueMa}YYAmmQuYYYIqa}]QMQiiYiAY]Qauq}QUIqeqYQYUYeUiQAaiIiM}qYii]YQyEAQeYaqiU]AImM}mIeyiiqQyaQiy}uyIMMMMAAAqaaaQmIIyEmQA]AMeMQqyMIQy}EUA]uIuIAEQ]MQiqM]yYmye]Uqa]qUqQiuQYYAa]AMiyiueIy}E]aMiqAQqMAaqy}UUMMm}uAUEy}myuEEU]}aaa]AqMqyiqMYYMYeeUAQYYauaimAum}UaAUayyuqIMMMMAAAqaaaQmIIyE}qAMqu}a]mu}QMuemAYyaYiImaQYiaqQiiUiuu}AEmu]umea}eMYYImYEyQiUuq}}QAMA}eiQAUMYqay}U}mAqyEIE]iuEyy}ImiAyaiYa]iiIiAEMqMaAiEyQImqEaU]IiYIui}Eiy}uyIMMMMAAAqaaaQmIIyE}QA]eEuMqqmIQU}Q]Eyma]miaMy]AeaEAyEia}iie]]yMyuAquuyiAmiUqAYiAiiu}iyum}AQAa}YIaaiI}yumiQiUa]mmmUeAeiEMaIqIayUAia]eI}iQeyiIqYm}eYe]I}qYqUyay}u}IMMMMAAAqaaaQmIIyUMQaMquyieAMyUEyYUqei}YeMuqamIey}}i]}uQiMYMe}}UqIEqQY]uiMqyaiU}yaameIuqqmUEYIe]eiiQmYYUiEAEQ]IEaiyQAmIQ}U}YE}UIu]uqQMaa}U]AaYQQ}MYmI}m}yMUiy}}uIMMMMAAAqaaaQmIIyUMaA]eaiAEyYIUu}IUq}YUYi]}yAy]mqQ}MMi]mmUEyMMeeqEU]]iieqUYiii}AeQamQYIqmAAe}]M}ya}AUiQy}uQAyMayeUIuEy}QymYEamaieM}uaYUeqUAQUIiMqamEIYIyq]}ay}u}IMMMMAAAqaaaQmIIyU]Qa]UI}AuUY]EuyUUUmmQYiiauuyYy}UA}UYAuayY}AmEU}IqaQYYeqi]UA}mM}aa}]MqAy}i]QMeiqam}MmQaiuYam]EMyamYAYeYmMQMIiyIyQUyIiyyqQquy}yyyuIYuy}AqIui}yyyIMMMMAAAqaaaQmIIyU]Qa]e]yIEyAMYiq]YiQI]Yii]euIMUqE}YQIy}eiYA]]Um}MaM]YeUmI}Y}Y}QeAAmIMuuuY]ayIiyai}IIiYiueqa}yEUiyeiaMQaq}}EIiQYi]]}i]eEeIqQmYqYaUaeQiyEqMIa}yqyIMMMMAAAqaaaQmIIyUMaA]UEuAeu]MUeuYUa]M}YyAEmeimEaUQqu}mIeyyqaMAQ}AQe]IEi}mQuuyqIme]uQmiIaIIIy]MQmi}AI]yIm]}Ii}qMyeqUi}uUmyUME}QI}AieAIMeuEuqIMqeiQqAIymq}mYiy}qyIMMMMAAAqaaaQmIIyU]Qa]eUeAUYaMYemM]QIYy]y]Q}EMaaimiIqiqUaiEMqM}a}UQ}EyY]aIM}y}Uem}mM]]aauIaqqMAeyayM]Iy]aqamYmuMqi}aYYAIuUYIQIUiiEYUQiqequyE}yeueiyAei}AyUaiy}u}IMMMMAAAqaaaQmIIyU]Qa]U]aaUuuiUUuiEqmyuYyMaEumqaaYUyM]]IuAIMUYaQuEQUiyIYiEaiEiequ]EQmm]}yiMaqIaEmayAa]imaMyMUIuaauI]}IqeyIUMUmQyyIEa}}iUeYiyqIY]uYA]YYuMquUiy}uyIMMMMAAAqaaaQmIIyUmaa]uAaMUQqMYYaUM}a}]]mumuumQyaM}]mm]E}yA}iYY]}IUAIiiUmUQMQ}mA}MeeA}myiaQaq]YY}a}EU]YmqaEuamYUmmMMEy}]aYIye]UYyAE}AiQA}iyqyyqeiqIiE}YIemYayy}}IMMMMAAAqaaaQmIIyU]Qa]UyqaQmmmUEy}EQeI}Yi}q}u}EQeuqMYYM]mQ}iuYMuuEAM}IIummUuIYIYqaaU}mIMeQAauYUaui}AAYIi}iEa]}Eqy}aIMy}yyquAqyYIyYAeAMqUeAaaEIe]quAMIIE}a]aayy}yIMMMMAAAqaaaQmIIyUmaa]eQiAeMAIE}uaM}a}]Yiyquu}qqymuu]]UUyme}uMY}qQ}IqIiUaMqyAIIAuQQ]A}aU}EUeMy}Iqamq}iy}aA}MQiQUaImMMIM}iIyQ]yEq}Q}EqyQQ}iEqIiMEq]imm}muq}Eay}}}IMMMMAAAqaaaQmIIyUMaA]eyaaUeimYE}}MAu}yYmequE]AQiyiaAmeeuIMiyIEMyIqiayiya]QqImQauQAYq}Qay]aQQMEM}iiY}]IImMAYAMiMimeIyYmQiYyI]}qIyA}EAyaUq}]AiyIIiMeYaYQEm}Aiyy}}IMMMMAAAqaaaQmIIyUMAA]eQiaEmAmIaqaMqiyU]miMMumAYiYimmYm}}QQmuM]UeuyEeyI}uIyMMyY]}mYyaIAI}EAaQ]eEiamEu}yymeEMaYEQeiAEYy]ayEI}qYaiumaam}yUyie]AmeayqQ}]IYUeyaayy}yIMMMMAAAqaaaQmIIyE}AA]eueiAmMmUIq}IE}iqYmEE}EIIuyUQe}yQ}y]QEIMyiaeyIUIiEy]qQEiyAmmu]]MeieIQquYaQyi]aayiIyMEAEYe]yAuQA}}uiEYMYmayyYi]amqaiUMIa]aaaQU}A]YIqM]i}yuyIMMMMAAAqaaaQmIIyE}AA}AiaA]meIEi}eM}am}IymyIuMEIqIAaim]uyiMUEm]]eq]]yIyMumAyQIYyaEQqM]Uyqq}uyY]yei]QMiiu}]qiY]QA}a]]E}QEeI}]A}uIiQM}]YeEqiAAImAQq]mqyyIqm]ua}}quIMMMMAAAqaaaQmIIyEmQa]uqiqimYiUEm]IYam]IyMYmuyQIayeiMY]YeMaA]]aym}uueiYyaqImaYy}i}aQeyUMmiuquYYqyiYYIiiU}QEumMEYqmmA}iIyqayI]}ai}quIiYEuqaYeAiMuuIaYui]Iyymiy}yqIMMMMAAAqaaaQmIYyEmqemaIaaUMUmEi}AMuay]yy]Q}qiMeqIIym}m}}mUEqYA}uYiQiiiIeiIeQImIaqaeeMayeMUYi]}]mAyMYMIEmAqee]eEmmYM]YuqimAuEmMYi}IQm]IamqQYU}umeuIuA]Iqam}ay}}yIMMMMAAAqaaaQmIIyEmQAmqmuiYauMQYuAU]MmEIyMuIuIQmaAmeiMQE}Ae}mMmumyuEyImQquAUQyuA}iU}]YqUeIQquYMimIImuIayqYYUuYQmyaUqq}Iuqa]auYAymaIQEMAAuqAmqIi}e}MIuyAmyQyiu}}qIMMMMAAAqaaaQmIIyEmQameqqYe]qMQYamYUMii]myQMMYyEiueQM}EUqAqyey}IeEeuUyEMeYYyQyiUuaayaMI]uiAuimyI}Q}QaMAmuaYEQyaAy}UUymuq}mayQ}YAiUYAYi}EayQAyyEM}AiYyYaea]qiyy}uIMMMMAAAqaaaQmIIyEmQqM}MqIE}m}EUmMeeYm}yy]uEYYYe}A}uuiMEu]uuiYqqayMqMyYiaa]UyyiQyaay}Mam}iQQe]qaeIIi]mMIyEAuemMQueMuEYaymMAmiYiau]]QU}}a}yiAQYui}qimqMamim]ay}qyIMMMMAAAqaaaQmIIyE}QqMEqyeaQUIYeuIQu}iaMmYQEEYAyaE]uMiYEqqqam]ImemaIeIyaaEqUIIYe}QAUEIE]aqqqeiQEmIMqUiMqmqIEe]EUmUYEmyeyeUieEyaQuYQYyIAAyeeQiYEEuIYAmImmyUqiyyyqIMMMMAAAqaaaQmIIyUMaQMQ}uAMYmyUyaAmm]]UyyieaUMuqaqMA]IqmamEaY]}yimIe}IUIeuqYImqiaIU}qIEeuiaQEmmYiI]UmiIeauyAYImmeum]]iEMqIieiMiQiQ}}A]qamYqQiYAiqymUIiaimiUiu}}uIMMMMAAAqaaaQmIIyUMQq}E]qA}}Mi]e}A]iqMQM}yEyyyeuaeIIY}m}yMqMe}QquUE]qIIqyQYEiIqiaqauu]mImiAqe}eEeAmQy]IyuIiA}miUmAquiimYqYi}I]uqiQQyQIUqyi}aYIqQaaEiiYmumM]iyyuqIMMMMAAAqaaaQmIIyEmQQmeaiAE}u}UMaUequII]}ImE]ye]iA]uy}U]iIqaImaYqEuUAIieymYEAyeiqAAAEME}}YqqQIiEiqiymI}emMyyM}euyuyQAY]U}IUIE}aYiQ]MY}qeaiyUQiiE}qMqYMmyyYaiyyyyIMMMMAAAqaaaQmIIyE}QAmUuuimMEIYqiaUeMY}yi}mmAyimqqA}Q}IUaIqiMYQyqEMQQiUmmeAmamEQiaaiIIuUqyAyyMmQuiIIEmQM}eyuAmUYuIEU}IEmaMyIQimQyy}uayQAiYYuamMUeYau]YQU}aMayyu}IMMMMAAAqaaaQmIIyE]qQMEQiQ}]eMQyaaMeymEyyyi}}maiaaMyqyeMeEEMIyyu}]YUQyUMaaEI}YEIaaAMmYUauiaMAyqmiy}qQIiquYyaMMUMui]eMieYmEIuiy}QyaMe}IUaiIyiAIUIaei}eiUUqYEayyyuIMMMMAAAqaaaQmIIyEmQamaAeAemM}q}aU]AIMqIyyi}UiIAyQm}qMyYiqUeaYQm}IyAmiuimiuMuiYYqqaee]YEqmAUi}AmeamQymIqyaaUUyUEeUMUq]iMemIyIMQiyYMeemeEiuEQiyYiyUYmaYaq}aaiu}}}IMMMMAAAqaaaQmIIyEMQq]uaeIU]uMiAuuuEyMQYmYYMUimEqEiqMyAqme}EamMMiuAuiyiiiEMQeIeIqqaiAyqeqUeAamy]yi]q}ImYyeaEEm}]}Qi}]}uMieIaq}qYiUYYmiqqiYiY]yuMmiiqEIEmaYUayyqyIMMMMAAAqaaaQmIIyE]qaMqAuq]]iYIquYEA}IUYiMeUUyI]aimUIIAIiEMMe]MmeqAq}IE}amuyQMaIqqAuEmIEyQAaeiaAeamUYiiIayiUmyyqyU]]uIauiYmqaYAiiqyIIIIaie}QQYeYiUAAYiIiummayyuuIMMMMAAAqaaaQmIIyEMqAma}eA]iyMQyeUMemYUYi]M}a]]miIEeiMAYyaiU]yumamaaQIIyeeme]YUYaIEQYYaQmYEQEi}AaaiIu}YyiUIIAmiyu}MImIAiuIeay]}IiUyIE}qUiEyQyIEUeMiqimia}iAay}u}IMMMMAAAqaaaQmIIyE]QaMqUuAU}IIUyeaMEyMu]mIq}A}IyieMuQimUyqYMa}mEieq]}IUyiuAYQmuYqqQqmIYYaMUqAyYeqamE}yYiyMqEE]Y}yEAeMIqIuaaiy]uAemAmq]UuqUIUU]yeeQaqIYeuaEmay}}yIMMMMAAAqaaaQmIIyE]AaMUuuQuieyAU}eIYAyqYiMAqEIMqaE}IimMe}]uUeYmQiiaEEyyAyam]EIMyaqAym}IUaAMYeiiqmi]qq}YI}QIeyyY}uA}EAYIauQAaUmiye}eyymUuqUmUYiuy}}QEQYEeqMIiyyyuIMMMMAAAqaaaQmIIyE]QaMquaiMmayEyu]MUi}UM}y]}amMUqEIuUyiuyMQ]}MUYau]}qIIQy}Y}IMqiqaayiMYIqyqAaiYAei]q]}YiqQaYEIuiyMEMaiMIaemmU}}AiQeaMMYQyyyIAyyIuEuyaymummAiu}}uIMMMMAAAqaaaQmIIyE]Aa}AiiAyqAYIQqEEQiiQYi]quQ]yyyI]u}]YMyQQUu}AqyI}YMYyu}y]Mq}QyqaQimIiy}MiyM}]iqa]u}IYE}AAiuM}uqUuqUieuamAeQyyAuMmMeIeYaEy]iIuiqEmyYmMmuiYiyyyyIMMMMAAAqaaaQmIIyE]QaMqQuieI}iUyqE]EA}u]mIIUQ]mAqYAE}yuIu]UQEiqMaaumyYU]m]qaI}IIqAAeMIQQumQQQIMUaiiIM}iUe}quA}Aaqeqe]mIeyIIqIIAyiEYEUyiUmia}yiqEeyEIIiIYyeQay}qqIMMMMAAAqaaaQmIIyE]Aa]QUmAu]M]Ae}MMa}iqYiMUua]umyYqqmMYuem}Ym]]uqAIaYiE}uUAMi}aMmqaMIi]Qm}YQei}eaiiMu}YeyI}QMm}aaeyemmAuyeyIM}YAiyae]iMuqIiIQMIQaYIEMiaeeQQiyyuqIMMMMAAAqaaaQmIIyu]aq]qqmqIiyiYauaUemI]YiYIueIEEeqqMMma}qIaAEIEUaqueYYYuquAMY}qYaQQe}}iiiUQaayy}}aiiU]iyqAYMimQ]y}UIaMUMeu}QMYAqeMyq]YQuiUmaQIUQueeQiyEuq]UiyyqyIMMMMAAAqaaaQmIIyEmQA]AUii}Yy}iaqIeMQ]}]miuMUYY}aIaIeIEMeyUaAIUEai}]QIIqeqieaYMyaQqaUmAyqYqQE}iMma}UI]IUiyI]Mi]uyeEM]YaEuQqAe]IiyE}Ma}QQmUuYaMqIa}YYiIUAaIuau}}uIMMMMAAAqaaaQmIIyE}AQ]qyyAqmy]UyyA]yQI]Yi}m}eIQiyEqeem}UaE}a}iQEmiYmuYE]mUuUuM}qyma}]iIYqImQa}iYeiyMm]IymuYiq}eQiIyMym]iimYAImQAieqiM}ieqYiEUIAme}QauIuUaEAiy}uyIMMMMAAAqaaaQmIIyEmqA]EUuauYuye]iyeEYI}YyIE}EYMIaeUq]yE]qqqUeMU}mY}aqIUYiUQaeIuiqaQmimEiqAaAqIYImi}IQYYMaEaQ}mMIamyQaiqAaAIuA]]IummEUIuiuEYqQyq}eMuiIYMqyqMayyqyIMMMMAAAqaaaQmIYyE}AU]qu}UE]}]eIymmAUy}YyYYeu}aIemUyy}YQy}Uiey}}yEiEyIU]uuaaYYmIqiM}YYaa}i]QA}meqamu]]yi}ieqiM}YayIIE}}IaqaqAYyIyUaEUIMUuiAm]iAyu]qQiMUMiuAiyyqqIMMMMAAAqaaaQmIIyEmQQ]uqyQEEeYeMyeUqy}}]}IAmuYmm}QaIY}IQuMayIyUQeymIqIEm}maQuiymmaAUymUuqaMeM}myqiimqyiMeQQmumQeqEE]E}aa}eYAaimYy}AuQMeA}II}My]qeq}iIYIyaaaiyyuyIMMMMAAAqaaaQmIIyEmQQ]qiaAuae]aIam]}mMUYa}mUEYMIeQIIaMyMi]}eI]YAi}QMQiEyuMayAmqYqQqqymueiAQQuMmAqame}iyi}]maIy}qu}euEMaEyeEmq}ayuM]Ma}yEqaAqiIQue]yEEYi}aiqiy}y}IMMMMAAAqaaaQmIIyE]qQ]q}qQUQ}IeMqeUuQiY]}YqEEII}eqEeayyymAaaMIaaeemQuiyei]QMiymimaAIiMAaeYuqm]AemAiuUMYYmIEua]YUeaEu}Muu}QIyimiyiyauUIiQmquMaiyU}MQqmMeY}iuayyqqIMMMMAAAqaaaQmIIyEMQaMaieYeeM]eIiq}EIY]IyMqmui]MuEEa]]eMquUUAMIQi]qyYyYAa]QAMyqYaiMUqmmEmmmaa]i}uIimaIAAeyAUmIyYi}qU]YaA}aeaM]UyiuEAeMEqaIyaI]MiyEIAQ]mei}Aayy}}IMMMMAAAqaaaQmIIye]Qa}qMaEaQyMaiqe]iQY]yyImeMmY}iA}MQYemamYEMyIEaqY}]IEymiYUyiUemAAqAimiqyqqamMAaqm}YMaUieiyAMami}aUy]AM}QeeYIeaeU}qU]qaiYQuyYUaaaaUAYUuyeQayyu}IMMMMAAAqaaaQmIIyE]qAMamyaU}AyQE}}muYmeIimaa]MAaiU}QAYQqmEyYm]}MeuMMEiiEi}aAm}yyaQqmamqiaIqymmqIuAi}QIE]aMqQiMMQuiY}E}}Q}Mi}Eiiau}quQIQqiumAqmMeuIaQYyYeu}Qiyy}}IMMMMAAAqaaaQmIIyUmaa]qMyIEu}]uyaA]}q}myyYU]YyQeqQYaAmMaiMIUEYmqyUeqqya]uq]eEyiYqyyyeyiEeauaqMuUa]AEimIemMaeAyQYiEiaEi]M}qIu}}QQuEiE}YQqyIyuqyqyuEmia}}AuQmayyquIMMMMAAAqaaaQmIIyE}aA]EAuaUeQ}UEaYUuAyuyymaIQ}y}qqUUYyu]qaqyIiyYyiiu]IIAeUyeMMemmqaia]MaiYMUUIaYia}YaMYAqeumIiUYq]yQaimyimaq}]AiyyUmqMyuiuIiYyMAieqaiIU]yAUayyq}IMMMMAAAqaaaQmIIyUMQa]eyiIuuiMUmme]qUYiYyU}YyyuUqyQ}AiiMuiaummMayU}AMYIEiUaMQmMumAqEE]aIemAaA}iymamqeMiQ}eAMEyQieEAEYImUiMqMI]AA}QeYmIYq}IEQIMaqmqeAIYQAyQqau}}qIMMMMAAAqaaaQmIIyUMQa]UqqiEE]iQmaiUAi}}Iyauuu}EeqUYUMIeAq]miy]}Y}aEyyiyuaIUmi}Ye}aaIAYAmqAAae}}IiamQuYIUyQu]MYYAmquUi}YemqQmYmAymQ}iUmEQeyy}UYaEuy]iQmIyqqUau}}qIMMMMAAAqaaaQmIIyUMAA]uauIUY}IUiammAEMyYi]emEiMIyYmqYmaiaYQMaYiI}IueMyIqeaQAAYmYaqqy}mQIy}iM]IyAiy}}yyIemAmYYYUiyEAEYYeAqIYAiYYquMimiiAa}EQUu}mE}Q}QMYyUiEiay}q}IMMMMAAAqaaaQmIIyE}aa]uaqYumQmUmei]QmmuIqQiMMyMQ}Eq}UYq}eAUIQ}Eq}MmMUyIyuEAYAium}QqEYYEeeYU]QYIYqamI]YYIaqYaiYy]yeUe]IqaaQiy]iAyiQ]maI}EqiAEE}YuqMMuUmye}QEay}qyIMMMMAAAqaaaQmIIyE}Qa]qmyiEm}}UMiaYyaMuYeMA}mmmMi]UYu}AAmuIEUIUQqAUieYIiqE]ue}MYqUqQemAMaMMEUMiQuaiMU}YIqYaeam]EyqMEA]UIaaQImm]IiuAeayiumUyMMYaueY]A}yyYyYqay}qyIMMMMAAAqaaaQmIIyEmqamEaaYemY}YAaeYuy}uYiM]}UIAauyAQ}MYqiIYeyyAquMIiUIIIy}qUmIuiaAaYM]MUy}quuYYYaimAYmYyqEueYYQU}myyUiAiye}]YYqAumM}aIqq}emMIYaEeAMIYIiuyaqiy}u}IMMMMAAAqaaaQmIIyEmqAmAmaAiQu]]EeY]Aiy]Iq}y}UYaEa}YIyIeeaAM]YiaEqYQEEyiiumAuUImuiIIiUIuyqI}Qe}aUqy}yYmIyqeMEAiAeyI]euYMMuQYQm}yiu}EeAYeUyEaYAmQMaYA]mYm}yquiy}u}IMMMMAAAqaaaQmIIyEmQa]qeyYu]i}UMqeiIQyqYi]YuEYQaiiiqeIE}ee}Yu]q}ay}iiiYq}}qiQ]aQeiUyMyEImqQI}Iu}qay]MiiyaaYieiu}iAAeaYE}a]yImM]iu]IeaiEuyQM}aIa]aMaiAYiuqAeiyy}}IMMMMAAAqaaaQmIIyEmqaMaiiiummmU}}MUUY]Uyy}iUuyAYaIAYEiu}qAa]]}IEqm]auIYMauQamii}iIiiEiEmyYe]eiM]ayyiAIIYqiIE]}iU}qeuQYEequIuQ]YIyiIYM}}EqieaimUqeAaE}yu]i]mau}}uIMMMMAAAqaaaQmIIyEmqa]AIuIy]y]UEyiUqimmYyiQEMMM]iAI]Eyue}}UeMMMmeyy}}Iiyqu}uiYEea]aAAiEmeiQQUiiq}AiYYiMMmIMUemQqyIuuqIYayie]qMAIiyMeEIeUuya}yiqeme]iyyiiaEUiyyuuIMMMMAAAqaaaQmIIyEmQa]A]qam}qyUIqamAYiIM}iQm]yumiEMmQMMQ}]AAIYaMuI]IEyiiiMQUqiEeammuQiyiyqaaQ}EmyiiUUyqm}eYYUmQiyUiu]IMMmYi}MmmqymmaEMmQuyIiMyEYiAQAqIaqaiYiy}yyIMMMMAAAqaaaQmIIyEmqa]EAeA}u]YYEqUUey]UIyYuuQMq}aUAuUyyqi}UyyMIy}MmYeyu]u}iEA]uqiAaiI]QUyQqUQM}maaY}mIq}uYaQIiu]amEIM]Ya}eUMaYuAu}AqYMemmIIm]Iemmu}amIMqymuiy}}yIMMMMAAAqaaaQmIIyEmQa]QIyAeya]IqqY]u}IQIyMuQuyy}iEUMqyeemi]Ae}EeuU]Y]Yyu}uQYAMQquMIIYIQQaiQquIeQyiYi}y}m}yeIEYiQe]mIim}AmIyMqiAyyau}q}Uua}amiImqmAU]IiAyqmUayyuyIMMMMAAAqaaaQmIIyEmqaMqYqyuAuIUmamMEyI}Iu]}u]yIEaEyeqYUuyiyMUMiAq]IUyIi}iyIiiIEIa}uyA}mmyIQAUIqeiaYIqM}]mQI]Yiq}qEeYM}YeyI}Myi}ayuUYu}IyqiMaEyMimImMyIYiaMQiy}uuIMMMMAAAqaaaQmIIyE]qA]QYiAUEUIa}uMEUAIuIymmEAmIyqyIE}mQI}UYAY]qeamUQUIYAuam]E]aIqQA}UyYI}Uuaq]myya]ea]iuyyu}y]]aeimq}MyAemUA}MYyyAiyM}iiuIa}AmEAaIYeUYYQaaaiyyyuIMMMMAAAqaaaQmIYyEmQe]AE}AuQIMai}MEMeYqIy]u]AMYEamUaii]EeY]MUmeUe}eQqIiIamQM}yQia]YqeMIAuqaQEyIymiYYiyiuyy]u}]Y}ueUiaIUEay]UuYMayeaqM]yyaEuAyIYI}EaYIIiuqM}au}yyIMMMMAAAqaaaQmIIyEmQA}AemaUeYmAi}UEQEy]IyMq}QMYI}qaeu}emaIMAUiUmyIUuaieYu]aUMIUYaQqeQmQU}IAqEy}uaiMii]iuemUUIMAeuMeAEymIii}Me}YAi]ui}miIuyiaIMeImUyAYiy]uuQau}yyIMMMMAAAqaaaQmIIyEmQamqeuYuQAmEy}uEMU]QIi]UUaMeiuaAQ}myYeeeye}Yi}IaYAyEyaY]]MYeA}MUYi]aQ}EU}e}iaueAEYYYueAqyYmamaaumQYaaqauYI}EquMiq]YAeqiuqQiQ}}Qyy]yY]aE]ay}qyIMMMMAAAqaaaQmIIyEmqAmQE}Qi]yMQYiUAiumMyymu]Qy}eeUiU]miQuYQE]]uM}AYU]I}YyqMQI}iqmQeYAy]UaiAI}YYEuYyeEyIaq]Umym}Q}QYyUymQeEQQMmEq}EqIMM}eyEEaYyqmiMEayyQAqIQiyy}yIMMMMAAAqaaaQmIIyEmQAmaEmQiYqIUYuME}eYAy}UUeaiIAqIuAAmemeEIiMyEQyAyaqIIU}Au}U]EeyA}eY}}}qiqe}YMmuY}My}emyYEaa]QA}aa]y]YIuQqEMm]AiYmuAMaEm}MQEMAqmyQEAMqYa]Uiy}uyIMMMMAAAqaaaQmIIyEmQAmQimQqmEIQiamAUE]my}EuY]]miuAeq}]QUaaeYI]QmuEaMqI]iuUeiI}]uaqY]eMmAmImyUIUyuQ}aIIUmiQaYei]amUyEiMMMaEQUqyAy}AEY}mEIiUyiyMmuemMMEmUA}Qei}y}qIMMMMAAAqaaaQmIIyE]qamAUuYiYAmUiy]qIuYiy}uMa]]uQ}y]UM]mQquUe]muieu]UEimAmeAAYMYmuquUm}q]}yUieyqEqQyYmmUmmmIYyyUy}IAaImY}aEiui]ya}IAiUMaUyYAQEMUieeiIuyAmqiaay}}}IMMMMAAAqaaaQmIIyu]aq}ai}qyyqYeIu}aEY}A]aqyyM}iaqE}YQmyUmIQ}}yuY}EuMQyI]e}ieM]EieAQUEYaequAmuMyUuImAqMU}yaq}U}qiqqiAqy]QmyUE]iqi}EUy}]eq}EAmyiaea]quMyYQiyyiyyy}IMMMMAAAqaaaQmIIye}AQMQe}AIuUyeEiy]AeymMmiUi}]UaqUuMa}]Ua]qmAM}q}]]yQIIeiuyuyM]EeaQUEmUiiyie}IqUeyyY}ye}eeyUeyq}eQiEaMeuaQUYiMmY}QQqMMMayQueI]uQ}ey}uMU]aEeiyyuyIMMMMAAAqaaaQmIIyEmqQMa]meqaUY]umq]u]yaEeu]A]mUiqIaYayMm}uUMA]ImuQY}eYMemQu]YMaaumAeIIIU}QQY}MaUqIyieiQEqYqQiiuqqMiMqYiQau]A}iYIiYQUqYqAeqiYMIeieuQMEYy]}Aii}yu}IMMMMAAAqaaaQmIIyU]QQMEqeeQeIMQa}U]EmiAEmQMI]mEMaEmqYiEYuMIaemYMyMUimyye}I}IQMaUmU}eaYYMeEAmA}yyaY]uemMamAIq}mmaaiyuayE}e]YAQ]YAyeEQUyQA}yyaa}ayeeyuMyyU}Ueay}}yIMMMMAAAqaaaQmIIyE]AAm]}yaEMEm]aqEEIAImIqQQqum]uaUqmuiQEiM}EaMqi}aU]uiIEuMqQYyiyaYuMumyimqqauIquaaMQ}MMmaQqe}YaieMEqmyai}mE}]YUQieAYEMYQmMUM]yIAaeQYEyE}eeMiyyyyIMMMMAAAqaaaQmIIyE}QA]AqyQieIIUmaEEammuEmA]A]mAyyeUEIy]AuMAEmIUQyMUAuiyemyYMQ}mA}q}IEiAQye]qi}iuuaMaYIuIyu}]IMmAmieMamIImiE}m}uA}qmUumyEuImiYiAQqeIQq}i}yUEiy}yuIMMMMAAAqaaaQmIIyEMqAmm}aIUq]MQYuUMMmIUIimyiUiymyYIIA}a]uMquiMimmi}IYYYymA]um]EyaiiMMIaeq]EME}uy}iYYqyA]aEaEqMI}qqAyqiqaaAQEIY}ImuyQmyYUa]}]yMMQuUq}UyIqq]Qay}}}IMMMMAAAqaaaQmIIyE}aqMAqyaIie]UMuiQYq}eYi]YaEIIayiqayMYyu]quimMAqaImqiUY}qmeUYyAiyYq]IaqayQqqi]uqAmYQiaMuUQEMIUMyQmemMu]iu}M}}YAiqAQy]EYa}uimmqi}YIeAMQIiYyayyuyIMMMMAAAqaaaQmIIyE}QAmqamaEqQmUieaUEaIyYimQqEY}Ea]qaU}uYeQ]QMIIiqY]yuYMaymI}IMaMiaQiEMiqe}eEQ]IIeiiyM}A]aqqYEMEi}]]uY]uAa}qMqYUIyIYiYMeU}mI]uyIaeyiq}}uMuiua}yquIMMMMAAAqaaaQmIIyE}aQMAuyiYAIYEu}e]qI]qYyMiiuM]meAeEymEEqQI]YMa}}YUqQIIU}AyYAy]yqQQyuiyQaMMiyMeiqa}EQ}AymAQuMIyUeeYU}MQqmmyIuYIyyaiEuyYEqMqQiIYiemm}U]}QmuIiy}qqIMMMMAAAqaaaQmIIyEmaAmUA}Ie}}mUYyMeA]}}YyMUumiMUmqYIqIYei}]IEIYAuAe]QIi}uMqYA}]iaaAeuyYEy]amuYUiei}U]iqAiMiuUmiaqEuYAMM}meUMEIeqyiamqIUEuiiQMiyYqU}IuIY]mQIiy}u}IMMMMAAAqaaaQmIIyEmqamQAeIei]yIyqUUqMiUYqaUIeymIyYayQ]EaiiIeI}IMqE}QmyiIumYMyMaeqq}mAmeEmYaYuMuuia}Em}YIyAAEU}IIqAYa}MMIeQYUAMuYyEaMmiyUa]EieYqaiiUuy}QAiYaa}yuqIMMMMAAAqaaaQmIIyEmQamUeaa]}uMQy}A]qiIqYyeqMm}eEqEqaaMMmaEAMMIye}MqIayyeyuEe]IqEmqQqI}QMiyAMuMu]qa}Q]MqMaeqEaiYaaUMuImIYmUuYIiUiiuIqii]aeYuU}yuQeqE]AmAyq]iay}}uIMMMMAAAqaaaQmIIyE]qqmQuqIUMa}e]eaaE]]Uia]Em]MEEqamQYimAym]ei]YQyEemAI]AiQymI]iEume]Qy]emaQmYMEaaiI}iiQMi]YEyY}iiYQ}}yyQqu]EMIMYiAaqEIQaqy]mYYAQe]eAAiyI}qAi}yuyIMMMMAAAqaaaQmIIyUmQAmQIiQU]]}qymAmAYYQiiMUuayYIqEuEImIIyUAqu}muuEQu]iYQyuU}myAiqE]AMiY]}M}iYIaemqIM}ia}eMaYQYeEyiE}a]MemQuEq]aay]eaEM}Q}}qqI}uYyAeQqmuQqmqiyyyyIMMMMAAAqaaaQmIIyE]AAmaEmIYqqmQumm]UUMUMymi}ayu]qiyyQIQaiYAmEmm}qMUemyiiuEQi]IqeeyuY}muyqYAyUYQqeaiiqMIayEQUYMmIaeMQ}MYAy}Mq]YQiyu}}qieamYIQYyqiiqeEuI}aiuiay}}}IMMMMAAAqaaaQmIIyE}aAm]imYYUqyqyaAmQe]YYi}}]ymiayieeYmqMymu]eMyi}EemYiIqaaYiyiEIqaQAyIauiEuU]YEEyi}Ua]AuieIQEiaeyEU}Y]}]eiMqqmeyyuYy]iyeamE]eiEEiA]EayYQaIuay}}}IMMMMAAAqaaaQmIYyE]AemQIqQyau]Ay}U]UmiqYq]eEemUaauMyYye}iIYAe]qqy]I}uiYIqQ]Yi]E]yaqQmi]umA}uYII]ya}aUMi]aMaAeMAaeyE]emaEiUi}myYIyq]MA]Mi}QUYeiEauaaQMMYM}uaay}uqIMMMMAAAqaaaQmIIyEmQqmaemuQqEye]iEQuy]MYaAMmEmey}}U}AieQyyUYQiUMuQYUaiiiaQm}A]aAiEaA}]UaqmMUAiAAqqy]]iI]ueiYa]}a}qM}UIyEq]MYm]QiyEIEA}QuyQ]}iIIuuiq]I]m}aaaay}uyIMMMMAAAqaaaQmIIyEmQamAyuyIEqYQIaaME]iAii]uA]mqqiaYYUmUqqEU]eYyaieuqAyUMmUIIY]eYaAAImmYQa]AEImquqA}IeI]mqmAEqiayi]aEUmiUiUIQ}mQqeMayu}UUyAAAI}m]eImuQiAiy]iayy}}IMMMMAAAqaaaQmIIyE]qqMAYmA]Y]yaUmM]aU}mIiyUQQIaaaUuia]iayAq}uMIAaaeemyummMQqY}}UmYu}MimUyyqAAmAymi}aMmAau]YQUmuqqQMiUiAM}eemiYYAyUMayi]UaYyEEIa]qiEqa]MaeYiayy}uIMMMMAAAqaaaQmIIyE}qamQMeeAaIMQuqMMYeIqU}iEiummQyeU]a]qeamAuUMMEmeY]MiiImiYYi]Auya}}aIaQuYAqIiEAqqMQQMAaiEaUmiY}ymuUIYqYaAamIiuAiEMQa}AQiEiYqM}yeEMu}YmiiQuiyy}uIMMMMAAAqaaaQmIIyU]QqMeYqq]}MyyueUeuY]EYqMIaaMeQaA]uQMi}}imQQ]aYaaAEIyyEmUAUmiIyaQamUIqaiEa]aYqiqAmAYMYMqMAqYMiauyEImIiMeUEmIYEiiaMmq}iaeiMiAIEIyyQIi]mimYQayyq}IMMMMAAAqaaaQmIIyU}qA}}YqieMqYaYee}e}mq}}iA}}mmYaEEeY]YMiQIY}MQq}M}auyIqyqE}Q]QUiIE}u]yiqiaqayAqaQi]eyqeiAAAyiiAiMqMMM]ImQuyumEQyaqyMiAAqAeMYYyIiYYa]Y}eeIyiy}qyIMMMMAAAqaaaQmIIyE}aqMUUaQmmyyAyu]mAUMMIi]MaAmiAaYma}mYUqQ]iAYUUmyUiiIemeeqYiYEYa]ymIYQuyqqQQIUImAi}}iAuaYQUEMiy}YIEYiQYaEeq}]]YiaAUaYIAaYYEqyIMmiY}e]UU}]]mq}u}IMMMMAAAqaaaQmIIyUMAAmuaeAiAqMU}ieUYe]y]imEIaMuiququu]Y}uuy}}}yAumaqayIYyuA}I]ya}QQYAMEyymUE]IiAmiiee}yUaeAEqYyUaquy}y]MaeUUMiQAyYUQEMqayimqiMaqq]Yeai]Aee}iyy}}IMMMMAAAqaaaQmIIyU]QamAIyAYqQYE}yUUaYIUiiAyeQ}QAyeU]aIIYmMEa}}aM}Em]mIii}AEUI]UAeAAqmMMq}AQQQYiIeai}e}yuq]aYE]AEam}YQ]YMyI]AuMYQ}qQuEyqUmeuYqIUeiIiyE]uYaYAayy}uIMMMMAAAqaaaQmIIyUmqamuaiQ}ey}yqaE]AyyYiaAqmuY]qq}YYQMEqym]IyMImyAQ]myIIyMAQuimyaqqYAIME}AIIQMqqqayiqYamu}aAAMqUqiieQmyIiMqEyyQAiiequ]AueuYuq}qUmImQUYQEieAay}u}IMMMMAAAqaaaQmIIyUmaa]uQqiEMYmUmiAMqiyYmmIyeuYMQmqAiAMY]}yYQI]eAyMy]aymqm]euAy}uaQQq]iMMmQqAqIQMqyMEQI}qaiIYuI]EqMEE}ya}eQyIiiMqya}MA]MuaEyauMU}miUaiIyAayAay}y}IMMMMAAAqaaaQmIIyE}aamuiiiAmEiYAquMAuiUY}uq}EMyaa]MMm]EA}UAUyimqauaU]Iie}MeEqmeiqyeIamyiiIAquMmY}yIIQIa]aAIIQ}QeaeUIQ}aue]}M]iQIiYaeeiYuaIyqyIMEqqEEAMQUiU]a}yqqIMMMMAAAqaaaQmIIyUmqa]uAyQ}eImAeiyAE]IqmmUEeyYaUqEIIYI]ie]}eaYamiyiAyIUYeaMYeyAIqaqAAMAeqeiIuMQEayIIyyMAau]uayqei}Yua]}muAQEMiQIyEUim]mUyaIQQIaEqUyMiMQMim}iyy}yIMMMMAAAqaaaQmIIyEmaamuiyiYAIieyyqMQUMqimiUUIIqAy}MqiyuIq]AuyIqQyMMAUYIay]aEEyUyqqquMMA]}EAaqIAEayMaimmqa}QIyM]ymMYUiiu}yEeuYiEqiueMQiyA}YAEe}EA}Yy]YiEqqaEiu}yuIMMMMAAAqaaaQmIIyEmqa]uquQ}y}iEYemMAeyymmiyEyYQ]aiMMyMEyi]qam]y]mu}AUYIYuMuEA]]Q}AqEQiYqq}yQQM}y}yIyqiqE}]IEey}qqAIIa}U]u}MuEMaayueIMIAA}iiQU]]UyAmiIIYAuQeayyqyIMMMMAAAqaaaQmIIyEmqAmaImYiUaIEyiiEAiiuiii}]iiYuqeqAU]UMqM}eUmIquIIQUYIQeeAiy}eQuAAEUMMuuAqIqIuuqyMq]y]ayuAIqyQyyeYE]}]uiem}UmAyiYeUyiieeyaQIyAIuE}I]]QQaMAiyy}yIMMMMAAAqaaaQmIIyE}QamUAa]QaeiUYiU]qyyQiimeuyi}aaiaeeiuqmIEAqy}yuMAqEye}iuAIQmMYaAQYEMimiEEU}]YEuqMumy]ayEA}ymiQmMMyuMmQqMiyQyiyu]a]q}YuqeA}]ieyiQyYYyqYaEUiy}q}IMMMMAAAqaaaQmIIyEmqamaImQyUqIUImQUQiYuiii]}YiIIqi}eAIEQaEIYM]Mye}yEUIYua]QyIMMQ}]]IuIUyyqqaUYEAmqIqmI}amqqiUiYY}EyUAIquiQUAeMMyyymMaIYuuEIiUm}UiYmIYyAyeaQiy}yyIMMMMAAAqaaaQmIIyEmQamA]uaiEqIUIeQ]A}m]iyMM}IIiIaIaae}yauyqMq}Q]u]uMmyYaqi}mqmQYaaA}UmQiaQiyEyqquyYMmi]QiMeAMYiUimAUu}ieyMuM]mMaeYIaM}iEqUQYIMY}}IAaUyqAayYay}}yIMMMMAAAqaaaQmIIyEmqAmaIeaYuqIUUeMYUi]IM}IYeIiyIyMeY]mYqeYYMM}aumeu}QiyEiAEaaMuIamAAeYIUeMEAA}qyqqmq}iMqemyEMmIQy]eEUMqYeIEmayQQiqEAUmaAyyYaQIEImyU}]IEU}i}ayy}}IMMMMAAAqaaaQmIIyUMAqMa}aQ]ymIiEiyeey]EYi}MMYiMiaUiA}]uuqyqqaYIqaUuqiyyAimEIA}aYqEQ]}MYQmi}ai]qa}qiyyIM}yYIA]IQQe}}MaI}EiQEiAYmqumMq}ymUaeIaUyAAeAeayyiYy}]iy}u}IMMMMAAAqaaaQmIIyUmaamAMqQiqA]AU}}meyMaM}I]MA}qmiUyMYM]uam]IaimYiiYYiyuimEEYYYuyaaQ]yiQemiaAe]maqy}Eyi]iueiuq]UEi]qU}yquyiaQyiMIeEIUq]YqmYiqiy}yiIY]QIMmaQAiyyy}IMMMMAAAqaaaQmIIyUmqa]UEeI}miIU]y}EEMyeIiMuEQiYAaq]YEiuuqEqEmYq]ami}eYUmyMUymYqiqIE}Q}IeuUYAaiI]uiIiU}}yq]QIqYYMe}}]}yMe}aQee]qAu}}}emiqyUUUyIaImUEAIIMma}EiyyquIMMMMAAAqaaaQmIYyE}qe}eqeiIaQ]QyaI}uMiEYiieEMyeMiYUUMmYueiyuqieAeAMM}YUM}EE}YmEYqqqIiYqqaiAYAyAIiq}aaMM]qeAeQyEQeQAYEIQEimAeyIMqeeEMiimQyiEaIYuEmIuqy}E}eyqau}uuIMMMMAAAqaaaQmIIyU}aqMUQia}MUYUMi]EEIy]yu}IMqy}eyqqQq}UiiIAEaiuuiqmyAyiy}q}]amuYq]aU]iYauiqqUyyUaqY}}Y}yyEQqi}qAmEAIeIAeuyi}AiqIeeMQE]]AeUiAIyIuayeYyme}qMeau}yuIMMMMAAAqaaaQmIIyeMaq}eIqEAaeyaeuM}uqMyy}uYEQYiEqQiuqmyye]mYeIaaqAi]MYyAmmeiYmYYaAaaUYaQuyAy}M}}qAMQYI]A}}qeAMAueMqQiyuyqAyiAyeQei]]imem}aEM]yyQaEqiQmQEaUei}}uuIMMMMAAAqaaaQmIIyU}aQ}M}yeqQQYYqqMEey}iIime}U]yyqEUe]MQqqUa}}]}e}MuQ]YEE}AMUiieuiaaAayqQmIqQQ]eAaIMQ]MMMyIQeuY]I}}iuiiMqaq]QImQaiIAeI]aAuiIAiYYMuiu]Q]yAm}miyyqyIMMMMAAAqaaaQmIIyUmqqMUeemQA}]QyeQmIyiMIyAMMY}qmqeEiEmyAiEAmuiayy]MyeYIIiMuyyi]IaiumyMMiaIaquYYQyAimyIAyq}quQ}YEeEiui}QYuUqYAyMyyuAuYyIaey]yM}EA}AmyIIqAqMyiy}uyIMMMMAAAqaaaQmIIyE}QqMEymI]MIyYE}QEUiMEIaQAAU]]QiEyEu]aMiY}}QMU]aqmMIYYEm]imqYEeaQYaAMY}iIQEYMqqayyi}mEi}ayUIiYEqiE}]ya]y}]IEIyIiAIQMyqAeuYYUMMUm}YQiYyAeIaiyyyyIMMMMAAAqaaaQmIIyUmqamUQuMiYyIQiamMu}}AiyqEIAmAQyQiE]}qUmeiaQ]yAiyqEIyii}]Aqa]AYqqAaAMAMiA}uUMAqayy}m]aquqYuyY]u}eyYi}}UeiQmYiiAu]MUMYaeuUYYU]E}yyAaEIqAaAAay}quIMMMMAAAqaaaQmIIyE]qa]uuuY]mi}YAyaEEy}qYy}q}MMyAqAmMy]}]ieyMamauyAiqmYEmamIIAyiia}mEMIqemIAU}IMQqy}eUIMiiQQQIMiUqmEu]M}UmuEiu]iye}MYmiYa}eYyQ]}IaIQAII]ImIeiyyu}IMMMMAAAqaaaQmIIyE}aAmAiaQiUq}UIie]AumAM}IeiIy}MieqiEIYieAYqmiqqqA]EYIIUquyqaYIIqqQMU]mYuIqA]]iiqqi}eMQ]eEqYMmIUieume]]Y}YAmyYMQyIAqiI]AeYqaiiqymueIiYQEaamiyyuuIMMMMAAAqaaaQmIIyE]qa]a}i}Q}AYYAqmEUmiyyymMIAmEyieQyamAeqqA}eI]Aau]]YIEeeQu]QyUyqQay]IeaeQAQA}A}}Q]eEIe]qqiqImMAemAE]Ium}}myymAqyuYIA]YEqy]ueIieqaiIiIMmy}mau}y}IMMMMAAAqaaaQmIIyEmaAMuqqiEME}UMm]EAyMA}mYUYM]UqqEAME]iU}ieqeiiQaueiQyIAiQqAAmUUiAqiQyAEyAAIEm}EuyImYI]M}]aIq]quiyEAAMiIqMMaA]]aiQImaiQaeYIaI}]y}EuI}]imuMqayyu}IMMMMAAAqaaaQmIIyEmQamA]umAaMiaYie}EI}MyyAMe]M]MieEiQIU]iAIA}ieuiayeiiuMemUmiYiYaqAiaIIEuQQ}ayMeeyiMQme]m}qaYMMuuQeiq}qaimimmYmyiqYEiy}QyuIueIIm}qAqyiMQayEiyy}yIMMMMAAAqaaaQmIIyEmAAmammYmYMIUYuIMQE]YmmyeMQmUyyeU}AyqYa}AUyiyUamym}iuMeyUiYMIIqqQuIyQeyqQaamE}qi}qmmiq}aiqiIAMumeiay]YuAEmyi]QemiAAMyAiuyQUmM]ym}AyYaam}uayyyqIMMMMAAAqaaaQmIIyEmQa]qyyUaUaYIUm]euY}uimuqMYMAYyu]]EIaEamuaQ]u}mYyuuIiAq]aEQMIUyQAqM]}MuIQyEmQ}eqymUIUEeeQuUM]EmuyAEieY}}aiUYaAyaEuiYQuuuuAI]MAaAiiI]ieuAAayyy}IMMMMAAAqaaaQmIIyEmQa]umqaMmEieIiqmuYY}]mIYmIyYuaEyaEIAumIUYAyEAiU}imYe}a}qmQIYuaAQqa}UAqIAaemmEiamAEMiquQYA]]Uquea]EyaY}aAeIYYaeEMiMI]EayYMIiAUeYqaIYi]qiEiy}}}IMMMMAAAqaaaQmIIyUMqa}meyUqAUIYuqQUUQIeYyMuIiiY]iA]eU}amyIYmuyaaeaQuQyeMm}IAq}qyqIUaYmQM}AQaE]aQyQMaUmUmiyqUqIAym}A]qiaamaaeMyQiumEQQIyameeqAIE}}}aIiiiQiyAayyquIMMMMAAAqaaaQmIIyUmaa}uQeY]]qIuyyIeui]u}myMM]MuMqQ]}}]qmiaEUiYAuamAAYIiAmeQ}YIYyqaa}qMeqqIAqAmYqiI}aeMIIuIQQyy]E}uyeMMYUueAUi}qqe}]]IyqayiYimyIAeQAUmIAaeuIiu}yqIMMMMAAAqaaaQmIIyU}qA}u]aa]mmIYEeiEe}mQiim}Ie]}qaAyY]Yqqy]muYy}Ie}YIUIuMaiIiiiaIaQaAaI}uuYA]MYyImqmeqmYYmQIuuiu}iiEEayymyYaY]M}aeYEYUyqQuEaI}imEeIIiY}Meeiuau}}uIMMMMAAAqaaaQmIIyUMAA]qMi]QAQ]AYiumqiiaIiM}Am}amyUU}IiEqyEUuMyUYeiIuyIeii]qIEiAiq}Yq}YAqmMiae]qiyY}AamiMeAiUqMy}aU]UM}UQuqIaU}uau]MqE]Eq}uUIMI}aeuMQIYeeeAeiyyu}IMMMMAAAqaaaQmIIyUmqA}uy}IMy]yiAeiUEI}Yyi}umQimiyQIeyMQQyeAUEiyui]}aiyeMme}aQiiiqqAuA}}}uAaaemUY}IIMqMMYyeaaiIIemIaImY]eeUAYimUQeMMAe]}A}YMe]i]qayaayiA]}QiiyyqyIMMMMAAAqaaaQmIIyU}aA]uqyI]mMyiIqeUQEmem}yEAamuEaUEyM]qAyIUiE]aMimMA]iEiiaYeqYEIqAAA}}eUeyQqeiYQ}AMUYMEiiMAQYmMyqQ]Iq}]UaMaiIMiQeeymeIaiqIYiqyQAeQameYmUq}yiyyyyIMMMMAAAqaaaQmIIye}Aq}EyyMAAqyieaqUem]IMqAqEmiIaaiuaE}YqyII]EiEeemAEeIYAyQMQaieYqaAqiyQqeAaYaiIEyIMaei]e}uquUY}QqUiymyuIq}IQyYqie}UMmYYAmeeyMiMaaE]aIyEaaYaiu}}}IMMMMAAAqaaaQmIIyUmaAmUAaiEmM]iIiMUE}mQMmEiMY]M]qYEMyYAQiq}AEYQ]eeEuuiYeuAyQI]IYaYEQEyQeyya}EiYqmAMUAIaaueqQ]YY}qyuqU]IauuiQq]eIumEQ]iYyqe]EAyqqeQUaimeQyayiy}qqIMMMMAAAqaaaQmIIyUMQqMeMqEQIq}Qe}Q]IEiAIiQIQAY}eiUia]yEI}i}a}M]iaYaiEYIemYEAayiYa}mueYaAeAUymYQaqQy}MiQeyeYQYiaUuQmeq}YIiAIeEYUyi]IiU]yaqEe}MmM]ey]ay}iUyeeayyqyIMMMMAAAqaaaQmIYyUMQe]q}uIYqayqyiUmuima]my]iQImyqieeYMAamm]MUM}qeYeQiYieayEEaIYIqaqi}MQIamuMIiIquaiIEmQ]}QIUQyeUmIi]]mYuieeYmiUieMIaMM]q}ieqiYeUaE}YiyeUuMIay}uyIMMMMAAAqaaaQmIIyU}AQMeMqeaIQYAuqemu}y}ymuMm]IaeaQiUU}i]yu}UqIEqee]euIUMiimuQ]quuIEMQYaM}iaeA]uIqqYMmMAimIYeUm]UiUUI]YMy}ImQ]}yiyqEYMmmQeUIEYIeAea]aiMAYeqIiyyuyIMMMMAAAqaaaQmIIyE}aamAMiiEmu]AYeqmayY}}mYqe]IimqqAAI}AyeIeAymmEi]}yUYYAmiYmAMUAiaA]QIQQuyaAAiIIaqmAYie]iAauqiMamAY}eyQ}eYMUMMYIumAaQ}mQiIyYMImau]yYy]eUyAEiu}y}IMMMMAAAqaaaQmIIyeMaa}q]iUQAumYUeUeU}yYIimaAYIUEiu}}AIU]eUmqaM}meiIm]IIUqYM}IYiiqQqQQ}u]eyAUaYyQyI]qmIQEymaQAmQMuUemq}qU}AIUmi]ieIAY}YAuyYyqEY}Miim}qyIUqaMau}yuIMMMMAAAqaaaQmIIyE}aa]uuuEaQEyAiuAmq]]MiymMm]iM]yYUmeyAq}UUyIIa]aUmYUiIEmq}QiImiq]uyiyqqyaAQeiUQuA]aEIMYaUaiQmi}eIqmI}QyyuM]uYUiuiIMiY]AiYyMUYiauquYumiUiqAay}uyIMMMMAAAqaaaQmIIyUMaA}eauYm}UMaIqemEYIM]}IEemMYiiea]iyq}imIA}IUimQuQeYEImEaa}yQIqIEIMMIIuMaqAYqauQMqaI]IiqQAIyMUaamQemiumuAaMiUye}MimYiQiiy}MYQue}aAEMAYqUyiyyu}IMMMMAAAqaaaQmIIyUmqA}q}eAm]EyAeuImeq}yiyMqMuI]QiEUQEiMYqqqeqImiieIamiYAaqY}AMuyqqQUYi}MmaqAE]iyaIY}IIE]imyqmieAeMAqa]M]q]mmMmaQeIMEa]QQyIAeyyU}mEQyI}eeaYmiu}}uIMMMMAAAqaaaQmIIyU]Qa]uAiQmmMIYqaQeqUiYmmMqE}MEYqeUmu]yyquQI}MUeeYQEYIIemmUEI]EYaIIuq}aIuiQQe]UmmAymaimimMqyaIEyi}UUaMmY}QAm]MqQuMAeiiIaiyqyuY}aaAmqYImY}]qiyy}yIMMMMAAAqaaaQmIIyU}aqMEAaa]mUIiEiMuui]qyimUmMmAAiUUie}}umMeeMIauaUqQeYEImYIUAIYiaAAEayUYaqq}AmIueymqymIiq}yEAm]quea]U}yUmmIUYi}iuiM}a}]qyiieeiumeYmEi]iYy}Eayyy}IMMMMAAAqaaaQmIIyUMAa]qMyYe]EmYaq}UuI}U}miAeMiieqmm}q}UAiqeEMma]eQyQMYUMmqUIAiYIaMYUmmuu}IQaAmIQqYyMmMQAyaqaa}YQayUQAMAee]eUeMiqyeMiA]AQaieEyYuiaAuYy}EQyYYiu}}yIMMMMAAAqaaaQmIIyU}aA}qmeImMUyAiaAmqUyMyi]mAQimiqqEYUMYiaI]ueyYqmiEEYIumeaa]AYuyqaQImiqAyIQqaiMUuAYMaIMImIyuIIEaq}AmyYyyqQiQU]iqu}IEa]muuI}QeyAQeqIqImMYq}Qiyyy}IMMMMAAAqaaaQmIIyeMaA}eeuIm]ummEuimEMYm]}y}EQi]IqQeI}IUuu]eueieIeaQAeyUIe]AAMiyYaQaQA]iqeYqqE]yaaYMeAIUMuUaqIyMAmYAQemeEuuE]UMeyuqMaMYUqyEuAuiYUuYUYiMeUyuQay}qyIMMMMAAAqaaaQmIIyE}QA]a}yiMMEYIeyyeQyIq}}YieQIqUyeA}UiYYiuAuMmeiaU}A}iIAaiAYA]yiaaaqaiiYaYqaAY}MmYI}ImYYyqiYa}YAiuYYAY]I}ieUiIQAu]M}a}IAuYIQyIymaQEqqYA]}}Qiu}yqIMMMMAAAqaaaQmIIye}Aa}uaaQ}]U]uI}}]eY]Qyy]YammQIiue}e]yayymQUIQIeaMMeiUIieYAAy}YaQqMu}]IaQaae]I}iy}yEmQAaAAuIyaAmEyu}}eQmqiiM]}qeAMYqIyQeiyAuIayuAEqeMMYuaaiy}quIMMMMAAAqaaaQmIIyU}aqMA]i]amUyIuyUea}YuyiiAEi]YMqAYQUMeMqImuyyYuaaMeUIEmy]YQqYEiaQqeiyeUeiqQa]eeaiYyumQQquEyQ]IIeYeQumiMuUAiIYUIiQEqqi]A}EuAeIAiyeQai}EY}UIiu}yyIMMMMAAAqaaaQmIIyeMqA}uQeY}ie]quy]]uI]eYi]UI]mYEiueUUYA]uuau]mYMaQmayIiAm]QiyiYIaaqMQIUqeaQemiYumIi]}I]MqaqYUii}}EEQ]}QEaqeQUyeyumEuQiiqyeUQMYiiuAQm}II]q}]au}yuIMMMMAAAqaaaQmIIyUMQa}ueaUaaqiYqaeeeq}eM}Y]MMyMmieIm]iAEmAEQQ}qMeie}qIyEmAmEyy]iqmI]qI}QyaqqaYmEey}AMMYIiQaEAIYUmyYUY]yEyea]YYIyumEUA}}A}iqAImEImYmAu]iaeUiau}yqIMMMMAAAqaaaQmIIyU]QqMEQiAe]e}AUmu]qEiiYy]Ii]muEaeAiE]]yuymIuYMEaUauqIiAi}UIAIYIaAqA}maMqAaaEiUueiMAYI]}yEQQI}aqeaMeMYyumEmY}yqQeUAqymaueeqyqYeqiUQaiymYiqeayyquIMMMMAAAqaaaQmIIyUmAA}eauMaAqyIaq}UumIQ}}iIAU]M]qEqm]]eqeqQmEymqemA]YIiAqMUMAmUYqaaiImiq}yAUIYem}q}AAmMiu}YuAYAq}amyQyI}iiEiIiQaey]EQiUUaE}uEM}IqEayi]aYyu]ayyu}IMMMMAAAqaaaQmIIyEmqamEI}IeiMmaIuUmey}uIy}aEm}aI}UEyYiQEuyUuImeieUie}YYMaiuYImEu}Ma}yIY}aQqaaiAImIY]mMU]auAqmiYUumAUii]Au]eYayiqemEeaMQAeUQqyi}UuiyayIMiq]uiyyuyIMMMMAAAqaaaQmIIyUMaA}amymQaq]IuymeeImaIyyumUIQAqEQaU}I}ay}aAIUyi]iEIyuAamqyqYmYqQaQAYuIuIA]m]}auA}]miYYuAQeAy}Aa]ymUMiummmmEyQieiI]Q}AQ}Yy}yIUma}yqiIi]q}YiyyuyIMMMMAAAqaaaQmIIyUmaqMEQeYumQIQIuA]uImiYymaaAyYuqQYuqIYi}YmeIYU}iYeUQiEMiyuYiyMiaaaaaiAuyQqQE]iMiI]q}MqMqeyaIiIEiUyEiiuUyqA]ym}YumEUYIiQuiEe}y]iymqQIIAQymmiyyuyIMMMMAAAqaaaQmIIyU}aa]aimmQie]YaiAaiqYqM}yME]immqaYeQYQYeiIA}]eUi]}}yYUMaqIeIyEYqqqMYyuQaAqIiiMImA]AiME}eiAuUmm}iiI]yIAAmumUQYmieAIMQMaaiYYaIyequqAyIImYqm}iy}uyIMMMMAAAqaaaQmIIyUmaa}iqiaEMEIQiqamIy}}yy}uMQMA}qeQQI]YEmmYaM}aQmeie}iYAaqmamYaYaQaIUYEUqu]yi]mm}aYIIM]IyEQUAYq}iMmqEyEEmueU]IQQieIi]YYauyEmimMiqYeYyIIU}eyiu}}qIMMMMAAAqaaaQmIYyUMQe]eaa]qQaYAeimmqUMq}mYamQMyQqeeI}yMEyAemq}]}mmeiYYUMu]Q}iYUiqQaYmImY}iaaA]qY}a]uuMQMuqQQI}QAiYyEIyEMi}iQmmAAeMEeIYqAyyUumymaqqQAYymiiYIayyq}IMMMMAAAqaaaQmIIyUmAQMEmuAU}]mYqqMeeMiIiy]UaQIEiqAMi}]E]y}meqmAIa]uaAyumaYAey]QyqaqUqM}ymyaaE]aeuq]qqMmIeQqmiimYaqUaIMMauMeimYQAyAU}u]Iq}YMYaY]iuAmqyymQuUQiyyquIMMMMAAAqaaaQmIIyU}AA}uIiYumYYIqaQeqYiy}}YeE}MiiaaYYQ]UmmqAU]y}yaeYyuiuIeyMiQMqIqaaEIIIqyYaqEYaeaqmeuMIiyQQUMmeYaEmEYYmuymAU}mEQiUA]UYiAeaaEEiAe}I}I}yAY}QYau}q}IMMMMAAAqaaaQmIIyUmAQME}}EQmem]uuYm}]iEuuAmiEmIyaAm}AYQUii]qYYU}aYqeQYiayEa]Em]AeaayAMIy}YaaemIam}yMEImm}yUmMYMyqYeIU]MaeqiaMIqueyMqMiqM}A]qMiYeeU}yqIaUa}qiq}}yIMMMMAAAqaaaQmIIyUMAA]eiiQUu}]QiuAmey]uM}IIeayuQyq]mQIeMiAeqqYeqiYeeeyUAmMAqIiuIqQAaUiU}qaqQAiQuua}M]MAeqaqI]iAEe}EqMYq}iUeaMi}AyMEeyMMqeII]}yq]eI}}QIE]u}Ua}yu}IMMMMAAAqaaaQmIIyeMaQMIuyMUaa}AUuI]uaIEq}iIeYMqIaeQiemEuu]AAYMEUiQumuiUemMAUYmyAum}qiyQAmyAqEiM}aAMMuIMaqammy}IQaqyyAMAiuQa]qiAe}QIQiiyqiIeMYIe}}QEmQ]IQyMaauyuyIMMMMAAAqaaaQmIIyE}QQMq]qQumqYEiuAmqiIQYeMmMiI}myQeiM}]eyQEIQie}eeAAYyEEeQEeQYeQmEmIymIeyqq}amIMuy}EUM]MmIaAMiUimqyi]IAEiieYQ]uA}iIUMiEQe}aIM}]}aiYQe]imeMqi}yquIMMMMAAAqaaaQmIIyemQA]uyyIeYIiYeyyUUQmUeuEuM]MYAaiQmI}yeqQAMYImAmUeyAyyMeeMUAyMi}Qqq}}EUyeimEYqauIymYiQyi}yEUmMmmMUyeiq]yaIae]]AiYMQUI]A}IIEUYaAyqyQUyaY}YAayyq}IMMMMAAAqaaaQmIIyE}qa]aMqQeiiiU}}}UqEimIyQQIq}eMiAEe]]]iieYEQ]}QmQue]ImAaaiQAmqYaEMquY}Aq}qUaiE}ma]yAI]ImqqQmMMYaAmA}mQauEEUuyuieMEmIyqaei]eYmYQaYmYiIMemeyay}q}IMMMMAAAqaaaQmIIyUmaA}uYiQU]qyE]yMeqei}yumMAAyMQqUY}AiUMmiUYMiAEa]}EyImAe}iqAiyyyUMI]YaMmQEyIYeiqiYMEMmQiyAMAYeeeU]au]eMeQeeU]eiieAYyi}AiUmayYMEqquYyimii]Yayy}uIMMMMAAAqaaaQmIIyUMaA]uMmAeM}}UmimQU}yAYiqYIAyu]aEu]UMIyeiAmiMUimYYqMyyauIeMIYqIaqQ]}]q}umQII]yiqY}yui}]maYQIMIAqQ]IAYqamQeiIMiqyaEMqiIauIImuyqyaIiAaiIimqeiu}yuIMMMMAAAqaaaQmIIyUmqAmAEyQ]}umQyaqmeymEIi]qiYi]YqAIYaYEyyi]iE]]ImiEqQiEMmiEAYyaia}aIAyaemI}qeYuAeIMqMIQquIQyYMqUqQiqEmMMqAMYUMIIyqEAmieUiIyaU}]ue}uqUiiieAAayyqyIMMMMAAAqaaaQmIIyUmQA}e}iMQaq}AUeumqyIM]}eimAMQAqeum]mIEiymmI]aQeeIIayyiu]AQAi]YqMeaeMEAaYaAAm]yiIyYMMMaiuauE]qy}}qMUyAYqEaUuY]YeuA]iiyaeQmMQIyIuUyI]IIUyAqiyy}yIMMMMAAAqaaaQmIIyUMaA]uqyQ}]E]EmyyeaMyQiyMqAQyYeqYemQYY]yAYIQIy}aiIaiiUEyIiAQMIYqaAm}MyYmIaEM]QqmQ}YQIUYmaQeu]MAmeaQE}qyeAAm]mequiUAmyIQiEIy}i}qqY]qIIMYuYUiyyu}IMMMMAAAqaaaQmIIyUmqQMuAyEaQAiQuma]qIYM]}yMEm]EmiEEIaMu]iuqUEMeeia]YUieMaa]AqIMIaQqeymya}QQeIY}Iqa]AuIQ}yIqEA]UYqMUeMmqQaQMQY]ayumMmyIIaeIyMMIyuuIaq]yieaQmayyuyIMMMMAAAqaaaQmIIyE}QA}eiyiMIyMYIqUuE]YeImyMIUMu]aQIemIMmaQEAE]uQimYQqYe]aiQmAiIiqaaimyIaeaAQeiYUqaMQqI]Ie}iMaYIImmqeiiuUmAmie]QYeImuaIiueiYUEIiaeAUiyYmm}emiy}qyIMMMMAAAqaaaQmIIye]aa]uUu]aaEiiAiEUq}iE}mIIEQ]QqqAyEQ]Eqqy}yai]qimmqIyEIaUaQAMqIaQqMI}uEuEiIIYYMqy}q]mMYiAYuA]}a}MUMI]QIaAaQeIiqu}EQymeA}IYqay}I}i}AMmMia]iiyyyuIMMMMAAAqaaaQmIIyE}QqMIMaEmeYiQemaiuUYQMqM}AQmQ]eIYiaMAUi]uMi]iMmYiUumuMeMq]QyuYaY}YEIqEayIAEiMuuIeAQIQY}IIAuMaq}YIQ}IMIqymaM]EqueAUIyeQuiYAayYM}]aa}mEQe}]iyyy}IMMMMAAAqaaaQmIIyeMaa]UquYeAq]Ieiima}YummEqieMqMqEMuQ}YYqIM]E]]IemA}MyyImQYmEIaIiAMQyiYIy}YuAma}amAM]IQyiIiqIm]QyE]eiiMmaiaQayqYamIUA]YQiIYaYI}ym}miqiaUuiuiu}yqIMMMMAAAqaaaQmIIyE}qQMEyiIeEQmQeuuiyQ}EeaaUiiIyequM]a}]ymUEAi}]}mUieqIiMeYEMaMAEmyIeMmm]}}UqEmMuiy}}eiAieMaUQmeuey}IqyQqaQAaUIqIyMIq]YAAyYieQIYyiy}M}im]m}Yiu}quIMMMMAAAqaaaQmIIyUMQa]Q}qUqamYEiumUemMaMmyyIEy}MaQUAuYYi}AiaAiQqaQmQmiMmm]]ayiEYqa]q]yqemM]QiiiIequYuiQMeaqeA}MeaaAqEIim}}ieAYyAeMEeyYAqeUmqiyiiyaIYIMAU}YEay}q}IMMMMAAAqaaaQmIIyUmaqME}qQUyq}MU}AmeyYQImeeMAiMAuMeqQMyIyYmmE}aYmQyyuIIYi]A}I]UYmmuQaiI]}eiUMiAMmI}aUM]]eAayA]eQ}uE]q}I}yUeYam]iyaI]AieqyuEqyiy}eQYqiMa]qUAiy}}}IMMMMAAAqaaaQmIIyu]AA}uMqI]UM}U}mymayMEYaUYi]MeAmEU}AiiI}yiaeimmiaY]ii]amuuUaimyqqQeAmAyuq}Em]UuaAMqqiMyiiQEMi]Qa]aYYmIMa}IeMm}QyMMEQMq}}eQY}]EmieYe]iEaiQIi}}quIMMMMAAAqaaaQmIIyU}QamUEeEaUymaIeMyyiiuy}UYe]Y]AyUQ]yyqiuaEi]im}iQYU]iYAiYUmQIE]m}UEuy}maA]ea]yeqymyEi]]}qAaiiIYaAea}]IqmQIYy}UAi]MaM}yquAmmEmMeuEUiEmaQuyAiu}}uIMMMMAAAqaaaQmIYye}QUM]]yauIYYU}aeyuiiyMmiyM]MueqQYaEimqqmEqqmYee]iqQiMaia]uyIEAmqaa]iMmaeiMIiAYyA}q}MM}qUym}]EAqqUaQmeyq]MQmY]IemMueYQquQ]AyMUQayyMMyI]eEUiyyuuIMMMMAAAqaaaQmIIyE}AA}q}miMMeYAyyemayiyiymEyMieuqa]m]mMEqaQuAmuIimiquIIauMaQAmauiIIeq]aiaIqaAYeieymq}MA]emiUqMEM}quyY]Yu}EMYaIQAe]IeamUeq]qAuiAEmEQeiII]e}Aiyy}yIMMMMAAAqaaaQmIIye}QQMMMiaUmqYYqauuqei]Yi}yAeiuIieAyIIIIy]eUQYqQaaAqIiYAaQYqmmqiqAa}iIuae]IYMYyuiqMimmqequIqiy]]yuAE}YYEuaM]myqqieMQaYIAuA]muMqaaiUaaIIUqquiyyquIMMMMAAAqaaaQmIIyUmqa]q]qQei]iiAa}eeEIa]}III]MaaquAMiIuueeUYI]iii]eyAYyEaeMYaYQUaAq]E}aMaaAUi]}IyYy]aIMmauYE]MIYaAMaAY}MeUIiA}Eye]Muq]AA}EeQIiqyyMYm}iE]}IUayyuyIMMMMAAAqaaaQmIIye]AA}qyeImm]yQyiQiyqmyIyMIA]MAaye]ay}EiaIe]QIAuiiAUuYiiimaaqmeeaAaIYIqemYqieYi}yImamMIe}Uaie]QqiUiyImMYymm]mMaqiAIY]yaAyAQQIyYayEQmImEiimeayyyyIMMMMAAAqaaaQmIIyu}aA}e}qaE}qYU]}MUAUYYyyMqaQ]MMqeIiUy}IeqayiyEiaiE}}IUmi}aYu]myaA}eaYqqemmiM]}Ayy}iamIqe}aeI]MAiyQQEYyqeamiEieyiYuuqM]A}iMu]Y]QuQM]e}iiyy]ayyy}IMMMMAAAqaaaQmIIyUmAQMEUeMqEI}Emq}QQmiayyMyiUIAIqaUm]}Q]yEaUE]AaamIyIyyeaYYaU}MQymq}i}MYaY}UAiI}mEEuuIAamy}m}yI]u]EUAyUuu}MaAMYEaMMaqyIquuuqEIyEy]]qIIMUqqAa}yyuIMMMMAAAqaaaQmIIyUmAQMIMmAmYMyIaiqaiAMeqq]eeYIAQm]mMy]E}uU]Eq}U}meIU}m}MieAa}mM]imimMIeYeyquamIqqmAQYmaUmEqQI}}Ieqa}qyY]yAA]e}AAyeIemMAQyAUi]IyAmqeI}yEaeMEa}yyqIMMMMAAAqaaaQmIIyu}aA]qQy]qay]EimqQqMyqueYYaEmieaeEAMyuamEEeeM}]aeMuq}aEuAeiA}QEaAqaIMa}yYAqm]uYyEQ}eIQIi]yIIyQQayQ]AYymmEemE}yA}iMEaiaqyAiuUM}yuumQ]YeaaEqmqyqyIMMMMAAAqaaaQmIIyUMaA}yiaYumuMiIaEaeyiQqyMMeemm}yyueMMUimEU]AIiUa]ayeMQaaEAyEIYQyYiA]YImeIAaeiYMymaIyiQquEQeaMA}uUU]e}EqqueiMiM}aUYQEyiaeeQUEY}]yqQAUyaYyIYmqyuyIMMMMAAAqaaaQmIIyE}aA}qiiAmmQieIyaaqYIqeuymE]myIqUQIAM]u}}]imyi]ee]YeMAMimqYYYIUemyIA]yIaIqmMmAamq}i}iamyqIi]ii]qEEQy]aAmQM]}yyEqAMe}iYUemYeQmUYiIIIyYMae]ieqyquIMMMMAAAqaaaQmIIyU]AA}e}aY}]IYYE}]aUqiUquEaM]i]qeQMIuiIamU]Ym]]emaA]}MaIeqYeiyiY}eq]mmMEmYiEM]im}A]]YM]]iYAIqmUEeMqYUmEuuQiiI}yMqAIMQYeaiuQ}Emma}}mUQYAaiUeeqyyyIMMMMAAAqaaaQmIIyUmqa]uQu]qayMeUiiiqYIAqmA}EYMmMaqI]Ai]umEmAE}QAeeIa}i}IeuE}YIiy}Y}aaiM}u]]aAYmim]aUiIUEyiqEe}AmeUiI]]umuIemIIUImY]UUyIuaaeEimUMyEUYYmaQqyEeqy}uIMMMMAAAqaaaQmIIyE}qqMAMiI]}yyU}eaaA}yiMqQaIUyEqaUEYYMIeuiUmi]mEeaEiIimAmYAeQYYMiiIUQYAeeUuae]UUaA]MAmM}y]Qqi]AIu]MMY]AYqaa]QiQa}eAyU}mayUAIMmAUyaEYyYMieuueqyu}IMMMMAAAqaaaQmIIyUmaA]uQqAiaMme]aEaqYmYEaIeaAi]myQAaEiIAu}I]y]u}eeEQMi]iiIaMiYY}qqqqyYiU}A}UIiMm}q}EQIQaiUqUU]IYiYiAmIuammaQa]ay}aMQUiEAe]yQUyU}yUqqUyIQ}UUi}yuyIMMMMAAAqaaaQmIIyU}aqMuAeiUM]]UeyIYyAiMImemAUMQYieqyQiIYmEeIiMeamiUeei}eeQ}YQIMYmY]eayMmmYUYiYuuuA]eEMIuyqIuAIAee]AQAiaquQeeMIyYyII]EY}QeqAIEiQEmam]MMiYiyuiyyyqIMMMMAAAqaaaQmIIyUMaamAMmY}}qYAYuaYuM}EIyuMEM]AIyQYYAyii}yqMmIuMmaMm}IiMmaM]AyeyiQQIy}i]eAUEImI}aI}E}IAmeEiEQMqQaE}u}miia]IQymiqiIY]MiaQeyiAYy]uaAaEuYMQqMUayyyuIMMMMAAAqaaaQmIIyU}qQMEAeIeMU}AmqqmaIieI}EqMAMYMqeUeQy}imMMyYYmmm]aYUYieeY]aqMuYaAiEMIeIm]aAimMeeymeei]MaEiAIMuUeYQuy]AEqIEeI]eyymYMeiUMeyaIII}ieQEQyiIeeQea}yyyIMMMMAAAqaaaQmIIyUMaa]yAyUqyQIYueUeEAM}UaMYa]Iuiii]}MmmEiAQMM]EUiiEqQImEiym]MyQaiaEYq]uuaAAIe]Im}UQAIIU]}AqY]MYQiMQeYmuieMeeAy}am]My]Imqiq]UAMMqieMY}yMamEua}}u}IMMMMAAAqaaaQmIIyUmaa}uMeMQeu}Ye}]auYYaUuuAMUiAY}}MMAyIyqaeMmyeAmiMYQ}EemYAuYie}uqYIyiuqam]iE]uQaQy}aM]I}aya]mQyeEeuIyYEe}E]y}IMaMQQA]AA}Aa]mmeq}ieeQIM]yqqa}y}uIMMMMAAAqaaaQmIIyUMQa]y}qQmY}iQ}mImuQ}}My}AIQY]YyEAA]mYAaIqqUiaaaaIiY]aEamMuqiu}}Y}UYYEEmeUyE]yuqi]MIIQU}}YiU}E}yaAQiMuMqYaUUMUEqy]EAiIQeYYUQiqQeIiaEImYyiEi}}yyIMMMMAAAqaaaQmIIyUmaa}yiamAUaYIUmmeQyyaq}qqMMm]}qUQMIyI]m]Ei}MqqaaaaYy]eiMYYayiuuAqQUiqQqaEie]e}umQ}MMYIiei]ayUQmMyEuyeuuQI]}}qA}]IiiiiquumIAIyuqimMe}EiiQii}}}uIMMMMAAAqaaaQmIIyU]AamIEqQ]}y}YIiyuAE]YmymqaiMMaqEEIQmUauQ]qmIaaeaAYqImMae]aiiEMieia]YIYeMqEe]yiuAmyQMQEeYYaY]UYmqEmYmEui]E]uyMy}mAiYmmquyimEy}AyiyYUMAYqq]iy}}qIMMMMAAAqaaaQmIIyemQA}y]uEaAAiYayqeeuIAEqmum]MUi}AImeIQuiiIA}IiimiMquMAiaeAEqYMQeay}U}}yiee}eiEqqeqUMM]]uiQIq]UeiIm}MYuMqUMaEIMAmeMiuYYU}qYU}MaeyMMyq]i]}ImeqyuyIMMMMAAAqaaaQmIYyumAE]Q}}Q}}QIQyiUiu]yeyqEYAeIqQiAM]YmI}q]q}mIqUeaeEiy}I}QIIYYeiae}]Ayuai]aMaiYumiMYqMUqaYiUq}MImiyE]]Ai}QmUQIy]aaEmuYeQ}}MUIIMIyyIUmiIYumueqyyqIMMMMAAAqaaaQmIIye]aa}qqiI]yMyQyqMiiayAUa}EE]MIiyEaM}yIauyEm}}M}mQmyay}IiMEAAMqAuqaEQIQeiUIeaYueuq}IYmEmm}]AUyIEeEYA}IiauEi]Y}E}qeEmEMuAm}eiyIy}mMqImieU}YUi}}}qIMMMMAAAqaaaQmIIyE]aAmAE}Quai]AUmuQQY}aQyi]EmIu]m}ieAIu}}I]AuyYEemIuymuImYEiaIEQaMEuymYQmAQai]yaaQMImMiuiq]UQmq}eImyqMu}meiQYIQEqEMmM}Qiu}}MqIyI}}}M}}m]}}Qeq}qyIMMMMAAAqaaaQmIIyE]qAMqqmIemAyu}iEQUaMaMqMe]uiiAuMIQUm]ImmaYm]AeqQm]Qy]AmUAyM}iImaIyMImQym]Ym]quyea]iIiYiE]]yyaYyYmaYiuiiAiiui]imiUeQ}AyquuAAMye}}qMyIIamUmi}}yuIMMMMAAAqaaaQmIIyE}QA}AieQeUAmeMm}Ya]i}QiYQ}uIY]mQ]EqyyayY]ui]mYqIIAMMEEimAQ]}}eeeIIAyiAaaa}emaiamaqImY}yQQyEiMuqMM}eIAmuAeqUMQUaaUauMmyaiEAy}eYqMmUImmieaEa}}}uIMMMMAAAqaaaQmIIyEmqa]QM}QeEUyIYyqYiqyuUiue]aM]ymIImqmmUmIyauIeiiquMQ}eEa}AaMMMAyEy]YM}}qiaqi}IMmey}}iYY}UEeAM}EqYIqEYyuiueuMmmimUe]yiqyuq}MyImeaYMM}Yaa}qymy}qyIMMMMAAAqaaaQmIIyEmaA}uaeYeE]YAiyqQQmI}QuAAMUmE}m}iI}mMUiiQuUIMyiiya]immqYMquYUeem]}mYQyym}umyY]meyeU}IMqEQeyIYQqyYeAi]UemAqeiQ]qaaUy}YYuaIu]iq}mUuyUIA}mUimyyuyIMMMMAAAqaaaQmIIyE}aa]UquieE]yAUuiQu]mUQuiIMemYqeueUI]AAiumYMmaimqE}uMqiyImi]iUM}UuA]y}]e}}qEy]U}euyQm]qqiIuAY}UyIuiq}qYeMEe}}}Ea]UAIyuu}QuaAmimqEue]mmeuq}mu}}uIMMMMAAAqaaaQmIIyE}aa]uEeYUiuIYqiAIaymYQqyMUe]yIiUYUUi}qiUiYmImYieyeM}aMiY]q]IIE}YI}eyQeqQqqEyE]umuyqiymiuYuiMuUq]EEimq]iui}QmyEqA]EUiqieMui]y}AiAqqymMaq}emuy}}IMMMMAAAqaaaQmIIyUMQa}EmaAeYMYIeuEYQmyuaiAMUEM]}}UeYMIYMeaMaymqMa}AqyMqy}}QaIMeqeyyUEm]IaMMeaiyem}IAA]i]}UaEa}ueiYe}MIIAmAMuUyuMaQ]meI]YiMII}Iaa}mIyI}MUu}Amq}qyIMMMMAAAqaaaQmIIyUMaA]UuuYeMqmYaqaYIyY]aaIEuIiaIqiqeEimiaYMEIMqumqQQA}a}mY]mMMaa}emiY}}mmyuEIimmemyum]]aamEMyiaie}myymyyyyeyYyYEaqQYM]}YuQQYim}Mm]qYmIieqMemuyuqIMMMMAAAqaaaQmIIyE}Qa}EiiYeYMYAU}EQqiMQQyuaue}]ieqEaEMQQaEEEA}Maaum]}MAmu]AY]]aIqmAAIiMa}MEUim]yqmuuyYMQaiai]}}maYyuu}QIeAiqI}uEqM]iMyU}amAIEyeQ}i}Ii}MiqqmeqyqqIMMMMAAAqaaaQmIIyE}AAmAmiYe}M]EiyEQEai]QqemEu}MMaYUMYm}aeQQ]eMemiq}m}MiI}equMmqaqYuIiYeiuQQ}aiMyaeqaQYI}}yMEQIueaImiqIy}m}mu]M}EyaYMQYyIqmIaEiUqaQiuaYeqaiqmqyyqIMMMMAAAqaaaQmIIyEmQamaMeYiaYYQIq]QQ]}uQ}Qimu}mEaeyqumaM}euUa}Eaiea}yMqi}ymYuyyieYYMiMaaaimMMiQYumueA}I}yei}I}IMiYEMu]uE}Ie}AmuEaU]EQyyyqiIAiME}}]a]AmIqaYueuyyqIMMMMAAAqaaaQmIIyE]qAmQYiYyAeMUiiEQAi]yQqUuUUMYIaMiMiyeMaie}EiM}ieqe]MAmqQ]MEmquua}QuyIYuiI}amu}}eqAyiYMiqEUum}i}mAY]IIAeuAiqYQUq]YIm]]e}Q}YiIaE}]Aym}miq]Amq}y}IMMMMAAAqaaaQmIIyEmqa]qymQyIaYEIyuAq]]uQye}uE}U]eAQUAiuQaUuYAmI}iuQ}UmEaa}AYQmiIqe}u]IQyi}EEm]mAiuAyuMImy}iQIMAI}MAiUi}Uu}MeUmI}auIay}QEiQqEmm]a}}MU}YAumUymq}}qIMMMMAAAqaaaQmIIyE}Qa}aUuYiAyIUi}]QYYMQqqEqEE}umaYyaeYQUqI]em]iEaQmEqY]MuMqMAyiYqqAEA}iMuEmYei}MmUA]MiQaeAIQiMq}ymAeyiMemeaaEMEY}iYYEMMAuIye}MA}aeuEAiEmiEaayyyyIMMMMAAAqaaaQmIIyE}QA}euemAEe]E]iMQiqMUuuUQII}IayQM]AME}uUqUEmU}iiEmAMUeyEAYqiiMyyQqIm]aam}EEmQAyEqAuMQUiIIqqIyQmiQMI]YEmaeiE}QIuIIyqMyqaIyMYyqQeQIe}imamQaayyqqIMMMMAAAqaaaQmIIyEmqAmyuaQmIYMUy}UuAAYei}iyE]]iAaQmi]M}ue}YaUyyYaaYqamQam]iEaiEqum]YAyEM}iIQamQmyqyMmi]MuyYEu}qq}eeQUYQUuAemU}AyiAuuAYmEqyy]yy}]m}iIIIIueYYa}yyyIMMMMAAAqaaaQmIIyE}aQ}AyuaYqU]eU}iqayiUumauMe}ueau}muIAa}Iai}Iq}eeUqqIYeai}uq]a]iMaam}EAemMymii]mAMimMEmaqYyY}EmyIaM]MEm}aImqiqamQImAMeIy]amEM]}mmMmQyemmi}eqyuqIMMMMAAAqaaaQmIIyUmAAmqmyUyEUiaIm}]uAY]E}mUaAyUAyaYIYyEI}qAY]IyqaeaiEM]iumiAAyUeaEqmeMAUaiAiIiyI}QmueMAa}aQAmMA}ymAUa}ymyqIQQI]]amMai]YuuaAUymuMamUaYMamqAMeq}yuIMMMMAAAqaaaQmIIyemaq}aI}iamM]QuiyqqUIIQmqQEEmuaayaeYYyQuY]AqYUEyAMM]MUeii}yAIYiuAUQeIUyeuyAA}E]mEA}}IYaiammAymmmIeIIyqMmyMieMM}iuEeQIueq]]mIIM}ee]iQmMaiuymqyyyIMMMMAAAqaaaQmIIyUmqamumy]mUIMU}y]aIqIUEyIUiUMeMqA}uUY]yqm]a}Ie]emqum}yaiQUUQIuyaaAeEYaea]iMI]eiqueI}IAymAQAi}U]aAEuumaUyyA]u}qMuqA]uiQQiyiEY]EUqm]IqymiyeueuyqqIMMMMAAAqaaaQmIIyUmAQMA}aAUy}yAemMqAI}iuqAqmMiyEyEuyaMQEeeU}Q]iyieAqImaMimaAAYEiaAMaQ}AqyIUYaiMMyeEqUI]qyeQqIiIU}]iaMIqQiIaeM]ymqyMYAImQiIYUimyimI]]aieQyqEeq}}qIMMMMAAAqaaaQmIYyu}aE]aYmYiaQYAUm]aqUMuqiiMiUIemqQMAY]UqaI}M]YQUeaQEi}QeaYAqqIuQaeEiq]}e}mQQeYyeeY}}iIQaaQqaeiUy}QiiMiEQmQEimiuUauAia]aAeym]QmMm}ie]AMmYyaqeq}yqIMMMMAAAqaaaQmIIyeMqqMAYmiQMM]Auqeaq]}eAqaQimiA}aUAqEY}Qqy}]MiQeeQquI}yAeMyM}m]aii]imYuieie]imiye}eMiMYMmmAue}IQeMqaaYE]eaiYqyEy}uAUEiuQe}qIi}uAeEIMimMmi]ai}}}uIMMMMAAAqaaaQmIIyEmAaMq}mIUI}IAuyyQY]]MqiIq]}mmY}EYmA]U}u}iMMIE}aaYYI}E}uyIiYmey}E}aqmMmaAyUMyIaumEiii}AiIAqi}AyqeaIM}Q}eqmuAI}ammA]qIIAuYAIAI}yuyAeI]eUu]]i}}qyIMMMMAAAqaaaQmIIyU}AAmQMaQeeUyIUuEyA}]EQaIieMMmEuEqIUMaq}}AIuYYEa]aq}MiI}qI]]Y]qmUimAMqueQMYIiYue}qq}iY]muyuYIEmyA}im]Uiiee}QMMUayUAQyUea]UIQ]EE}Mm}qYe]yAMmyyyyIMMMMAAAqaaaQmIIyUmaA]ammYeEy]AUueay]}]aaIAMEmUAqqYqAiAYuQqIEyqqiYaY}MeMiiiAIMAEqmyMIIYQ}}mUAm}}eAMQaIYUmaaQ]IuUiEUy}Y}aiUi]}MamuAAmuIi}muAUAIYmuU]qE]emmAUmq}yyIMMMMAAAqaaaQmIIyUMqamQMaQuI]YIAuYiq]YeqaYiMaM}U}IQeA]Y]iAYmqiaui]yQeMAIeuQEMMMayAqEE}uIuqeUemEiemuaaIYIaAY]e]Ye}yqm]yyayqEeQi}YmmM]aIqi}iAyA}}yqQU]UMAY}e}eq}}uIMMMMAAAqaaaQmIIyU}aA]AmqQUy]IQu}uaayYuAuUAMQ}ymeyeiqyammiIeMMqimiY}e}EAa]qaMIEIuQ]uiymyyMuia]aAu]QmiMyEyUUMQmqYqAU}yiEyiumYumy]amE]aMQiea]YmMAiuyIqa]miaeMi}}yuIMMMMAAAqaaaQmIIyE]QamaMqQYAyiUYyUQa]MYquEEeamU]mYEaEyMAueEiqYY]mmMeYMuqe]AAmY]}}EUiU]eqmmaie}]immEyy]yeeim}YIYM}eYM]yeE}EYMQ]e}aiuqY}qyieeuEMAmmyQeAMa}ueAmq}y}IMMMMAAAqaaaQmIIyEmqamAY}QYqYIUIieQqMiuMamM}AMUQaMYEAIaYaAyumYqQieiiUMAqeQmmA}mmmYQeaIEia}AIamqMmmEIUmiQ}mEeMIQIyAq}mMYIqYAueIqEaYE}AIa]aQeQqIA}qmEyAye}aU}euyuuIMMMMAAAqaaaQmIIyE]qAmqIeIiyIiU]auQay}QAaQmmQyiE}EMQAMiMiMEAE]QQuIA]i}Q]aEQ]I}EAe]qMymaMaaYaamyAm]qQ]IYAyA]q}]uiuaeUAm]EmuMeyiu}iUUQ}iAIyEQuYmmA}MaMu}e}}AUmqyyqIMMMMAAAqaaaQmIIyEmqAmaIeQyyqiUYmQaaImqMamumQYeEmeqaQ}]IaEaAUIemayAIImqammQqeyyUeUe]U]}YyyiyMYiu}mIEmIiAaI]qQ}Uiy]MimyYAmaiai}}I}aIiymmiiyEIUY]QeMeQYiMaqEumu}uyIMMMMAAAqaaaQmIIyE]QqMAYeQyI]IeEiyYAimy}uiUI]]]Iea]qIImYmQU}aY}eaimQamUAm]eQ]yQqq]EUaiMmeyU]eiYa}MQQ]MeMmeuiUyYeqaIaq]maqAia]y}ueEIUui]QiMA]I}UIamY]UIaimaUeqyuuIMMMMAAAqaaaQmIIyEmQA}QemQiimIUimmaeqIyieMuAAmyMqEQQai]AaQQy}mMMe]eMAmQAmyQ]YyeyyYYIaYQUeeQAAiMeqAEQEMM}imYQQIa}mmEE}Iuuu]MmIIAQiMYQaiqQaiAqe]}AaYm}uIMeeQaa}y}qIMMMMAAAqaaaQmIIyU}aQ}IqimaymYaiqUYqy]I}qMMqqIY]aaQmmyA}yeuUeyEayaIeYYiEiUA]q}eA}qAyuyq]iqQIm]iqqMAYMIQamMyue]q}iyyUIIauiaAeAMIQmQi]AmuEeEamMIIYy]aiI]aeuEYay}uyIMMMMAAAqaaaQmIIyu]aAm]}iQiQEM]EeyaQiyyaaMqiM}IiyuEEqyiUaqQYUYu}am]uEi}IiUuy}]}]iUIUiMya}EIMemUeee}}YME}u]EIqYA}m]YIymUIuaiaM]UEqiImIIeEyYey]meQ}Mu}QYAaeMqa}}y}IMMMMAAAqaaaQmIIyU}aQMQmymQaU]UmqEeqU]uIuyAIQIEEqQUU}yUaiaIMamiee]yqeyMMa]U}ImAMmyeE]YuiqIeUMiIQaEaAiImMyAaq]YqIaYmmE}i}emEeEI}ueeMMaiiai}aEM}]aqiAQM]iQ}]qeq}}}IMMMMAAAqaaaQmIIyUMQaMqYqQqm}m}uuYaayYA]yE}AQMMEqEuEYMmQeeIEUyMAiie}]ImEieUyyyYmeuAuI]eA}qyqmYuauaI}YiieqEaAMyUimIQqaiQaeiM]amuUqQM}QIaUqAEUemuUeMuaM}MmaUAa}}u}IMMMMAAAqaaaQmIIyUmaqMAMyEiiUyQiyQQYQYUymiAEMy}eyEQ}eI}uuiqMI}e}aeIaAy}IyAAMQyIEq}Iam]UQmYIYMiQyay}eqIQIm]yqMi]qqeYA]mEIuiiYa]QYiiUQ]MYAeU]ym]m]aYuIYyaQum}ay}uyIMMMMAAAqaaaQmIIyUMQa}QieUQ}UMeE}UyueYUMaAQAQIMueuqu}MAIyMmiI}qya]Iumi]EiYMMAIaMuqQqUiYImiuEAiAeuy}amI]MiaAqEyEAqe]UA}AEm}EQaY}IuEQIy}mAu]mayYimm}aMiIEUayUi}yuqIMMMMAAAqaaaQmIIyUMAa]}EyeUuy]MemiuMIIE}}iMMi}uiaA}QyIMu}Y}aaYqqeeQYmYEMeYyyqMaYaQA]]]IiuiA}eYia}qm]qmQI}UqiQmImeyEUIMYYqEmUe}MQyQIiU}M]}YQmEI}miIqmUyM]muMmq}yqIMMMMAAAqaaaQmIIyU}AamQI}QUQumaEe]qq]Yi}uYEAUyQMmMiyQmE}iyeq}MAmaaMmA]aUmMAYuYUymUYmEiE}iuUuEYU]uImEQMQ]qEiA}YiMiaqQmymiaqiMyMyayiQI}}Yqi}AMQMaIa]IAQ}aea}qau}uuIMMMMAAAqaaaQmIIyUMAA}auiYimQ}EUaeeqUiy}}yQaEY]Y}]EIyy]Mi]uuUyMYmiA]UI}AyEuqUM]E}qYiIMY]iiQUIYiAaQ]IUIQMeIAIi}eyuEUEYmmIeuaYemqieMQEEiMUqEEAi}AAmum}I]mYimMmq}uuIMMMMAAAqaaaQmIIyE}aameEeUQMu}AUueaa}]MUqqAe]mQEm}}AU]yy}aAIQyuEiaa}emeamiQimYMiaaquyIYamy}]AYaUiyuaaMuEqyIUMmEYaAQImyQEiYmQIYeAymAQqYAAeQIeAyqQimAAEMI]qm}i}y}qIMMMMAAAqaaaQmIIyE]qa]]IiQQImM]i}meqYMeEmYmQymQMaEQuMI}uyyeMQ}qaememyImeyEqqeyuyaa]IQIQayQYQimqymimMaIQqeUquIMYu}]QuMYMymAA]E]ey}mQYyYey}Qi]iimimI}iQ}Ammqmmq}yyIMMMMAAAqaaaQmIYyE}Qu]UYmYeEaieAiAQmYMUeaquMIiuyuM]MMMm}mUMuMyYMmmieU]YA}MEe]}miiQaqAyiMqYQqMiAMeEAMEIA]m}qqqy}}iQuMeiiiqIMeAmEIeAuqI}]QmA}}EyqQquaaA]e}yEuiu}}}IMMMMAAAqaaaQmIIyEmqA]Qe}IeAEyAuyiUQUMuauYIum}MAyQUe}}Y]aAA]AYYeaYuUimUi}AyAaYEUqqaQ}]aamEYyai}euq}YqyqiqEumImAMyUYUi}Uam}MqMiY}yMEm]iUyuE}e}mMMmiy}i]IeuaMa}y}yIMMMMAAAqaaaQmIIyEmaAMQymYuqEiUqiaQIqyu]qMUqAIAAyquaUyiiiQQYiYaQieqyaMYemyQQU}]qaQUyMi]}aEEam]uYiimYeMmMmmiEEieq}Q}yiyIiaMiy]iY]a}YmM}qMyiAmAMmY}eeuAMAieaEmyyyuIMMMMAAAqaaaQmIIyEmQAMqyeQUqu]YauIYYQ]yQimI]EmeyiqEyiMIIaQee}maAeu]qQMaeeaMIYmeuim]y]m}aeeAamiMyimae}iiY}myiYYIa}iuyE]qayAa]ymI}qE]Quyimq}mI}YAAemqEiIAmmaueqyyuIMMMMAAAqaaaQmIIyEmaA]AIeYuAUMeAyqQu]iuQie]eeyEY}qQaq}EiyEE]qMUuimqeuMaAuMuqymImyeaaeiQaiMq}amMuemauaiIiiUyimmMqaiQmyiauyYm]yI}ImMi]QMqIuMamaiy]qUMIUIeeemEmqyuqIMMMMAAAqaaaQmIIyEmaA]qYeUe]IyQm}IayQIyQyM]EEyYM}a]]I]IuaiQMqyaymmiem}qEyImmUYQiqAq}EyIIq]uMMmAuimeuIiiImeMAqmaIq]uyeIEIqeMaUI]ImUMuEIUq}IUmUyIqieQiYMAeiQqeqyyqIMMMMAAAqaaaQmIIyUMqA]qYeEemMmUqyYQyAIIaiEeEU]Qai]Ui]I}uu}E]}IYieeIYmYMeqMAImyeyuiaA]m]MuAAmAiEyaEUAYIIYm}Y}I}eAy]uEE]YuuMmQyMYqmeEYImuEquaEeIIq}eaQmYeayqEa}}yuIMMMMAAAqaaaQmIIyeMAA]QumUe]IyA]maayQm]eqqMmUmUUiYuea}]uaIiAamAIe]yyqIMIiaMiIiIIqqaAe}qi}UmeEY}eay}aEMY]iUQuUMaUqqImm}QeeyeaYY]A}eMaMYmama]UyyyqiI}aeyEaiiui}yu}IMMMMAAAqaaaQmIIyU]Qa}qumYuQy]EUyeiq]]umaQiMU]]IauYeyYAymEiYamUUaQaeqi]AamuuQiYUqmaAu]Iay]M}aiAqaQ}iqIiMaiIe}YEqiIaQmmeyaiaeAMQymyEmEiyEaAmiei]myqIUqMEamUIa}}yqIMMMMAAAqaaaQmIIyUMaA}eeaUqAy}EYeai}]}]ui}iEm]qQumIE]YUIiEIQuyE]maQUIIMEmeueE]MY}YAqmmQYyiAyI]uq}EuEEIAa}]Iie}e]u]yAMmYa}MIiAimQmUII]YuuuEEY}mmAuiAuA]AeeUemuy}}IMMMMAAAqaaaQmIIyu}AamamyQeu}iUiuAYyqYiAmQqYqyymuM]IUmQM}AyAimEmuUiMmM}EiIYeEm]muMYYuiAAuqaMi]mYummuIiQyiqAq}meqaYIuii]AyIiq]MI}iY}amIIqm]]YqYUamayQuyImaqQmu}yyIMMMMAAAqaaaQmIIyE}AA]qeqiE]QMaIu]aEUmqYaeeqa}mQyaEimmUi}m}aYMy}muiAqMe]yiEQYiyMqQqu}iAEaIeYmmqI}eiaqyAaaAQAuMAaqAAuuy}}ymeiuMYEuIQ]E]MqqAuImMIEiQUaaYimuyeeu}}qIMMMMAAAqaaaQmIIyEmQAmQmuIiYIiQemeaAY]Q]iuuuUIIAyUea}YMmyA}QaMqqeqEaImqQa]AEq]yQuuiq}}IE}QaUM}A]ueiaYyIiiMAuMiiy}A}}eYqq}qauM]QMa]m}AIME}IEyuIAum]UmQmia}iEmq}}}IMMMMAAAqaaaQmIIyEmQamQIuQyayIUyyUQuUiqQiuAEeYyUyIeQmI]IeUqU]]uqiq]mm]uaqeuieYaAmYiIEYYy}]e}M}E]eeayMiYYiEEaUiaaqqiimmYYq]E}EIQUuUEeqyEi}]IQQmyYy}AAE}mimuImuyuuIMMMMAAAqaaaQmIIyEmQAmaImQyemMUeyYYqI}U}yuymeIYU}a}qA]u]uaUYuI]EqMImqMq}m]Uqy}AYaaMaEmqi}quEEmeea}QMQIYIequEqmiyiUImyyAYaqamUya]qeIeY}eie]QmYiIyayiiE}IaameeuyqqIMMMMAAAqaaaQmIIyE]AamQumaYyQIU}eQaUAyeAayMmEy}MyQiMuMMAmAMYUYA]ayAuUi}}e]miQiuqym}iiyuemqIQemQMiMU]Y}mM}yee}iQaeAAmm]aaa}qAEIU}eiMamIaqyEIiAMIqaUAqmYe]yyya}yqyIMMMMAAAqaaaQmIIyE]qAmAemYyu]IiEm}qEq]EQaIUAAyqIyqIUMiIQuIU]iiUqmYaIeMAE}AQUayy}mYqAAy}m}yQQeiMeeA]YQMaYqiIUQ}Iui}MYAMEqu]aY}mIme}QYMiEmmueuEiaIiqy]A]ayaUUeyyq}IMMMMAAAqaaaQmIIyE]Qa}Qameey}]Qy}EiIQ]QqyIiIQ]YAauyuYImu}IAIumuqaeU]m}qAyeAQyyyUmuiMaMMeeMyqIYYayAYU]MqUm}YQImmaaIEem}AUmeuMm]Yqi}EyYyaqyiIUUMauiIuI]YMQyqymq}}uIMMMMAAAqaaaQmIIyE]qAMQeiiYaQYQ]yUYuIYiQ}IiaQiMUyEMeY]eMueM}qymaam]QE]aAuEeYI}Qmuim}MmaAuimYIiU}yq}EiIe]aEyuAyEIqyiAqieiimaei]}AmiyUyiE]muUYqyIAiqmemmMmuy]ey}yyIMMMMAAAqaaaQmIIyE]Aa}AamUEYYyYeiEQQmIeQeAaQQM}]ma]QAY}Yqu}aMYYaa}QuYmAEq}IYYy]A}mU}mMayu}E}AyEYqQ}Eui}}aeeuAMyYiMiqiyyIiUAi]y]EeeUEQYEey}U]uMQequYMAIM}iAea}}u}IMMMMAAAqaaaQmIIyE}AA]QEaiYiYYA}eUYeiiQq}IUemMaemmmQamuaqaaYu]eeaq]iymAm}}U}Uyyqq}qeu]Uy}yYyImu]}}qIeMEmy]MuEyAAeMiMMyyMeMAQYMUImMEQMm}uey]Ai}MaqEAMiYieyyumqyy}IMMMMAAAqaaaQmIIyE]qAmQEaiimEYYuiIQqM]Mqq]mi}MuQuuieeimIyMAaI}}UmeUYmmAA}eqem]]aqyI]m}mAimAQEYyQ}ymiY]UMeq]iUiu]}uqEuMEayQaq}]IeqUE}q]qEmYeyi}iqqEmYeMimuiQeuyq}IMMMMAAAqaaaQmIIyUMAA]QEaiiqIYYEyYaE}YeAaMEIM]Uum}]]]mYaiUiUEYeYmaeaAI]emmaUEY}YiAYAUYAEyIUaaiaAqUqyAYE}e}U]]iuaqIyIQyaeiEEqEMEuuaI}a]aimieEMIAMmAUMi}mUqq]a}}yuIMMMMAAAqaaaQmIIyEMqAmqE}aYyuMQiyuYqmyUAeAYQ}}iaem]meYqAuA}mYIm}uAMyAmQqaMqmMm]ymuYeYIe]u]qeayiQm]uqaMU]i]E]EiAamauAeiyeiMMiemuuaUuEa]Ei}uEM}mMuyQuyq]Eye}amqy}qIMMMMAAAqaaaQmIYyEmqeMqieQy]AYAiyuiYay]Aeaqa]}mmmuiieiAqyQa}UYuUam}I]MEmu}aiEi}e}ImQI]Ymi]}MMiyqqmEqIIiAa]meAiaI}]]YmYIeuQe}yYQEqIaMq]mUmyeiUiUaqiA]UyaaqAUmqyuyIMMMMAAAqaaaQmIIyEmQAMaU}aiIqIUeiiYqIYQquuAMqyyAuuEMmYaUuu]euMAMmyM}QMumieUQ]Iq]myuYqIIEqQAaaim]}eQim}yQyyImEiaaa}uYeIIMaimaaI]}eiIeyYiYiiQmmIiE}amaaym}a]Mmqy}qIMMMMAAAqaaaQmIIyEmQa}QIeYyiMIUi}UQqm}IqqIQmQmI}qMQuQY]AeyMEm}IQe}IeY}QImeqE]}QqyQMmqIM]aqMIEiqmmmeuaIiUmaUQYMeMaIMMEyEaiuiiAy}Uqi]EUmIIqqemuMUQ}mIIYMi}aMYeqyy}IMMMMAAAqaaaQmIIyEmQamQYeQiyIIUiyUaA]iEauEqeUyUmqmqqEyeEemMEmyYYmqIIe}qiaeaU]iYQiaMMIMU}q]UAaiQqm}qMqIYi}eMeYyemuemyIYY]qUaiY]]}uEEYIYIYiyYiqmAqyqQYUyMmaAEeq}}}IMMMMAAAqaaaQmIIyUMQa}qM}YmMy]uYiEe}Qmq]qIUmE}qMi]AeAmY}eum]aMUUeQMYu}eMm]iEEmuQymiEQ]ai}qeemi]Ea}UiyIQAuiieuMqyquuUQiQYmuImYyE]umEaE}qayeYem}YIiEmeeyeUuEYmyyyuIMMMMAAAqaaaQmIIyU}AQMAYmYqM]]Eu}Uaa}meaeIyeQIimm]YeUMiU}IyiuYYUiQyiUMiAay]iiieMiE}aa]y}qUIue]}a}mqI]I]E}YAuUIEEyUAmiYYAuUiYa}]EiqIyIIiQeUmiuIUmqyeeEYIiiEamq}yqIMMMMAAAqaaaQmIIyU]QA]q]yQ}IY]EYiQae}]eeii}AQIyMyuqAUyYImiqEe]aAmi]IuMuAiAEqqmaEaEE}eYm]iMU}AYmIe}UQeM]MiI}AAYUmqeueUIqm}UIY}YyUiyIEayY]ieUyQmUieEqEmImaiAEmu}yqIMMMMAAAqaaaQmIIyU}AamQMaYumy]EiemaaII}AmYEiMiMAiQMqQ}maq}eYeIqemYyqq]aIaYE]AyyueEy]AmEQaEueE]m}yMUymmAIiayeq}mEaeM]ymYaqqmQeMa}umQQeyiqyuEYei}QaE]memIUuUUeu}uyIMMMMAAAqaaaQmIIyE}qqMEYi]amuMeYammqmMmYiaqAQ}aeaQYQ]mIeeqUQymEmimQQ}myAyIiIyyiyaQMm}mEUeI]yiYAmauyI]mEmyIYMQIyaiIeY}]yYeYemQmaUyAEamY}aeAY}IIuyiUe]QymUuYMeyyquIMMMMAAAqaaaQmIIyUmaqMAiyQUY}yE]uQiqYMqueqIAe]}A}YQmYII}uIUqU]IEe]e]}MiImQMeqYYEmymyUY]y}UQEEm]um}yuaMQUmYIEI}AqaeaeqMQyy}aUQ}u]iaIUa}MauIQiQi]U}YeuyyEYmiqmuy}yIMMMMAAAqaaaQmIIyE}qa]a}iY}UM]E]miie}ia]amaIM]UQiqEqU]YM}uIqqMYuiiiQA}qaiUEeQIQaquU]I}mqiaMuemAyimqUyMUMqaYu]iu}q}eiIyyeqqE]iM]mqmAQE]qyyqai}iqa}eA]EYmQa}Emyy}yIMMMMAAAqaaaQmIIyUmaA]aYmYeAamaAmiaauMuqaiMMYyU}iqYUuYiQmYE]}yEEim]m]MammiIqy]]ayQaaqmAA}yaEIYeiuUeQiMUmqEqq}imIieaAM}}UiaEYEYeyiyAyQYqQuimaQmuAeYimuiEqm]qi}}}qIMMMMAAAqaaaQmIIyUMQa]Q]iIeuEYIUyYYEqyIQuEQ}MY}UaqeeMMU}iuE]QIIyae}u]MeEia}}M]}yaMYQa}EYiAQqm]yauU]q]Mi}aEQayyaqiAAYUmauyqMiMIiqiqI]qyqqqyiQ}M}ayYeqammemyqmqyqyIMMMMAAAqaaaQmIIyUmaa]UquYuUq]Yii}iAMY]quIIi]IMq}}]uE}Am}IMu]Ym}mmMmM}yMi]EuEYEAaY]qQyY]aIque]yiquiQqmUE}YQuQMeI}eaaI]uMqqIUa}AymEEQIyuUyuyMm}UiamIiImieiaemq}}uIMMMMAAAqaaaQmIIyE}qa}uqeYeU}yIAq]ieqy}qeaQiU}MeqeEmaIEYaEeQeIuIee]EQmuM}EQiEMMUuMYemiaqqyaAI]iam]Iu}M]iyAAamII}ieuYI}yAaMMUqyQAmEIQyIuayqQiIMUuu}uiiyEee]qmq}}uIMMMMAAAqaaaQmIIyUmAA}eauIeUEyIii}YQ]ImquqqIAIyaauaU}}y}aAe]IiUYaeIa]]eeeqMyUMM]}}y]QMIYaeEuimMee}uYa}MUqeqqIIEyayiqQMeie]aUm}EuqaEUy}qUeQu}M}muqqIEYYIaiYeeqy}}IMMMMAAAqaaaQmIIyU}aA]uQyQUu}yQYaEaa}}EqqiIEE}qaqEUQUMAammAa}}uEmeEYumuEamQY}}QqaYMAIyqMiMyiIiAquMaayi]eaQQAAyQaemY}IyqimUIaAyQEaYEI}iimu}yqe]IY}}AAuIEU}yAmq}uuIMMMMAAAqaaaQmIIyUmAQMuAuYueMYIUy}iaMmMQqIYE}Mq}a]quQmmiqAU}I}qAaQyu}muAm]Aeu]MIeuaQyMm]yMyyAiMy}eeyaIYMyiAAMYqamYaq}}yAaeEaE}uQmmIm}iy}qMIeAmamaU]AUiAemEAmq}uyIMMMMAAAqaaaQmIIyE}aA]ueuYeUEyQYqUaqmyuqaUeEYYyAmuEAEIYIyYAAY}mUmm]Ay]eeiQE]UYEEiM]uayQU}YeaEYyuy]q}AI]qaQaEEmEQyAImmMQqiqe]umAEayI}qmuU}yMII}MqeiUqAYEYqaieuyq}IMMMMAAAqaaaQmIIyUmQQMEAeYuyUMiEyuYqMiUqaqYeE}ymy]iMA}IYiUYMYyAammEaQMamia}Y}YaIaQIEy}eAqM]QImIqiuuAaMimyY]mY}i]qiAUumyMiqeYuI]ueaEUEYu]qeqAQmYAi}}amyAem]Mmuyu}IMMMMAAAqaaaQmIIyU}Aa]uAeYUuuYYqa]ia}IuQaYQeYIQEy}UAUiemyIyeYIAqiQuIuiMIiaiy]MIEyYQY]]iayAUqAYYEmUumEMyMmaU]yyAua}}Uy]Mqymmi]YmuuaA}aiAYiu}aAIiUyaIqQmmee]aeqyuuIMMMMAAAqaaaQmIIyU}aqMA}yIeuM}E]y]imIMYqaqamE}}uiIauAmQyu]yEYyeqeQyiA]qIuA}IMyIqeEUIuYe}emEqmYmMq}uuQMY]m]QUEIaEieYqQmqUm}AeEymEuaIYY]Qi}qMmema}yE]Eu}MemIAeq}y}IMMMMAAAqaaaQmIIyE}qa}uAaQeUM}Iqq}iqU}e]yu}MUMemmqeAUI]Q}qaIQ]iYaUyQQi}Ia]qMI]yyaaiUe]mQmUEYEYueiuEq]IiMiiUEu]yyaQYyeieiqIimAyUmuaMymiAu}AAUa}qmqM]I]YAUuuAeqy}}IMMMMAAAqaaaQmIIyU}aa]qmuQuY}YAiiUaauYmquumEE}a}i]qA]mY}aA]iIiimeiMa}i]QeEQY]YYqaUQmYyYi}IuEmYyQiEUEiIY]auUIAimymQQIEyAYquMQm]qUaMMi}MyIa]mMummIeAA}YMAaqQQa}}yuIMMMMAAAqaaaQmIYyU}AE}q}aQuaq]AeeMaqUy]}yEymUYmAy}mqU}]yay}EE]ememAuyY]MqEqQY]u}auIue]IMyyQ}M]mQq}qIeIyIiuIEqYmqamYmm}A]aAMaIYyamiIYY]}umumeQIQMm}Iue]IaeUieuyyuIMMMMAAAqaaaQmIIyUmaa]q}qQUymYAYyeaaEYumeIIEEiiUyIAIi]MAyuuYeM]aemAI]IMai]uQa}a]iUAeYii]yAEummQy}eeqaIiQmu]m]IQUaeAYamE]yieQumYEquYAMMUEeeQIQImA}}}myYEQ}mMeqyuyIMMMMAAAqaaaQmIIyU]Qa}aymiMAIYAumUaqU]qMyUeMmMEmiQqyiYYImeqeA}aQieMmuYYEeY]AAyu]qiE}E}Y]aQUMEmEAmuai]mUmiAqAUmaq}QMUEYq]uQieIIU]qMMQeiym}iummMiYaQ}myiimeYMeq}quIMMMMAAAqaaaQmIIyU}aA]qyiQyAYMeImii]}ii}q]UAU]muia]AQY]aua}y}IqQaYaqEyI}mUImyyuQqEmUu}ImqqE}EimeyAeQIIAm}mAIi]EEyMaqAyyQeYeU}mMUuqYeMYYAiM}ayyIqi}yYI]aUqM]mqyyuIMMMMAAAqaaaQmIIyE}AQMAIy]qeiYUiiEqEAiMAyyqIAy]QaQUIymEam]EA]yeQaaYuIyImeIYqQMq]qymUAm}yeMIieYiA}aYMQiaEeEQqE}uuu}]EM}AEuQia]yuq}IMYEiUQqiyYMyQMe}yYqmm]uMueqyy}IMMMMAAAqaaaQmIIyUmqamQE}UUyYyEYyMaayiq}qMiiYm}eu]]eEmIqma]a}iMUiQymaiMAmeAUYMyUyuimMMQmuEE}ammIm}qA]MYE}QQaIImmmYIYq}MMi}EUmYyimIYQQYqeeqyQeiaumeqYE]MQaaEa}}uqIMMMMAAAqaaaQmIIyU}aA]ayuQ}uM]E]muaQ}yEaayqE]IEequu}Q}UAmMA]iIU}mamimYiIeumEA}QIuuyaiYiueeQQmmMyyMqQaMemuyM]y}]Um}aMeiI}mMa]yIIuyaEam]eEqeAYe}AueiIyiYiQuq]iy}q}IMMMMAAAqaaaQmIIyE}aamQEmYyI]YuMyyQUQmyq}A]a]Y]qqAaYAIq]iAUYQiQaeeYaiIYIq]EEyiAuiUQmi]iu}}UEMiMAyAyMQiQQiyQqAIUyiIUUE]iYyIiiMIuEaAAqm}}QamiEu}YAy}IYM]IQ}UMmu}q}IMMMMAAAqaaaQmIIyUmaa]QuuYyeqYQI}Qiay]QqqeuiU}QUmi}}Mi}]qyEU]IiAaaMiM}qie]IeAYqYaAa}q]}uyEemEmMqmqI}]I]Uyeq]]mmA}Y}AaMA}uqae]yAeaeA}E}EeqMe}i]]eiQyYu]emm]]mq}yuIMMMMAAAqaaaQmIIyE]AamQyeiiuIMYyquaEUIAAaAUmM}MUaIqQEYmyuyMieYQQaaaAMMeMuEEqUiUmaUqeqmYe}QeIe}Eeyim}uiAm}UeAq}IQiMIqiIeYmiEmaYmUqQqyYi}aiiEQyIEumUEmeYa}aiMeqyqqIMMMMAAAqaaaQmIIyE}AAmQE}iYaiIQymAiAY}qaeqaMAmUem}MmQyyqmIQAM}AQeU}qM]yeuuYiyIU}yiYeyMyYeu]Ya}QYeEaymm]EeQyI}]UMmYEEaMUMyuiimYqmqquuImmaeqi]iMEIuaEIIMeqimEeuyqyIMMMMAAAqaaaQmIIyE]qAmAieYyUiIYyaEQueiqaaY]EEIEIeMiUuIqamQmIMIMEmUu}Q]eamqi]AIiE}q]MiIa}emUIM}Ymaim]Yi}QuUyiEMmyqiiqQ}yquuAeeYAuayi]aIE]}Y]iMIY]}QAIiYiayeAmuy}uIMMMMAAAqaaaQmIIyEmqamQYeIiYqyEi}uaAY}QQqyueUIEQm}mqQ]UaaAEUMyIQi]q}]]eEqIE]QyyummUMUYYIqeYqEmyeiUQumM]Aq}aey}}]uqqiEImMmEMmi]YeaqMa}m}EaIy}eMQAiIeAaIaUuq]eqyq}IMMMMAAAqaaaQmIIyU]QQ]AE}YyuqyEUyiyIIy]qeaqMEiuIu]]uumE]uu}uYmUAiUya]]eamQY]qYUyiImueYUauEuAeYqqumQIAmi}mMUAu]IyeuMu}MyMmMM]qi}MeQEaMIUQ}Yeaaiy]mmE}yYEeyQ}mqyu}IMMMMAAAqaaaQmIIyU]QqmaUeIiUMiUyieaQymqAeeuEu]aiaYqyiiAeem]iEMQMaUa}EmeAuMU}aYUieqqeQ]ae}qeumiIIuqyIamY]meQeQmqIyU}qeyqQyMEaM}]}a}MYiImuaY}AEmUuaiIMaMemiQAi}y}uIMMMMAAAqaaaQmIIyeMaa]aEqYamYIeMqUayQ}aAua}EEMEayyIQuiuAa}YqY]E}maAYQImMi}aEI]qmyYMUyIaiaYUaI]mmuqMEUiY]yqIImMIai}Aqq]qMeiMiYmYEqIMi]}]eem}A]ImmuqEAQ]eQ}YQeqyq}IMMMMAAAqaaaQmIIyU}qA]quuYyuq]E}quaaMY}quuUeE}YUue]UyMA]u}MUA]UmaiIQMi]Mq]Ae}]uyqI]uYIQUyIiYMY}yaeqQqII}iiuEEmMYeEUUqmmQuiemIYuEqA]MQYQQ}eMIai}yyauU]MiiiQmi}}}}IMMMMAAAqaaaQmIIyU]Qa]qUuYeYqIeEmuQYY}YqiymmEmuiqMmY}mAIeEyimmQ]eaAqa]aAm}Qyq}mYmmMIUIqQuQAQEiMuqA}a]IYmyYEyEmauaYM}yIIqaIAQemQeeE]]qyaYeIAQEYyqmimE}IaeeMuiy}yqIMMMMAAAqaaaQmIIyeMaa]quqiI]yYUyeQaqYY}}eIaMeMaiyii]UYYqmumayIMyaU}u]mAamUEIQm]uiMQyEyU}miQaemIQyYy}yIImmQYyM}YIeaEEi}IMy]aYyymeuAEyy}EYyyQmmI]meIQAY]EYeeia}y}yIMMMMAAAqaaaQmIIyUmaa]qEeYeu]]EYq]ieAY]MuYeEUmUmamamMiU]iQIqeYaUmaYiy]QAmeeQEImqaYeQ}IYUi}mmAiEMeIMyuiI]yqmeImIEaiy]e]YyiaAmIimmaaAeQiQyeaaAAyEEu]MyymMU}]aa}yyqIMMMMAAAqaaaQmIIyUmAA}qUuYea]yU}iEimy]uqiyAEEm}mqiAeeIQ]aYmq]M}ia]uYyMqEiiy}}YauuyAQ}iMm}EMammQQ}QmMum]AayIyUiqyiYyaiiUU}umUyYuqmMMIU]YuuUQQQ}QMm]}}ymaeiAUa}}qyIMMMMAAAqaaaQmIIyu}AaMa}aQUqmmaYuqaqY]UAuqEEUMyI}YQAu}eQeeqiAmyQmYay}MaIeUIImm]EaIA]QYYu}MmIEiEqe}e}QyymiiUI}mQIaIQqmmmeyaM}AYuymEUaIiaEyUe}YIyUiYyqMmEiei]eq}}uIMMMMAAAqaaaQmIIyE}aa]AImQeeQyUqe]QE}yUaiEAUE]mMyEmE}MM]m}qiiYEeaYeiMi]eyMaIUmYAeyYIEYU]mumUmiIaqmqYyYMQyEQiem]uimAM}yeAyeEi]iM}aMMyiIQemeiia}]qeqQAAMmUuaUa}yqqIMMMMAAAqaaaQmIIyEmQAMamqQeAuIaMeEaIAm}aeIIeuMuAa]mmUYuUuyAQ}iUIimaeiMEqyM}IEymIau]Ue}eIaeMqiYyEamqiEYMQauIIQMqMuIAUyiMUy}IeeIY]ayQyYImyy]YAU}y}aiiYyyAemMAi}}qyIMMMMAAAqaaaQmIYyEmQeMqye]e]]}IYue]AiI}QymiMumeqqIeYYiM]ueQAIY}qaYaqQImMau]AImEmayyue}EYmeIAA]qaya}}Q]IM}Ui}imUYeeAAYiQYaMEYa}Aqmi}YmiiYiqMYm}Iq}qyaQ]EiuAIeq}uuIMMMMAAAqaaaQmIIyEmQaMaIuYUqU}AmyIau]iyQ}umMem}MimMY}mIIqEIyi}AmemMAumEAqa}Ee}uImQE}MmmQ}MIUamIQqyI]qIimuEyIUIEA}aIAYIeQuaaUiiQEqAAmu]UuiyeaeYeQaIQyiyMamUaa}y}qIMMMMAAAqaaaQmIIyU]AA]qEmUUmIMQ}u}aiuII}aMqeYIaqaIYiQyuyamMyIYauaimMM}qIiy]yY}q]aqaQqIUeqiamaYym}y}IUmmqeqIEIYMmaiAmQmi]y}EQeyEqmEAmQI}qeMEAuYaUaqiieiMQya]iy}qyIMMMMAAAqaaaQmIIyU}qA]qUmIa}iyIYayQUYMYIyqAEIyAeyQYimYeiaqIUmYqUamIaEI}AiuMaqiYEqIUyQiQ}uyqAamQMayI]AmYAaUAqy]uE}u]M}}AyiUeiMMyAmYIQ]YaaaAAmyI}EeYiaAye]}YAa}yqyIMMMMAAAqaaaQmIIyU}aA}uamQmmM}EemMaAMYQAmQIIUMuAmuIIQMEemY}}y]I}i]yYUiIMeYmeqY}iaAQaqmA}eamUmiIU}MQAuIYEmuYEaiuYiUyAuy]MuqaQQYAimuAQiMUQeUama}EuaaeQaymaeyQi}yquIMMMMAAAqaaaQmIIyU}AQME}uYuUIYEyyuQqE]maqAQEUMQ}yA]q}iUiqqeaq]EMa]]eyiYAuAmmIYeuuuu}QIQumMieeiMqmq]Y]IAe}QU}M]y]i}MuI}I}aMei]Y}MmMIuq]iYqEQUMiQqiuUEYiiUiuMmyyyyIMMMMAAAqaaaQmIIyUmqa}qyeIU}q}UmyUiaIYauueUAQMqqiQYYuMEYaAUAMYAYaiMQQYyAmYqaAYEqmYYiAiMUqAyAE]iYeaYyIIEeuqqYeIAIeayaIYIyauIaMmQ}aAMUQMQQiyUUYmAuuuimA}EYuMemq}y}IMMMMAAAqaaaQmIIyUMAAmuiyYUqiIYi}iiIUmYaiIEAqmuYaymAI}uUiMYAUMiIemmMM}uEqMamIyI}uA]qy]Mu}UeIAieyiI]MeMYqu}UMYiQMiaMiuYAQmaaumIQMumAU]IIMqiIUmYMM}Q}iQMAYqAMmuy}yIMMMMAAAqaaaQmIIyU}Aa]aymYmuQmYUe]Yq]IEAuQeMQY}Ui]Amy]AIuieE]i]Eeaui]MQAe}qIqiUuuyE]AIMYqMQ]aiM]imQAe]u}qqum}iQiemuYEiemeYYIQ]aEuyeuaMQ]}}aUqm]meaYeI}aiu]}my}}}IMMMMAAAqaaaQmIIyEmaa}EimYuaQ]IuiQYq]IuqiIiaQMeYiqmQuYEEuyq]qiEMmUm]}}QEiUEAaYu}y]MiUYIImYIMMmmmaMayQYiuy}Qeq}eyyqqEU]EUumQIA}aEueMQ]Mqm}IE]iYyQum}}Q]AieAMeu}yuIMMMMAAAqaaaQmIIyE}QamA]qaEm}IYqqUiA]imAqyAEY}mYyYaQQmYQiiQEiyqQeaiiaMAEeYMEqIiIqQYeQ}]eimMIIiUmiuqQeIum}IA]a]yUy}MYYMAMaQyAiYI}uyQE]yI]mI}uYY]aueuEMMA]q}Qeu}}yIMMMMAAAqaaaQmIIyEmQAmAmeYe]}YAiuEQQmyuai}UmYMYiyAaeU}QyaMQqUyQUmYuAYImieUUMYIYQa}uAuiu]yEQam}AqimQmiyE]iIYuA]]}mIyiay}Yi]EmUMYUaeA]eiMMme]QY]AAu}MqIIMiamEm}yquIMMMMAAAqaaaQmIIyEmqAmQYiIYqyiYqy]yAImqqeqUIUyIaaQ]mm]}auqeIMyAqaeYMqi]EaaQm}YmmmyEyyI]aeQyUe]iiueUeeiYIuuaqqYu}mEUaqM}euYEim}aUqAEQEm]IiMMuAiE}yiQyeMM]}UAmuyyqIMMMMAAAqaaaQmIIyE}qqMayuiIEq]EyiEQAY}yQaIAME}UMaayQeIMmyeYYAYQQeuUYEyMAe]}EYmAumY}}AYyyuuqyaYAMyua}QMiImMYUa}iMe]QAIyiAyqAUi]Uim}EYIyyquI}yE]}EeyAAe}MieYaa}}uuIMMMMAAAqaaaQmIIyUmqamA]}mmE]YYEy]ae}MAQa]yiIiYAaAMeQmAUiQi]iyqeiiEIi}EEmyuMEImmqyYmYyUYqiIum]aA}uuAQiUIqIQEIm]MeMEQMIIU}iIQiy]yyIIEay}qmYQia}}yaMeAUiaAqe}iyyyyIMMMMAAAqaaaQmIIyU}aa}a}m]qQ]}uYe]aiyiMmaAmAAy]miqAQUm]mqUI]AYQMaaIYqiyMyy}}Ai]aqyeE}]y]eE}QamYqqyIY}IE}}aYEAYyiqeiMQmiAuuI]amEAiIEQUyMqyYIaeME]qMyi}YIA}}}i}}q}IMMMMAAAqaaaQmIIyEmqAmEmmEuqA}qyuMYUqIImeaEMMYQieuIYYY]Maay]uy]QmuM]MmQi}YMmAMq}}iUIAyQeiaEEimMauAya]Yqe}IYE}mQiqU]aemaeauqYMimQumQI]}aa}]MaqieImIeUe]IaqMaa}}q}IMMMMAAAqaaaQmIIyU}Aq}EymYuMYYMUuYqqYiIAaaiaUYQqaQqEi}Y]iYye]}uee}EE]i]MeMa]QyaimeE]}mm}}}U]Mm}}m}}}IMYE}UMMiIAIyIuAa]qYaQAmq}E]yyAYyyEyaMYUuMM}}qy]AmMi}Aai}yu}IMMMMAAAqaaaQmIIyUmqqMEQeImiY}u}uAQYa]YyqqAI]M]MeMyYQ]YUy]AeyyIQai}yAmYaiMiIQ]}qyeMUuYI}yQmaamQaqMIIYIYEiQAemIueyQqa]yYAiAIiYmiMeUI]emaQeiQIUY]YuqaEmmAqmQMeyyqyIMMMMAAAqaaaQmIIyUmaqMeAqQiqYIAiaMaQYmAqqayAQmmmyyYAy]MUmeqAumUei]}QqMeAmaQ}AIuiaMqiQIUQqYmUE]}eyUUyimaUyEAaI}IuaMi}M]}ymeAaa}}UeAI]MmqAia}eQy}EiiIAq}EeauUmuy}uIMMMMAAAqaaaQmIIyEmaAmu]aYmYMyQIeqQQY]aMqmII]]YqyaMmAYUUaa]yaIMYieMMamqauYMEqy}uiuuqe}}ayiqqmy]maUqMeI]]uEIqAYM]aEEUiIa]uEiUQMqEq}YQ}iQaiyi}ym}YyyimayAiqeui}}yyIMMMMAAAqaaaQmIIyE}aA]QuyIi}YMqe}eQa]yYaaqE]]meYieuaqyMm}]qaEyeAyIIiyMeA}]}iAYaEaIIII}EYiUEuiii}i]qui}U}eUQiYIeimUIye]qQ}YiaYy}]qAqqm}q}mQuMQyyQameiuIeaqaqe}yqyIMMMMAAAqaaaQmIIyEmAAMuAqAeY}IYaiaYMy]uAeEUa]mUA}M}IiIeIyi}EU}]]eeuAi}qmu}MiAyeqmAMIqIe]aQmaAmU}imAAym}}uquQA}UyaIqAQmMaeue]aIQEiUYuIyUEymQuqIIimQma]Iea}u}i}yy}IMMMMAAAqaaaQmIIyEmQA]qIuYuUimIqiAYAMIUAeQIMayaima}IiimUeAiMq}mie]AQ]MAEqEAuEI]Auieqy}ummq}aIiquumEIqIiqqY]AaIu}qiueUYE}aaeaU}Iq}iI}AIyEiqYiI}aee}AeIymQauQmq}u}IMMMMAAAqaaaQmIYyE]QeMaIeQuuyMYUiYiqYyyAiUAEQIuAqiei]MuUaiIUUm}MiQUYYImIq}qQa]YQeAaQiI]emEUmiiE}imAAeYIqeqIE}MIiuIqUYiqIyaeUu]iy}mya]mUqyuii]YeeyqAYiMeaaiQeq}}yIMMMMAAAqaaaQmIIyE]qAMqUmQUuyMaY}aQQYYQMeIy}aiQQ}E]AaY}emA}UY]eMmeQmUIMym]aey]qIiiqeeIeMuIMaIi]MeiMYEYIaq]]yQ}}yqUAam}Ua}yeQQmy]aaq]AIyIyuA}Ai]IeueqqIaYy}Ei}}}uIMMMMAAAqaaaQmIIyE]qAmqE}QQ]uIIqqmiaE}]Ma]M]AYAyy}uUEy]QaqiuUiU}amaqQY}QeUAeMI}AmeYIA}}EiqiUAmAqeiMii}IAeeUIe}Qu}uYUqIEMiUAmMyYq}AM}aIUIiAeqq]aIaUqaIIIeqEAeuyuuIMMMMAAAqaaaQmIIyEmqamQEmAmAYyaYiaQ}}Yy}yUiuqyEMeuyYmIMYyaMmEIUi}IuEUIy]y}qYMY}MemAayY}ymu}eM}meia]AQmiAiA]iMiaQqYiQm}EIaUAQimY]uQqmeiUmq}A]uy}ImA]UMMM}ueymyy}qIMMMMAAAqaaaQmIIyEmQAmaYmYieaIUYmMaEqM]EqUUEqyIe}}YEmYaeiEaY}yq}iuEqU]AiqqMeMM]q}UMiuMIYqIYAIiimqmYeMIIeaiE]iYuaq]]e}]um}mMmmMI}uuEmIiaQiqqyEyyi}UaIQIIauQeeqy}yIMMMMAAAqaaaQmIIyE]QamAU}QYEyiU}aEAyAMaAuUyMAmEmmqeyY}yMiI}}Ui]mmeymy]Quei}eYMyquyEYQMYIiAAyeiQuqmQmeIyuyemq]MAmiAUaMY]UeaMyI]QEamMuUmaueIYMe}]QiaYIeYAUumUmqyquIMMMMAAAqaaaQmIIyE]qAmaeuYa]Ai]euiaaIY]U}AMEa]M]qeEUy}eq}q]UeyYUae]mAMAQueeQAiI}uEqUMIAmaA}}Mi}YueaAaIiumUYE}]II}yuiEIimqqIaQIUim]AUuyeUyaaY}YmuqqYU}MMemAua}}uuIMMMMAAAqaaaQmIIyEmQqmaeaIyY]yEY}qaAYiU]uI}EeIA}yEiA}IY]myAQQYIIeiA}ay]iyUeAy}EMu}iiQyQiuQ}}My}}yamiY}yiiqiim}]]aE]aI}MeeEiiq]UmqYQMQIeYqaYqEiuU}uauQyae}aeay}yqIMMMMAAAqaaaQmIIyEmQqmaiumIiI]EmquaiqmQQuaUeuyUmmAYu}MQAqaaIQyMqaiuUi}QauUIau}]Y}Iem]yAM}UmuaiI}umu]A}YiiAemmYAQqaQYqMI}mAAea]Iuequ}iiu]mQQee]]}eIQe]Imq}IAeuyyuIMMMMAAAqaaaQmIIyEmqqmaiuiYae]Eeq}iA]i]QuQIUumiIiEAquyaE}]]]mMMQmaqu}]QqiIIU]mmYaE}ey}Eue]M]im}uquEM}MY]eauMmYMaimII}YuAayii}]aUqqUuQ]mUiIqmyi]iuEMMYYAimiimuy}yIMMMMAAAqaaaQmIIyEmqQmaYmMyYY}E}umaEuIuQyYq}U]Q]uM]]Qm}Uy}ME]m]yimuA}MUay}AmE]eY}]MuEI]aaQIEyMIquuEQAMi]emmQUMyQuIYAI]}ia}MeamEUuAYEAMUyqMmumI}yeAaiQymeiUumq}}qIMMMMAAAqaaaQmIIyE]qamQIuYyEQ]Ay}QiEAIyQuaAEe}YemaAmEIEMuiMuQIumaeyuuMqEai}m]IUiuMMMUyyM}yEaMYiEmuayYIImiieYeMmUuMuAMYmquQimYMe}eIM]Amm]aYqQUMqYaA}Qm}IYum]i}}}qIMMMMAAAqaaaQmIIyUmaQMqIuQyeyYEeumia}]uquumeEMIeyYeyIYeIea]Uuy]iiM}YQmEAmQ]EYMa}eEEIuyqImE}UM]}AaUAiEIYMmqIyMmIEymUueIqe}Ei]eMqmqiEMum]QmYAMuimqyuI]e]MQy}Meq}uqIMMMMAAAqaaaQmIIyUmqamaEmAiUAmU}eiaeuIEMqAiIQ}}AiAIe]iEIiYe]}I]Qa]uQei]AaU}iQYaI}yEaEm}uuaeQiYIqaI]QQIEamMQAImyUm}YMYiYQiyaQym]YuUMQqYMei}AIEiiyq}mMmYMEq}qi}}quIMMMMAAAqaaaQmIIyE}aa}amuU}qu]yqq]aiq]yiiqqAYieYiuMiIyQ]qQIiIMuymiiaQMAEmYmuiiuIuYe]EmEQyeAqa]Uimyu]iIQie]YiAMmqmmYMmmeeeaaUQmUYiiA]my}AyY}q]MAAiqiqyya]qayiyy}qIMMMMAAAqaaaQmIIyEmQQmemiaiMyIUYmAaauimAaAIqqiMaaQ]IYiAIqYeyQ]a]mqMuYYeMaQ]UmYu}uqIm]yEAyyAQi]}uyeIQMIIqi]QeyyAyeeImmMQUyaaUaYQymqI]uYqM}]EuEYMEeIEu}YiUeuue}}}qIMMMMAAAqaaaQmIIye]AA]QUuYU}]]UmuYaiyY}uaqIeAmUEu}YQYIA}my]uAYAQiQUqAy}AqYMqqmIuei}iYIUamqMAIYyiu]uq}MQamEqqMmyyqEAmmMMaaAm]i}yimYEeAyuUqmmQMyUueyYay}mU}EMeq}qyIMMMMAAAqaaaQmIIyU}aAmAImAiUMmQyamaayYqMiEUiaiYyaQeMMiEyqeuyMIyYeYeYE}qEaaq}AYAMaeUEqM}UmeAAMiAyamuayMIAqmuumyqQmaMEYMYUeqEUAyiy}iA]E]YMmqmqemUye}YA]YIYqUQmu}y}IMMMMAAAqaaaQmIIyUmaa]QEqIiuEYUeiyieaI}QyUUMe]uQaAUueyYAauQiIIQQieUIqY]IauMEi}UY}Mmq]YiQu}IiIYAYqEqUAmMaeQ}qA}UemA}eqYQyqiiUe}aqm]]AmyUAemMimIimiayQymMYuE]a}}qyIMMMMAAAqaaaQmIIyUmqA]qe}i]uy]QiaMayQ]qI}IyIeYE}aq]MQYeQemMQQyYAeUeY}Y]AiaemQyA}aieeeMUyeYmQAmQAeYyUUIYaiyaeyyaUeUyya]YmuQIQIyQQmaIqMm]AyeMmu}IM}}}IeiEYaiymqyy}IMMMMAAAqaaaQmIIyE}aa}y]uUaYyyAYe]iiqYEeiiqmm]AAa]IuaY]MeaiEUmQuiaQiUiMAaYqQYiuieqqMIiamm}]aa]eMeIyQiIMymeiQYI]aiUE]]mEEmiiQqMEy}aIUIiYQaiUuemyYmUyUeME]}]]i}}uyIMMMMAAAqaaaQmIIye]QA}euaQu}u]UiqMeqUmeymeYIQI}aiA}YE}UIa]qQ}mIUeQu}}iYAma}MYyIyqqq]IiAqauQMI]uiuAie}IQIiQAq}]u]mmqyE}MQiEaQEMYAmMQQII}qeuEqamQi}eMEAmmY}qMi}yuuIMMMMAAAqaaaQmIIyU}aA]qYuYmm]ieMeAaa}IaYy]iiYMMmqAyE]}iQy}ae]iy]ieMqMiuIqEMUAIMeaeAYAyyAau]ueiIimimYiiQUqiQe}MyUuY}Ey]uEuaeYM]UimAAQU]uaiUii}ieq}}Aay]eQeeMa}yu}IMMMMAAAqaaaQmIIyUMaa]uquIe}Ey]ueiaq]]Qaeuyme]mIaMuie}mUqmqaaMA}e]}]I}QmyAiiMMMyiQYMI}UYuUQEamEquM}MqIQA}]aA}mMYyImUAi}qeQaUYmuymeAEUYIauMmye}EaqAUqi]iUmqui}yyqIMMMMAAAqaaaQmIYyu}aEmaimuQamyuIuAiE]MEqeaUQ]iQIieEyQmEaqqy}]ie]e}YYi}qQieayYiiai]YMiMMUu}IemmYAymqie}yqmyyqI}}myMAqIMaUeAmayy}UeQquqyUYmaY]EMIUqmimeiYAe]qa}}qqIMMMMAAAqaaaQmIIyE}AQMA]iQyyiYAUmqQqmYUQyIImM]MUe]yyi}E}aeUMmMEmmmIEuMmI}U]qEmIUiIQaYmaauue}MmeuieqAeMYI}iEqaMaEyYQyAMUIuIeqQ}Yeaey}mI]ayQIYeYEiauqAAMAuai]euyquIMMMMAAAqaaaQmIIyUMAA]q}uYe}EmUya]YuuyUQqyiMe}MMiY]Ie]Muq]QQQiiAim}Mm]EmqEUMAMmyqUI]Miq}uAq}Aiq}eUuIIII}aA]AqYEYaqIM]IaAqeiiaMMq}M}AUiyQy]}q}yemaiEYiyMaqyAeq}}yIMMMMAAAqaaaQmIIyE}QamEY}IUmimQu}UQQmYuQyuUEEmimuyyaa]AYeUeA}I]meiEQA}eImumyaMAyiq}Ay}UQmMMUamUUumumImY]q]UAMMM}uiuEYIaquMeYyIuEqIIyQImQiA]QMMyyqYEiQmaUyq]mqy}qIMMMMAAAqaaaQmIIyUmqa}q]eYu}}]EYqmiq]]MQayiEEMMqeUaMUmiUiIQyqMMQiaA}YMeAa]MyAmamye]Y]yaAu]UEeiiueMIAMII}ieeUEIIAaQmiMYEUmqEYa}aMaaIuaiUIiyA]iMeuiyQQmyIiaMQmq}}uIMMMMAAAqaaaQmIIyEmQa]eqaAeMq}AIuQamymUaaUEeE]YYeAQueyYiymEiQi]qiQaQA}qM}MqAmYUeeIUQMYEUiYaIeiEqmUQuYMY]}iUiAimIqeaYEIamqQEYeYE}amEmE}aayiqMUYQEiIQ}aMMeaQ}mqyyuIMMMMAAAqaaaQmIIyUMaA}qIeiE}QmaIyQaaEiUqqqmEU]iyyiMe]iaAaaQeumMqii]mQMaEiyUYay]Q}eMEq}eaq}EqmMueu}UAuimAeAaMI}]iuEAQQ]}eiUeeAMYMaYA}IMYuqYi}}yUUyImIQIAUq}Emq}yyIMMMMAAAqaaaQmIIyEmqA}QiiQuu}YAeiiaaeyu}uiumUM]uqyeUYIYauiUuY}mMeUY}aMqEmia]IYYqu}MQu]}AuQAaeimAai}iaI]AeIiyu}iYmUymE]AyyaMQU}EuyaYM}mQeueAAeImaa]uAiie]q]YeqyuuIMMMMAAAqaaaQmIIyE}AQmamqAuMmiQIeQqQeyuQqae]IIquiUImUMQaaYe]]YIemamUUMuQq}QAYyyMauyqY}iuqEYAiiQmaeqeeYmAaIumyY]]}EumqImUyyma]]QUqUQUaYqamAYEamQ]mAQYMMAQeYyeuyqyIMMMMAAAqaaaQmIIyEmqAmAimaEm}MUu}YyayiyQqq]eum]eueqmy]UEm]eUUiQ}aay}uMAyquA}uM]ieeA}]yq}yaMqmyQMimqyQMim}m]M]meYeuQ]MIeUu]EUqIeeuQMYm]aIeeUyIYIam]MIAMMUiaieqyyuIMMMMAAAqaaaQmIIyU]Qa]q}qQyEqYUiu]a}Y]uquAQmE]]E}QmQa]MaquEyMMQymQmyI}uAi]QQEmmMqYEQ}yeMyE}uIYua}eQ]IM]AaQMEYmyQaqIMa}EieYmiU}}MqaMYM}AAyyUEaYq]qMyaQIeYqMMeu}uyIMMMMAAAqaaaQmIIyEmqqmaYmaIEq]EMuQaUqyeqeuqEIyaYyiU]immu}]]yiMuUmYeAqMaMuUAUym]EeeeM}}quuymYiY}ayUeqMMY]mmIem}UIiEaQMI]Qi]ieMMqEqYAU}YYQiqamMI}ea]M}Q]AUiQYeq}quIMMMMAAAqaaaQmIIyUmqA]aieY]QyyEmeaqEAiEAyeqEyieAaAyEUmeaiEmMIie]mQQAqImiiUq}iyI]uMAYAiquyQEqAiU}muQiMiQauEQaA]EQ}eA]AM}ye}aQ]]}}eAIQeI}Ay]yQUYQUmaiyuMMQqaamq}uyIMMMMAAAqaaaQmIIyU]QqMQi}Uye}]Ee}EyqmIUaiyAIQiIEaq}Iqi]MymmMAMiymUqaYIEmyMIEyIuYi}MquIMuqAuUA]meai}qmiYU}mIEe}AUeA]qy]YuuYmQ}yyEeEMmIyuqaIiQu]EEaiYQuYiQy}AauyyqIMMMMAAAqaaaQmIIyU}qA]eQiUqA]YE]i}qEMMYM}yUiUmMaqQYmEyAyyEyq}yuUe]aUqYUIaYIUqIyiayUumiaay}YaE]q]}q}mIMUu}eAAy}UUyEu}}]QuyQaYUMeye}EU]YyAyQEqyIi]e]uYayAmiQqiy}uqIMMMMAAAqaaaQmIIyU]QqMIqmImYMyEmiMuqamUYmIaMEiMqqeAyA]yAqEUEMmUaaaIA]iIEiMiI]YAyqQqeqIaEm]yMIY]EaaMqIM]MiYYUuIuuyUiI]ieYq}i]yImQy}Yi]imQmIiYMmUqaimYMMiYqiUiu}uqIMMMMAAAqaaaQmIIye}Aa}amqQeQ]yQeuIaaIyaamuAE]MiiaQMQe]YQequyuyYqeQum}iuIeiMI}mMMeE]uUiii}EeYmYeei}}AeiQeeAAAQ]YiqQyqY]AaaAiQQmaYyEMe}iEqeMMqEMAMy]QQuiiaa]uiuyyyIMMMMAAAqaaaQmIIyu}Aqmy}qmaya]aAu}]q}mmyiMIAQYAmyqmYMi]EueuEMIaEeiyuQiYquqAeYieiaYUUQMYAuUmau]Yaamqqyy}iyA}yMIqeyqmEAyyeieAYeIuamiMQ}}U}mQuyeiuuam]AMIeaqyaeq}quIMMMMAAAqaaaQmIIyeMaQ}]}iaYeqYaea]aAUyeAaUueeYyUqQAUiIUyei]}u]aYmeuqQYeieiqqQYiyaaA}IIquyaIMeimaeq}QII]M}AU]Yma]}]YuQ]]]qIeu]iiE}MM}uy}MmmEiAMAaqQQAE]ieauQmuyqyIMMMMAAAqaaaQmIIyU}AQmui}E}uI}i]qYUyU}UYqU]iqYuuqaiE}ieAeyYqYM}emu]m]Y}UaY]YqIIU}iMae]UYqiuAAiQqi}uEmiQAyqQa]]qiiy}uaMIEeqAeq}U]qiEq}I]]aAM}UymUiQuyAIEi}mUeyyuyIMMMMAAAqaaaQmIIyE}Aq}Qi}Mque}YqmYiAYMYqmiqEU]YMyu]EQiU}}AqQi}IIeeyqyMAiyUq}AIyUayequYEMuMueEiYyuEeQ]iQeq]YqMy]aqauI}MmMq]Mei]m]uqAM]iQyu]aqI]EyeqAQqiMiyAmmuyy}IMMMMAAAqaaaQmIIyUmAAmQMyQiUayAYmqmAI}}uyuYiM}AEiaMIeyAQqU]aaimea]UAumEIaMUAiIuimYeUMIMiyaQImYiEi]q}AiAquyAiEYeIeEUmq]YE}uAeM]]UuQMmmYUayY]mI}}UeqeiaiaiaQEmu}uqIMMMMAAAqaaaQmIIyu}aA]eAuImMEyMUuiqqmiUqiyueMMIEqamiUYqIqaYQEIaYm]Imi]qM}AQuY}aYmAeQ]Yyi}uUqE]aIyuemIIAemMQUAm}u}}eiq}]QqmaUaymUqEUI]]iAuUeAYieQuq}i]IMU}UMa}y}yIMMMMAAAqaaaQmIIye]AA]qyuQmAyYEeiiiyQ}YqquEaAY]eiAEUMmeq}]UyU}}EeYuMQ}EAeQyeQyMAmiYMyIauqUeQaYuUemaiAyMMueYaImMueaQyaMa}aYA]}I]I}IAya]EQeeq}mmyumIIE]YaQq]QmqyyqIMMMMAAAqaaaQmIYyu}aE]QmqYYqu]MeuIqqeiiAiUiMAIumyyqmEiYiiqEqAy}yeQyIm}qAua}EYYy}yQemI]YUi}aIiYUmuYMiMMmAm}]Q]M}IyQeEy}]MyYI]eIuEuIU]UmaqyaqqiImmmaAEY}mmmUmiy}}qIMMMMAAAqaaaQmIIyUmaa]qY}QiA]}MiaEmeIYeUeMIeMYYAyeqqUiUayeeYQ]iMmQuii]aAieEmQiyY}UimUmMUqQyAiYiiiIMQAMYEq}mmy}QEmMY]MiEau}A]Q]iUeAM}IIEuquQuqM}maQuiiiMeaYmeuy}yIMMMMAAAqaaaQmIIyUmaA]]iqQiQMmaE}eai}M}Ay}AIYmEuiAY}QIiAmm}AMYQuaeEaUYiMmiMUYI]MmIAmuyqMy]YiA]mquQmY]MMmayqQYIU}yYQyMIE]aeEYiI]A}MEYm}mqiIe}Iy]}a]}MqiAQauUa}yuyIMMMMAAAqaaaQmIIyUMAA]}MyQiQu]uMyuaeqI]}q]IIuIi]iMEMU]]EiQ]UAy}Aii]myMaMe]AAAYeQueMuQI]ymYaiIMyiua]AMM]}m}YaMI]iuAIEY]MEmQAU}MII}mAu]iIyiMQYeiI]}uyqmmi]}eqi}}y}IMMMMAAAqaaaQmIIyUMQa]aU}]aAuYQe}EaQu]EqiuqMY]q]iEQIa]Aym}yamMUimYyAqImaauyeQY]QmMeIMYEEqiyaEY]m}Q}EmIAAiAyEMmmQ}AAQUMqqe]e]YIiuqaM}MMQEqiYAe}qUiiIuqimimqmi}yqqIMMMMAAAqaaaQmIIyUMAAMqyuYiQumEyumayU]M}qauQ}mQiiEQiYmuIuayqMym]e]}aUIiimmUIyymAqeaQ]]eQmy}Qi]eeqqm]yiYAyMaYy}iqae]uMMaAaUmUA}YQiiIYymaUy]yyaM]}aiUYimI]qayi}yyuIMMMMAAAqaaaQmIIyUmqa]qYuQiq]]eYaayqm]Qyy}aaQIumauAUa}UA}}muIYMQia]IeI}Aem}IAyUEiIUum]}}}yqaAYeYqa]UqiQuyaIAEMuiqMEQi}YqaMm]}]Uii]IqE}yq}quYai]IaEIA]]aQiEAay}qyIMMMMAAAqaaaQmIIyE}aA}AieYe]ImEmqeqAI}Uy}UMma}UEae]EaiYAqEUuQMMeiiMEQiMImqimQYMyaUYYM}}YeeUIEi]QqqyiyiYea]Aea]}eiQEAY}mqqYaAq}yaiiAaa}]AaUQeEIUyyYqAm}MQyUQay}yqIMMMMAAAqaaaQmIIyE}QamAEe]qAUYaU}}e]uyuyi}YaU}AMqUmQAy]ayuyyAYmAmYqyyIIYmEYeI]aqaiUiUMmUyi}AeYa]uqy}]IQEiUaauMQq}qyiA}eQqiEiI}myyiQQ}}yeiE}}IiiuiAaEyIEUyU]i}yuyIMMMMAAAqaaaQmIIyUMAA]qyuQ]u}iU}ymeqeI}yi}AaAmYMyaEAa]eyqueM}yMemaAmqYUEieEUmyI]ayEyuIuYmq]QEYEYyAimmMM}yUIumYuAiUaMMIIeqqAaMYUa}aMUA]}YmEeyAIAyaiqYUyEYeuIiyyuqIMMMMAAAqaaaQmIIyE}qa}ae}iEMQYA]queemIuyi}QaUyQIqimAqYQeae]uEYIEeUqyqYiAqiM]A]Aq}qAYAmyYyAqAeYUqqqMq}I]MuyQeEYe]qEuEQ]]MaAEiEmMyiIMmYyAM}qIqQ}aIuemYEiAQqmUi}}uqIMMMMAAAqaaaQmIIyUMQa}yimQuaq]Eaai}AEIyEeayaAmmeyQy}UIiammuu]]iMaQeQyImEq]Uqu]AmiiMeymqQe}iMEYuiumqU}mQeuqAQyYyqiMA}uimyeMaUEmmqmAMue}aauEyqimiAq}EUEYeieaea}y}qIMMMMAAAqaaaQmIIyUmqA]qMy]aqAyEiiumiqYIyiEAE]]AMqaI}IiMeeYum]yeEaeMuEyMmeq}uAi}YqmII]i}amIIeMmI]aa]UmMaUyUau}]q}auIqQM]]maiAy}]EaQIYEmuqaEEIy]iQuIYUI}IU}UMa}y}}IMMMMAAAqaaaQmIIyEmaA]a}uYUymyAequmqUy}ueiqAAiqUaE}qumyUaa]}EMQmim]}mY}Eyi]]YIUyamUU]IyuyI}em]uMqY]u]ImmeMyQy}aeiI}]q]mQuAAYa]QAyEEmY}EQaUYmEYa}mqEYamiQqYUa}yqyIMMMMAAAqaaaQmIIyUmaa]qU}Yey}yEYqMeiuYyMmYQAQ]A]iAIiyyQAqUuu]MMYmUuYyYYeiEUeqYeyqaAUyyYAiey}IYyUqqyEqyAI}QYYayMIqYiuYmYuaMeYYYqaiUAIi]YQ}iieUiEeemuqyMmimIuiy}uqIMMMMAAAqaaaQmIIyE}aA]u]}aeEu]EeeyeayYQqmueIAmqmi}EIQ]M}iMaMe}AAeQuM}iMMiUAyqiu]m}m]YMEiyyUaA]eIey}mMiQEaQIYEmUqqaa}u}iMaMAUyi]YyMMMQY]Qe}uAu}AmqAaYumA]qYuiy}qyIMMMMAAAqaaaQmIIyU}qA]qquQqMemUyaImAIYYIi}eiemiayMEuA]aEuqAMi]iUeYY}MyyIeyM]iiiiqqQUmMEUam]yMYqm}ymaMi]My}IQ}YYmiqqQYyI]yAEQq]UY}AIQqYAyaMyqyYIYuqyaqyEQuuqay}y}IMMMMAAAqaaaQmIIyE}qa]aimiIMu]u}}]ee}yYIi}IIqya]quYqA}UEaeQEMiiee]IMqIeIiu]iQIIImuae]YQi}IYyIYmeqAYaqI]EyEAaUIQYqEyuqmU]qEImMYMYyaYA]YaamQAQyiYqyMUQqMeQyE]iy}qyIMMMMAAAqaaaQmIIyUmaAmAQ}YQquMQiyMeau]AiimuIUYQEqyEaI}]EmQUyUM}IeaIEuIiAeuUY]}MEuQQ}YIEMmeIeeYeeyyimUMq]mmqUA}iA}YeE]]UM}MiYA}EieeEuiY]QiyUqyMEeyEIQYmmQuyaay}uyIMMMMAAAqaaaQmIIyUMQa}qieQaIq]uyuQeqYIaM}iIEQi}iaQAaeiqYeqmYeiE]eQqYAyUMeI}u]Mmyiqq}AiuEemMIA]uemy]qaIQEmmQeA}mQya}Mm}y]}]MY}MUQeeIYEmAQ}uAMeymeuAUIaIIUymqiu}}qIMMMMAAAqaaaQmIIyUmaa]aqyeEMiMUeyIeU}iaiy}YIEIauaYe]AYm]}MyMmMMMaeMMiyUMa}]aYYMeyiiAeiq}}iMQAYUamQI}qmmemqE]II]u}MuEY]EYqEAemIIqimMae]IAiUmiQmyiu}yAaiMUiyMauyyuIMMMMAAAqaaaQmIIyUMQqMAUmqimQ]UiuQmqY]Q]myemQ]Yiaq]IQMMe}}A}qmuImaMQYiyAea]eq]uuyAaIY]MemyqqEiA}yyii]mQMaMqyAyaqaU]EUyImu]aUqYuaiEMuq]iMyUMUqI]mu]IAEiM]yiEiy}}qIMMMMAAAqaaaQmIIyE}qa]qQuIe]ImUya]UuAmeiy]AMMm}QmQYiQ}aYqYQeEiAAaYuI]IEi}M}aE]QUi}eya]eAuAaQa]aaaiYi]IUY}}Aq]YUqey]iiYeIqEEmAIeqeUAym}IUieAAImAYqAyMYIIY}EQiyy}yIMMMMAAAqaaaQmIIyeMaA}ayeQa]M}E}mQeumYy]}iIiEmUMaA]aYyqQ}iuqQmM}iiEUUYEea}qmYY}}}Yy]mIYqiaYum]a}eA}AUMaEmMYiAiYEqUUQIm]]}IEaAiMaiaE}miUquqeqyyqme}AYaIiee]Qau}yyIMMMMAAAqaaaQmIYyE}AUMAEiIm]]yEYeq]AY}A}myqEmmqMqUEmA]eUiYuAqYaQmYQAiyeEqYuIIIUeiyeU}YQUyaAaAma]uyii]MUmeEAiqme}eqeeemaMmeMUa}]AyEIYQ}AqieIQYIYE}qI]Eya]qqQau}}yIMMMMAAAqaaaQmIIyeMaa]uAeYuiuYUMy]ee}YyyiMQMI}ImyeaQ]MIimMiEEMuQaiMqQIeMaqYiAmIiqAqiYIqaqiaIE]YmyyiqAMYIyuAIAYMui}qaqy]MaYiaYMYQu}Ey]miQ}YQQYIiqaYmaIYmUyIaiyyuyIMMMMAAAqaaaQmIIyU}QqMAMiMaQAiYqi]UaiyY}}YuAe}yIqiiIQyUaiiaE]IAIieIuAyEM}YM}AIYYaaaMIiiI}aAaEmIUaiMa}IeMuYQaiMuU}Yaae]}u}AaYiyUIuEIi]]]q}qEm]iEuuIMAeIeYqUYau}}uIMMMMAAAqaaaQmIIyU}AA]ayiYUq]}EueAmay]E]au]IIyQyyaYE]iM}aMU]UmymamIamIUMiIeMAiyIqaAyAYAamieaeiIIuq}EeiAQmyAAu]}emUmAYMeU}IE]]mmY}aAmaYiiqaayMieAuEEayya]um]a}}uuIMMMMAAAqaaaQmIIyUmQQMEIaaMmQMmEuimiu]e]mIYaaIqAaQU]ayUAe]YAmYIaaaIqeYeImYmaaYuYaQAMuYieqA]yiiMu}yYyeiUIeqYYA]}Ya]]IMMueeMiYqiuyiiM}ayQUeUYa]y}eum}UUmEQiyuiy}u}IMMMMAAAqaaaQmIIyU]QA]yEaYeIuYE]qEaEA]}uqAYaQYIIqiamY}mIe}iiU}]Yammi}Y]eiyIIyymE}Qame}iI}mm}E]qYuIYmAMQamyaEIy}Ye]mEUMQYqUMUUYUamAA]UYYIaieaQyYEmiuMEmeUyiIiy}u}IMMMMAAAqaaaQmIIyU}aqME}yMq]QmeIqUmeMy}}mueA]MaiquImaIQ}eyYEaIeimaYYIy}MeamYA]AQ}iEI}mAQq]amAYyeyq}yumQMiqiAI}Q]i]Eey}]MmII]QYeayME]E]yQ}MuImY]ymeiqmiEeaIUayyyuIMMMMAAAqaaaQmIIyU}AA}uIiYeEQ]EYq}auYMYyymUiAm]]quAmiiY]}IAaE}yEiQeiaYMAmq]UiiyUeAqeUI}amaaqAmAqayiuMmMmyiqQqmMEeiii]yAuqIMmAmqiiEAaUMiQuEyYuiqmuYAQyiAmamuiy}yyIMMMMAAAqaaaQmIIyUmaa}u}aa]muYAUmmmeyMayu}iIm]yuieQmQmY]a}]aI}}aeUqu]IeMiayIYi]yqaAuQmImqeAiA]aiuYIIamiEmaAAMiIaaMEAIyMAmEEQQmuIiuIQA}iQuYYaYIyQaEAYiiMauEeayyyqIMMMMAAAqaaaQmIIyUmAA]ami]Qq]}AUyyYU]YqmmiYMAmqEqEuQyMaAi}uuM]ImaeEUIYuMai]EEIyEaqQUA]QMyyqyA]YA}qyEaimIqYYEA]yu}qIu}}me}meiA}IqyeAQI]UQyueEUY]euyqAyyE]yUUiu}yyIMMMMAAAqaaaQmIIyU]QQMAMqaEmaIaIiEmiy]mIyMiEY]mIqayeM}IYmI]MUyiMmYqYuYUYaAAQYmQQuqEIYYeYeIAImi]qyy}QYimE}yaaImy}qmiIEiUuaqMQqYAQeUQEy]}qyYYeeiYQqeiqiIe]}UUayyu}IMMMMAAAqaaaQmIIyU}qA}eue]YyyYQU}UYeimemmiuMAi]]yiamQ]MU}}yq}I}EiUa]]iuMmmqAe}EYqAQQemAQuImEmYYiaaMaqiYEmUYyUyIQeM]uU]mUiymeQMMIyaQEu]aquII]M}uIqYQQ}IimiEIayyuqIMMMMAAAqaaaQmIIyUMQamEQuiEeiIaE}}mEMYMyymIaIYAIyeEAQieYi]QYaMyImQUmuIEiiiqEIMIeeQaiy}YmeIAqAY}aay}EaMQ]imQqM]EQeqMIYiaqqMMQeMYYemMaYMuQmAMAiiY]mIu}IMmQyi}ayyquIMMMMAAAqaaaQmIIyU]Qa}uEu]aay}U}m]au]mMiiMeaIMIqiEai}}Mmyy]Eq]yUaiiq]iIAa]uMA]AyaQQMI}YiaaAqaY}ImY}uAMYYa}Aq]YIEiuiUQMEYaIaQUmYaeuEamyiaeIMqYy}qiqeAyyEia]miy}u}IMMMMAAAqaaaQmIIyUmAA]uquiUiiYAyuamuYme}my]aUMyuaaMUM]YQie]iiiEQemMeyiIemmEeAmqiqaaemmIieyAEA]iMeQiYqIMYqUaeYiMeqq]iUmAUiQemIMiqeEI}q]mauIaueIyeuymaiiAYmmUay}q}IMMMMAAAqaaaQmIIyE}qqMYUq]qaq]ImqIUu]y]yy]i}u}YiaiaiUmMUayiEy]iuay]ayYIEyIMmM]miq]MaUIEEiQuam]UqaA]}aMAU}]iUAymQaM}uY}q}ymMUmiEayiUYMIqaaUI]YimieAyiUIAei]IayyyyIMMMMAAAqaaaQmIIyUmqA}uimaEYiYAyeQiuYyyU}MeaUYe}mMAi]M]]mUQmqYEMmaM]amiMauIAU}}mauiIiiUauuUmamEA}M]QUiAeqUYAAiEQeEyiEiAau]a]uMqAiy]EQyqquIqq]]EUqYmaIMIeiAiaq}}qIMMMMAAAqaaaQmIIyeMaqMUYymaeuMU}mAua}yUIaaAiQiqaqQY]UYUayIm]u}AQamAQiIYeiQyuQiAmiyUMQmmuimIim]eYeu}QEMuMa]YEA}qmuyiiY]aieuEuMi}Ea]Ei}}}QeIAYY]ueqiaQqmmUyqAau}uuIMMMMAAAqaaaQmIIyE}aA}yYaUQyYYAe}iiuYmiEamaEQYaqyQiQ}iq]eAiIm]yeiQe}YI}eaUIaQYi}iEq]]MMImQ}iiiQQyqmmumQUyuAiI]yE}EAMUyey}AAaMYUq}IAEeMAmm}QUa}MQmQ]eUMIY}I}e}}}uIMMMMAAAqaaaQmIIye]aqMuMyeaaaYeYeQ]QIimIauaAAI}qiqEEMymyiiaqMyaQi}QAeYMA}Aei]m}qeeQqEMMAiaAQaYamqAUQUm]MeMYaA]eQeYQaQYqQaYiiI]]QiiU]umQAqYMYa]uY}}UiYiIeaiAiy}}qIMMMMAAAqaaaQmIIyU]AQMyMa]}uyYYymMU}m}EE}UAqUMmEqi]m}]ImqMQmiiyimeUa]iYEeyeq]m]EeaYam]ieeIMUImQ}eUU]YiaYiaIAIyAqyMQMIyAimaaeEyuIi]Y]}mQQe]EaYYQ]iAamEMaYqyAayyyqIMMMMAAAqaaaQmIIyU}qQMiIqY}mu]emau]eYIMm}YmAYmQAqeUUyi}UuMmeyYQqimEEqIMqmMamMmEMa]Y}EYu}imYmmi]Aai]}iYAQe}yAMmQ}e]QmEmuAiaMY}]YamiMqE}iEueuUEyUYyeYQuYmieUei}yyyIMMMMAAAqaaaQmIIyUmAA}qauIUqU}iAqm]qiiam}YaIy}QIyEUm]mi}a}MeeYiQimIE}IImqEAQe]Mu}i]Uu]IQqaqyEiEyy}qEymque}aEq]aeaU}ME}QEymIQ]iAyyiYMuyaQeuqaqi}A}mMQAyMiy}ii}yuuIMMMMAAAqaaaQmIIye]aq}YMqemeeYQeqe]]m]UyyMyqymyMqmEiY]]mqaiqEMi]e}}MQI]QmYMQmi]]uiMqi}qUiUyQIIyumMQqAIIiuyiYe]qii]YIQyqAe}MQuyQImIq}AIIayE}]YMQmuQuuQ]MemAEi}yyyIMMMMAAAqaaaQmIYyUmae}u]aiEiYYeMymQeUIaeyUQiqMYIqeEMQYYM}MqiUm]}eU}eMI]Mu}QaMM}}i}YEy}mQeuEMEiqIyu}M}iauaqaAyyAYeMyI}muyqeiQ}i]EaI]]IYIQqyyQQ]}YaaAAYIaaaQ}ay}}yIMMMMAAAqaaaQmIIyUMYqMUmaieIYYE}iMQuUIaEyEqiamIIaUE}QiY]}maye]mMeeMeMI}MuMAAM}}MymIeYm]Qeeu}EYqYyE}}}iQEaQaQYIQYeMIi]}uiaeIQ}y}UqYM]YyYQaiIQq}mYaqqQyiAQaq}ay}}yIMMMMAAAqaaaQmIIyUmAA]eQqYumqYYiaAUuAIe}mIueEiy}aAAaQIAaaQqAQIQaaqAAQIAAamYmEiMaqAaAAiaAaaAQAYaaaaQQEMIyiMUuyiQQqqaaqIQAqaaQaiQaaaMUy}iy}aAqQyaaqAAAQiAQqQQaqyq}IMMMMAAAqaaaQmIIyUmqa]uIaUqqyMYqy]eeyMUYy]yEeyYmeuYaAiQAaQAAAIaqaaAQqIaAmUIMey}AqaaqQYAqqQQQAYqaqaQquMYIiMUeiyAaqQQQQIaqaQaQaiQQaaMeI}iimQqqaIqQaaaQAiaaaaAaqyq}IMMMMAAAqaaaQmIIyUmAA]uq}Y}i}IiAaMeq]iu}miyeEyimueIaAYaqqqAaQyQqaQQAaiQa}EI]uymaqQaqqYaqqAQaaYqqaAqaUmYIymEuIiAaqqaqQYaAaQAQqIaqaAMei]YY}qqQaiqqaaAQQYAQaAQaqyq}IMMMMAAAqaaaQmIIyU]Qa}eeuQ]}}IYayAuEI}EyymyEEYiMeuYAAIqQqQAQqYqqaaaAAYaQ}eYmuY}aaaqqQYaQqAqaayAAaAAAEMIIy]UUIYqaaAQaAIAQqAaQQyaQqaMeI}iY}aAAqyQqqqqAAYaQaAQaqyq}IMMMMAAAqaaaQmIIyE}AA]uQyaMMuYAemMma}iu}}yYEUYimueYAqYQQqQQaQYAAaaaqqyAamUY}EYMQqQQaqYqQaaqAaYQQaQaQeMYiymuEyYAAqAaqqYAQqAAQqYqQaa]EI]Ii}qQQqIaqqaAQqyAQqaqaqyq}IMMMMAAAqaaaQmIIyUmqA]uEeQ}m}IQU}MmuY]eyi]eMUiYMueyQayqQaAqaaIqaaaAAQyAamUYmeY}qaQAaAiAAaqQaaiAAqqAAuMYii]EeiyqqaqqaqyaAaQaQQIQAqAMeymYimAaQAiqQaqaqQIaaaQaaqyq}IMMMMAAAqaaaQmIIyUMQA]eqyQmMuyAem]mqmiEM}IiEEiYmuUIAaIQaaaAQQYQQaQaQqIAameY}uimqaQqaAyQqaaAqAiAqqqqQemYYy}uuYiaqaAqAqIQAqQAQAIaqqaMUYmii}aqqAyaAaQQaQYAaaQaaqyq}IMMMMAAAqaaaQmIIyU}YA}eqiAm]uiQu}Mma}Ye}miYEUIiMeeIqAyQQqaAaAiaQaQQqqYaAmuimuyMAaAaaQyAQqAqAAiAaaAAQeMYiiMEuyyAAaqaaAYaqaaaQqIqaaA]EimYi}QaAqyAaaAAqaIaQaaAaqyq}IMMMMAAAqaaaQmIIyUmAA]UqyQ}mEYQe}Mma}iEM}iYeeyIMuuIaQiQQaqqqQIAQaQaqAYqa}EYmeIMaaQaqaIqqqQAqaYqAqQqaUmIiyMUeIiaaqqqQQyaQqQaQqiAQqAMUImYi}AqQAiqqaAaAAyaQaqAaqyq}IMMMMAAAqaaaQmIIyUmaA]uEeQmm]IQe}}}ui}EYi}EmeIiMuuYaQYqAaAQQQYaQaQqQQiqAmEY}UYmQaqAqQiaQqaAAaYQaaQQQEMiyyMueYYaaqaqaAiaAqQaaAYqaqaMuI}YymaAqAyQQaQAqQIaQaqAaqyq}IMMMMAAAqaaaQmiIyUmaA]uAiQmmUIQe}}}qmyE]myIeeIiMuuYaQYqAaAQQQYaQaQqQQiqAmEY}UYmQaqAqQiaQqaAAaYQaaQQQEMiyyMueYYaaqaqaAiaAqQaaAYqaqaMuI}YymaAqAyQQaQAqQIaQaqAaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]UYimu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qmYU]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]UYimu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qmYU]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]UYimu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qmYU]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]UYimu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qmYU]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMiA]UqyQ]meYAemM}qmYU]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UqyQ]meYAemM}qmYU]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMaA]UuuQ]mmYAemM}ui]UYimu]UiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIYyEMaE]UqyQ]meYAemM}qmYU]miyUUiIMeUyqAYqQaAQaAYaAaAqqQiqAmUiMeI]QqAAAaIAAaaQAAIAaaaaauMIIiMEEIIAAaAAAAIAAaAAAAIqaqamuIMIImAAAAIAAaAAAAIAAaAqaqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmiIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmiIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAeaYEAMAaiiaauMIIiMEEIIAAmAAEAIIEeIIAEIuaqamuIMIImEAAMIIAaIAAIIAImEyiqyq}IMMMMAAAqaaaQmIIyEMiA]UuuQ]mmYAemM}ui]UYiau]UiIMeUyuAYqQiAYaAYaImEyyQiqAmUiMeI]QyAAAaIIAuaYEAMAaiiaauMIIiMEEIIAAmAAEaiIEeIIAEIuaqamuIMIYmEAAMIIAaIAAIIaImEyiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiYyuMiU}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiYyuMiU}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiYyuMiU}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiYyuMiU}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMAAAqaaaQmiIyuMiQ}UUuQ}]MYAu}]}uyMUYiqu]EiYMeUyuayQQyAyqQiaImEyYAiaQmuiMEImqiAqqaiYAuQYeaMqayyqaU]IIimUEiIAAmaQUqiIUeYIAEyuAaQMEIMiy}eaAMIIqqIaqYyqymeYiqyq}IMMMMEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuEEEEEEEEueeeUeeEuuEeUuUUuUuUEUEuuUuuuEUUeuuUEeUEeUuueuUUuEuuUeeEeEuUEeeUeueEEEeueEuueeUEuUUeeEueuuueUUEEeeUEeEEEeeUUueEUeUEEEuuEeUEEEEeuueeEEEEuuEeuUuuueeUeuuuuUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU This looks like a football hooligan transcription. https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c File contrib/trau2rtp/flip.c: https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c at 9 PS1, Line 9: for (i = 0 ; i < 256 ; i++) { unusual whitespace https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c at 10 PS1, Line 10: uint8_t sample = 0 ; same https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c at 11 PS1, Line 11: for (k = 0; k<8; k++) { missing whitespace https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c at 12 PS1, Line 12: if ( i & 1 << k ) sample |= 0x80 >> k; same https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c at 18 PS1, Line 18: uint8_t *flip_buf_bits (uint8_t *buf , int len) OSMO_ASSERT(len<=256) https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c at 21 PS1, Line 21: uint8_t * start = buf; unusual whitespace https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/flip.c at 23 PS1, Line 23: for (i = 0 ; i < len; i++) { same https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/trau2rtp.c File contrib/trau2rtp/trau2rtp.c: https://gerrit.osmocom.org/c/libosmo-abis/+/18931/1/contrib/trau2rtp/trau2rtp.c at 28 PS1, Line 28: /* called by I.460 de-multeiplexer; feed output of I.460 demux into TRAU frame sync */ de-multiplexer -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I0190872dd282bcfe0f97bb4f8ab8d09023f9f06b Gerrit-Change-Number: 18931 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 10:06: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 Mon Jun 22 10:07:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:07:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 ) Change subject: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 Gerrit-Change-Number: 18932 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 10:07:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 10:07:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:07:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 10:07: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 Jun 22 10:09:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:09:10 +0000 Subject: Change in libosmo-abis[master]: e1_input: Support I.460 timeslot type In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/18933 ) Change subject: e1_input: Support I.460 timeslot type ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/18933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I44da6dfec77ef475adb35001a0e4fa11d549aa02 Gerrit-Change-Number: 18933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 10: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 Jun 22 10:11:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:11:58 +0000 Subject: Change in osmo-trx[master]: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18914 ) Change subject: Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER ...................................................................... Transceiver: Allow sending negative nominal tx power in RSP NOMTXPOWER Some SDR devices under some bands may provide only under 0 dBm Tx Power. Change-Id: I8cecb7a37eb80db341a624eb7b826180eac4a1d4 --- M Transceiver52M/Transceiver.cpp 1 file changed, 1 insertion(+), 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/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 0b7ac31..7a81b7b 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -904,10 +904,7 @@ sprintf(response, "RSP ADJPOWER 0 %d", power); } else if (match_cmd(command, "NOMTXPOWER", NULL)) { int power = mRadioInterface->getNominalTxPower(chan); - if (power > 0) - sprintf(response, "RSP NOMTXPOWER 0 %d", power); - else - sprintf(response, "RSP NOMTXPOWER 1 %d", -power); + sprintf(response, "RSP NOMTXPOWER 0 %d", power); } else if (match_cmd(command, "RXTUNE", ¶ms)) { // tune receiver int freqKhz; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I8cecb7a37eb80db341a624eb7b826180eac4a1d4 Gerrit-Change-Number: 18914 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 10:12:32 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:12:32 +0000 Subject: Change in osmo-bts[master]: configure: Use subdir-objects In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18906 ) Change subject: configure: Use subdir-objects ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If68bcdf28e1d9f66c6bc91cc2c257665224b3adb Gerrit-Change-Number: 18906 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 10:56:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:56:35 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: Hello fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 to look at the new patch set (#3). Change subject: Introduce bts_shutdown FSM ...................................................................... Introduce bts_shutdown FSM Using an FSM here will allow for more complex ordered shutdown procedures, like power ramp down, waiting for TRX deact asyncrhonously, etc. Current commit leaves everything in place already prepared to implement ramp down, which will be implemented in next commit in the series. Related: SYS#4920 Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 --- M include/osmo-bts/Makefile.am A include/osmo-bts/bts_shutdown_fsm.h M include/osmo-bts/gsm_data.h M src/common/Makefile.am M src/common/bts.c A src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 7 files changed, 208 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/18903/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 10:56:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:56:35 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: Hello fixeria, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 to look at the new patch set (#3). Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Implement tx power ramp down during BTS shutdown Upon BTS shutdown (for instance because the Abis link against BSC was lost), stop the operation in an ordered manner (cell soft lock). This means slowly decrease tx power so that MS have time to handover to other neighbour cells. Related: SYS#4920 Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 3 files changed, 45 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/18904/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 10:56:35 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 10:56:35 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 to look at the new patch set (#2). Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf bts_model_trx_close is only called during bts_shutdown immediately after bts_model_deact_rf, so its logic keeps being essentially the same after this code movement. On the other hand, bts_model_deact_rf is also called during RSL link establishment if it failed for whatever reason in bts.c:trx_link_estab(). In that case, we want to make sure the TRX is not used so we need to implement bts_model_deact_rf. Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a --- M src/osmo-bts-trx/l1_if.c 1 file changed, 19 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/10/18910/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 2 Gerrit-Owner: 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 Mon Jun 22 11:01:42 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 11:01:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: refactor f_init_rsl(): make number of transceivers configurable References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 ) Change subject: BTS: refactor f_init_rsl(): make number of transceivers configurable ...................................................................... BTS: refactor f_init_rsl(): make number of transceivers configurable Not all osmo-bts backends do support multiple transceivers, while we still want to run test cases against them. Let's make the number of transceivers configurable (mp_transceiver_num), so it can be adjusted depending on osmo-bts backend to be used. Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Related: OS#3155 --- M bts/BTS_Tests.ttcn 1 file changed, 31 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/51/18951/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index f98419d..0c1d0e6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -109,6 +109,8 @@ float mp_ipa_up_delay := 0.0; /* false for now, as only virtphy supports it, not calypso-l1 nor trxcon */ boolean mp_l1_supports_gprs := false; + /* how many transceivers do we expect to connect */ + integer mp_transceiver_num := 4; } type record of RslChannelNr ChannelNrs; @@ -120,7 +122,6 @@ var RSL_Emulation_CT vc_RSL; /* Direct RSL_CCHAN_PT */ port RSL_CCHAN_PT RSL_CCHAN; - timer g_rslem_up_timer; /* L1CTL port (for classic tests) */ port L1CTL_PT L1CTL; @@ -183,16 +184,12 @@ port PCUIF_CODEC_PT PCU; } -private altstep as_rsl_init_guard() runs on test_CT { - [] g_rslem_up_timer.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, - "Timeout waiting for RSL bring up"); - } - /* osmo-bts may send us CCCH LOAD INDication or whatever else */ - [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; } -} - function f_init_rsl(charstring id) runs on test_CT { + var bitstring trx_mask := '00000000'B; + var integer trx_count := 0; + var RSLEm_Event ev; + timer T; + vc_IPA := IPA_Emulation_CT.create(id & "-RSL-IPA"); vc_RSL := RSL_Emulation_CT.create(id & "-RSL"); @@ -203,27 +200,33 @@ vc_IPA.start(IPA_Emulation.main_server(mp_rsl_ip, mp_rsl_port)); vc_RSL.start(RSL_Emulation.main(false)); - /* TTCN-3 offers no way to guard 'interleave' statements */ - g_rslem_up_timer.start(mp_ipa_up_timeout); - var default d := activate(as_rsl_init_guard()); - - /* We expect all 4 transceivers to connect here (separate IPA/RSL connections). + /* We expect (N = mp_transceiver_num) IPA/RSL transceiver connections here. * See https://gerrit.osmocom.org/q/Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b. */ - interleave { + T.start(mp_ipa_up_timeout); + alt { /* These events are sent by the RSL_Emulation_CT */ - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX0)); - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX1)); - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX2)); - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX3)); - /* These messages (RF RESource INDication) are sent by the IUT itself */ - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX0)); - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX1)); - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX2)); - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX3)); - } + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, ?)) -> value ev { + /* Make sure that all transceivers use unique stream ID */ + if (trx_mask[enum2int(ev.sid)] == '1'B) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Duplicate RSL stream ID (", ev.sid, ")")); + } - g_rslem_up_timer.stop; - deactivate(d); + /* This message (RF RESource INDication) is sent by the IUT itself */ + RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, ev.sid)); + trx_mask[enum2int(ev.sid)] := '1'B; + trx_count := trx_count + 1; + + log(trx_count, "/", mp_transceiver_num, " transceiver(s) connected"); + if (trx_count < mp_transceiver_num) { repeat; } + } + /* osmo-bts may send us CCCH LOAD INDication or whatever else */ + [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + "Timeout waiting for RSL bring up"); + } + } } type record ConnHdlrPars { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Gerrit-Change-Number: 18951 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 Jun 22 11:11:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 11:11:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: refactor f_init_rsl(): make number of transceivers configurable In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 to look at the new patch set (#2). Change subject: BTS: refactor f_init_rsl(): make number of transceivers configurable ...................................................................... BTS: refactor f_init_rsl(): make number of transceivers configurable Not all osmo-bts backends do support multiple transceivers, while we still want to run test cases against them. Let's make the number of transceivers configurable (mp_transceiver_num), so it can be adjusted depending on osmo-bts backend to be used. Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Related: OS#3155 --- M bts/BTS_Tests.ttcn 1 file changed, 31 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/51/18951/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Gerrit-Change-Number: 18951 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Mon Jun 22 11:13:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 11:13:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: refactor f_init_rsl(): make number of transceivers configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 ) Change subject: BTS: refactor f_init_rsl(): make number of transceivers configurable ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Gerrit-Change-Number: 18951 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 11:13:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 11:17:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 11:17:57 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18952 ) Change subject: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers ...................................................................... ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers Change-Id: I5d4d9a16d5e30bccc25e8f1030f22b6e49b64c67 Depends: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Related: OS#3155 --- M ttcn3-bts-test/BTS_Tests.cfg 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/52/18952/1 diff --git a/ttcn3-bts-test/BTS_Tests.cfg b/ttcn3-bts-test/BTS_Tests.cfg index 4ea1e59..97608bb 100644 --- a/ttcn3-bts-test/BTS_Tests.cfg +++ b/ttcn3-bts-test/BTS_Tests.cfg @@ -9,6 +9,7 @@ *.BSCVTY.CTRL_HOSTNAME := "172.18.9.11" [MODULE_PARAMETERS] +BTS_Tests.mp_transceiver_num := 4 BTS_Tests.mp_rsl_ip := "172.18.9.10" BTS_Tests.mp_bts_trxc_ip := "172.18.9.21" BTS_Tests.mp_pcu_socket := "/data/unix/pcu_sock" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5d4d9a16d5e30bccc25e8f1030f22b6e49b64c67 Gerrit-Change-Number: 18952 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 Jun 22 11:23:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 11:23:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: refactor f_init_rsl(): make number of transceivers configurable In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 ) Change subject: BTS: refactor f_init_rsl(): make number of transceivers configurable ...................................................................... Patch Set 2: Verified+1 I tested this change on my machine with the recent versions. No deviations from expected results. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Gerrit-Change-Number: 18951 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 11:23:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 11:28:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 11:28:48 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18952 ) Change subject: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18952/1/ttcn3-bts-test/BTS_Tests.cfg File ttcn3-bts-test/BTS_Tests.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18952/1/ttcn3-bts-test/BTS_Tests.cfg at 12 PS1, Line 12: BTS_Tests.mp_transceiver_num := 4 Weren't we using 3? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5d4d9a16d5e30bccc25e8f1030f22b6e49b64c67 Gerrit-Change-Number: 18952 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 11:28:48 +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 Jun 22 11:43:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 11:43:14 +0000 Subject: Change in osmo-bts[master]: bts_model: Convert bts_model_trx_close() to return asynchronously References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18953 ) Change subject: bts_model: Convert bts_model_trx_close() to return asynchronously ...................................................................... bts_model: Convert bts_model_trx_close() to return asynchronously Some backends like osmo-bts-trx require exchanging messages like POWEROFF to close the TRX, and hence need some time. Switch the function to expect result asynchronously by calling a callback. This will be used later to wait until all TRX are really powered off before exiting the process. Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a --- M include/osmo-bts/bts_model.h M src/common/bts_shutdown_fsm.c M src/osmo-bts-litecell15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-omldummy/bts_model.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-virtual/bts_model.c M tests/stubs.c 10 files changed, 62 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/53/18953/1 diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h index be0480c..b9f9ede 100644 --- a/include/osmo-bts/bts_model.h +++ b/include/osmo-bts/bts_model.h @@ -30,7 +30,9 @@ void *obj, uint8_t adm_state); int bts_model_trx_deact_rf(struct gsm_bts_trx *trx); -int bts_model_trx_close(struct gsm_bts_trx *trx); + +/* Implementation should call bts_model_trx_close_cb when done */ +void bts_model_trx_close(struct gsm_bts_trx *trx); int bts_model_vty_init(struct gsm_bts *bts); @@ -62,4 +64,10 @@ int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts); void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan); +/* BTS model specific implementations are expected to call this functions as a + * response to some of the APIs above: + */ + +void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc); + #endif diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index bff686a..afd6f30 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -173,3 +173,9 @@ LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, reason: %s\n", reason); osmo_fsm_inst_dispatch(fi, BTS_SHUTDOWN_EV_START, NULL); } + +void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc) +{ + struct osmo_fsm_inst *fi = trx->bts->shutdown_fi; + LOGPFSML(fi, LOGL_DEBUG, "%s Received TRX close cb rc=%d\n", gsm_trx_name(trx), rc); +} diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index 2f462b6..60fd1e7 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -441,20 +441,24 @@ void *data) { msgb_free(l1_msg); + bts_model_trx_close_cb(trx, 0); return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct lc15l1_hdl *fl1h = trx_lc15l1_hdl(trx); struct msgb *msg; + int rc; msg = l1p_msgb_alloc(); prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphCloseReq, fl1h, l1p_handle_for_trx(trx)); LOGP(DL1C, LOGL_NOTICE, "Close TRX %u\n", trx->nr); - return l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + rc = l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + if (rc < 0) + bts_model_trx_close_cb(trx, rc); } static int trx_rf_lock(struct gsm_bts_trx *trx, int locked, l1if_compl_cb *cb) diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index cc8d02d..89ee0ac 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -457,20 +457,24 @@ void *data) { msgb_free(l1_msg); + bts_model_trx_close_cb(trx, 0); return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct oc2gl1_hdl *fl1h = trx_oc2gl1_hdl(trx); struct msgb *msg; + int rc; msg = l1p_msgb_alloc(); prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphCloseReq, fl1h, l1p_handle_for_trx(trx)); LOGP(DL1C, LOGL_NOTICE, "Close TRX %u\n", trx->nr); - return l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + rc = l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + if (rc < 0) + bts_model_trx_close_cb(trx, rc); } static int trx_rf_lock(struct gsm_bts_trx *trx, int locked, l1if_compl_cb *cb) diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 61d56bb..8cc078e 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1678,7 +1678,7 @@ bts_model_trx_deact_rf(trx); /* Close TRX */ - rc = bts_model_trx_close(trx); + rc = trx_close(trx); if (rc != 0) { LOGP(DL1C, LOGL_ERROR, "Cannot close TRX %d, it is already closed.\n", @@ -1716,10 +1716,11 @@ return l1if_activate_rf(trx, 0); } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { /* FIXME: close only one TRX */ - return trx_close(trx); + int rc = trx_close(trx); + bts_model_trx_close_cb(trx, rc); } diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index a968381..dc0e041 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -50,10 +50,10 @@ return -1; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); - return 0; + bts_model_trx_close_cb(trx, 0); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index c3bf8b6..57eab12 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -437,20 +437,24 @@ void *data) { msgb_free(l1_msg); + bts_model_trx_close_cb(trx, 0); return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct femtol1_hdl *fl1h = trx_femtol1_hdl(trx); struct msgb *msg; + int rc; msg = l1p_msgb_alloc(); prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphCloseReq, fl1h, l1p_handle_for_trx(trx)); LOGP(DL1C, LOGL_NOTICE, "Close TRX %u\n", trx->nr); - return l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + rc = l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + if (rc < 0) + bts_model_trx_close_cb(trx, rc); } static int trx_rf_lock(struct gsm_bts_trx *trx, int locked, l1if_compl_cb *cb) diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index d577416..ccb2913 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -214,17 +214,27 @@ plink->u.osmotrx.poweronoff_sent = false; if (poweronoff) { - if (rc == 0 && pinst->phy_link->state != PHY_LINK_CONNECTED) { + if (rc == 0 && plink->state != PHY_LINK_CONNECTED) { trx_sched_clock_started(pinst->trx->bts); - phy_link_state_set(pinst->phy_link, PHY_LINK_CONNECTED); + phy_link_state_set(plink, PHY_LINK_CONNECTED); /* Begin to ramp up the power on all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { l1if_trx_start_power_ramp(pinst->trx); } - } else if (rc != 0 && pinst->phy_link->state != PHY_LINK_SHUTDOWN) { + } else if (rc != 0 && plink->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); - phy_link_state_set(pinst->phy_link, PHY_LINK_SHUTDOWN); + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + } + } else { + if (plink->state != PHY_LINK_SHUTDOWN) { + trx_sched_clock_stopped(pinst->trx->bts); + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + + /* Notify TRX close on all TRX associated with this phy */ + llist_for_each_entry(pinst, &plink->instances, list) { + bts_model_trx_close_cb(pinst->trx, rc); + } } } } @@ -424,7 +434,7 @@ } /* deactivate transceiver */ -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct phy_instance *pinst = trx_phy_instance(trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -433,12 +443,12 @@ if (l1h->config.enabled) { l1h->config.enabled = false; l1if_provision_transceiver_trx(l1h); - } + } else if (!pinst->phy_link->u.osmotrx.poweronoff_sent) { + bts_model_trx_close_cb(trx, 0); + } /* else: poweroff in progress, cb will be called upon TRXC RSP */ /* Set to Operational State: Disabled */ check_transceiver_availability_trx(l1h, 0); - - return 0; } /* on RSL failure, deactivate transceiver */ diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index b971af5..8db0201 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -50,10 +50,10 @@ return -1; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); - return 0; + bts_model_trx_close_cb(trx, 0); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) diff --git a/tests/stubs.c b/tests/stubs.c index 20ce512..4663a44 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -1,4 +1,5 @@ #include +#include struct femtol1_hdl; struct bts_model_set_dyn_pdch_data; @@ -23,8 +24,8 @@ int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) { return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) -{ return 0; } +void bts_model_trx_close(struct gsm_bts_trx *trx) +{ bts_model_trx_close_cb(trx, 0); } int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type, struct tlv_parsed *old_attr, struct tlv_parsed *new_attr, void *obj) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a Gerrit-Change-Number: 18953 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 Jun 22 11:43:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 11:43:15 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: Wait until all TRX are closed References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18954 ) Change subject: bts_shutdown: Wait until all TRX are closed ...................................................................... bts_shutdown: Wait until all TRX are closed Setting the phy link of a trx to SHUTDOWN sets operative state to DISABLED, so we use operative state as a condition to know whether all TRX are already powered off properly and we can exit. Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c 2 files changed, 53 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/54/18954/1 diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h index 4320b18..b271ea0 100644 --- a/include/osmo-bts/bts_shutdown_fsm.h +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -28,12 +28,14 @@ enum bts_shutdown_fsm_states { BTS_SHUTDOWN_ST_NONE, BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL, + BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED, BTS_SHUTDOWN_ST_EXIT, }; enum bts_shutdown_fsm_events { BTS_SHUTDOWN_EV_START, BTS_SHUTDOWN_EV_TRX_RAMP_COMPL, + BTS_SHUTDOWN_EV_TRX_CLOSED, }; extern struct osmo_fsm bts_shutdown_fsm; diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index afd6f30..3f79fa3 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -27,13 +27,14 @@ #include #include #include +#include #define X(s) (1 << (s)) static const struct osmo_tdef_state_timeout bts_shutdown_fsm_timeouts[32] = { [BTS_SHUTDOWN_ST_NONE] = { }, [BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL] = { .T = -1 }, - [BTS_SHUTDOWN_ST_EXIT] = { .T = -2 }, + [BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED] = { .T = -2 }, }; #define bts_shutdown_fsm_state_chg(fi, NEXT_STATE) \ @@ -82,12 +83,12 @@ LOGPFSML(fi, LOGL_INFO, "%s Ramping down complete, %d TRX remaining\n", gsm_trx_name(src_trx), remaining); if (remaining == 0) - bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED); break; } } -static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +static void st_wait_trx_closed_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; struct gsm_bts_trx *trx; @@ -97,9 +98,37 @@ llist_for_each_entry_reverse(trx, &bts->trx_list, list) { bts_model_trx_close(trx); } - /* There's yet no way to get confirmation from lower layers regarding - state. Allow a few seconds of select() loop and timeout timer will - exit later */ + /* Now wait until all TRX are closed asynchronously, we'll get feedback through events... */ +} + +static void st_wait_trx_closed(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *src_trx; + unsigned int i, remaining = 0; + + switch(event) { + case BTS_SHUTDOWN_EV_TRX_CLOSED: + src_trx = (struct gsm_bts_trx *)data; + + for (i = 0; i < bts->num_trx; i++) { + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, i); + if (trx->mo.nm_state.operational != NM_OPSTATE_DISABLED) + remaining++; + } + + LOGPFSML(fi, LOGL_INFO, "%s TRX closed, %d TRX remaining\n", + gsm_trx_name(src_trx), remaining); + if (remaining == 0) + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + break; + } +} + +static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); + exit(0); } static struct osmo_fsm_state bts_shutdown_fsm_states[] = { @@ -114,11 +143,20 @@ .in_event_mask = X(BTS_SHUTDOWN_EV_TRX_RAMP_COMPL), .out_state_mask = - X(BTS_SHUTDOWN_ST_EXIT), + X(BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED), .name = "WaitRampDownComplete", .onenter = st_wait_ramp_down_compl_on_enter, .action = st_wait_ramp_down_compl, }, + [BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED] = { + .in_event_mask = + X(BTS_SHUTDOWN_EV_TRX_CLOSED), + .out_state_mask = + X(BTS_SHUTDOWN_ST_EXIT), + .name = "WaitTRXClose", + .onenter = st_wait_trx_closed_on_enter, + .action = st_wait_trx_closed, + }, [BTS_SHUTDOWN_ST_EXIT] = { .name = "Exit", .onenter = st_exit_on_enter, @@ -128,6 +166,7 @@ const struct value_string bts_shutdown_fsm_event_names[] = { OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_START), OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_TRX_RAMP_COMPL), + OSMO_VALUE_STRING(BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED), { 0, NULL } }; @@ -136,11 +175,11 @@ switch (fi->state) { case BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL: LOGPFSML(fi, LOGL_ERROR, "Timer expired waiting for ramp down complete\n"); - bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED); break; - case BTS_SHUTDOWN_ST_EXIT: - LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); - exit(0); + case BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED: + LOGPFSML(fi, LOGL_ERROR, "Timer expired waiting for TRX close\n"); + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); break; default: OSMO_ASSERT(false); @@ -178,4 +217,5 @@ { struct osmo_fsm_inst *fi = trx->bts->shutdown_fi; LOGPFSML(fi, LOGL_DEBUG, "%s Received TRX close cb rc=%d\n", gsm_trx_name(trx), rc); + osmo_fsm_inst_dispatch(fi, BTS_SHUTDOWN_EV_TRX_CLOSED, trx); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 Gerrit-Change-Number: 18954 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 Jun 22 11:43:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 11:43:15 +0000 Subject: Change in osmo-bts[master]: bts-virtual: Implement bts_model_trx_close References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18955 ) Change subject: bts-virtual: Implement bts_model_trx_close ...................................................................... bts-virtual: Implement bts_model_trx_close Change-Id: Id37562652b1ebc27d808d83342e4961b936dbcad --- M src/osmo-bts-virtual/bts_model.c 1 file changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/55/18955/1 diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index 8db0201..8209ce2 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -35,6 +35,8 @@ #include #include +#include "virtual_um.h" + /* TODO: check if dummy method is sufficient, else implement */ int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { @@ -52,7 +54,14 @@ void bts_model_trx_close(struct gsm_bts_trx *trx) { - LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + struct phy_instance *pinst = trx_phy_instance(trx); + struct phy_link *plink = pinst->phy_link; + + if (phy_link_state_get(plink) != PHY_LINK_SHUTDOWN) { + virt_um_destroy(plink->u.virt.virt_um); + plink->u.virt.virt_um = NULL; + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + } bts_model_trx_close_cb(trx, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id37562652b1ebc27d808d83342e4961b936dbcad Gerrit-Change-Number: 18955 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 Jun 22 12:18:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:18:06 +0000 Subject: Change in osmo-bts[master]: osmo-bts.spec.in: Use %config(noreplace) to retain current config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18956 ) Change subject: osmo-bts.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-bts.spec.in: Use %config(noreplace) to retain current config file Change-Id: I8d92cfddaa5bbfa33e36f37b48033b468c7d72cf --- M contrib/osmo-bts.spec.in 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/56/18956/1 diff --git a/contrib/osmo-bts.spec.in b/contrib/osmo-bts.spec.in index 66213ff..1b7a9e5 100644 --- a/contrib/osmo-bts.spec.in +++ b/contrib/osmo-bts.spec.in @@ -102,13 +102,13 @@ %{_docdir}/%{name}/examples/osmo-bts-virtual/osmo-bts-virtual.cfg %{_bindir}/osmo-bts-trx %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-bts-trx.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-bts-trx.cfg %{_unitdir}/osmo-bts-trx.service %files -n osmo-bts-virtual %{_bindir}/osmo-bts-virtual %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-bts-virtual.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-bts-virtual.cfg %{_unitdir}/osmo-bts-virtual.service %files -n osmo-bts-omldummy -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d92cfddaa5bbfa33e36f37b48033b468c7d72cf Gerrit-Change-Number: 18956 Gerrit-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 Jun 22 12:18:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:18:58 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec.in: Use %config(noreplace) to retain current config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/18957 ) Change subject: osmo-trx.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-trx.spec.in: Use %config(noreplace) to retain current config file Change-Id: Ia6a279e4e19eee8368219e3bc1b011802b1fcadc --- M contrib/osmo-trx.spec.in 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/57/18957/1 diff --git a/contrib/osmo-trx.spec.in b/contrib/osmo-trx.spec.in index fa46b74..aebd355 100644 --- a/contrib/osmo-trx.spec.in +++ b/contrib/osmo-trx.spec.in @@ -185,14 +185,14 @@ %files lms %{_bindir}/osmo-trx-lms %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-trx-lms.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-lms.cfg %{_unitdir}/osmo-trx-lms.service %endif %files uhd %{_bindir}/osmo-trx-uhd %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-trx-uhd.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-uhd.cfg %{_unitdir}/osmo-trx-uhd.service %if ! 0%{?centos_ver} -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia6a279e4e19eee8368219e3bc1b011802b1fcadc Gerrit-Change-Number: 18957 Gerrit-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 Jun 22 12:20:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:20:02 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18958 ) Change subject: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-bsc.spec.in: Use %config(noreplace) to retain current config file Change-Id: Icba90f52c40860262de9a4d5aebd418ddafde8d8 --- M contrib/osmo-bsc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/58/18958/1 diff --git a/contrib/osmo-bsc.spec.in b/contrib/osmo-bsc.spec.in index 20367a0..1d44940 100644 --- a/contrib/osmo-bsc.spec.in +++ b/contrib/osmo-bsc.spec.in @@ -125,7 +125,7 @@ %{_docdir}/%{name}/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg %{_docdir}/%{name}/examples/osmo-bsc/osmo-bsc-minimal.cfg %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-bsc.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-bsc.cfg %{_unitdir}/%{name}.service %files abisip-find -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icba90f52c40860262de9a4d5aebd418ddafde8d8 Gerrit-Change-Number: 18958 Gerrit-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 Jun 22 12:21:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:21:05 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw.spec.in: Use %config(noreplace) to retain current config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18959 ) Change subject: osmo-mgw.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-mgw.spec.in: Use %config(noreplace) to retain current config file Change-Id: I37c130d9715a6826cc338f77edcd3cbec762fffd --- M contrib/osmo-mgw.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/59/18959/1 diff --git a/contrib/osmo-mgw.spec.in b/contrib/osmo-mgw.spec.in index 09d5a09..d24417e 100644 --- a/contrib/osmo-mgw.spec.in +++ b/contrib/osmo-mgw.spec.in @@ -114,7 +114,7 @@ %{_bindir}/osmo-mgw %{_unitdir}/osmo-mgw.service %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-mgw.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-mgw.cfg %files -n libosmo-mgcp-client6 %{_libdir}/libosmo-mgcp-client.so.6* -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I37c130d9715a6826cc338f77edcd3cbec762fffd Gerrit-Change-Number: 18959 Gerrit-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 Jun 22 12:22:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:22:34 +0000 Subject: Change in osmo-msc[master]: remove empty + unused ran_up_l2.c In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/18950 to look at the new patch set (#3). Change subject: remove empty + unused ran_up_l2.c ...................................................................... remove empty + unused ran_up_l2.c Change-Id: I5a0fa6a78dd8f32912afc69f4b154caad44a9e78 --- D src/libmsc/ran_up_l2.c 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/50/18950/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I5a0fa6a78dd8f32912afc69f4b154caad44a9e78 Gerrit-Change-Number: 18950 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 Jun 22 12:22:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:22:34 +0000 Subject: Change in osmo-msc[master]: osmo-msc.spec.in: Use %config(noreplace) to retain current config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18960 ) Change subject: osmo-msc.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-msc.spec.in: Use %config(noreplace) to retain current config file Change-Id: I00c3152b774a826230a112eae93b0e7c4d4f4c7a --- M contrib/osmo-msc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/60/18960/1 diff --git a/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index da6c0ba..c968d3e 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -114,6 +114,6 @@ %{_bindir}/osmo-msc %{_unitdir}/%{name}.service %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-msc.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-msc.cfg %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I00c3152b774a826230a112eae93b0e7c4d4f4c7a Gerrit-Change-Number: 18960 Gerrit-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 Jun 22 12:23:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:23:39 +0000 Subject: Change in libosmo-sccp[master]: libosmo-sccp.spec.in: Use %config(noreplace) to retain current config... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18961 ) Change subject: libosmo-sccp.spec.in: Use %config(noreplace) to retain current config file ...................................................................... libosmo-sccp.spec.in: Use %config(noreplace) to retain current config file Change-Id: Ife551573160f9545875eecc2a5bfe8f994249814 --- M contrib/libosmo-sccp.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/61/18961/1 diff --git a/contrib/libosmo-sccp.spec.in b/contrib/libosmo-sccp.spec.in index b195b1f..d393318 100644 --- a/contrib/libosmo-sccp.spec.in +++ b/contrib/libosmo-sccp.spec.in @@ -177,7 +177,7 @@ %files -n osmo-stp %{_bindir}/osmo-stp %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-stp.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-stp.cfg %{_unitdir}/osmo-stp.service %dir %{_docdir}/%{name} %dir %{_docdir}/%{name}/examples -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ife551573160f9545875eecc2a5bfe8f994249814 Gerrit-Change-Number: 18961 Gerrit-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 Jun 22 12:24:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:24:15 +0000 Subject: Change in osmo-msc[master]: remove empty + unused ran_up_l2.c In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18950 ) Change subject: remove empty + unused ran_up_l2.c ...................................................................... remove empty + unused ran_up_l2.c Change-Id: I5a0fa6a78dd8f32912afc69f4b154caad44a9e78 --- D src/libmsc/ran_up_l2.c 1 file changed, 0 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/libmsc/ran_up_l2.c b/src/libmsc/ran_up_l2.c deleted file mode 100644 index e69de29..0000000 --- a/src/libmsc/ran_up_l2.c +++ /dev/null -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I5a0fa6a78dd8f32912afc69f4b154caad44a9e78 Gerrit-Change-Number: 18950 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 Jun 22 12:24:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:24:43 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 12:24:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 12:24:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 12:24:46 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... gsm0808: Add gsm0808_create_common_id() This function encodes a GSM 08.08 / 48.008 "Common ID" message. Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Related: OS#2969 --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 47 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/TODO-RELEASE b/TODO-RELEASE index 2d65372..8aa2367 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -13,3 +13,4 @@ gsm new API new osmo_bts_unset_feature() gb API/ABI change deprecate gprs_nsvc_crate(); export gprs_nsvc_create2() gsm API/ABI change add new member to lapd_datalink +gsm new API new gsm0808_create_common_id() diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 34cec3c..2a26fb5 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -104,6 +104,9 @@ enum gsm0808_lcls_control control); struct msgb *gsm0808_create_lcls_conn_ctrl_ack(enum gsm0808_lcls_status status); struct msgb *gsm0808_create_lcls_notification(enum gsm0808_lcls_status status, bool break_req); +struct msgb *gsm0808_create_common_id(const char *imsi, + const struct osmo_plmn_id *selected_plmn_id, + const struct osmo_plmn_id *last_used_eutran_plnm_id); /*! 3GPP TS 48.008 ?3.2.2.5.8 Old BSS to New BSS information */ diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 9fdf379..e1db175 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -1235,6 +1235,48 @@ return msg; } +struct msgb *gsm0808_create_common_id(const char *imsi, + const struct osmo_plmn_id *selected_plmn_id, + const struct osmo_plmn_id *last_used_eutran_plnm_id) +{ + struct msgb *msg; + uint8_t mid_buf[GSM48_MI_SIZE + 2]; + uint8_t *out; + int mid_len; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "COMMON-ID"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_COMMON_ID); + + /* mandatory IMSI 3.2.2.6 */ + mid_len = gsm48_generate_mid_from_imsi(mid_buf, imsi); + msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); + + /* not implemented: SNA Access Information */ + + /* Selected PLMN ID */ + if (selected_plmn_id) { + msgb_v_put(msg, GSM0808_IE_SELECTED_PLMN_ID); + out = msgb_put(msg, 3); + osmo_plmn_to_bcd(out, selected_plmn_id); + } + + /* Last used E-UTRAN PLMN ID */ + if (last_used_eutran_plnm_id) { + msgb_v_put(msg, GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID); + out = msgb_put(msg, 3); + osmo_plmn_to_bcd(out, last_used_eutran_plnm_id); + } + + /* prepend header with final length */ + msg->l3h = msgb_tv_push(msg, BSSAP_MSG_BSS_MANAGEMENT, msgb_length(msg)); + + return msg; +} + /*! Prepend a DTAP header to given Message Buffer * \param[in] msgb Message Buffer * \param[in] link_id Link Identifier */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 742cec3..713ffe3 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -202,6 +202,7 @@ gsm0808_create_handover_complete; gsm0808_create_handover_failure; gsm0808_create_handover_performed; +gsm0808_create_common_id; gsm0808_prepend_dtap_header; gsm0808_enc_cause; gsm0808_enc_aoip_trasp_addr; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 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 Jun 22 13:13:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:13:16 +0000 Subject: Change in osmo-bts[master]: bts-virtual: Implement bts_model_trx_close In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18955 ) Change subject: bts-virtual: Implement bts_model_trx_close ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id37562652b1ebc27d808d83342e4961b936dbcad Gerrit-Change-Number: 18955 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 13:13: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 Jun 22 13:13:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:13:36 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: Wait until all TRX are closed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18954 ) Change subject: bts_shutdown: Wait until all TRX are closed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 Gerrit-Change-Number: 18954 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 13:13: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 Jun 22 13:14:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:14:05 +0000 Subject: Change in osmo-bts[master]: bts_model: Convert bts_model_trx_close() to return asynchronously In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18953 ) Change subject: bts_model: Convert bts_model_trx_close() to return asynchronously ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a Gerrit-Change-Number: 18953 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 13:14:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 13:14:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:14:26 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18952 ) Change subject: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5d4d9a16d5e30bccc25e8f1030f22b6e49b64c67 Gerrit-Change-Number: 18952 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13: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 Mon Jun 22 13:15:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:15:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: refactor f_init_rsl(): make number of transceivers configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 ) Change subject: BTS: refactor f_init_rsl(): make number of transceivers configurable ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Gerrit-Change-Number: 18951 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13:15: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 Jun 22 13:15:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:15:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS: refactor f_init_rsl(): make number of transceivers configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 ) Change subject: BTS: refactor f_init_rsl(): make number of transceivers configurable ...................................................................... BTS: refactor f_init_rsl(): make number of transceivers configurable Not all osmo-bts backends do support multiple transceivers, while we still want to run test cases against them. Let's make the number of transceivers configurable (mp_transceiver_num), so it can be adjusted depending on osmo-bts backend to be used. Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Related: OS#3155 --- M bts/BTS_Tests.ttcn 1 file changed, 31 insertions(+), 28 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index f98419d..9ebd952 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -109,6 +109,8 @@ float mp_ipa_up_delay := 0.0; /* false for now, as only virtphy supports it, not calypso-l1 nor trxcon */ boolean mp_l1_supports_gprs := false; + /* how many transceivers do we expect to connect */ + integer mp_transceiver_num := 1; } type record of RslChannelNr ChannelNrs; @@ -120,7 +122,6 @@ var RSL_Emulation_CT vc_RSL; /* Direct RSL_CCHAN_PT */ port RSL_CCHAN_PT RSL_CCHAN; - timer g_rslem_up_timer; /* L1CTL port (for classic tests) */ port L1CTL_PT L1CTL; @@ -183,16 +184,12 @@ port PCUIF_CODEC_PT PCU; } -private altstep as_rsl_init_guard() runs on test_CT { - [] g_rslem_up_timer.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, - "Timeout waiting for RSL bring up"); - } - /* osmo-bts may send us CCCH LOAD INDication or whatever else */ - [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; } -} - function f_init_rsl(charstring id) runs on test_CT { + var bitstring trx_mask := '00000000'B; + var integer trx_count := 0; + var RSLEm_Event ev; + timer T; + vc_IPA := IPA_Emulation_CT.create(id & "-RSL-IPA"); vc_RSL := RSL_Emulation_CT.create(id & "-RSL"); @@ -203,27 +200,33 @@ vc_IPA.start(IPA_Emulation.main_server(mp_rsl_ip, mp_rsl_port)); vc_RSL.start(RSL_Emulation.main(false)); - /* TTCN-3 offers no way to guard 'interleave' statements */ - g_rslem_up_timer.start(mp_ipa_up_timeout); - var default d := activate(as_rsl_init_guard()); - - /* We expect all 4 transceivers to connect here (separate IPA/RSL connections). + /* We expect (N = mp_transceiver_num) IPA/RSL transceiver connections here. * See https://gerrit.osmocom.org/q/Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b. */ - interleave { + T.start(mp_ipa_up_timeout); + alt { /* These events are sent by the RSL_Emulation_CT */ - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX0)); - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX1)); - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX2)); - [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX3)); - /* These messages (RF RESource INDication) are sent by the IUT itself */ - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX0)); - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX1)); - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX2)); - [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX3)); - } + [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, ?)) -> value ev { + /* Make sure that all transceivers use unique stream ID */ + if (trx_mask[enum2int(ev.sid)] == '1'B) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Duplicate RSL stream ID (", ev.sid, ")")); + } - g_rslem_up_timer.stop; - deactivate(d); + /* This message (RF RESource INDication) is sent by the IUT itself */ + RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, ev.sid)); + trx_mask[enum2int(ev.sid)] := '1'B; + trx_count := trx_count + 1; + + log(trx_count, "/", mp_transceiver_num, " transceiver(s) connected"); + if (trx_count < mp_transceiver_num) { repeat; } + } + /* osmo-bts may send us CCCH LOAD INDication or whatever else */ + [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + "Timeout waiting for RSL bring up"); + } + } } type record ConnHdlrPars { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Gerrit-Change-Number: 18951 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 Jun 22 13:16:00 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 22 Jun 2020 13:16:00 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 7: (4 comments) > Patch Set 6: > > (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/5/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/5/src/libosmo-mgcp/mgcp_trunk.c at 142 PS5, Line 142: if (errno == ERANGE || trunk_nr > 64 || trunk_nr == 0) > I recommended checking existing uses of strtoul in osmo-mgw since correctness checking is a bit tric [?] I did, I hope its now better. Why (errno == ERANGE && pt == ULONG_MAX), is it not enough it errno is at ERANGE? https://gerrit.osmocom.org/c/osmo-mgw/+/18752/5/src/libosmo-mgcp/mgcp_trunk.c at 142 PS5, Line 142: if (errno == ERANGE || trunk_nr > 64 || trunk_nr == 0) > I recommended checking existing uses of strtoul in osmo-mgw since correctness checking is a bit tric [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18752/6/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/6/src/libosmo-mgcp/mgcp_trunk.c at 142 PS6, Line 142: trunk_nr = strtoul(epname + prefix_len, &str_trunk_nr_end, 10); > you are missing setting errno = 0 prior to calling it. Done https://gerrit.osmocom.org/c/osmo-mgw/+/18752/6/src/libosmo-mgcp/mgcp_trunk.c at 143 PS6, Line 143: if (errno == ERANGE || trunk_nr > 64 || trunk_nr == 0 > if ((errno == ERANGE && pt == ULONG_MAX) || (errno && !trunk_nr) || [?] yes, this is expected. The trunk numbers are not freely assignable. Trunk 0 is bound to the virtual trunk. 1-64 can be E1 trunks. (I am not happy yet with the method how the trunk gets resolved, especially the exception below is a mess.) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13:16:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 13:16:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:16:06 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13:16: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 Jun 22 13:16:38 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 22 Jun 2020 13:16:38 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 7: (is it now visible?) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13:16: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 Jun 22 13:16:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:16:46 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13:16:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 13:17:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:17:29 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13:17:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 13:17:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:17:50 +0000 Subject: Change in osmo-bts[master]: phy_link.h: Drop unimplemented function definition In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18911 ) Change subject: phy_link.h: Drop unimplemented function definition ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib306a80bd8ea3434a49806ec73a1cfe9a82b9122 Gerrit-Change-Number: 18911 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13: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 Jun 22 13:17:53 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:17:53 +0000 Subject: Change in osmo-bts[master]: phy_link.h: Drop unimplemented function definition In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18911 ) Change subject: phy_link.h: Drop unimplemented function definition ...................................................................... phy_link.h: Drop unimplemented function definition Change-Id: Ib306a80bd8ea3434a49806ec73a1cfe9a82b9122 --- M include/osmo-bts/phy_link.h 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 2bed8ea..2a53d91 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -169,8 +169,6 @@ void phy_instance_destroy(struct phy_instance *pinst); const char *phy_instance_name(struct phy_instance *pinst); -void phy_user_statechg_notif(struct phy_instance *pinst, enum phy_link_state link_state); - static inline struct phy_instance *trx_phy_instance(const struct gsm_bts_trx *trx) { OSMO_ASSERT(trx); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib306a80bd8ea3434a49806ec73a1cfe9a82b9122 Gerrit-Change-Number: 18911 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 13:20:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:20:56 +0000 Subject: Change in osmo-sgsn[master]: *.spec.in: Use %config(noreplace) to retain current config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18962 ) Change subject: *.spec.in: Use %config(noreplace) to retain current config file ...................................................................... *.spec.in: Use %config(noreplace) to retain current config file Change-Id: I4e7f0a44d5e2d132b24ca0f38dc6f520b59112da --- M contrib/osmo-sgsn.spec.in 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/62/18962/1 diff --git a/contrib/osmo-sgsn.spec.in b/contrib/osmo-sgsn.spec.in index f9fe208..d6a8078 100644 --- a/contrib/osmo-sgsn.spec.in +++ b/contrib/osmo-sgsn.spec.in @@ -115,7 +115,7 @@ %{_docdir}/%{name}/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg %{_bindir}/osmo-sgsn %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-sgsn.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-sgsn.cfg %{_unitdir}/%{name}.service %files -n osmo-gtphub @@ -125,7 +125,7 @@ %{_docdir}/%{name}/examples/osmo-gtphub/osmo-gtphub.cfg %{_bindir}/osmo-gtphub %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-gtphub.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-gtphub.cfg %{_unitdir}/osmo-gtphub.service %files -n osmo-gbproxy @@ -135,7 +135,7 @@ %{_docdir}/%{name}/examples/osmo-gbproxy/osmo-gbproxy.cfg %{_bindir}/osmo-gbproxy %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-gbproxy.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-gbproxy.cfg %{_unitdir}/osmo-gbproxy.service %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4e7f0a44d5e2d132b24ca0f38dc6f520b59112da Gerrit-Change-Number: 18962 Gerrit-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 Jun 22 13:22:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 13:22:06 +0000 Subject: Change in osmo-remsim[master]: *.spec.in: Use %config(noreplace) to retain current config file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/18963 ) Change subject: *.spec.in: Use %config(noreplace) to retain current config file ...................................................................... *.spec.in: Use %config(noreplace) to retain current config file Change-Id: I4bf84faef873ef18797d08bbf789ae260922a1e2 --- M contrib/osmo-remsim.spec.in 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/63/18963/1 diff --git a/contrib/osmo-remsim.spec.in b/contrib/osmo-remsim.spec.in index 4ff26bc..e11e93f 100644 --- a/contrib/osmo-remsim.spec.in +++ b/contrib/osmo-remsim.spec.in @@ -193,7 +193,7 @@ %files -n osmo-remsim-bankd %{_bindir}/osmo-remsim-bankd %{_unitdir}/osmo-remsim-bankd.service -%config %{_sysconfdir}/default/osmo-remsim-bankd +%config(noreplace) %{_sysconfdir}/default/osmo-remsim-bankd %files -n osmo-remsim-client-shell %{_bindir}/osmo-remsim-client-shell @@ -201,7 +201,7 @@ %files -n osmo-remsim-client-st2 %{_bindir}/osmo-remsim-client-st2 %{_unitdir}/osmo-remsim-client* -%config %{_sysconfdir}/default/osmo-remsim-client* +%config(noreplace) %{_sysconfdir}/default/osmo-remsim-client* %files -n libifd-osmo-remsim-client0 %if 0%{?centos_ver} @@ -211,6 +211,6 @@ %dir %{_libdir}/readers/libifd-osmo-remsim-client.bundle %{_libdir}/readers/libifd-osmo-remsim-client.bundle/* %endif -%config %{_sysconfdir}/reader.conf.d/osmo-remsim-client-reader_conf +%config(noreplace) %{_sysconfdir}/reader.conf.d/osmo-remsim-client-reader_conf %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/18963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I4bf84faef873ef18797d08bbf789ae260922a1e2 Gerrit-Change-Number: 18963 Gerrit-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 Jun 22 13:23:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 13:23:23 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18952 ) Change subject: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers ...................................................................... Patch Set 1: Verified+1 Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/18952/1/ttcn3-bts-test/BTS_Tests.cfg File ttcn3-bts-test/BTS_Tests.cfg: https://gerrit.osmocom.org/c/docker-playground/+/18952/1/ttcn3-bts-test/BTS_Tests.cfg at 12 PS1, Line 12: BTS_Tests.mp_transceiver_num := 4 > Weren't we using 3? 1 main transceiver + 3 additional ones == 4 IPA/RSL connections total. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5d4d9a16d5e30bccc25e8f1030f22b6e49b64c67 Gerrit-Change-Number: 18952 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 13:23:23 +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 Jun 22 13:23:46 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 13:23:46 +0000 Subject: Change in docker-playground[master]: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18952 ) Change subject: ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers ...................................................................... ttcn3-bts-test/BTS_Tests.cfg: configure number of transceivers Change-Id: I5d4d9a16d5e30bccc25e8f1030f22b6e49b64c67 Depends: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173 Related: OS#3155 --- M ttcn3-bts-test/BTS_Tests.cfg 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved; Verified diff --git a/ttcn3-bts-test/BTS_Tests.cfg b/ttcn3-bts-test/BTS_Tests.cfg index 4ea1e59..97608bb 100644 --- a/ttcn3-bts-test/BTS_Tests.cfg +++ b/ttcn3-bts-test/BTS_Tests.cfg @@ -9,6 +9,7 @@ *.BSCVTY.CTRL_HOSTNAME := "172.18.9.11" [MODULE_PARAMETERS] +BTS_Tests.mp_transceiver_num := 4 BTS_Tests.mp_rsl_ip := "172.18.9.10" BTS_Tests.mp_bts_trxc_ip := "172.18.9.21" BTS_Tests.mp_pcu_socket := "/data/unix/pcu_sock" -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5d4d9a16d5e30bccc25e8f1030f22b6e49b64c67 Gerrit-Change-Number: 18952 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria 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 Jun 22 15:30:28 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 15:30:28 +0000 Subject: Change in osmo-bsc[master]: Implement support for receiving BSSMAP CommonID from MSC In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18942 ) Change subject: Implement support for receiving BSSMAP CommonID from MSC ...................................................................... Patch Set 1: Code-Review+1 (4 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18942/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/+/18942/1/src/osmo-bsc/bsc_subscr_conn_fsm.c at 794 PS1, Line 794: mi_imsi = data; When reading this code alone, i immediately ask myself: - could data be NULL? - what if the mi->type is not an IMSI? Of course when investigating, the event dispatch code does duly check that mi_imsi->type == GSM_MI_TYPE_IMSI, and always passes a data pointer. Still would be nice to have an assert or if () for those assumptions here, too (or a comment) so future readers are not compelled to grep for event dispatching code. https://gerrit.osmocom.org/c/osmo-bsc/+/18942/1/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18942/1/src/osmo-bsc/osmo_bsc_bssap.c at 1078 PS1, Line 1078: } else if ((TLVP_VAL(&tp, GSM0808_IE_IMSI)[0] & GSM_MI_TYPE_MASK) != GSM_MI_TYPE_IMSI) { this is re-implementing part of osmo_mobile_identity_decode(), let's just drop this else-if because we're also doing the mi.type check below anyway... https://gerrit.osmocom.org/c/osmo-bsc/+/18942/1/src/osmo-bsc/osmo_bsc_bssap.c at 1084 PS1, Line 1084: mi_imsi.type != GSM_MI_TYPE_IMSI ...here https://gerrit.osmocom.org/c/osmo-bsc/+/18942/1/src/osmo-bsc/osmo_bsc_bssap.c at 1094 PS1, Line 1094: (ws) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I52c43fb940f0db796adf4c0adb2260321c721c39 Gerrit-Change-Number: 18942 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 15:30:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 15:35:27 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 15:35:27 +0000 Subject: Change in osmo-msc[master]: Send "BSSMAP CommonID" to tell BSC about the IMSI In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18949 ) Change subject: Send "BSSMAP CommonID" to tell BSC about the IMSI ...................................................................... Patch Set 2: Code-Review+1 (1 comment) This change is ready for review. https://gerrit.osmocom.org/c/osmo-msc/+/18949/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-msc/+/18949/2//COMMIT_MSG at 16 PS2, Line 16: Requires: libosmocore.git I353adc1aa72377f7d4b3336d2ff47791fb73d62c I thought we use "Depends:" -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I2552736477663adb250c55728093500e8ae83ebb Gerrit-Change-Number: 18949 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 15:35: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 Mon Jun 22 15:43:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 15:43:08 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... Patch Set 2: (1 comment) that was quick to self+2, here is still review https://gerrit.osmocom.org/c/libosmocore/+/18946/2/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/18946/2/src/gsm/gsm0808.c at 1256 PS2, Line 1256: msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); this lacks error checking. I would prefer using the new API: struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI }; OSMO_STRLCPY_ARRAY(mi.imsi, imsi); uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); if (rc < 0) goto error; *l = rc; That looks a bit bloaty, maybe we can reconsider osmo_mobile_identity before the next release? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 15:43: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 Mon Jun 22 15:48:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 15:48:58 +0000 Subject: Change in libosmocore[master]: api comment: fix example of osmo_mobile_identity_encode_msgb References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18964 ) Change subject: api comment: fix example of osmo_mobile_identity_encode_msgb ...................................................................... api comment: fix example of osmo_mobile_identity_encode_msgb The previous example showed a type == IMSI while setting a TMSI value. Rather show how to encode IMSI digits. Change-Id: I41af6bf0d61443465172123297b1228584d791d6 --- M src/gsm/gsm48.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/18964/1 diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 4368ce2..eb1d055 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -751,7 +751,8 @@ /*! Encode Mobile Identity type and BCD digits, appended to a msgb. * Example to add a GSM48_IE_MOBILE_ID IEI with tag and length to a msgb: * - * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, .tmsi = random_tmsi, }; + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI }; + * OSMO_STRLCPY_ARRAY(mi.imsi, "1234567890123456"); * uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); * int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); * if (rc < 0) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I41af6bf0d61443465172123297b1228584d791d6 Gerrit-Change-Number: 18964 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 Jun 22 15:49:50 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 15:49:50 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18946/2/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/18946/2/src/gsm/gsm0808.c at 1238 PS2, Line 1238: struct msgb *gsm0808_create_common_id(const char *imsi, also lacking API doc comment -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 15:49:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 15:58:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 15:58:24 +0000 Subject: Change in osmo-bsc[master]: Avoid selecting channels from administratively locked trx References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18965 ) Change subject: Avoid selecting channels from administratively locked trx ...................................................................... Avoid selecting channels from administratively locked trx Found while playing with "rf_locked 1" on a 2TRX setup with channel allocator descend. After applying the setting, the 1st TRX is still used to allocate the channels. After this patch is applied, the BSC correctly allocates channels from TRX0. Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 --- M src/osmo-bsc/gsm_data.c M tests/handover/handover_test.c 2 files changed, 10 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/18965/1 diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 9bf6f82..2f2b2c8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1459,10 +1459,13 @@ } bool nm_is_running(const struct gsm_nm_state *s) { - return (s->operational == NM_OPSTATE_ENABLED) && ( - (s->availability == NM_AVSTATE_OK) || - (s->availability == 0xff) - ); + if (s->operational != NM_OPSTATE_ENABLED) + return false; + if ((s->availability != NM_AVSTATE_OK) && (s->availability != 0xff)) + return false; + if (s->administrative != NM_STATE_UNLOCKED) + return false; + return true; } /* determine the logical channel type based on the physical channel type */ diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index b08e2a3..1a756cd 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -197,14 +197,17 @@ bts->c0->mo.nm_state.operational = NM_OPSTATE_ENABLED; bts->c0->mo.nm_state.availability = NM_AVSTATE_OK; + bts->c0->mo.nm_state.administrative = NM_STATE_UNLOCKED; bts->c0->bb_transc.mo.nm_state.operational = NM_OPSTATE_ENABLED; bts->c0->bb_transc.mo.nm_state.availability = NM_AVSTATE_OK; + bts->c0->bb_transc.mo.nm_state.administrative = NM_STATE_UNLOCKED; /* 4 full rate and 4 half rate channels */ for (i = 1; i <= 6; i++) { bts->c0->ts[i].pchan_from_config = (i < 5) ? GSM_PCHAN_TCH_F : GSM_PCHAN_TCH_H; bts->c0->ts[i].mo.nm_state.operational = NM_OPSTATE_ENABLED; bts->c0->ts[i].mo.nm_state.availability = NM_AVSTATE_OK; + bts->c0->ts[i].mo.nm_state.administrative = NM_STATE_UNLOCKED; } for (i = 0; i < ARRAY_SIZE(bts->c0->ts); i++) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 Gerrit-Change-Number: 18965 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 Jun 22 15:58:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 15:58:40 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... Patch Set 2: posting a fixup patch... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 15:58:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 15:59:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 15:59:01 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 15:59:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 16:00:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 16:00:00 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 16:00:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 16:00:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 16:00:04 +0000 Subject: Change in osmo-msc[master]: msc_a: add callref as call id to ASSIGNMENT REQ. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18692 ) Change subject: msc_a: add callref as call id to ASSIGNMENT REQ. ...................................................................... msc_a: add callref as call id to ASSIGNMENT REQ. The BSSMAP message ASSIGNMENT REQUEST may contain an optional CALL IDENTIFIER IE. While this IE is optional some BSC implementions may require it. Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Related: OS#4582 --- M include/osmocom/msc/ran_msg.h M src/libmsc/msc_a.c M src/libmsc/ran_msg_a.c 3 files changed, 9 insertions(+), 1 deletion(-) Approvals: laforge: 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 1b0e2e8..3b08b46 100644 --- a/include/osmocom/msc/ran_msg.h +++ b/include/osmocom/msc/ran_msg.h @@ -86,6 +86,8 @@ enum nsap_addr_enc rab_assign_addr_enc; bool osmux_present; uint8_t osmux_cid; + bool call_id_present; + uint32_t call_id; }; struct ran_cipher_mode_command { diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index 4d856d0..3bfc0f8 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -541,6 +541,8 @@ .channel_type = &channel_type, .osmux_present = msc_a->cc.call_leg->rtp[RTP_TO_RAN]->use_osmux, .osmux_cid = msc_a->cc.call_leg->rtp[RTP_TO_RAN]->local_osmux_cid, + .call_id_present = true, + .call_id = cc_trans->callref, }, }; if (msc_a_ran_down(msc_a, MSC_ROLE_I, &msg)) { diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index 28f99ce..e6dee52 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -959,6 +959,7 @@ struct sockaddr_storage rtp_addr; struct sockaddr_storage *use_rtp_addr = NULL; struct msgb *msg; + const uint32_t *call_id = NULL; int rc; if (!ac->channel_type) { @@ -999,7 +1000,10 @@ } } - msg = gsm0808_create_ass(ac->channel_type, NULL, use_rtp_addr, use_scl, NULL); + if(ac->call_id_present == true) + call_id = &ac->call_id; + + msg = gsm0808_create_ass(ac->channel_type, NULL, use_rtp_addr, use_scl, call_id); if (ac->osmux_present) _gsm0808_assignment_extend_osmux(msg, ac->osmux_cid); return msg; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I4288f47e4a6d61ec672f431723f6e72c7c6b0799 Gerrit-Change-Number: 18692 Gerrit-PatchSet: 4 Gerrit-Owner: dexter 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 Mon Jun 22 16:00:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 16:00:05 +0000 Subject: Change in osmo-msc[master]: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18740 ) Change subject: msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST ...................................................................... msc_ho: fix CALL IDENTIFIER in HANDOVER REQUEST When msc_ho_send_handover_request() generates the HANDOVER REQUEST message, it does not populate the call_id struct member. In ran_msg_a.c the struct member call_id is used, but the call_id_present flag is not set, which also prevents the call_id being added to the message Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Related: OS#4582 --- M src/libmsc/msc_ho.c M src/libmsc/ran_msg_a.c 2 files changed, 4 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/src/libmsc/msc_ho.c b/src/libmsc/msc_ho.c index aa513eb..d89a24c 100644 --- a/src/libmsc/msc_ho.c +++ b/src/libmsc/msc_ho.c @@ -383,6 +383,7 @@ struct vlr_subscr *vsub = msc_a_vsub(msc_a); struct gsm_network *net = msc_a_net(msc_a); struct gsm0808_channel_type channel_type; + struct gsm_trans *cc_trans = msc_a->cc.active_trans; struct ran_msg ran_enc_msg = { .msg_type = RAN_MSG_HANDOVER_REQUEST, .handover_request = { @@ -402,6 +403,8 @@ /* Don't send AoIP Transport Layer Address for inter-MSC Handover */ .rtp_ran_local = (msc_a->ho.new_cell.type == MSC_NEIGHBOR_TYPE_LOCAL_RAN_PEER) ? call_leg_local_ip(msc_a->cc.call_leg, RTP_TO_RAN) : NULL, + .call_id_present = true, + .call_id = cc_trans->callref, }, }; diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index e6dee52..ab58526 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -1121,6 +1121,7 @@ .imsi = n->imsi, .codec_list_msc_preferred = n->codec_list_msc_preferred, + .call_id_present = n->call_id_present, .call_id = n->call_id, .global_call_reference = n->global_call_reference, .global_call_reference_len = n->global_call_reference_len, -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6b1b55b3f5a3092d9557dc2512020c766a9ff744 Gerrit-Change-Number: 18740 Gerrit-PatchSet: 5 Gerrit-Owner: dexter 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 Jun 22 16:01:29 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:01:29 +0000 Subject: Change in libosmocore[master]: fixup for gsm0808_create_common_id(): add API doc, use new MI API References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/18966 ) Change subject: fixup for gsm0808_create_common_id(): add API doc, use new MI API ...................................................................... fixup for gsm0808_create_common_id(): add API doc, use new MI API Follows patch I353adc1aa72377f7d4b3336d2ff47791fb73d62c that was merged too soon. Applying my code review in form of this fixup patch. Change-Id: I979bca0c6aaa8fe4feddda922bd2e6c1cb49585b --- M src/gsm/gsm0808.c 1 file changed, 17 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/18966/1 diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index e1db175..a1d567d 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -1235,14 +1235,19 @@ return msg; } +/*! Create BSSMAP COMMON ID message, 3GPP TS 48.008 3.2.1.68. + * \param[in] imsi IMSI digits (decimal string). + * \param[in] selected_plmn_id Selected PLMN ID to encode, or NULL to not encode this IE. + * \param[in] last_used_eutran_plnm_id Last used E-UTRAN PLMN ID to encode, or NULL to not encode this IE. + * \returns callee-allocated msgb with BSSMAP COMMON ID message, or NULL if encoding failed. */ struct msgb *gsm0808_create_common_id(const char *imsi, const struct osmo_plmn_id *selected_plmn_id, const struct osmo_plmn_id *last_used_eutran_plnm_id) { struct msgb *msg; - uint8_t mid_buf[GSM48_MI_SIZE + 2]; uint8_t *out; - int mid_len; + struct osmo_mobile_identity mi; + int rc; msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "COMMON-ID"); if (!msg) @@ -1252,8 +1257,16 @@ msgb_v_put(msg, BSS_MAP_MSG_COMMON_ID); /* mandatory IMSI 3.2.2.6 */ - mid_len = gsm48_generate_mid_from_imsi(mid_buf, imsi); - msgb_tlv_put(msg, GSM0808_IE_IMSI, mid_len - 2, mid_buf + 2); + mi = (struct osmo_mobile_identity){ .type = GSM_MI_TYPE_IMSI }; + OSMO_STRLCPY_ARRAY(mi.imsi, imsi); + out = msgb_tl_put(msg, GSM0808_IE_IMSI); + rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); + if (rc < 0) { + msgb_free(msg); + return NULL; + } + /* write the MI value length */ + *out = rc; /* not implemented: SNA Access Information */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I979bca0c6aaa8fe4feddda922bd2e6c1cb49585b Gerrit-Change-Number: 18966 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 Jun 22 16:01:52 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:01:52 +0000 Subject: Change in libosmocore[master]: gsm0808: Add gsm0808_create_common_id() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18946 ) Change subject: gsm0808: Add gsm0808_create_common_id() ...................................................................... Patch Set 2: https://gerrit.osmocom.org/c/libosmocore/+/18966 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I353adc1aa72377f7d4b3336d2ff47791fb73d62c Gerrit-Change-Number: 18946 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 16:01:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 16:07:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:07:05 +0000 Subject: Change in docker-playground[master]: MSC_Tests.cfg: tweak comments In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18776 ) Change subject: MSC_Tests.cfg: tweak comments ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 Gerrit-Change-Number: 18776 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 16:07:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 16:07:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:07:07 +0000 Subject: Change in docker-playground[master]: MSC_Tests.cfg: tweak comments In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18776 ) Change subject: MSC_Tests.cfg: tweak comments ...................................................................... MSC_Tests.cfg: tweak comments Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 --- M ttcn3-msc-test/MSC_Tests.cfg 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve neels: Verified diff --git a/ttcn3-msc-test/MSC_Tests.cfg b/ttcn3-msc-test/MSC_Tests.cfg index 1614d24..1e5fd61 100644 --- a/ttcn3-msc-test/MSC_Tests.cfg +++ b/ttcn3-msc-test/MSC_Tests.cfg @@ -14,9 +14,9 @@ transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23906, "172.18.1.103", 2905, "172.18.1.200" }, - own_pc := 193, /* 0.24.1 */ + own_pc := 193, /* 0.24.1 BSC emulation [0] */ own_ssn := 254, - peer_pc := 185, /* 0.23.1 */ + peer_pc := 185, /* 0.23.1 osmo-msc */ peer_ssn := 254, sio := '83'O, rctx := 0 @@ -25,9 +25,9 @@ transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23907, "172.18.1.103", 2905, "172.18.1.200" }, - own_pc := 194, /* 0.24.2 */ + own_pc := 194, /* 0.24.2 BSC emulation [1] */ own_ssn := 254, - peer_pc := 185, /* 0.23.1 */ + peer_pc := 185, /* 0.23.1 osmo-msc */ peer_ssn := 254, sio := '83'O, rctx := 1 @@ -36,9 +36,9 @@ transport := RANAP_TRANSPORT_IuCS, sccp_service_type := "mtp3_itu", sctp_addr := { 23908, "172.18.1.103", 2905, "172.18.1.200" }, - own_pc := 195, /* 0.24.3 */ + own_pc := 195, /* 0.24.3 BSC emulation [2] */ own_ssn := 142, - peer_pc := 185, /* 0.23.1 */ + peer_pc := 185, /* 0.23.1 osmo-msc */ peer_ssn := 142, sio := '83'O, rctx := 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If5f9cff03f078987c5b9051f8d63c239bf92ddb7 Gerrit-Change-Number: 18776 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Jun 22 16:31:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 16:31:30 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 to look at the new patch set (#3). Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf bts_model_trx_close is only called during bts_shutdown immediately after bts_model_deact_rf, so its logic keeps being essentially the same after this code movement. On the other hand, bts_model_deact_rf is also called during RSL link establishment if it failed for whatever reason in bts.c:trx_link_estab(). In that case, we want to make sure the TRX is not used so we need to implement bts_model_deact_rf. Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a --- M src/osmo-bts-trx/l1_if.c 1 file changed, 17 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/10/18910/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 3 Gerrit-Owner: 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 Mon Jun 22 16:31:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 16:31:31 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement ramp up/down during ADM state change References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18967 ) Change subject: bts-trx: Implement ramp up/down during ADM state change ...................................................................... bts-trx: Implement ramp up/down during ADM state change Ramp down when BTS is administratevly locked, and ramp up when it becomes unlocked again. Af ramping down, bts_model_trx_deact_rf is called to make sure all channels are released. power_ramp_start() is dropped from inside bts_model_trx_deact_rf since it's not the proper place. In there we simply want to instantaneously drop RF. Change-Id: Ib7a7b0a0c24779349f142215f0bb32b72c86ce70 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 61 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/18967/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 22b590a..16db678 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -45,6 +45,7 @@ #include "l1_if.h" #include "trx_if.h" +#define RF_DISABLED_mdB to_mdB(-10) static const uint8_t transceiver_chan_types[_GSM_PCHAN_MAX] = { [GSM_PCHAN_NONE] = 8, @@ -138,15 +139,15 @@ return trx_sched_set_lchan(&l1h->l1s, gsm_lchan2chan_nr(lchan), LID_SACCH, false); } -static void l1if_trx_start_power_ramp(struct gsm_bts_trx *trx) +static int l1if_trx_start_power_ramp(struct gsm_bts_trx *trx, ramp_compl_cb_t ramp_compl_cb) { struct phy_instance *pinst = trx_phy_instance(trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; if (l1h->config.forced_max_power_red == -1) - power_ramp_start(trx, get_p_nominal_mdBm(trx), 0, NULL); + return power_ramp_start(trx, get_p_nominal_mdBm(trx), 0, ramp_compl_cb); else - power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1, NULL); + return power_ramp_start(trx, get_p_max_out_mdBm(trx) - to_mdB(l1h->config.forced_max_power_red), 1, ramp_compl_cb); } /* Sets the nominal power, in dB */ @@ -159,13 +160,14 @@ trx->power_params.trx_p_max_out_mdBm = to_mdB(nominal_power); /* If TRX is not yet powered, delay ramping until it's ON */ - if (!nom_pwr_changed || !pinst->phy_link->u.osmotrx.powered) + if (!nom_pwr_changed || !pinst->phy_link->u.osmotrx.powered || + trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) return; /* We are already ON and we got new information about nominal power, so * let's make sure we adapt the tx power to it */ - l1if_trx_start_power_ramp(trx); + l1if_trx_start_power_ramp(trx, NULL); } static void l1if_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc) @@ -220,7 +222,8 @@ /* Begin to ramp up the power on all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { - l1if_trx_start_power_ramp(pinst->trx); + if (pinst->trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) + l1if_trx_start_power_ramp(pinst->trx, NULL); } } else if (rc != 0 && plink->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); @@ -421,12 +424,6 @@ pchan == GSM_PCHAN_CCCH_SDCCH4_CBCH) { lchan_set_state(&trx->ts[0].lchan[CCCH_LCHAN], LCHAN_S_INACTIVE); } - /* FIXME: There's currently no way to communicate to osmo-trx through - * TRXC that a specific TRX processing shall be paused. Let's simply - * make sure that at least we don't transmit with power on it by setting - * a rather low value: - */ - power_ramp_start(trx, to_mdB(-10), 1, NULL); return 0; } @@ -502,7 +499,8 @@ /* Begin to ramp up the power if power reduction is set by OML and TRX is already running. Otherwise skip, power ramping will be started after TRX is running */ - if (plink->u.osmotrx.powered && l1h->config.forced_max_power_red == -1) + if (plink->u.osmotrx.powered && l1h->config.forced_max_power_red == -1 && + trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) power_ramp_start(pinst->trx, get_p_nominal_mdBm(pinst->trx), 0, NULL); return 0; @@ -863,12 +861,59 @@ return rc; } +static void bts_model_chg_adm_state_ramp_compl_cb(struct gsm_bts_trx *trx) +{ + LOGPTRX(trx, DL1C, LOGL_INFO, "power ramp due to ADM STATE change finished\n"); + trx->mo.procedure_pending = 0; + if (trx->mo.nm_state.administrative == NM_STATE_LOCKED) + bts_model_trx_deact_rf(trx); +} + int bts_model_chg_adm_state(struct gsm_bts *bts, struct gsm_abis_mo *mo, void *obj, uint8_t adm_state) { - /* blindly accept all state changes */ - mo->nm_state.administrative = adm_state; - return oml_mo_statechg_ack(mo); + struct gsm_bts_trx *trx; + struct phy_instance *pinst; + int rc = 0; + + switch (mo->obj_class) { + case NM_OC_RADIO_CARRIER: + trx = (struct gsm_bts_trx *) obj; + pinst = trx_phy_instance(trx); + + /* Begin to ramp the power if TRX is already running. Otherwise + * skip, power ramping will be started after TRX is running */ + if (!pinst->phy_link->u.osmotrx.powered) + break; + + if (mo->procedure_pending) { + LOGPTRX(trx, DL1C, LOGL_ERROR, "Discarding adm change command: " + "pending procedure on RC %d\n", + ((struct gsm_bts_trx *)obj)->nr); + return 0; + } + switch (adm_state) { + case NM_STATE_LOCKED: + mo->procedure_pending = 1; + rc = power_ramp_start(trx, RF_DISABLED_mdB, 1, bts_model_chg_adm_state_ramp_compl_cb); + break; + case NM_STATE_UNLOCKED: + mo->procedure_pending = 1; + rc = l1if_trx_start_power_ramp(trx, bts_model_chg_adm_state_ramp_compl_cb); + break; + default: + break; + } + break; + default: + break; + } + + if (rc == 0) { + mo->nm_state.administrative = adm_state; + return oml_mo_statechg_ack(mo); + } else + return oml_mo_statechg_nack(mo, NM_NACK_REQ_NOT_GRANT); } int bts_model_oml_estab(struct gsm_bts *bts) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib7a7b0a0c24779349f142215f0bb32b72c86ce70 Gerrit-Change-Number: 18967 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 Jun 22 16:36:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 16:36:44 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement ramp up/down during ADM state change In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18967 ) Change subject: bts-trx: Implement ramp up/down during ADM state change ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18967/1/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18967/1/src/osmo-bts-trx/l1_if.c at 869 PS1, Line 869: bts_model_trx_deact_rf(trx); I'm still having an issue with this patch where, after applying "rf_locked 1" on TRX1, I cannot longer establish any connection from an MS with the network, even if I "rf_locked 0" to go back to usual state. I can see the Assignment Command being set to the MS, but nothing more. The issue looks related to this bts_model_trx_deact_rf() here calling "trx_sched_reset(&l1h->l1s);". If I uncomment that line (so trx_sched_reset() is not called), then phones still work after I apply "rf_locked 1". So looks like I'm missing something to re-establish previous state with regard to scheduler? Any help here would be appreciated. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib7a7b0a0c24779349f142215f0bb32b72c86ce70 Gerrit-Change-Number: 18967 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 16:36:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 16:46:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 16:46:20 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement ramp up/down during ADM state change In-Reply-To: References: Message-ID: Hello dexter, fixeria, daniel, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18967 to look at the new patch set (#2). Change subject: bts-trx: Implement ramp up/down during ADM state change ...................................................................... bts-trx: Implement ramp up/down during ADM state change Ramp down when BTS is administratevly locked, and ramp up when it becomes unlocked again. Af ramping down, bts_model_trx_deact_rf is called to make sure all channels are released. power_ramp_start() is dropped from inside bts_model_trx_deact_rf since it's not the proper place. In there we simply want to instantaneously drop RF. Related: SYS#4920 Change-Id: Ib7a7b0a0c24779349f142215f0bb32b72c86ce70 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 61 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/18967/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib7a7b0a0c24779349f142215f0bb32b72c86ce70 Gerrit-Change-Number: 18967 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 16:46:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 16:46:21 +0000 Subject: Change in osmo-bts[master]: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18968 ) Change subject: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated ...................................................................... bts-trx: Mark 'osmotrx power' VTY cmd as deprecated There's a standarized way through OML's Administrate State to control the status of TRX, so let's use and maintain that one rather than this ad-hoc hack. Related: SYS#4920 Change-Id: Ia7f190063c35e0ed8e2e734047b3aff608cd3ce3 --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/18968/1 diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index b3214ee..2e52958 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -296,7 +296,7 @@ return CMD_SUCCESS; } -DEFUN(cfg_phyinst_power_on, cfg_phyinst_power_on_cmd, +DEFUN_DEPRECATED(cfg_phyinst_power_on, cfg_phyinst_power_on_cmd, "osmotrx power (on|off)", OSMOTRX_STR "Change TRX state\n" @@ -305,6 +305,10 @@ struct phy_instance *pinst = vty->index; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + vty_out (vty, "'osmotrx power' is deprecated, use OML's standard " + "Administrative State instead to control each TRX " + "('rf_locked' VTY cmd in osmo-bsc)%s", VTY_NEWLINE); + if (strcmp(argv[0], "on")) vty_out(vty, "OFF: %d%s", trx_if_cmd_poweroff(l1h, NULL), VTY_NEWLINE); else { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7f190063c35e0ed8e2e734047b3aff608cd3ce3 Gerrit-Change-Number: 18968 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 Jun 22 16:47:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:47:02 +0000 Subject: Change in osmo-msc[master]: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout 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-msc/+/18924 to look at the new patch set (#2). Change subject: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc --- M src/osmo-msc/msc_main.c 1 file changed, 16 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/18924/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc Gerrit-Change-Number: 18924 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 Mon Jun 22 16:47:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:47:02 +0000 Subject: Change in osmo-msc[master]: manuals: generate vty reference xml at build 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/osmo-msc/+/18925 to look at the new patch set (#2). Change subject: manuals: generate vty reference xml at build time ...................................................................... manuals: generate vty reference xml at build time Move 'doc' subdir further down to "make sure" the osmo-msc binary is built before the docs. Remove msc_vty_reference.xml from the source tree. In manuals/Makefile.am use the new BUILT_REFERENCE_XML feature recently added to osmo-gsm-manuals, and add a build target to generate the XML using the new osmo-msc --vty-ref-xml cmdline switch. Depends: I613d692328050a036d05b49a436ab495fc2087ba (osmo-gsm-manuals) Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 --- M Makefile.am M doc/manuals/Makefile.am D doc/manuals/vty/msc_vty_reference.xml 3 files changed, 6 insertions(+), 3,255 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/25/18925/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 Gerrit-Change-Number: 18925 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 Mon Jun 22 16:47:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:47:02 +0000 Subject: Change in osmo-msc[master]: make vty-transcrip-test: use $VTY_TEST var like osmo-bsc References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18969 ) Change subject: make vty-transcrip-test: use $VTY_TEST var like osmo-bsc ...................................................................... make vty-transcrip-test: use $VTY_TEST var like osmo-bsc Adopt the same way to run manual vty transcript tests as in osmo-bsc/test/Makefile.am. There are different ways to select a specific test to run in osmo-bsc and here in osmo-msc. The osmo-bsc way is more convenient when building outside the src tree, because it does not need the full absolute path of the test file. Change-Id: If1e2abfa321a5e9fb60358d1f0e4e448b33184af --- M tests/Makefile.am 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/69/18969/1 diff --git a/tests/Makefile.am b/tests/Makefile.am index 5af80a4..c765158 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -71,6 +71,9 @@ $(srcdir)/vty_test_runner.py -w $(abs_top_builddir) -v rm -f $(top_builddir)/sms.db +# Run a specific transcript test with: 'make vty-transcript-test VTY_TEST=osmo-msc.vty' +VTY_TEST ?= *.vty + # To update the VTY script from current application behavior, # pass -u to vty_script_runner.py by doing: # make vty-transcript-test U=-u @@ -78,7 +81,7 @@ osmo_verify_transcript_vty.py -v \ -n OsmoMSC -p 4254 \ -r "$(top_builddir)/src/osmo-msc/osmo-msc -c $(top_srcdir)/doc/examples/osmo-msc/osmo-msc.cfg" \ - $(U) $${T:-$(srcdir)/*.vty} + $(U) $(srcdir)/$(VTY_TEST) rm -f $(builddir)/sms.db # don't run multiple tests concurrently so that the ports don't conflict -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: If1e2abfa321a5e9fb60358d1f0e4e448b33184af Gerrit-Change-Number: 18969 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 Jun 22 16:50:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 16:50:14 +0000 Subject: Change in libosmocore[master]: api comment: fix example of osmo_mobile_identity_encode_msgb In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18964 ) Change subject: api comment: fix example of osmo_mobile_identity_encode_msgb ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I41af6bf0d61443465172123297b1228584d791d6 Gerrit-Change-Number: 18964 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 16:50: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 Jun 22 16:51:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 16:51:11 +0000 Subject: Change in libosmocore[master]: fixup for gsm0808_create_common_id(): add API doc, use new MI API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18966 ) Change subject: fixup for gsm0808_create_common_id(): add API doc, use new MI API ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I979bca0c6aaa8fe4feddda922bd2e6c1cb49585b Gerrit-Change-Number: 18966 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 16: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 Mon Jun 22 16:51:56 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:51:56 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build 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/osmo-mgw/+/18927 to look at the new patch set (#2). Change subject: manuals: generate vty reference xml at build time ...................................................................... manuals: generate vty reference xml at build time Move 'doc' subdir further down to "make sure" the osmo-mgw binary is built before the docs. Remove mgw_vty_reference.xml from the source tree. In manuals/Makefile.am use the new BUILT_REFERENCE_XML feature recently added to osmo-gsm-manuals, and add a build target to generate the XML using the new osmo-mgw --vty-ref-xml cmdline switch. Depends: I613d692328050a036d05b49a436ab495fc2087ba (osmo-gsm-manuals) Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 --- M doc/manuals/Makefile.am D doc/manuals/vty/mgw_vty_reference.xml 2 files changed, 5 insertions(+), 1,677 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/27/18927/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 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 Mon Jun 22 16:58:12 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:58:12 +0000 Subject: Change in osmo-msc[master]: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout 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-msc/+/18924 to look at the new patch set (#3). Change subject: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc --- M src/osmo-msc/msc_main.c 1 file changed, 20 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/18924/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc Gerrit-Change-Number: 18924 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 16:59:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 16:59:26 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build 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/osmo-mgw/+/18927 to look at the new patch set (#3). Change subject: manuals: generate vty reference xml at build time ...................................................................... manuals: generate vty reference xml at build time Move 'doc' subdir further down to "make sure" the osmo-mgw binary is built before the docs. Remove mgw_vty_reference.xml from the source tree. In manuals/Makefile.am use the new BUILT_REFERENCE_XML feature recently added to osmo-gsm-manuals, and add a build target to generate the XML using the new osmo-mgw --vty-ref-xml cmdline switch. Depends: I613d692328050a036d05b49a436ab495fc2087ba (osmo-gsm-manuals) Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 --- M Makefile.am M doc/manuals/Makefile.am D doc/manuals/vty/mgw_vty_reference.xml 3 files changed, 6 insertions(+), 1,678 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/27/18927/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 17:04:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 17:04:22 +0000 Subject: Change in osmo-msc[master]: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout 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-msc/+/18924 to look at the new patch set (#4). Change subject: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Make sure that all VTY commands have been added before parsing cmdline options: move various VTY init further above. For msc_vty_init(), the global msc_network already needs to be allocated, so also move that. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc --- M src/osmo-msc/msc_main.c 1 file changed, 20 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/18924/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc Gerrit-Change-Number: 18924 Gerrit-PatchSet: 4 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 Mon Jun 22 17:10:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 17:10:58 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: Wait until all TRX are closed In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18954 ) Change subject: bts_shutdown: Wait until all TRX are closed ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 Gerrit-Change-Number: 18954 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 17:10:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 17:35:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 17:35:22 +0000 Subject: Change in osmo-bts[master]: bts.c: Fix typo in log line and improve it References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18970 ) Change subject: bts.c: Fix typo in log line and improve it ...................................................................... bts.c: Fix typo in log line and improve it Change-Id: I44d079893d01946da703c4338a686795ced3cb00 --- M src/common/bts.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/70/18970/1 diff --git a/src/common/bts.c b/src/common/bts.c index d8a6ff2..d2bca2f 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -307,7 +307,7 @@ { int i, j; - LOGP(DSUM, LOGL_INFO, "Main link established, sending Status'.\n"); + LOGP(DSUM, LOGL_INFO, "Main link established, sending NM Status.\n"); /* BTS and SITE MGR are EANBLED, BTS is DEPENDENCY */ oml_tx_state_changed(&bts->site_mgr.mo); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I44d079893d01946da703c4338a686795ced3cb00 Gerrit-Change-Number: 18970 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 Jun 22 17:40:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 17:40:22 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 3: (6 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/include/osmo-bts/bts_shutdown_fsm.h File include/osmo-bts/bts_shutdown_fsm.h: https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/include/osmo-bts/bts_shutdown_fsm.h at 40 PS3, Line 40: struct gsm_bts; weird to declare an opaque struct without any API in this header requiring it https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/bts_shutdown_fsm.c at 34 PS3, Line 34: [BTS_SHUTDOWN_ST_NONE] = { }, (you can just omit states that need no T set, it will be zero initialized implicitly) https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/bts_shutdown_fsm.c at 40 PS3, Line 40: ((struct gsm_bts *)fi->priv)->T_defs (since there is only one global struct gsm_bts, the T_defs could also be just a global pointer) https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/bts_shutdown_fsm.c at 89 PS3, Line 89: .name = "WaitRampDownComplete", (my personal humble opinion is that I want to be able to directly grep the src by state names seen in the logs, here "WAIT_RAMP_DOWN_COMPL" would allow that) https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/gsm_data.c at 43 PS3, Line 43: { .T=-1, .default_val=1, .desc="Grace time for ramp down complete during shutdown (s)" }, It could be good to de-collision with other T used in various osmo programs, see http://osmocom.org/issues/4539 . osmo-bsc and osmo-msc already both use -1 and -2. We haven't really discussed a scheme on those timer numbers yet, but still maybe better not add more "collisions" for the time being? rgrep 'T=-' https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/gsm_data.c at 295 PS3, Line 295: LOGL_INFO, bts_name); (possible without a char buffer: osmo_fsm_inst_alloc(..., id=NULL); osmo_fsm_inst_update_id_f(fi, "bts%d", bts->nr); hold on, there is only one BTS in osmo-bts ... why even add the number? ) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 17:40: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 Mon Jun 22 17:41:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 17:41:22 +0000 Subject: Change in osmo-bsc[master]: Avoid selecting channels from administratively locked trx 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/+/18965 to look at the new patch set (#2). Change subject: Avoid selecting channels from administratively locked trx ...................................................................... Avoid selecting channels from administratively locked trx Found while playing with "rf_locked 1" on a 2TRX setup with channel allocator descend. After applying the setting, the 1st TRX is still used to allocate the channels. After this patch is applied, the BSC correctly allocates channels from TRX0. Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 --- M src/osmo-bsc/abis_nm.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/osmo_bsc_main.c M tests/handover/handover_test.c 4 files changed, 11 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/18965/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 Gerrit-Change-Number: 18965 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 Jun 22 17:44:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 17:44:54 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/include/osmo-bts/bts_shutdown_fsm.h File include/osmo-bts/bts_shutdown_fsm.h: https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/include/osmo-bts/bts_shutdown_fsm.h at 40 PS3, Line 40: struct gsm_bts; > weird to declare an opaque struct without any API in this header requiring it That's a leftover from previous patch, thanks for catching. https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/gsm_data.c at 295 PS3, Line 295: LOGL_INFO, bts_name); > (possible without a char buffer: [?] Regarding global pointers vs using structs, I always prefer keeping stuff referenced in a tree rather than having more and more global variables. Regarding why bts0: because we use numbers in VTY for bts object too. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 17:44:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 17:55:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 17:55:39 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18903/3/src/common/gsm_data.c at 45 PS3, Line 45: {} Also noticing now: "grace time" means always wait this long before some action is taken, i.e. would mean time *before starting* to ramp down. Reading the impl it seems to me that these are more a "sanity timeout". Maybe explain "time after which osmo-bts exits if regular ramp down does not finish" or something like that?? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 17:55:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 17:56:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 17:56:53 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/bts_shutdown_fsm.c at 78 PS3, Line 78: if (trx->power_params.p_total_cur_mdBm > 0) so the mdBm <= 0 corresponds to the to_mdB(-10) above? Asking because that's the only thing making sure we've actually received the ramp_down_compl_cb for each trx, and the relation is not obvious (enough) to me. https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/gsm_data.c at 44 PS3, Line 44: * shutdown start based on params below, and highest trx value taken: (if it is a sanity timeout then a fixed number should be fine IMO) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 17:56:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 18:04:14 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 18:04:14 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 18:04: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 Jun 22 18:15:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 18:15:56 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/bts_shutdown_fsm.c at 78 PS3, Line 78: if (trx->power_params.p_total_cur_mdBm > 0) > so the mdBm <= 0 corresponds to the to_mdB(-10) above? [?] Yes, I opted to make it more robust by simply checking it reached at least 0. In any case theoretically the callback is not called until the target is reached, but I thought it was more robust to check for 0 here in case some TRX backend for whatever reason plays wrong with negative values and we end up with only 0 being set. I can change it if you want, not really important imho. https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/3/src/common/gsm_data.c at 44 PS3, Line 44: * shutdown start based on params below, and highest trx value taken: > (if it is a sanity timeout then a fixed number should be fine IMO) well the problem here is that the timeout can be quite large if specific the power-ramp params are set, so ideally it'd be better to make the sanity timeout adaptative. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 18:15:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 18:16:40 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 18:16:40 +0000 Subject: Change in osmo-bts[master]: bts_model: Convert bts_model_trx_close() to return asynchronously In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18953 ) Change subject: bts_model: Convert bts_model_trx_close() to return asynchronously ...................................................................... Patch Set 2: Code-Review+1 (8 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/include/osmo-bts/bts_model.h File include/osmo-bts/bts_model.h: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/include/osmo-bts/bts_model.h at 34 PS2, Line 34: /* Implementation should call bts_model_trx_close_cb when done */ (possibly better place the comment in the .c file?) https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/include/osmo-bts/bts_model.h at 67 PS2, Line 67: /* BTS model specific implementations are expected to call this functions as a ("this function" vs "these functions") https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/include/osmo-bts/bts_model.h at 71 PS2, Line 71: void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc); (maybe "closed_cb" with d) https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-omldummy/bts_model.c File src/osmo-bts-omldummy/bts_model.c: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-omldummy/bts_model.c at 53 PS2, Line 53: void bts_model_trx_close(struct gsm_bts_trx *trx) separate fix? https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-omldummy/bts_model.c at 55 PS2, Line 55: LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); i guess it's implemented now? :) https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-trx/l1_if.c at 217 PS2, Line 217: if (rc == 0 && plink->state != PHY_LINK_CONNECTED) { (the cosmetic plink change confused me reading the patch) https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-trx/l1_if.c at 444 PS2, Line 444: } else if (!pinst->phy_link->u.osmotrx.poweronoff_sent) { this is immediately responding with close_cb() in case it was never powered on? (explain in a comment?) https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-virtual/bts_model.c File src/osmo-bts-virtual/bts_model.c: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-virtual/bts_model.c at 55 PS2, Line 55: LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); (implemented now) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a Gerrit-Change-Number: 18953 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 18:16: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 Jun 22 18:18:20 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 22 Jun 2020 18:18:20 +0000 Subject: Change in osmo-bts[master]: bts-virtual: Implement bts_model_trx_close In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18955 ) Change subject: bts-virtual: Implement bts_model_trx_close ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id37562652b1ebc27d808d83342e4961b936dbcad Gerrit-Change-Number: 18955 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 22 Jun 2020 18:18: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 Jun 22 18:35:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 18:35:15 +0000 Subject: Change in libosmocore[master]: fixup for gsm0808_create_common_id(): add API doc, use new MI API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18966 ) Change subject: fixup for gsm0808_create_common_id(): add API doc, use new MI API ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/18966/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/18966/1/src/gsm/gsm0808.c at 1238 PS1, Line 1238: /*! Create BSSMAP COMMON ID message, 3GPP TS 48.008 3.2.1.68. thanks, I didn't bother as none of the other gsm0808_ functions I saw had any documentation. But it's a lame ecuse. https://gerrit.osmocom.org/c/libosmocore/+/18966/1/src/gsm/gsm0808.c at 1269 PS1, Line 1269: *out = rc; well, I was using the same functions as used a few lines above when generating the GSM0808_IE_IMSI for the BSSMAP PAGING REQUEST. I think if we convert from old to new APIs we should convert all of the old API users in the file at once? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I979bca0c6aaa8fe4feddda922bd2e6c1cb49585b Gerrit-Change-Number: 18966 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 18:35:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 18:49:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 18:49:24 +0000 Subject: Change in osmo-bsc[master]: Avoid selecting channels from administratively locked trx In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18965 ) Change subject: Avoid selecting channels from administratively locked trx ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 Gerrit-Change-Number: 18965 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 18:49: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 Jun 22 18:49:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 18:49:49 +0000 Subject: Change in osmo-bts[master]: bts.c: Fix typo in log line and improve it In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18970 ) Change subject: bts.c: Fix typo in log line and improve it ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I44d079893d01946da703c4338a686795ced3cb00 Gerrit-Change-Number: 18970 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 18:49: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 Jun 22 18:50:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 18:50:15 +0000 Subject: Change in osmo-bts[master]: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18968 ) Change subject: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7f190063c35e0ed8e2e734047b3aff608cd3ce3 Gerrit-Change-Number: 18968 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 18:50:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 19:17:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:17:07 +0000 Subject: Change in osmo-bts[master]: bts-trx: Implement ramp up/down during ADM state change In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18967 ) Change subject: bts-trx: Implement ramp up/down during ADM state change ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib7a7b0a0c24779349f142215f0bb32b72c86ce70 Gerrit-Change-Number: 18967 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 22 Jun 2020 19:17: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 Jun 22 19:17:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:17:37 +0000 Subject: Change in osmo-msc[master]: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18924 ) Change subject: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc Gerrit-Change-Number: 18924 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 19:17: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 Jun 22 19:17:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:17:54 +0000 Subject: Change in osmo-msc[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18925 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 Gerrit-Change-Number: 18925 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 19:17:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 19:18:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:18:01 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18927 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 19:18: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 Jun 22 19:18:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:18:38 +0000 Subject: Change in osmo-msc[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18925 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Removed Code-Review+1 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 Gerrit-Change-Number: 18925 Gerrit-PatchSet: 3 Gerrit-Owner: neels 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 Mon Jun 22 19:19:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:19:09 +0000 Subject: Change in osmo-msc[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18925 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: I guess this means that in any kind of cross compilation environment we don't get manuals anymore? How do we handle this gracefully? -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 Gerrit-Change-Number: 18925 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 19:19: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 Jun 22 19:19:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:19:12 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18927 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Removed Code-Review+1 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 Gerrit-PatchSet: 3 Gerrit-Owner: neels 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 Mon Jun 22 19:19:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 22 Jun 2020 19:19:15 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18927 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: I guess this means that in any kind of cross compilation environment we don't get manuals anymore? How do we handle this gracefully? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 19:19:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 20:30:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 22 Jun 2020 20:30:54 +0000 Subject: Change in osmo-bts[master]: bts.c: Fix typo in log line and improve it In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18970 ) Change subject: bts.c: Fix typo in log line and improve it ...................................................................... bts.c: Fix typo in log line and improve it Change-Id: I44d079893d01946da703c4338a686795ced3cb00 --- M src/common/bts.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/bts.c b/src/common/bts.c index d8a6ff2..d2bca2f 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -307,7 +307,7 @@ { int i, j; - LOGP(DSUM, LOGL_INFO, "Main link established, sending Status'.\n"); + LOGP(DSUM, LOGL_INFO, "Main link established, sending NM Status.\n"); /* BTS and SITE MGR are EANBLED, BTS is DEPENDENCY */ oml_tx_state_changed(&bts->site_mgr.mo); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I44d079893d01946da703c4338a686795ced3cb00 Gerrit-Change-Number: 18970 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 Jun 22 20:44:29 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 22 Jun 2020 20:44:29 +0000 Subject: Change in osmo-bsc[master]: rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18971 ) Change subject: rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC ...................................................................... rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC The IPACC protocol is an extension to the conventional RSL protocol negotiate ip address and port for RTP/VoIP. This protocol is BTS specific (sysmobts, ip-access nanobts) and not used with E1 BTSs, not all locations in osmo-bts check the bts type before using IPACC, lets add checks to prevent IPACC messages to be sent to E1 or otherwise incompatible BTSs models. Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Related: OS#2547 --- M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/lchan_rtp_fsm.c 2 files changed, 20 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/18971/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 9896bff..e8c9ece 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -5044,7 +5044,8 @@ } vty_out(vty, "%% activating lchan %s%s", gsm_lchan_name(lchan), VTY_NEWLINE); rsl_tx_chan_activ(lchan, RSL_ACT_TYPE_INITIAL, 0); - rsl_tx_ipacc_crcx(lchan); + if (is_ipaccess_bts(lchan->ts->trx->bts)) + rsl_tx_ipacc_crcx(lchan); } else { if (!lchan->fi) { vty_out(vty, "%% Cannot release: Channel not initialized%s", VTY_NEWLINE); @@ -5134,7 +5135,8 @@ inet_ntoa(ia), port, VTY_NEWLINE); lchan->abis_ip.connect_ip = ia.s_addr; lchan->abis_ip.connect_port = port; - rsl_tx_ipacc_mdcx(lchan); + if (is_ipaccess_bts(lchan->ts->trx->bts)) + rsl_tx_ipacc_mdcx(lchan); return CMD_SUCCESS; } diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c index 25aca14..c1de222 100644 --- a/src/osmo-bsc/lchan_rtp_fsm.c +++ b/src/osmo-bsc/lchan_rtp_fsm.c @@ -280,12 +280,14 @@ lchan->abis_ip.rtp_payload = val; /* recv-only */ - ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, false); - - rc = rsl_tx_ipacc_crcx(lchan); - if (rc) - lchan_rtp_fail("Failure to transmit IPACC CRCX to BTS (rc=%d, %s)", - rc, strerror(-rc)); + if (is_ipaccess_bts(lchan->ts->trx->bts)) { + ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, false); + rc = rsl_tx_ipacc_crcx(lchan); + if (rc) { + lchan_rtp_fail("Failure to transmit IPACC CRCX to BTS (rc=%d, %s)", + rc, strerror(-rc)); + } + } } static void lchan_rtp_fsm_wait_ipacc_crcx_ack(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -342,12 +344,14 @@ lchan->abis_ip.connect_port = mgw_rtp->port; /* send-recv */ - ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, true); - - rc = rsl_tx_ipacc_mdcx(lchan); - if (rc) - lchan_rtp_fail("Failure to transmit IPACC MDCX to BTS (rc=%d, %s)", - rc, strerror(-rc)); + if (is_ipaccess_bts(lchan->ts->trx->bts)) { + ipacc_speech_mode_set_direction(&lchan->abis_ip.speech_mode, true); + rc = rsl_tx_ipacc_mdcx(lchan); + if (rc) { + lchan_rtp_fail("Failure to transmit IPACC MDCX to BTS (rc=%d, %s)", + rc, strerror(-rc)); + } + } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Gerrit-Change-Number: 18971 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 Jun 22 21:07:51 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 22 Jun 2020 21:07:51 +0000 Subject: Change in osmo-bsc[master]: rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18971 ) Change subject: rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC ...................................................................... Patch Set 1: The change in lchan_rtp_fsm.c probably does not make too much sense because the IPACC tx happens in the IPACC part of the FSM. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Gerrit-Change-Number: 18971 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 22 Jun 2020 21:07:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 22 23:24:56 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 23:24:56 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#4) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... osmo-bts-trx/scheduler: fix measurement handling for SUB frames Make sure that we pick the correct UL measurements from the history when we deal with AMR SID frames (SUB frames). Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Related: OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/scheduler_trx.c 4 files changed, 45 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/18035/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 4 Gerrit-Owner: dexter 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 Mon Jun 22 23:24:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 23:24:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18972 ) Change subject: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state ...................................................................... osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state Change-Id: I4337cfdc393ec44df9bb9824ba4981eaf5b45f0b --- M include/osmo-bts/scheduler.h 1 file changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/18972/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index e65665f..bc2fb69 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -127,10 +127,7 @@ uint8_t dl_encr_key[MAX_A5_KEY_LEN]; /* measurements */ - struct { - int32_t toa256_sum; /* sum of TOA values (1/256 symbol) */ - int toa_num; /* number of TOA value */ - } meas; + /* TODO: measurement history (ring buffer) will be added here */ /* handover */ bool ho_rach_detect; /* if rach detection is on */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4337cfdc393ec44df9bb9824ba4981eaf5b45f0b Gerrit-Change-Number: 18972 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 Jun 22 23:24:58 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 23:24:58 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... osmo-bts-trx/scheduler: refactor UL burst measurement processing Currently the UL measurements (RSSI, ToA256, C/I) of the burst that concludes a block are passed up to the higher layers. This means that the measurement values of the other bursts are skipped. Let's keep record of all UL measurements and average the values before we pass them up to the higher layers. Use a simple ring buffer to store the measurement history (up to 8 unique entries for now). Remove *_num/*_sum variables from l1sched_chan_state. Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Related: OS#3032, OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_lchan_xcch.c M src/osmo-bts-trx/scheduler_trx.c 6 files changed, 148 insertions(+), 85 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/18973/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index bc2fb69..5eac9f2 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -70,6 +70,13 @@ TRX_BURST_8PSK, }; +/* A set of measurements belonging to one Uplink burst */ +struct l1sched_meas_set { + int16_t toa256; /* Timing of Arrival (1/256 of a symbol) */ + int16_t ci_cb; /* Carrier-to-Interference (cB) */ + float rssi; /* RSSI (dBm) */ +}; + /* States each channel on a multiframe */ struct l1sched_chan_state { /* Pointer to the associated logical channel state from gsm_data_shared. @@ -85,14 +92,6 @@ uint32_t ul_first_fn; /* fn of first burst */ uint8_t ul_mask; /* mask of received bursts */ - /* measurements */ - uint8_t rssi_num; /* number of RSSI values */ - float rssi_sum; /* sum of RSSI values */ - uint8_t toa_num; /* number of TOA values */ - int32_t toa256_sum; /* sum of TOA values (1/256 symbol) */ - uint8_t ci_cb_num; /* number of C/I values */ - int32_t ci_cb_sum; /* sum of C/I values (in centiBels) */ - /* loss detection */ uint8_t lost_frames; /* how many L2 frames were lost */ uint32_t last_tdma_fn; /* last processed TDMA frame number */ @@ -127,7 +126,11 @@ uint8_t dl_encr_key[MAX_A5_KEY_LEN]; /* measurements */ - /* TODO: measurement history (ring buffer) will be added here */ + struct { + /* Simple ring buffer (up to 8 unique measurements) */ + struct l1sched_meas_set buf[8]; + unsigned int idx; + } meas; /* handover */ bool ho_rach_detect; /* if rach detection is on */ @@ -269,4 +272,20 @@ /*! Handle an UL burst received by PHY */ int trx_sched_ul_burst(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi); +/* Averaging mode for trx_sched_meas_avg() */ +enum sched_meas_avg_mode { + /* last 4 bursts (default for xCCH, TCH/H, PTCCH and PDTCH) */ + SCHED_MEAS_AVG_M_QUAD, + /* last 8 bursts (default for TCH/F and FACCH/F) */ + SCHED_MEAS_AVG_M_OCTO, + /* last 6 bursts (default for FACCH/H) */ + SCHED_MEAS_AVG_M_SIX, +}; + +void trx_sched_meas_push(struct l1sched_chan_state *chan_state, + const struct trx_ul_burst_ind *bi); +void trx_sched_meas_avg(const struct l1sched_chan_state *chan_state, + struct l1sched_meas_set *avg, + enum sched_meas_avg_mode mode); + #endif /* TRX_SCHEDULER_H */ diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index 259d336..28a45f5 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -46,17 +46,11 @@ sbit_t *burst, **bursts_p = &chan_state->ul_bursts; uint32_t *first_fn = &chan_state->ul_first_fn; uint8_t *mask = &chan_state->ul_mask; - float *rssi_sum = &chan_state->rssi_sum; - uint8_t *rssi_num = &chan_state->rssi_num; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int32_t *ci_cb_sum = &chan_state->ci_cb_sum; - uint8_t *ci_cb_num = &chan_state->ci_cb_num; + struct l1sched_meas_set meas_avg; uint8_t l2[EGPRS_0503_MAX_BYTES]; int n_errors = 0; int n_bursts_bits = 0; int n_bits_total = 0; - int16_t lqual_cb; uint16_t ber10k; int rc; @@ -76,26 +70,13 @@ memset(*bursts_p, 0, GSM0503_EGPRS_BURSTS_NBITS); *mask = 0x0; *first_fn = bi->fn; - *rssi_sum = 0; - *rssi_num = 0; - *toa256_sum = 0; - *toa_num = 0; - *ci_cb_sum = 0; - *ci_cb_num = 0; } - /* update mask + rssi */ + /* update mask */ *mask |= (1 << bid); - *rssi_sum += bi->rssi; - (*rssi_num)++; - *toa256_sum += bi->toa256; - (*toa_num)++; - /* C/I: Carrier-to-Interference ratio (in centiBels) */ - if (bi->flags & TRX_BI_F_CI_CB) { - *ci_cb_sum += bi->ci_cb; - (*ci_cb_num)++; - } + /* store measurements */ + trx_sched_meas_push(chan_state, bi); /* copy burst to buffer of 4 bursts */ if (bi->burst_len == EGPRS_BURST_LEN) { @@ -114,6 +95,9 @@ if (bid != 3) return 0; + /* average measurements of the last 4 bursts */ + trx_sched_meas_avg(chan_state, &meas_avg, SCHED_MEAS_AVG_M_QUAD); + /* check for complete set of bursts */ if ((*mask & 0xf) != 0xf) { LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, @@ -143,13 +127,11 @@ return 0; } - lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; ber10k = compute_ber10k(n_bits_total, n_errors); return _sched_compose_ph_data_ind(l1t, bi->tn, *first_fn, chan, l2, rc, - *rssi_sum / *rssi_num, - *toa256_sum / *toa_num, - lqual_cb, ber10k, + meas_avg.rssi, meas_avg.toa256, + meas_avg.ci_cb, ber10k, PRES_INFO_BOTH); } diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index d289620..099088e 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -56,6 +56,8 @@ uint8_t rsl_cmode = chan_state->rsl_cmode; uint8_t tch_mode = chan_state->tch_mode; uint8_t tch_data[128]; /* just to be safe */ + enum sched_meas_avg_mode meas_avg_mode = SCHED_MEAS_AVG_M_OCTO; + struct l1sched_meas_set meas_avg; int rc, amr = 0; int n_errors = 0; int n_bits_total = 0; @@ -89,6 +91,9 @@ /* update mask */ *mask |= (1 << bid); + /* store measurements */ + trx_sched_meas_push(chan_state, bi); + /* copy burst to end of buffer of 8 bursts */ burst = *bursts_p + bid * 116 + 464; if (bi->burst_len > 0) { @@ -194,6 +199,10 @@ } memcpy(*bursts_p, *bursts_p + 464, 464); + /* average measurements of the last N (depends on mode) bursts + * TODO: properly handle measurements in DTX mode */ + trx_sched_meas_avg(chan_state, &meas_avg, meas_avg_mode); + /* Check if the frame is bad */ if (rc < 0) { LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, @@ -219,10 +228,9 @@ fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_F); _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, tch_data + amr, GSM_MACBLOCK_LEN, - /* FIXME: AVG RSSI and ToA256 */ - bi->rssi, bi->toa256, - 0 /* FIXME: AVG C/I */, - ber10k, PRES_INFO_UNKNOWN); + meas_avg.rssi, meas_avg.toa256, + meas_avg.ci_cb, ber10k, + PRES_INFO_UNKNOWN); bfi: if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { /* indicate bad frame */ @@ -277,8 +285,10 @@ /* TCH or BFI */ compose_l1sap: fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_F); - return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, - tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); + return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, tch_data, rc, + /* FIXME: what should we use for BFI here? */ + bfi_flag ? bi->toa256 : meas_avg.toa256, ber10k, + bfi_flag ? bi->rssi : meas_avg.rssi, is_sub); } /* common section for generation of TCH bursts (TCH/H and TCH/F). @@ -293,9 +303,6 @@ uint8_t rsl_cmode = chan_state->rsl_cmode; uint8_t tch_mode = chan_state->tch_mode; struct osmo_phsap_prim *l1sap; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int16_t toa256; /* handle loss detection of received TCH frames */ if (rsl_cmode == RSL_CMOD_SPD_SPEECH @@ -343,14 +350,9 @@ } if (len) { - if (*toa_num == 0) - toa256 = 0; - else - toa256 = *toa256_sum / *toa_num; - - /* Note: RSSI is set to 0 to indicate to the higher + /* Note: RSSI/ToA256 is set to 0 to indicate to the higher * layers that this is a faked tch_ind */ - _sched_compose_tch_ind(l1t, tn, fn, chan, tch_data, len, toa256, 10000, 0, 0); + _sched_compose_tch_ind(l1t, tn, fn, chan, tch_data, len, 0, 10000, 0, 0); } } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 0281342..43f24b3 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -65,6 +65,8 @@ * Even FN ending at: 10,11,19,20,2,3 */ int fn_is_odd = (((bi->fn + 26 - 10) % 26) >> 2) & 1; + enum sched_meas_avg_mode meas_avg_mode = SCHED_MEAS_AVG_M_QUAD; + struct l1sched_meas_set meas_avg; unsigned int fn_begin; uint16_t ber10k; uint8_t is_sub = 0; @@ -94,6 +96,9 @@ /* update mask */ *mask |= (1 << bid); + /* store measurements */ + trx_sched_meas_push(chan_state, bi); + /* copy burst to end of buffer of 6 bursts */ burst = *bursts_p + bid * 116 + 464; if (bi->burst_len > 0) { @@ -208,6 +213,11 @@ memcpy(*bursts_p + 232, *bursts_p + 464, 232); ber10k = compute_ber10k(n_bits_total, n_errors); + /* average measurements of the last N (depends on mode) bursts + * TODO: properly handle measurements in DTX mode */ + if (rc == GSM_MACBLOCK_LEN) + meas_avg_mode = SCHED_MEAS_AVG_M_SIX; + trx_sched_meas_avg(chan_state, &meas_avg, meas_avg_mode); /* Check if the frame is bad */ if (rc < 0) { @@ -238,10 +248,9 @@ fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_FACCH_H1); _sched_compose_ph_data_ind(l1t, bi->tn, fn_begin, chan, tch_data + amr, GSM_MACBLOCK_LEN, - /* FIXME: AVG both RSSI and ToA */ - bi->rssi, bi->toa256, - 0 /* FIXME: AVG C/I */, - ber10k, PRES_INFO_UNKNOWN); + meas_avg.rssi, meas_avg.toa256, + meas_avg.ci_cb, ber10k, + PRES_INFO_UNKNOWN); bfi: /* FIXME: a FACCH/H frame replaces two speech frames, * so we actually need to send two bad frame indications! */ @@ -301,8 +310,10 @@ fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H0); else fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_H1); - return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, - tch_data, rc, bi->toa256, ber10k, bi->rssi, is_sub); + return _sched_compose_tch_ind(l1t, bi->tn, fn_begin, chan, tch_data, rc, + /* FIXME: what should we use for BFI here? */ + bfi_flag ? bi->toa256 : meas_avg.toa256, ber10k, + bfi_flag ? bi->rssi : meas_avg.rssi, is_sub); } /* common section for generation of TCH bursts (TCH/H and TCH/F). diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c index e2670d8..b96bc0b 100644 --- a/src/osmo-bts-trx/sched_lchan_xcch.c +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -43,16 +43,10 @@ sbit_t *burst, **bursts_p = &chan_state->ul_bursts; uint32_t *first_fn = &chan_state->ul_first_fn; uint8_t *mask = &chan_state->ul_mask; - float *rssi_sum = &chan_state->rssi_sum; - uint8_t *rssi_num = &chan_state->rssi_num; - int32_t *toa256_sum = &chan_state->toa256_sum; - uint8_t *toa_num = &chan_state->toa_num; - int32_t *ci_cb_sum = &chan_state->ci_cb_sum; - uint8_t *ci_cb_num = &chan_state->ci_cb_num; uint8_t l2[GSM_MACBLOCK_LEN], l2_len; + struct l1sched_meas_set meas_avg; int n_errors = 0; int n_bits_total = 0; - int16_t lqual_cb; uint16_t ber10k; int rc; @@ -76,26 +70,13 @@ memset(*bursts_p, 0, 464); *mask = 0x0; *first_fn = bi->fn; - *rssi_sum = 0; - *rssi_num = 0; - *toa256_sum = 0; - *toa_num = 0; - *ci_cb_sum = 0; - *ci_cb_num = 0; } - /* update mask + RSSI */ + /* update mask */ *mask |= (1 << bid); - *rssi_sum += bi->rssi; - (*rssi_num)++; - *toa256_sum += bi->toa256; - (*toa_num)++; - /* C/I: Carrier-to-Interference ratio (in centiBels) */ - if (bi->flags & TRX_BI_F_CI_CB) { - *ci_cb_sum += bi->ci_cb; - (*ci_cb_num)++; - } + /* store measurements */ + trx_sched_meas_push(chan_state, bi); /* Copy burst to buffer of 4 bursts. If the burst indication contains * no data, ensure that the buffer does not stay uninitialized */ @@ -110,6 +91,9 @@ if (bid != 3) return 0; + /* average measurements of the last 4 bursts */ + trx_sched_meas_avg(chan_state, &meas_avg, SCHED_MEAS_AVG_M_QUAD); + /* check for complete set of bursts */ if ((*mask & 0xf) != 0xf) { LOGL1S(DL1P, LOGL_NOTICE, l1t, bi->tn, chan, bi->fn, @@ -134,13 +118,11 @@ } else l2_len = GSM_MACBLOCK_LEN; - lqual_cb = *ci_cb_num ? (*ci_cb_sum / *ci_cb_num) : 0; ber10k = compute_ber10k(n_bits_total, n_errors); return _sched_compose_ph_data_ind(l1t, bi->tn, *first_fn, chan, l2, l2_len, - *rssi_sum / *rssi_num, - *toa256_sum / *toa_num, - lqual_cb, ber10k, + meas_avg.rssi, meas_avg.toa256, + meas_avg.ci_cb, ber10k, PRES_INFO_UNKNOWN); } diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index d4a38b6..acb7907 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -368,3 +368,70 @@ else trx_if_cmd_nohandover(l1h, tn, ss); } + +/* Add a set of UL burst measurements to the history */ +void trx_sched_meas_push(struct l1sched_chan_state *chan_state, + const struct trx_ul_burst_ind *bi) +{ + unsigned int hist_size = ARRAY_SIZE(chan_state->meas.buf); + unsigned int current = chan_state->meas.idx; + + chan_state->meas.buf[current] = (struct l1sched_meas_set) { + .ci_cb = (bi->flags & TRX_BI_F_CI_CB) ? bi->ci_cb : 0, + .toa256 = bi->toa256, + .rssi = bi->rssi, + }; + + chan_state->meas.idx = (current + 1) % hist_size; +} + +/* Calculate the AVG of n measurements from the history */ +void trx_sched_meas_avg(const struct l1sched_chan_state *chan_state, + struct l1sched_meas_set *avg, + enum sched_meas_avg_mode mode) +{ + unsigned int hist_size = ARRAY_SIZE(chan_state->meas.buf); + unsigned int current = chan_state->meas.idx; + const struct l1sched_meas_set *set; + unsigned int shift, pos, i, n; + + float rssi_sum = 0; + int toa256_sum = 0; + int ci_cb_sum = 0; + + switch (mode) { + /* last 4 bursts (default for xCCH, TCH/H, PTCCH and PDTCH) */ + case SCHED_MEAS_AVG_M_QUAD: + n = 4; shift = n; + break; + /* last 8 bursts (default for TCH/F and FACCH/F) */ + case SCHED_MEAS_AVG_M_OCTO: + n = 8; shift = n; + break; + /* last 6 bursts (default for FACCH/H) */ + case SCHED_MEAS_AVG_M_SIX: + n = 6; shift = n; + break; + } + + /* Calculate the sum of n entries starting from pos */ + for (i = 0; i < n; i++) { + pos = (current + hist_size - shift + i) % hist_size; + set = &chan_state->meas.buf[pos]; + + rssi_sum += set->rssi; + toa256_sum += set->toa256; + ci_cb_sum += set->ci_cb; + } + + /* Calculate the average for each value */ + *avg = (struct l1sched_meas_set) { + .rssi = (rssi_sum / n), + .toa256 = (toa256_sum / n), + .ci_cb = (ci_cb_sum / n), + }; + + LOGP(DL1C, LOGL_DEBUG, "Measurement AVG (num=%u, shift=%u): " + "RSSI %f, ToA256 %d, C/I %d cB\n", n, shift, + avg->rssi, avg->toa256, avg->ci_cb); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 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 Jun 22 23:28:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 23:28:07 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#5) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... osmo-bts-trx/scheduler: fix measurement handling for SUB frames Make sure that we pick the correct UL measurements from the history when we deal with AMR SID frames (SUB frames). Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Related: OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/scheduler_trx.c 4 files changed, 47 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/18035/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 5 Gerrit-Owner: dexter 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 Mon Jun 22 23:32:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 22 Jun 2020 23:32:10 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18035/5/include/osmo-bts/scheduler.h File include/osmo-bts/scheduler.h: https://gerrit.osmocom.org/c/osmo-bts/+/18035/5/include/osmo-bts/scheduler.h at 283 PS5, Line 283: lower 4 of last 8 bursts I am still not 100% sure about this. Could you give me any spec. references? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 22 Jun 2020 23:32:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jun 23 02:39:01 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 23 Jun 2020 02:39:01 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ef16b62c209e_69832ac2fad2e5f01488920@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 364s] Processing triggers for hicolor-icon-theme (0.17-2) ... [ 364s] [503/503] installing osmo-gsm-manuals-dev-0.3.0.14.6a13 [ 365s] configuring all installed packages... [ 365s] dpkg: dependency problems prevent processing triggers for man-db: [ 365s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 365s] Package bsdextrautils is not installed. [ 365s] Version of bsdmainutils on system is 12.1.2. [ 365s] [ 365s] dpkg: error processing package man-db (--configure): [ 365s] dependency problems - leaving triggers unprocessed [ 365s] Errors were encountered while processing: [ 365s] man-db [ 365s] first configure attempt failed, trying again... [ 365s] dpkg: dependency problems prevent processing triggers for man-db: [ 365s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 365s] Package bsdextrautils is not installed. [ 365s] Version of bsdmainutils on system is 12.1.2. [ 365s] [ 365s] dpkg: error processing package man-db (--configure): [ 365s] dependency problems - leaving triggers unprocessed [ 365s] Errors were encountered while processing: [ 365s] man-db [ 365s] ### VM INTERACTION START ### [ 366s] Powering off. [ 366s] [ 348.826494] reboot: Power down [ 366s] ### VM INTERACTION END ### [ 366s] [ 366s] lamb10 failed "build osmo-sip-connector_1.4.0.3.e02b.dsc" at Tue Jun 23 02:38:46 UTC 2020. [ 366s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 23 02:42:44 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 23 Jun 2020 02:42:44 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ef16c36c0ec2_69832ac2fad2e5f014903b9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 407s] Processing triggers for hicolor-icon-theme (0.17-2) ... [ 408s] [516/516] installing osmo-gsm-manuals-dev-0.3.0.14.6a13 [ 408s] configuring all installed packages... [ 408s] dpkg: dependency problems prevent processing triggers for man-db: [ 408s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 408s] Package bsdextrautils is not installed. [ 408s] Version of bsdmainutils on system is 12.1.2. [ 408s] [ 408s] dpkg: error processing package man-db (--configure): [ 408s] dependency problems - leaving triggers unprocessed [ 408s] Errors were encountered while processing: [ 408s] man-db [ 408s] first configure attempt failed, trying again... [ 408s] dpkg: dependency problems prevent processing triggers for man-db: [ 408s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 408s] Package bsdextrautils is not installed. [ 408s] Version of bsdmainutils on system is 12.1.2. [ 408s] [ 408s] dpkg: error processing package man-db (--configure): [ 408s] dependency problems - leaving triggers unprocessed [ 408s] Errors were encountered while processing: [ 408s] man-db [ 408s] ### VM INTERACTION START ### [ 409s] Powering off. [ 409s] [ 391.467276] reboot: Power down [ 409s] ### VM INTERACTION END ### [ 409s] [ 409s] lamb25 failed "build osmo-remsim_0.2.2.99.57b2.dsc" at Tue Jun 23 02:42:30 UTC 2020. [ 409s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 23 02:48:09 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 23 Jun 2020 02:48:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ef16d7e490cd_69832ac2fad2e5f01491974@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 922s] Processing triggers for hicolor-icon-theme (0.17-2) ... [ 922s] [639/639] installing osmo-gsm-manuals-dev-0.3.0.14.6a13 [ 923s] configuring all installed packages... [ 923s] dpkg: dependency problems prevent processing triggers for man-db: [ 923s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 923s] Package bsdextrautils is not installed. [ 923s] Version of bsdmainutils on system is 12.1.2. [ 923s] [ 923s] dpkg: error processing package man-db (--configure): [ 923s] dependency problems - leaving triggers unprocessed [ 923s] Errors were encountered while processing: [ 923s] man-db [ 923s] first configure attempt failed, trying again... [ 923s] dpkg: dependency problems prevent processing triggers for man-db: [ 923s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 923s] Package bsdextrautils is not installed. [ 923s] Version of bsdmainutils on system is 12.1.2. [ 923s] [ 923s] dpkg: error processing package man-db (--configure): [ 923s] dependency problems - leaving triggers unprocessed [ 923s] Errors were encountered while processing: [ 923s] man-db [ 923s] ### VM INTERACTION START ### [ 924s] Powering off. [ 924s] [ 858.530575] reboot: Power down [ 924s] ### VM INTERACTION END ### [ 924s] [ 924s] lamb21 failed "build osmo-trx_1.2.0.46.405f.dsc" at Tue Jun 23 02:47:59 UTC 2020. [ 924s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jun 23 02:51:52 2020 From: admin at opensuse.org (OBS Notification) Date: Tue, 23 Jun 2020 02:51:52 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ef16e552ac8d_69832ac2fad2e5f014932d0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-uecups failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: [ 923s] Processing triggers for hicolor-icon-theme (0.17-2) ... [ 923s] [487/487] installing osmo-gsm-manuals-dev-0.3.0.14.6a13 [ 924s] configuring all installed packages... [ 924s] dpkg: dependency problems prevent processing triggers for man-db: [ 924s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 924s] Package bsdextrautils is not installed. [ 924s] Version of bsdmainutils on system is 12.1.2. [ 924s] [ 924s] dpkg: error processing package man-db (--configure): [ 924s] dependency problems - leaving triggers unprocessed [ 924s] Errors were encountered while processing: [ 924s] man-db [ 924s] first configure attempt failed, trying again... [ 924s] dpkg: dependency problems prevent processing triggers for man-db: [ 924s] man-db depends on bsdextrautils | bsdmainutils (<< 12.1.1~); however: [ 924s] Package bsdextrautils is not installed. [ 924s] Version of bsdmainutils on system is 12.1.2. [ 924s] [ 924s] dpkg: error processing package man-db (--configure): [ 924s] dependency problems - leaving triggers unprocessed [ 924s] Errors were encountered while processing: [ 924s] man-db [ 924s] ### VM INTERACTION START ### [ 925s] Powering off. [ 925s] [ 898.847546] reboot: Power down [ 925s] ### VM INTERACTION END ### [ 925s] [ 925s] lamb04 failed "build osmo-uecups_0.1.3.1.8362.dsc" at Tue Jun 23 02:51:46 UTC 2020. [ 925s] -- 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 Jun 23 07:49:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 07:49:11 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing 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/+/18973 to look at the new patch set (#2). Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... osmo-bts-trx/scheduler: refactor UL burst measurement processing Currently the UL measurements (RSSI, ToA256, C/I) of the burst that concludes a block are passed up to the higher layers. This means that the measurement values of the other bursts are skipped. Let's keep record of all UL measurements and average the values before we pass them up to the higher layers. Use a simple ring buffer to store the measurement history (up to 8 unique entries for now). Remove *_num/*_sum variables from l1sched_chan_state. Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Related: OS#3032, OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_lchan_xcch.c M src/osmo-bts-trx/scheduler_trx.c 6 files changed, 151 insertions(+), 85 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/18973/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 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 Jun 23 07:49:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 07:49:11 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#6) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... osmo-bts-trx/scheduler: fix measurement handling for SUB frames Make sure that we pick the correct UL measurements from the history when we deal with AMR SID frames (SUB frames). Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Related: OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/scheduler_trx.c 4 files changed, 47 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/18035/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 6 Gerrit-Owner: dexter 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 Jun 23 09:10:40 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 23 Jun 2020 09:10:40 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/gsm_data.c at 1724 PS5, Line 1724: if (bts && conn->lchan) > This one would be easily fixed by moving the bts = conn-get_bts() under this check. But we still need the check since we dereference bts->ms_max_power in the next line, so what do we gain? https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_bssap.c at 477 PS5, Line 477: static int bssmap_handle_cipher_mode(struct gsm_subscriber_connection *conn, > Changes in this function look like a different patch to me. I think it belongs in this patch, but I don't think we should use global variables (like bsc_gsmnet) if we can avoid it. So we still need to check if conn_get_bts() != NULL below. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: daniel Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 09:10:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 09:16:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 09:16:22 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18972 ) Change subject: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state ...................................................................... Patch Set 1: Code-Review+1 I don't see much the point on adding that TODO but ok. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4337cfdc393ec44df9bb9824ba4981eaf5b45f0b Gerrit-Change-Number: 18972 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 09:16:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 09:29:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 09:29:51 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... Patch Set 2: (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/include/osmo-bts/scheduler.h File include/osmo-bts/scheduler.h: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/include/osmo-bts/scheduler.h at 132 PS2, Line 132: unsigned int idx; missing documentation for this field idx (not lear what's its purpose). https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/sched_lchan_tchf.c File src/osmo-bts-trx/sched_lchan_tchf.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/sched_lchan_tchf.c at 203 PS2, Line 203: * TODO: properly handle measurements in DTX mode */ Is this adding a regression? https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 377 PS2, Line 377: unsigned int current = chan_state->meas.idx; so idx points to the next "free" slot. Would be great renaming it to something more meaningful, at least "next_idx". https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 413 PS2, Line 413: n = 6; shift = n; So you are keeping both n and shift having same value and they don't change later. Why do you need both? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 09:29:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 09:32:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 09:32:13 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... Patch Set 6: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/scheduler_trx.c at 417 PS6, Line 417: n = 4; shift = 8; Ah now I see why you kept two variables ;) https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/scheduler_trx.c at 419 PS6, Line 419: /* lower 2 of last 6 bursts */ It's not really clear what do you mean with "lower" here. Do you mean first 2 of last 6 bursts? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 09:32: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 Jun 23 09:38:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 09:38:45 +0000 Subject: Change in osmo-bsc[master]: rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18971 ) Change subject: rtp_fsm, vty: check with is_ipaccess_bts() before using IPACC ...................................................................... Patch Set 1: Code-Review-1 (4 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1//COMMIT_MSG at 10 PS1, Line 10: negotiate ip address and port for RTP/VoIP. This protocol is BTS to negotiate https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1//COMMIT_MSG at 12 PS1, Line 12: all locations in osmo-bts check the bts type before using IPACC, lets let's https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/bsc_vty.c at 5138 PS1, Line 5138: if (is_ipaccess_bts(lchan->ts->trx->bts)) so afaiu after your patch, if the bts is not an IPA based one, this VTY cmd does nothing. Wouldn't it make more sense to print and return a warning in that case? https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/lchan_rtp_fsm.c File src/osmo-bsc/lchan_rtp_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/lchan_rtp_fsm.c at 347 PS1, Line 347: if (is_ipaccess_bts(lchan->ts->trx->bts)) { So if it's not an IPACC, why is it in a "wait_ipacc_mdcx_ack" state in first place? This patch looks like the wrong solution to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Gerrit-Change-Number: 18971 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 09:38: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 Tue Jun 23 09:47:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 09:47:19 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx outpu... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18918 ) Change subject: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx output power ...................................................................... Patch Set 1: Hello I am a patch and I need some reviewer to provide a +2 so I can get finally merged together with my colleagues. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6 Gerrit-Change-Number: 18918 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Tue, 23 Jun 2020 09:47: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 Jun 23 10:17:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 10:17:20 +0000 Subject: Change in osmo-bts[master]: bts_model: Convert bts_model_trx_close() to return asynchronously In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18953 ) Change subject: bts_model: Convert bts_model_trx_close() to return asynchronously ...................................................................... Patch Set 2: (6 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/include/osmo-bts/bts_model.h File include/osmo-bts/bts_model.h: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/include/osmo-bts/bts_model.h at 34 PS2, Line 34: /* Implementation should call bts_model_trx_close_cb when done */ > (possibly better place the comment in the . [?] There's no global C file, precisely because each backend should implement these functions, and this is the reference header people look at when adding a new backend. https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/include/osmo-bts/bts_model.h at 71 PS2, Line 71: void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc); > (maybe "closed_cb" with d) I'm keeping the function name initiating it and adding_cb to it. https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-omldummy/bts_model.c File src/osmo-bts-omldummy/bts_model.c: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-omldummy/bts_model.c at 53 PS2, Line 53: void bts_model_trx_close(struct gsm_bts_trx *trx) > separate fix? Not really, I'm moving the return code to be returned in the callback function. https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-omldummy/bts_model.c at 55 PS2, Line 55: LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); > i guess it's implemented now? :) Not really, I'm simply returning the callback method as requested by the bts_model, but specific stuff for this backend is not really yet implemented. I'm simply keeping old behavior here. https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-trx/l1_if.c at 444 PS2, Line 444: } else if (!pinst->phy_link->u.osmotrx.poweronoff_sent) { > this is immediately responding with close_cb() in case it was never powered on? (explain in a commen [?] Yes. I think it's clear since it's already explained in the definition of the function in bts_model.h https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-virtual/bts_model.c File src/osmo-bts-virtual/bts_model.c: https://gerrit.osmocom.org/c/osmo-bts/+/18953/2/src/osmo-bts-virtual/bts_model.c at 55 PS2, Line 55: LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); > (implemented now) No really, already explained. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a Gerrit-Change-Number: 18953 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 10:17:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 10:17:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 10:17:54 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: Hello fixeria, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 to look at the new patch set (#4). Change subject: Introduce bts_shutdown FSM ...................................................................... Introduce bts_shutdown FSM Using an FSM here will allow for more complex ordered shutdown procedures, like power ramp down, waiting for TRX deact asyncrhonously, etc. Current commit leaves everything in place already prepared to implement ramp down, which will be implemented in next commit in the series. Related: SYS#4920 Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 --- M include/osmo-bts/Makefile.am A include/osmo-bts/bts_shutdown_fsm.h M include/osmo-bts/gsm_data.h M src/common/Makefile.am M src/common/bts.c A src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 7 files changed, 204 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/18903/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 10:17:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 10:17:54 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: Hello fixeria, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 to look at the new patch set (#4). Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Implement tx power ramp down during BTS shutdown Upon BTS shutdown (for instance because the Abis link against BSC was lost), stop the operation in an ordered manner (cell soft lock). This means slowly decrease tx power so that MS have time to handover to other neighbour cells. Related: SYS#4920 Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 3 files changed, 45 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/18904/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 10:17:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 10:17:54 +0000 Subject: Change in osmo-bts[master]: bts_model: Convert bts_model_trx_close() to return asynchronously In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 to look at the new patch set (#3). Change subject: bts_model: Convert bts_model_trx_close() to return asynchronously ...................................................................... bts_model: Convert bts_model_trx_close() to return asynchronously Some backends like osmo-bts-trx require exchanging messages like POWEROFF to close the TRX, and hence need some time. Switch the function to expect result asynchronously by calling a callback. This will be used later to wait until all TRX are really powered off before exiting the process. Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a --- M include/osmo-bts/bts_model.h M src/common/bts_shutdown_fsm.c M src/osmo-bts-litecell15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-omldummy/bts_model.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-virtual/bts_model.c M tests/stubs.c 10 files changed, 62 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/53/18953/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a Gerrit-Change-Number: 18953 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 10:17:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 10:17:54 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: Wait until all TRX are closed In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 to look at the new patch set (#3). Change subject: bts_shutdown: Wait until all TRX are closed ...................................................................... bts_shutdown: Wait until all TRX are closed Setting the phy link of a trx to SHUTDOWN sets operative state to DISABLED, so we use operative state as a condition to know whether all TRX are already powered off properly and we can exit. Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c 2 files changed, 52 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/54/18954/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 Gerrit-Change-Number: 18954 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:18:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 11:18:49 +0000 Subject: Change in osmo-bts[master]: abis.c: Use LOGPIL when logging signalling link down References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/18974 ) Change subject: abis.c: Use LOGPIL when logging signalling link down ...................................................................... abis.c: Use LOGPIL when logging signalling link down Change-Id: Icedd533046853f67da5da84aae28b895a8cdb0bf --- M src/common/abis.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/18974/1 diff --git a/src/common/abis.c b/src/common/abis.c index ab32870..ad6fddc 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -140,7 +140,7 @@ static void sign_link_down(struct e1inp_line *line) { struct gsm_bts_trx *trx; - LOGP(DABIS, LOGL_ERROR, "Signalling link down\n"); + LOGPIL(line, DABIS, LOGL_ERROR, "Signalling link down\n"); /* First remove the OML signalling link */ if (g_bts->oml_link) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icedd533046853f67da5da84aae28b895a8cdb0bf Gerrit-Change-Number: 18974 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 Jun 23 11:23:04 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 23 Jun 2020 11:23:04 +0000 Subject: Change in pysim[master]: utils.py: Handle parsing of ePDGId TLV with zero length References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/18975 ) Change subject: utils.py: Handle parsing of ePDGId TLV with zero length ...................................................................... utils.py: Handle parsing of ePDGId TLV with zero length Change-Id: Ie05ae010948884765363bd9dbc2b0d764ff8d42a --- M pySim/utils.py 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/75/18975/1 diff --git a/pySim/utils.py b/pySim/utils.py index 2ca6165..79a1c1b 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -462,6 +462,10 @@ if tlv[0] != 0x80: continue + # Empty field - Zero length + if tlv[1] == 0: + continue + # First byte in the value has the address type addr_type = tlv[2][0] # TODO: Support parsing of IPv4 and IPv6 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie05ae010948884765363bd9dbc2b0d764ff8d42a Gerrit-Change-Number: 18975 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:23:05 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 23 Jun 2020 11:23:05 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/18976 ) Change subject: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM ...................................................................... pySim-read.py: Enable parsing of Home ePDG Identifier in USIM As per TS 31.102, version 13.4.0 Release 13, this EF can found under ADF.USIM at File Id 6ff3. Also, if service n?106 and service n?107 are available, this file shall be present. Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d --- M pySim-read.py 1 file changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/76/18976/1 diff --git a/pySim-read.py b/pySim-read.py index b23e6ee..a10ec3d 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -35,7 +35,7 @@ from pySim.commands import SimCardCommands from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn -from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader +from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_epdgid def parse_options(): @@ -250,6 +250,18 @@ else: print("USIM Service Table: Can't read, response code = %s" % (sw,)) + # Select USIM application by its AID + if '9000' == card.select_adf_by_aid(): + #EF.ePDGId - Home ePDG Identifier + try: + (res, sw) = card.read_binary(EF_USIM_ADF_map['ePDGId']) + if sw == '9000': + print("ePDGId: \n %s" % (dec_epdgid(res),)) + else: + print("ePDGId: Can't read, response code = %s" % (sw,)) + except Exception as e: + print("ePDGId: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d Gerrit-Change-Number: 18976 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:34:27 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 23 Jun 2020 11:34:27 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable parsing of Home ePDG Identifier in 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/+/18976 to look at the new patch set (#2). Change subject: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM ...................................................................... pySim-read.py: Enable parsing of Home ePDG Identifier in USIM As per TS 31.102, version 13.4.0 Release 13, this EF can found under ADF.USIM at File Id 6ff3. Also, if service n?106 and service n?107 are available, this file shall be present. Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d --- M pySim-read.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/sysmoUSIM-SJS1.ok 3 files changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/76/18976/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d Gerrit-Change-Number: 18976 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:38:14 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 23 Jun 2020 11:38:14 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable parsing of Home ePDG Identifier in 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/+/18976 to look at the new patch set (#3). Change subject: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM ...................................................................... pySim-read.py: Enable parsing of Home ePDG Identifier in USIM As per TS 31.102, version 13.4.0 Release 13, this EF can found under ADF.USIM at File Id 6ff3. Also, if service n?106 and service n?107 are available, this file shall be present. Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d --- M pySim-read.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/sysmoUSIM-SJS1.ok 4 files changed, 14 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/76/18976/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d Gerrit-Change-Number: 18976 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:44:57 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 11:44:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... Patch Set 2: (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/include/osmo-bts/scheduler.h File include/osmo-bts/scheduler.h: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/include/osmo-bts/scheduler.h at 132 PS2, Line 132: unsigned int idx; > missing documentation for this field idx (not lear what's its purpose). Well, it's a part of the ring buffer. I can move it upwards before the 'struct'. https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/sched_lchan_tchf.c File src/osmo-bts-trx/sched_lchan_tchf.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/sched_lchan_tchf.c at 203 PS2, Line 203: * TODO: properly handle measurements in DTX mode */ > Is this adding a regression? No, it's just a reminder that dexter's change (next one) is going to fix this. https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 377 PS2, Line 377: unsigned int current = chan_state->meas.idx; > so idx points to the next "free" slot. [?] Well, it's not really 'next', rather 'current'. I can rename it. https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 413 PS2, Line 413: n = 6; shift = n; > So you are keeping both n and shift having same value and they don't change later. [?] See next change. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 11:44:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:48:23 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 23 Jun 2020 11:48:23 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable parsing of Home ePDG Identifier in 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/+/18976 to look at the new patch set (#4). Change subject: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM ...................................................................... pySim-read.py: Enable parsing of Home ePDG Identifier in USIM As per TS 31.102, version 13.4.0 Release 13, this EF can found under ADF.USIM at File Id 6ff3. Also, if service n?106 and service n?107 are available, this file shall be present. Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d --- M pySim-read.py M pysim-testdata/Fairwaves-SIM.ok M pysim-testdata/Wavemobile-SIM.ok M pysim-testdata/sysmoUSIM-SJS1.ok 4 files changed, 15 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/76/18976/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d Gerrit-Change-Number: 18976 Gerrit-PatchSet: 4 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:49:22 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 11:49:22 +0000 Subject: Change in pysim[master]: utils.py: Handle parsing of ePDGId TLV with zero length In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18975 ) Change subject: utils.py: Handle parsing of ePDGId TLV with zero length ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie05ae010948884765363bd9dbc2b0d764ff8d42a Gerrit-Change-Number: 18975 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 23 Jun 2020 11:49: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 Jun 23 11:51:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 11:51:49 +0000 Subject: Change in osmo-bts[master]: abis.c: Use LOGPIL when logging signalling link down In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18974 ) Change subject: abis.c: Use LOGPIL when logging signalling link down ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icedd533046853f67da5da84aae28b895a8cdb0bf Gerrit-Change-Number: 18974 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 23 Jun 2020 11: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 Jun 23 11:55:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 11:55:49 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Patch Set 4: Code-Review+2 Much better now! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 11:55:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:56:05 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 23 Jun 2020 11:56:05 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable parsing of Home ePDG Identifier in 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/+/18976 to look at the new patch set (#5). Change subject: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM ...................................................................... pySim-read.py: Enable parsing of Home ePDG Identifier in USIM As per TS 31.102, version 13.4.0 Release 13, this EF can found under ADF.USIM at File Id 6ff3. Also, if service n?106 and service n?107 are available, this file shall be present. Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d --- M pySim-read.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 5 files changed, 18 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/76/18976/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d Gerrit-Change-Number: 18976 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 11:57:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 11:57:58 +0000 Subject: Change in osmo-bts[master]: abis.c: Use LOGPIL when logging signalling link down In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18974 ) Change subject: abis.c: Use LOGPIL when logging signalling link down ...................................................................... abis.c: Use LOGPIL when logging signalling link down Change-Id: Icedd533046853f67da5da84aae28b895a8cdb0bf --- M src/common/abis.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/abis.c b/src/common/abis.c index ab32870..ad6fddc 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -140,7 +140,7 @@ static void sign_link_down(struct e1inp_line *line) { struct gsm_bts_trx *trx; - LOGP(DABIS, LOGL_ERROR, "Signalling link down\n"); + LOGPIL(line, DABIS, LOGL_ERROR, "Signalling link down\n"); /* First remove the OML signalling link */ if (g_bts->oml_link) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icedd533046853f67da5da84aae28b895a8cdb0bf Gerrit-Change-Number: 18974 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 Jun 23 12:08:27 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 12:08:27 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 4: Code-Review+1 (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c at 51 PS4, Line 51: osmo_fsm_inst_dispatch I guess sending events to the FSM could be done directly, without the need to pass a callback function. Or will there be other call-backs in the upcoming changes? Not a merge blocker, just wondering. https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c at 59 PS4, Line 59: for (i = 0; i < bts->num_trx; i++) { Why not to iterate over the linked list directly? llist_for_each_entry(trx, &bts->trx_list, list) { ... } gsm_bts_trx_num() does the same, but the larger the list of transceivers is, the more redundant iterations you do. https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c at 75 PS4, Line 75: for (i = 0; i < bts->num_trx; i++) { Same here. Of course, this is not a performance critical part, but still. https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c at 81 PS4, Line 81: %d %u, it's unsigned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 12:08: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 Tue Jun 23 12:12:53 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 12:12:53 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18910/4/src/osmo-bts-trx/l1_if.c File src/osmo-bts-trx/l1_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/18910/4/src/osmo-bts-trx/l1_if.c at 415 PS4, Line 415: a specific TRX processing shall be paused Feel free to propose this feature in OS#4006. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 12:12: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 Jun 23 12:13:18 2020 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 23 Jun 2020 12:13:18 +0000 Subject: Change in pysim[master]: utils.py: Add helper method to encode ePDG Identifier References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/18977 ) Change subject: utils.py: Add helper method to encode ePDG Identifier ...................................................................... utils.py: Add helper method to encode ePDG Identifier This method encodes ePDG Id so it can be stored to EF.ePDGId or EF.ePDGIdEm. See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.102 and 4.2.104. Resulting hex string is made of tag value + length + address type + address. tag value for home ePDG identifier is 80 address type: 0x00 (FQDN), 0x01 (IPv4), 0x02 (IPv6), other (Reserved) ePDG FQDN example: epdg.mnc001.mcc001.3gppnetwork.org Note: Only FQDN format is supported for now Change-Id: I864bda5505e9061391a727add294a6e90c50f9ef --- M pySim/utils.py 1 file changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/77/18977/1 diff --git a/pySim/utils.py b/pySim/utils.py index 79a1c1b..ac82774 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -476,6 +476,24 @@ return s +def enc_epdgid(epdg_addr, addr_type='00'): + """ + Encode ePDG Id so it can be stored to EF.ePDGId or EF.ePDGIdEm. + See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.102 and 4.2.104. + + Default values: + - addr_type: 00 - FQDN format of ePDG Address + """ + + s = "" + + # TODO: Encoding of IPv4 and IPv6 address + if addr_type == '00': + hex_str = s2h(epdg_addr) + s += '80' + ('%02x' % ((len(hex_str)//2)+1)) + '00' + hex_str + + return s + def sanitize_pin_adm(opts): """ The ADM pin can be supplied either in its hexadecimal form or as -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I864bda5505e9061391a727add294a6e90c50f9ef Gerrit-Change-Number: 18977 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:13:35 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 12:13:35 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: First deact RF on all TRX, finally close them In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18912 ) Change subject: bts_shutdown: First deact RF on all TRX, finally close them ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib62358384e37a5cef692926439462042fab0138c Gerrit-Change-Number: 18912 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 12:13: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 Jun 23 12:29:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 12:29:43 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... Patch Set 5: (5 comments) thanks for the review! I'm afraid I have to negate every change request made, though... Let's get rid of this osmo-bsc crash by OSMO_ASSERT(conn->bts) now? https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/include/osmocom/bsc/gsm_data.h at 1376 PS5, Line 1376: if (!conn || !conn->lchan) > I'd rather check only for !conn->lchan, I would assume conn is always there and if it's not there is [?] no harm done by it, so I'm just keeping this https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/assignment_fsm.c at 83 PS5, Line 83: if (bts) \ > what about logging if !bts? this macro is supposed to silently count rate counters in various situations, if there is no bts then just don't count a bts and done https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/gsm_data.c at 1724 PS5, Line 1724: if (bts && conn->lchan) > But we still need the check since we dereference bts->ms_max_power in the next line, so what do we g [?] what he said https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_bssap.c at 477 PS5, Line 477: static int bssmap_handle_cipher_mode(struct gsm_subscriber_connection *conn, > I think it belongs in this patch, but I don't think we should use global variables (like bsc_gsmnet) [?] In this function, the only reason to use conn_get_bts() was to get at the global singleton bsc_gsmnet. It is always there, and it makes no sense to not be able to access it just because there currently is no lchan assigned. The fact that this function should always have an lchan aside: the point of this patch is to safeguard against odd failure modes where an lchan disappeared unexpectedly, and to make sure there is no DoS. I was all against a global gsmnet myself for a while, but in practice, there is no use in passing it around as function args. There is only one bsc_gsmnet, there will always be just one, and there is absolutely nothing gained now nor ever in any future by making it complicated to obtain a reference to it. https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_msc.c File src/osmo-bsc/osmo_bsc_msc.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18907/5/src/osmo-bsc/osmo_bsc_msc.c at 239 PS5, Line 239: return NULL; > OSMO_ASSERT(bts) here looks better. no, because getting rid of an assert like that is exactly the aim of this patch. All cgi_for_msc() callers handle a NULL return val properly. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: daniel Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 12:29:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:30:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:30:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL: fix trailing whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18978 ) Change subject: library/RSL: fix trailing whitespace ...................................................................... library/RSL: fix trailing whitespace Change-Id: I84b23fef3a75dcd6d86855408adcb41142da3407 --- M library/RSL_Emulation.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/18978/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 41c689f..66cc4dc 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -187,7 +187,7 @@ runs on RSL_Emulation_CT return integer { var integer i; for (i := 0; i < sizeof(ConnectionTable); i := i+1) { - if (ispresent(ConnectionTable[i].comp_ref) and + if (ispresent(ConnectionTable[i].comp_ref) and ConnectionTable[i].comp_ref == comp_ref) { return i; } @@ -200,7 +200,7 @@ runs on RSL_Emulation_CT return integer { var integer i; for (i := 0; i < sizeof(ConnectionTable); i := i+1) { - if (ispresent(ConnectionTable[i].chan_nr) and + if (ispresent(ConnectionTable[i].chan_nr) and ConnectionTable[i].chan_nr == chan_nr and ConnectionTable[i].trx_nr == trx_nr) { return i; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I84b23fef3a75dcd6d86855408adcb41142da3407 Gerrit-Change-Number: 18978 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 Jun 23 12:33:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:33:27 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c at 51 PS4, Line 51: osmo_fsm_inst_dispatch > I guess sending events to the FSM could be done directly, without the need to pass a callback functi [?] It cannot be done directly because that would be a layer violation and in any case there's several users of the ramping callback. So simply let who started the ramping decide what to do when it's done. https://gerrit.osmocom.org/c/osmo-bts/+/18904/4/src/common/bts_shutdown_fsm.c at 59 PS4, Line 59: for (i = 0; i < bts->num_trx; i++) { > Why not to iterate over the linked list directly? [?] WHy? because I simply copied it from somewhere else in the code. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 12:33:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:35:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:35:38 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-CC: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 12:35: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 Jun 23 12:44:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 12:44:39 +0000 Subject: Change in libosmocore[master]: fixup for gsm0808_create_common_id(): add API doc, use new MI API In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18966 ) Change subject: fixup for gsm0808_create_common_id(): add API doc, use new MI API ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/18966/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/c/libosmocore/+/18966/1/src/gsm/gsm0808.c at 1269 PS1, Line 1269: *out = rc; > well, I was using the same functions as used a few lines above when generating the GSM0808_IE_IMSI f [?] I did that and it caused test fallout, so we had to revert it... (because in numerous tests we use erratic MI coding) my angle is that we should use the new implementation in newly added functions, where there it is guaranteed to be no test fallout because we're not changing old behavior -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I979bca0c6aaa8fe4feddda922bd2e6c1cb49585b Gerrit-Change-Number: 18966 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 12:44:39 +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 Jun 23 12:47:54 2020 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 23 Jun 2020 12:47:54 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 12:47:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:49:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:49:11 +0000 Subject: Change in osmo-bts[master]: Introduce bts_shutdown FSM In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18903 ) Change subject: Introduce bts_shutdown FSM ...................................................................... Introduce bts_shutdown FSM Using an FSM here will allow for more complex ordered shutdown procedures, like power ramp down, waiting for TRX deact asyncrhonously, etc. Current commit leaves everything in place already prepared to implement ramp down, which will be implemented in next commit in the series. Related: SYS#4920 Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 --- M include/osmo-bts/Makefile.am A include/osmo-bts/bts_shutdown_fsm.h M include/osmo-bts/gsm_data.h M src/common/Makefile.am M src/common/bts.c A src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 7 files changed, 204 insertions(+), 34 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/Makefile.am b/include/osmo-bts/Makefile.am index 4999ab4..310fce2 100644 --- a/include/osmo-bts/Makefile.am +++ b/include/osmo-bts/Makefile.am @@ -2,6 +2,7 @@ abis.h \ bts.h \ bts_model.h \ + bts_shutdown_fsm.h \ gsm_data.h \ logging.h \ measurement.h \ diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h new file mode 100644 index 0000000..1268b2b --- /dev/null +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -0,0 +1,38 @@ +/* BTS shutdown FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include + +/* 3GPP TS 24.008 ? 4.1.3.3 GMM mobility management states on the network side */ +enum bts_shutdown_fsm_states { + BTS_SHUTDOWN_ST_NONE, + BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL, + BTS_SHUTDOWN_ST_EXIT, +}; + +enum bts_shutdown_fsm_events { + BTS_SHUTDOWN_EV_START, +}; + +extern struct osmo_fsm bts_shutdown_fsm; diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 9032aeb..416864f 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -733,6 +733,9 @@ char *sock_path; } pcu; + struct osmo_fsm_inst *shutdown_fi; /* FSM instance to manage shutdown procedure during process exit */ + struct osmo_tdef *T_defs; /* Timer defines */ + void *model_priv; /* Allocated by bts_model, contains model specific data pointer */ }; diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 85b7038..2fa5514 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -27,6 +27,7 @@ tx_power.c \ bts_ctrl_commands.c \ bts_ctrl_lookup.c \ + bts_shutdown_fsm.c \ l1sap.c \ cbch.c \ power_control.c \ diff --git a/src/common/bts.c b/src/common/bts.c index d2bca2f..dccb098 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -269,39 +269,6 @@ return 0; } -static void shutdown_timer_cb(void *data) -{ - fprintf(stderr, "Shutdown timer expired\n"); - exit(42); -} - -static struct osmo_timer_list shutdown_timer = { - .cb = &shutdown_timer_cb, -}; - -void bts_shutdown(struct gsm_bts *bts, const char *reason) -{ - struct gsm_bts_trx *trx; - - if (osmo_timer_pending(&shutdown_timer)) { - LOGP(DOML, LOGL_NOTICE, - "BTS is already being shutdown.\n"); - return; - } - - LOGP(DOML, LOGL_NOTICE, "Shutting down BTS %u, Reason %s\n", - bts->nr, reason); - - llist_for_each_entry_reverse(trx, &bts->trx_list, list) { - bts_model_trx_deact_rf(trx); - bts_model_trx_close(trx); - } - - /* schedule a timer to make sure select loop logic can run again - * to dispatch any pending primitives */ - osmo_timer_schedule(&shutdown_timer, 3, 0); -} - /* main link is established, send status report */ int bts_link_estab(struct gsm_bts *bts) { diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c new file mode 100644 index 0000000..50ef652 --- /dev/null +++ b/src/common/bts_shutdown_fsm.c @@ -0,0 +1,144 @@ +/* BTS shutdown FSM */ + +/* (C) 2020 by sysmocom - s.m.f.c. GmbH + * Author: Pau Espin Pedrol + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include + +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +static const struct osmo_tdef_state_timeout bts_shutdown_fsm_timeouts[32] = { + [BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL] = { .T = -1 }, + [BTS_SHUTDOWN_ST_EXIT] = { .T = -2 }, +}; + +#define bts_shutdown_fsm_state_chg(fi, NEXT_STATE) \ + osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, bts_shutdown_fsm_timeouts, ((struct gsm_bts *)fi->priv)->T_defs, -1) + +static void st_none(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch(event) { + case BTS_SHUTDOWN_EV_START: + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL); + break; + } +} + +static void st_wait_ramp_down_compl_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + /* TODO: here power ramp down will be started on all TRX, prior to changing state */ +} + +static void st_wait_ramp_down_compl(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + /* TODO: In here once we have ramp down implemented we'll transit to + regular exit. For now we simply wait for state timeout + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + */ +} + +static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *trx; + llist_for_each_entry_reverse(trx, &bts->trx_list, list) { + bts_model_trx_deact_rf(trx); + bts_model_trx_close(trx); + } + /* There's yet no way to get confirmation from lower layers regarding + state. Allow a few seconds of select() loop and timeout timer will + exit later */ +} + +static struct osmo_fsm_state bts_shutdown_fsm_states[] = { + [BTS_SHUTDOWN_ST_NONE] = { + .in_event_mask = + X(BTS_SHUTDOWN_EV_START), + .out_state_mask = X(BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL), + .name = "NONE", + .action = st_none, + }, + [BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL] = { + .in_event_mask = 0, + .out_state_mask = + X(BTS_SHUTDOWN_ST_EXIT), + .name = "WAIT_RAMP_DOWN_COMPL", + .onenter = st_wait_ramp_down_compl_on_enter, + .action = st_wait_ramp_down_compl, + }, + [BTS_SHUTDOWN_ST_EXIT] = { + .name = "EXIT", + .onenter = st_exit_on_enter, + } +}; + +const struct value_string bts_shutdown_fsm_event_names[] = { + OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_START), + { 0, NULL } +}; + +int bts_shutdown_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + switch (fi->state) { + case BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL: + LOGPFSML(fi, LOGL_ERROR, "Timer expired waiting for ramp down complete\n"); + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + break; + case BTS_SHUTDOWN_ST_EXIT: + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); + exit(0); + break; + default: + OSMO_ASSERT(false); + } + return 0; +} + +struct osmo_fsm bts_shutdown_fsm = { + .name = "BTS_SHUTDOWN", + .states = bts_shutdown_fsm_states, + .num_states = ARRAY_SIZE(bts_shutdown_fsm_states), + .event_names = bts_shutdown_fsm_event_names, + .log_subsys = DOML, + .timer_cb = bts_shutdown_fsm_timer_cb, +}; + +static __attribute__((constructor)) void bts_shutdown_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&bts_shutdown_fsm) == 0); +} + +void bts_shutdown(struct gsm_bts *bts, const char *reason) +{ + struct osmo_fsm_inst *fi = bts->shutdown_fi; + if (fi->state != BTS_SHUTDOWN_ST_NONE) { + LOGPFSML(fi, LOGL_NOTICE, "BTS is already being shutdown.\n"); + return; + } + + LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, reason: %s\n", reason); + osmo_fsm_inst_dispatch(fi, BTS_SHUTDOWN_EV_START, NULL); +} diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index c680001..18d5b66 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -28,12 +28,22 @@ #include #include +#include +#include +#include + #include #include -#include #include #include +#include + +static struct osmo_tdef bts_T_defs[] = { + { .T=-1, .default_val=1, .desc="Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s)" }, + { .T=-2, .default_val=3, .desc="Time after which osmo-bts exits if requesting transceivers to stop during shut down process does not finish (s)" }, + {} +}; void gsm_abis_mo_reset(struct gsm_abis_mo *mo) { @@ -277,6 +287,12 @@ INIT_LLIST_HEAD(&bts->trx_list); bts->ms_max_power = 15; /* dBm */ + bts->T_defs = bts_T_defs; + osmo_tdefs_reset(bts->T_defs); + bts->shutdown_fi = osmo_fsm_inst_alloc(&bts_shutdown_fsm, bts, bts, + LOGL_INFO, NULL); + osmo_fsm_inst_update_id_f(bts->shutdown_fi, "bts%d", bts->nr); + gsm_mo_init(&bts->mo, bts, NM_OC_BTS, bts->nr, 0xff, 0xff); gsm_mo_init(&bts->site_mgr.mo, bts, NM_OC_SITE_MANAGER, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8f48f17e61c3b9b86342eaf5b8a2b1ac9758bde5 Gerrit-Change-Number: 18903 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:53:51 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 12:53:51 +0000 Subject: Change in osmo-bsc[master]: fix crashes due to OSMO_ASSERT(conn->lchan) In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18907 ) Change subject: fix crashes due to OSMO_ASSERT(conn->lchan) ...................................................................... fix crashes due to OSMO_ASSERT(conn->lchan) Starting from ttcn3-bsc-test-sccplite build #777, it was noticed that osmo-bsc crashes with the following message: Assert failed conn->lchan include/osmocom/bsc/gsm_data.h:1376 The cause of this is a recently merged patch that calls conn_get_bts() during assignment_fsm rate counter dispatch: "Count assignment rates per BTS as well" commit b5ccf09fc4042c7fb1fdaaa6263961c40b32564e Change-Id I0009e51d4caf68e762138d98e2e23d49acc3cc1a The root cause being that the assignment_fsm attempts to count an Assignment event for a BTS after the lchan has already been released and disassociated from the conn. The assertion is found in conn_get_bts(), which is used in various places. In fact, each caller is a potential DoS risk -- though most are in code paths that are guaranteed to have an lchan and bts present, having an OSMO_ASSERT() on the relatively volatile presence of an lchan is not a good idea for osmo-bsc's stability and error resilience. - Change conn_get_bts() to return NULL in the lack of an lchan. - Adjust all callers of conn_get_bts() to gracefully handle a NULL return val. - Same for cgi_for_msc() and callers, closely related. Here is a backtrace: Program received signal SIGABRT pwndbg> bt 0x0000555555be6e52 in conn_get_bts (conn=0x622000057160) at include/osmocom/bsc/gsm_data.h:1376 0x0000555555c1edc8 in assignment_fsm_timer_cb (fi=0x612000060220) at assignment_fsm.c:758 0x00007ffff72b1104 in fsm_tmr_cb (data=0x612000060220) at libosmocore/src/fsm.c:325 0x00007ffff72ab062 in osmo_timers_update () at libosmocore/src/timer.c:257 0x00007ffff72ab5d2 in _osmo_select_main (polling=0) at libosmocore/src/select.c:260 0x00007ffff72abd2f in osmo_select_main_ctx (polling=) at libosmocore/src/select.c:291 0x0000555555e1b81b in main (argc=3, argv=0x7fffffffe1b8) at osmo_bsc_main.c:953 0x00007ffff6752002 in __libc_start_main () from /usr/lib/libc.so.6 0x0000555555b61bbe in _start () In the case of the assignment_fsm counter, we now miss a chance to increase a BTS counter for a failed Assignment, but this is a separate problem. The main point of this patch is that osmo-bsc must not crash. Related: OS#4620, OS#4619 Patch-by: fixeria Tweaked-by: neels Fixes: I0009e51d4caf68e762138d98e2e23d49acc3cc1a Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_08_08.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_msc.c M src/osmo-bsc/osmo_bsc_sigtran.c 9 files changed, 72 insertions(+), 25 deletions(-) Approvals: daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 8c1c545..ce18d1b 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1373,7 +1373,8 @@ static inline struct gsm_bts *conn_get_bts(struct gsm_subscriber_connection *conn) { - OSMO_ASSERT(conn->lchan); + if (!conn || !conn->lchan) + return NULL; return conn->lchan->ts->trx->bts; } diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 94dd359..cd5abc8 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -80,7 +80,8 @@ bsc_ctr_description[BSC_##counter].name, \ bsc_ctr_description[BSC_##counter].description); \ rate_ctr_inc(&conn->network->bsc_ctrs->ctr[BSC_##counter]); \ - rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_##counter]); \ + if (bts) \ + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_##counter]); \ } while(0) #define assignment_count_result(counter) do { \ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 9896bff..2941e5b 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1776,7 +1776,10 @@ /* Find the connection/lchan that we want to handover */ llist_for_each_entry(conn, &net->subscr_conns, entry) { - if (conn_get_bts(conn)->nr == bts_nr && + struct gsm_bts *bts = conn_get_bts(conn); + if (!bts) + continue; + if (bts->nr == bts_nr && conn->lchan->ts->trx->nr == trx_nr && conn->lchan->ts->nr == ts_nr && conn->lchan->nr == ss_nr) { vty_out(vty, "starting %s for lchan %s...%s", action, conn->lchan->name, VTY_NEWLINE); diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index 3703c76..e288506 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -222,8 +222,9 @@ /* Has the subscriber been paged from a connected MSC? */ if (pdisc == GSM48_PDISC_RR && mtype == GSM48_MT_RR_PAG_RESP) { subscr = bsc_subscr_find_by_mi(conn->network->bsc_subscribers, &mi); - if (subscr) { - msc_target = paging_get_msc(conn_get_bts(conn), subscr); + struct gsm_bts *bts = conn_get_bts(conn); + if (bts && subscr) { + msc_target = paging_get_msc(bts, subscr); bsc_subscr_put(subscr); if (is_msc_usable(msc_target, is_emerg)) { LOG_COMPL_L3(pdisc, mtype, LOGL_DEBUG, "%s matches earlier Paging from msc %d\n", @@ -356,6 +357,13 @@ { struct osmo_mobile_identity mi; struct bsc_subscr *subscr = NULL; + struct gsm_bts *bts = conn_get_bts(conn); + + if (!bts) { + /* should never happen */ + LOGP(DRSL, LOGL_ERROR, "Paging Response without lchan\n"); + return -1; + } if (osmo_mobile_identity_decode_from_l3(&mi, msg, false)) { LOGP(DRSL, LOGL_ERROR, "Unable to extract Mobile Identity from Paging Response\n"); @@ -370,8 +378,7 @@ return -1; } - paging_request_stop(&conn->network->bts_list, conn_get_bts(conn), subscr, conn, - msg); + paging_request_stop(&conn->network->bts_list, bts, subscr, conn, msg); bsc_subscr_put(subscr); return 0; } @@ -385,6 +392,11 @@ int8_t rc8; struct gsm_bts *bts = conn_get_bts(conn); + if (!bts) { + /* should never happen */ + LOGP(DRSL, LOGL_ERROR, "LU Request without lchan\n"); + return; + } if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) { LOGP(DMSC, LOGL_ERROR, "LU too small to look at: %u\n", msgb_l3len(msg)); @@ -415,6 +427,12 @@ int8_t rc8; struct gsm_bts *bts = conn_get_bts(conn); + if (!bts) { + /* should never happen */ + LOGP(DRSL, LOGL_ERROR, "CM Service Request without lchan\n"); + return; + } + if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*serv_req)) { LOGP(DMSC, LOGL_ERROR, "CM Serv Req too small to look at: %u\n", msgb_l3len(msg)); return; @@ -462,6 +480,15 @@ struct msgb *resp; struct gsm0808_speech_codec_list scl; int rc = -2; + struct gsm_bts *bts = conn_get_bts(conn); + struct osmo_cell_global_id *cgi = cgi_for_msc(conn->sccp.msc, bts); + + if (!bts || !cgi) { + /* should never happen */ + LOGP(DMSC, LOGL_ERROR, "Compl L3 without lchan\n"); + rc = -1; + goto early_fail; + } log_set_context(LOG_CTX_BSC_SUBSCR, conn->bsub); @@ -482,9 +509,9 @@ bsc_scan_bts_msg(conn, msg); if (gscon_is_aoip(conn)) { - gen_bss_supported_codec_list(&scl, msc, conn_get_bts(conn)); + gen_bss_supported_codec_list(&scl, msc, bts); if (scl.len > 0) - resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), &scl); + resp = gsm0808_create_layer3_2(msg, cgi, &scl); else { /* Note: 3GPP TS 48.008 3.2.1.32, COMPLETE LAYER 3 INFORMATION clearly states that * Codec List (BSS Supported) shall be included, if the radio access network @@ -492,10 +519,10 @@ * current configuration does not support any voice codecs, in those cases the * network does not support an IP based user plane interface, and therefore the * Codec List (BSS Supported) IE can be left out in those situations. */ - resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), NULL); + resp = gsm0808_create_layer3_2(msg, cgi, NULL); } } else - resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), NULL); + resp = gsm0808_create_layer3_2(msg, cgi, NULL); if (resp) rc = osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CONN_REQ, resp); @@ -537,6 +564,12 @@ struct msgb *resp; struct gsm_bts *bts = conn_get_bts(conn); + if (!bts) { + /* should never happen */ + LOGP(DMSC, LOGL_ERROR, "Classmark Update without lchan\n"); + return; + } + rc8 = osmo_gsm48_rfpowercap2powerclass(bts->band, cm2_parsed->pwr_lev); if (rc8 < 0) { LOGP(DMSC, LOGL_NOTICE, diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 9bf6f82..2098f13 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1721,7 +1721,7 @@ /* If there's an associated lchan, attempt to update its max power to be on track with band maximum values */ - if (conn->lchan) + if (bts && conn->lchan) lchan_update_ms_power_ctrl_level(conn->lchan, bts->ms_max_power); } diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 6b225e4..2deb7f4 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -478,7 +478,6 @@ struct msgb *msg, unsigned int payload_length) { uint16_t len; - struct gsm_network *network = NULL; const uint8_t *data; struct tlv_parsed tp; struct msgb *resp; @@ -522,7 +521,6 @@ goto reject; } - network = conn_get_bts(conn)->network; data = TLVP_VAL(&tp, GSM0808_IE_ENCRYPTION_INFORMATION); enc_bits_msc = data[0]; enc_key = &data[1]; @@ -540,10 +538,10 @@ /* The bit-mask of permitted ciphers from the MSC (sent in ASSIGNMENT COMMAND) is intersected * with the vty-configured mask a the BSC. Finally, the best (highest) possible cipher is * chosen. */ - chosen_cipher = select_best_cipher(enc_bits_msc, network->a5_encryption_mask); + chosen_cipher = select_best_cipher(enc_bits_msc, bsc_gsmnet->a5_encryption_mask); if (chosen_cipher < 0) { LOGP(DMSC, LOGL_ERROR, "Reject: no overlapping A5 ciphers between BSC (0x%02x) " - "and MSC (0x%02x)\n", network->a5_encryption_mask, enc_bits_msc); + "and MSC (0x%02x)\n", bsc_gsmnet->a5_encryption_mask, enc_bits_msc); reject_cause = GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED; goto reject; } @@ -663,17 +661,23 @@ { int rc, i, nc = 0; struct bsc_msc_data *msc; + struct gsm_bts *bts = conn_get_bts(conn); + + if (!bts) { + LOGP(DMSC, LOGL_ERROR, "No lchan, cannot select codecs\n"); + return -EINVAL; + } msc = conn->sccp.msc; switch (ct->ch_rate_type) { case GSM0808_SPEECH_FULL_BM: - rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, conn_get_bts(conn), + rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, bts, RATE_PREF_FR); nc += (rc == 0); break; case GSM0808_SPEECH_HALF_LM: - rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, conn_get_bts(conn), + rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, bts, RATE_PREF_HR); nc += (rc == 0); break; @@ -681,19 +685,19 @@ case GSM0808_SPEECH_PERM_NO_CHANGE: case GSM0808_SPEECH_FULL_PREF_NO_CHANGE: case GSM0808_SPEECH_FULL_PREF: - rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, conn_get_bts(conn), + rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, bts, RATE_PREF_FR); nc += (rc == 0); - rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, conn_get_bts(conn), + rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, bts, RATE_PREF_HR); nc += (rc == 0); break; case GSM0808_SPEECH_HALF_PREF_NO_CHANGE: case GSM0808_SPEECH_HALF_PREF: - rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, conn_get_bts(conn), + rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, bts, RATE_PREF_HR); nc += (rc == 0); - rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, conn_get_bts(conn), + rc = match_codec_pref(&req->ch_mode_rate[nc], ct, &conn->codec_list, msc, bts, RATE_PREF_FR); nc += (rc == 0); break; diff --git a/src/osmo-bsc/osmo_bsc_filter.c b/src/osmo-bsc/osmo_bsc_filter.c index 98b5148..08c3a50 100644 --- a/src/osmo-bsc/osmo_bsc_filter.c +++ b/src/osmo-bsc/osmo_bsc_filter.c @@ -132,11 +132,12 @@ msc = conn->sccp.msc; if (mtype == GSM48_MT_MM_LOC_UPD_ACCEPT) { - if (has_core_identity(msc)) { + struct gsm_bts *bts = conn_get_bts(conn); + if (bts && has_core_identity(msc)) { if (msgb_l3len(msg) >= sizeof(*gh) + sizeof(*lai)) { /* overwrite LAI in the message */ lai = (struct gsm48_loc_area_id *) &gh->data[0]; - gsm48_generate_lai2(lai, bts_lai(conn_get_bts(conn))); + gsm48_generate_lai2(lai, bts_lai(bts)); } } return 0; diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index 9b00ffc..f969146 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -266,6 +266,10 @@ struct osmo_cell_global_id *cgi_for_msc(struct bsc_msc_data *msc, struct gsm_bts *bts) { static struct osmo_cell_global_id cgi; + + if (!bts) + return NULL; + cgi.lai.plmn = msc->network->plmn; if (msc->core_plmn.mcc != GSM_MCC_MNC_INVALID) cgi.lai.plmn.mcc = msc->core_plmn.mcc; diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c index f5489e4..43ffae0 100644 --- a/src/osmo-bsc/osmo_bsc_sigtran.c +++ b/src/osmo-bsc/osmo_bsc_sigtran.c @@ -311,7 +311,7 @@ return BSC_CON_REJECT_NO_LINK; } - if (!bsc_grace_allow_new_connection(bts->network, bts)) { + if (bts && !bsc_grace_allow_new_connection(bts->network, bts)) { LOGP(DMSC, LOGL_NOTICE, "BSC in grace period. No new connections.\n"); return BSC_CON_REJECT_RF_GRACE; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Gerrit-Change-Number: 18907 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Assignee: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:56:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:56:11 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: Hello fixeria, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 to look at the new patch set (#5). Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Implement tx power ramp down during BTS shutdown Upon BTS shutdown (for instance because the Abis link against BSC was lost), stop the operation in an ordered manner (cell soft lock). This means slowly decrease tx power so that MS have time to handover to other neighbour cells. Related: SYS#4920 Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 3 files changed, 43 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/18904/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:56:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:56:11 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: Wait until all TRX are closed In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 to look at the new patch set (#4). Change subject: bts_shutdown: Wait until all TRX are closed ...................................................................... bts_shutdown: Wait until all TRX are closed Setting the phy link of a trx to SHUTDOWN sets operative state to DISABLED, so we use operative state as a condition to know whether all TRX are already powered off properly and we can exit. Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c 2 files changed, 51 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/54/18954/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 Gerrit-Change-Number: 18954 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 12:56:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:56:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL: pass lost link event to upper layers instead of failing References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 ) Change subject: library/RSL: pass lost link event to upper layers instead of failing ...................................................................... library/RSL: pass lost link event to upper layers instead of failing Some tests may expect that behavior so let the test decide what to do with it. Change-Id: Idd4bdfc99514f4c439837f0ce4a20ec5ff45e86c --- M library/RSL_Emulation.ttcn 1 file changed, 24 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/79/18979/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 66cc4dc..2fcb96c 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -394,6 +394,20 @@ return f_streamId_by_trx(trx_nr); } +private function f_trx_conn_map_unregister(integer conn_id) +runs on RSL_Emulation_CT return IpaStreamId { + + for (var integer i := 0; i < sizeof(TrxConnMap); i := i + 1) { + if (conn_id == TrxConnMap[i]) { + TrxConnMap[i] := -1; + TrxConnNum := TrxConnNum - 1; + return f_streamId_by_trx(i); + } + } + + testcase.stop("Trying to unregister an unknown conn_id=", conn_id); +} + private function f_trx_conn_map_resolve(IpaStreamId id) runs on RSL_Emulation_CT return integer { var integer trx_nr := f_trx_by_streamId(id); @@ -498,12 +512,17 @@ /* Notify the upper layers about a new connection */ CCHAN_PT.send(ts_RSLEm_EV(RSLEM_EV_TRX_UP, sid)); } - [bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Lost IPA connection!"); - + [bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) -> value evt { + log("Lost IPA connection! (conn_id=", evt.conn_id, "): ", evt.id_resp); + /* Notify the upper layers about lost connection */ + var IpaStreamId sid := f_trx_conn_map_unregister(evt.conn_id); + CCHAN_PT.send(ts_RSLEm_EV(RSLEM_EV_TRX_DOWN, sid)); } - [not bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Lost IPA connection!"); + [not bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) -> value evt { + log("Lost IPA connection! (conn_id=", evt.conn_id, ")"); + /* Notify the upper layers about lost connection */ + var IpaStreamId sid := f_trx_conn_map_unregister(evt.conn_id); + CCHAN_PT.send(ts_RSLEm_EV(RSLEM_EV_TRX_DOWN, sid)); } [bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_ACK)) { IPA_PT.send(ts_ASP_RSL_UD(ts_RSL_PAGING_LOAD_IND(23))); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idd4bdfc99514f4c439837f0ce4a20ec5ff45e86c Gerrit-Change-Number: 18979 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 Jun 23 12:56:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 12:56:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... bts: Introduce test TC_tx_power_start_ramp_down_bcch Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 --- M bts/BTS_Tests.ttcn 1 file changed, 95 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/80/18980/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 9ebd952..38521c6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -173,6 +173,9 @@ port TRXC_CODEC_PT BTS_TRXC; var integer g_bts_trxc_conn_id; + /* port to be initialized optionally to access BSC VTY */ + port TELNETasp_PT BSCVTY; + timer g_Tguard; timer g_Tmeas_exp := 2.0; /* >= 103 SACCH multiframe ~ 500ms */ @@ -2101,6 +2104,97 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } +/* Verify Tx power reduction and ramping downd uring BTS bring shutdown due to Abis link failure */ +function f_TC_tx_power_start_ramp_down_bcch(charstring id) runs on ConnHdlr { + var L1ctlDlMessage l1_dl; + + map(self:BSCVTY, system:BSCVTY); + f_vty_set_prompts(BSCVTY, "OsmoBSC"); + f_vty_transceive(BSCVTY, "enable"); + + f_l1_tune(L1CTL); + RSL.clear; + + var integer last_rx_lvl; + var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp; + + /* Wait until BTS is started and at full power */ + timer Tup := 10.0; + Tup.start; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level; + log("Received rx_level=", rx_lvl); + + if (rx_lvl != max_rx_lvl) { + repeat; + } + log("Reached nominal level ", max_rx_lvl, ", shutting down OML link"); + Tup.stop; + } + [] L1CTL.receive { repeat; } + [] Tup.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Didn't reach full power ", max_rx_lvl)); + } + } + + f_vty_transceive(BSCVTY, "drop bts connection 0 oml"); + last_rx_lvl := max_rx_lvl; + timer Tdown := 5.0; + Tdown.start; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level; + log("Received rx_level=", rx_lvl); + + /* received Rx level bigger than maximum allowed power by CN */ + if (rx_lvl > max_rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power higher than full power: ", + rx_lvl , " > ", max_rx_lvl)); + } + + /* Make sure it never increases, since we are rumping down */ + if (last_rx_lvl < rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power increase during ramp up: ", + last_rx_lvl , " -> ", rx_lvl)); + } + + last_rx_lvl := rx_lvl; + if (last_rx_lvl != 0) { + repeat; + } + /* we reached power level 0, we are done */ + Tdown.stop; + } + [] L1CTL.receive { repeat; } + [] Tdown.timeout { } + } + + /* We didn't increase tx power during ramp up */ + if (max_rx_lvl > last_rx_lvl) { + log("Tx power decreased during ramp down: ", max_rx_lvl , " -> ", last_rx_lvl); + } else { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("No Tx power decrease during whole ramp down: ", + max_rx_lvl , " -> ", last_rx_lvl)); + } + + setverdict(pass); +} +testcase TC_tx_power_start_ramp_down_bcch() runs on test_CT { + var ConnHdlr vc_conn; + var ConnHdlrPars pars; + f_init(); + pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN)); + vc_conn := f_start_handler(refers(f_TC_tx_power_start_ramp_down_bcch), pars, + pcu_comp := false, trxc_comp := true); + vc_conn.done; + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + function f_check_meas_bs_power_level(integer level) runs on ConnHdlr { timer T := 8.0; T.start; @@ -6519,6 +6613,7 @@ execute( TC_meas_res_sign_sdcch8() ); execute( TC_meas_res_sign_tchh_toa256() ); execute( TC_tx_power_start_ramp_up_bcch() ); + execute( TC_tx_power_start_ramp_down_bcch() ); execute( TC_rsl_bs_pwr_static_ass() ); execute( TC_rsl_bs_pwr_static_power_control() ); execute( TC_rsl_ms_pwr_ctrl() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 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 Jun 23 12:57:36 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 12:57:36 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18927 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: > Patch Set 3: > > I guess this means that in any kind of cross compilation environment we don't get manuals anymore? How do we handle this gracefully? osmo-bsc.git already has this patch applied, so if this needs a change, osmo-bsc will need the same change. I assumed the primary source of the vty reference is the build job for http://ftp.osmocom.org/docs/latest/ Another way to guarantee up-to-date-ness *and* presence of vty reference is to always keep a copy in the source tree. The gerrit build job could then regenerate and fail if there is a difference. That way a vty ref is always present. One aspect there is that limited builds (e.g. the --disable-iu build in osmo-msc) produce a reduced vty reference that doesn't match the full one saved in the source tree. The gerrit verification job would have to make sure to only check the vty reference in the maximally featured build. possible. I thought it would be more convenient and less spent time overall to not have to update the vty reference in the source tree and just accept that we don't build a reference during cross compilation. If we're willing to spend more time (now and in the future) then we could keep a copy in the source, too, and reject mismatching vty reference in gerrit. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 12:57: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 Tue Jun 23 13:00:21 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 13:00:21 +0000 Subject: Change in osmo-msc[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18925 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: discussion of this is in the similar -mgw patch at https://gerrit.osmocom.org/c/osmo-mgw/+/18927 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib872e7979c5b5a9da1347a3f326307844cf76536 Gerrit-Change-Number: 18925 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 13:00:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 13:05:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 13:05:00 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 13:05: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 Jun 23 13:18:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 13:18:44 +0000 Subject: Change in osmo-msc[master]: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18924 ) Change subject: add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout ...................................................................... add osmo-msc --vty-ref-xml: dump VTY ref XML to stdout Add only a long option to not clutter the cmdline namespace. To add a long option without a short letter is slightly complex: use the 'flag' and 'val' mechanism as in 'man 3 getopt' to write an option index to long_option. Make sure that all VTY commands have been added before parsing cmdline options: move various VTY init further above. For msc_vty_init(), the global msc_network already needs to be allocated, so also move that. Depends: Ic74bbdb6dc5ea05f03c791cc70184861e39cd492 (libosmocore) Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc --- M src/osmo-msc/msc_main.c 1 file changed, 20 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index cf1e504..f2ccff5 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -131,12 +131,14 @@ printf(" -V --version Print the version of OsmoMSC.\n"); printf(" -e --log-level number Set a global loglevel.\n"); printf(" -M --mncc-sock-path PATH Disable built-in MNCC handler and offer socket.\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { {"help", 0, 0, 'h'}, {"debug", 1, 0, 'd'}, @@ -149,6 +151,7 @@ {"log-level", 1, 0, 'e'}, {"mncc-sock-path", 1, 0, 'M'}, {"no-dbcounter", 0, 0, 'C'}, /* deprecated */ + {"vty-ref-xml", 0, &long_option, 1}, {0, 0, 0, 0} }; @@ -162,6 +165,15 @@ print_usage(); print_help(); exit(0); + case 0: + switch (long_option) { + case 1: + vty_dump_xml_ref(stdout); + exit(0); + default: + fprintf(stderr, "error parsing cmdline options\n"); + exit(2); + } case 's': log_set_use_color(osmo_stderr_target, 0); break; @@ -534,9 +546,9 @@ OSMO_ASSERT(osmo_ss7_init() == 0); osmo_ss7_vty_init_asp(tall_msc_ctx); osmo_sccp_vty_init(); - - /* Parse options */ - handle_options(argc, argv); + ctrl_vty_init(tall_msc_ctx); + logging_vty_add_cmds(); + osmo_talloc_vty_add_cmds(); /* Allocate global gsm_network struct. * At first set the internal MNCC as default, may be changed below according to cfg or cmdline option. */ @@ -544,6 +556,11 @@ if (!msc_network) return -ENOMEM; + msc_vty_init(msc_network); + + /* Parse options */ + handle_options(argc, argv); + call_leg_init(msc_network); mncc_call_fsm_init(msc_network); @@ -552,11 +569,6 @@ exit(1); } - ctrl_vty_init(tall_msc_ctx); - logging_vty_add_cmds(); - osmo_talloc_vty_add_cmds(); - msc_vty_init(msc_network); - #ifdef BUILD_SMPP if (smpp_openbsc_alloc_init(tall_msc_ctx) < 0) return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I9146d5a44427509265420f52ae6540ad93eb14fc Gerrit-Change-Number: 18924 Gerrit-PatchSet: 5 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 Tue Jun 23 13:19:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 13:19:05 +0000 Subject: Change in osmo-bts[master]: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18968 ) Change subject: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7f190063c35e0ed8e2e734047b3aff608cd3ce3 Gerrit-Change-Number: 18968 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 13: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 Tue Jun 23 13:21:25 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 13:21:25 +0000 Subject: Change in osmo-bsc[master]: Avoid selecting channels from administratively locked trx In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18965 ) Change subject: Avoid selecting channels from administratively locked trx ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 Gerrit-Change-Number: 18965 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 13:21: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 Jun 23 13:25:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 13:25:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL: pass lost link event to upper layers instead of failing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 ) Change subject: library/RSL: pass lost link event to upper layers instead of failing ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idd4bdfc99514f4c439837f0ce4a20ec5ff45e86c Gerrit-Change-Number: 18979 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 13:25:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 13:25:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 13:25:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL: fix trailing whitespace In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18978 ) Change subject: library/RSL: fix trailing whitespace ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I84b23fef3a75dcd6d86855408adcb41142da3407 Gerrit-Change-Number: 18978 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 13:25: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 Jun 23 13:25:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 13:25:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL: fix trailing whitespace In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18978 ) Change subject: library/RSL: fix trailing whitespace ...................................................................... library/RSL: fix trailing whitespace Change-Id: I84b23fef3a75dcd6d86855408adcb41142da3407 --- M library/RSL_Emulation.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 41c689f..66cc4dc 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -187,7 +187,7 @@ runs on RSL_Emulation_CT return integer { var integer i; for (i := 0; i < sizeof(ConnectionTable); i := i+1) { - if (ispresent(ConnectionTable[i].comp_ref) and + if (ispresent(ConnectionTable[i].comp_ref) and ConnectionTable[i].comp_ref == comp_ref) { return i; } @@ -200,7 +200,7 @@ runs on RSL_Emulation_CT return integer { var integer i; for (i := 0; i < sizeof(ConnectionTable); i := i+1) { - if (ispresent(ConnectionTable[i].chan_nr) and + if (ispresent(ConnectionTable[i].chan_nr) and ConnectionTable[i].chan_nr == chan_nr and ConnectionTable[i].trx_nr == trx_nr) { return i; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I84b23fef3a75dcd6d86855408adcb41142da3407 Gerrit-Change-Number: 18978 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 13:25:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 13:25:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 13:25: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 Jun 23 14:04:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:04:05 +0000 Subject: Change in osmo-mgw[master]: manuals: generate vty reference xml at build time In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18927 ) Change subject: manuals: generate vty reference xml at build time ...................................................................... Patch Set 3: > If we're willing to spend more time (now and in the future) then we could keep a copy in the source, too, and reject mismatching vty reference in gerrit. You cannot fail if it doesn't match since you also get output from other git repositories in there (lib dependencies). -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I526af21134087e2b43b9ada59c93f636ae242e24 Gerrit-Change-Number: 18927 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:04:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:16:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:16:43 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... Patch Set 5: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:16:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:16:56 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:16:56 +0000 Subject: Change in osmo-bts[master]: Implement tx power ramp down during BTS shutdown In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18904 ) Change subject: Implement tx power ramp down during BTS shutdown ...................................................................... Implement tx power ramp down during BTS shutdown Upon BTS shutdown (for instance because the Abis link against BSC was lost), stop the operation in an ordered manner (cell soft lock). This means slowly decrease tx power so that MS have time to handover to other neighbour cells. Related: SYS#4920 Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c M src/common/gsm_data.c 3 files changed, 43 insertions(+), 7 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h index 1268b2b..42f953a 100644 --- a/include/osmo-bts/bts_shutdown_fsm.h +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -33,6 +33,7 @@ enum bts_shutdown_fsm_events { BTS_SHUTDOWN_EV_START, + BTS_SHUTDOWN_EV_TRX_RAMP_COMPL, }; extern struct osmo_fsm bts_shutdown_fsm; diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index 50ef652..faa92a0 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -47,17 +47,41 @@ } } +static void ramp_down_compl_cb(struct gsm_bts_trx *trx) { + osmo_fsm_inst_dispatch(trx->bts->shutdown_fi, BTS_SHUTDOWN_EV_TRX_RAMP_COMPL, trx); +} + static void st_wait_ramp_down_compl_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { - /* TODO: here power ramp down will be started on all TRX, prior to changing state */ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *trx; + + llist_for_each_entry(trx, &bts->trx_list, list) + power_ramp_start(trx, to_mdB(-10), 1, ramp_down_compl_cb); } static void st_wait_ramp_down_compl(struct osmo_fsm_inst *fi, uint32_t event, void *data) { - /* TODO: In here once we have ramp down implemented we'll transit to - regular exit. For now we simply wait for state timeout - bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); - */ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *src_trx; + unsigned int remaining = 0; + struct gsm_bts_trx *trx; + + switch(event) { + case BTS_SHUTDOWN_EV_TRX_RAMP_COMPL: + src_trx = (struct gsm_bts_trx *)data; + + llist_for_each_entry(trx, &bts->trx_list, list) { + if (trx->power_params.p_total_cur_mdBm > 0) + remaining++; + } + + LOGPFSML(fi, LOGL_INFO, "%s Ramping down complete, %u TRX remaining\n", + gsm_trx_name(src_trx), remaining); + if (remaining == 0) + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + break; + } } static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -82,7 +106,8 @@ .action = st_none, }, [BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL] = { - .in_event_mask = 0, + .in_event_mask = + X(BTS_SHUTDOWN_EV_TRX_RAMP_COMPL), .out_state_mask = X(BTS_SHUTDOWN_ST_EXIT), .name = "WAIT_RAMP_DOWN_COMPL", @@ -97,6 +122,7 @@ const struct value_string bts_shutdown_fsm_event_names[] = { OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_START), + OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_TRX_RAMP_COMPL), { 0, NULL } }; diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 18d5b66..ae604ec 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -40,7 +40,16 @@ #include static struct osmo_tdef bts_T_defs[] = { - { .T=-1, .default_val=1, .desc="Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s)" }, + /* T-1: FIXME: Ideally should be dynamically calculated per trx at + * shutdown start based on params below, and highest trx value taken: + * + VTY's power-ramp step-interval. + * + Amount of steps needed (taking into account how many dB each step moves). + * + Extra time to get response back for each step. + * For now we simply give 5 mins, which should be enough for any + * acceptable setup, while still ensuring will timeout at some point if + * something fails in the ramp down procedure. + */ + { .T=-1, .default_val=300, .desc="Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s)" }, { .T=-2, .default_val=3, .desc="Time after which osmo-bts exits if requesting transceivers to stop during shut down process does not finish (s)" }, {} }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I70e34dda8974ebd94aea33bd9fb1d99f9063cc55 Gerrit-Change-Number: 18904 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:16:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:16:57 +0000 Subject: Change in osmo-bts[master]: bts-trx: Split part of bts_model_trx_close() steps into bts_model_dea... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18910 ) Change subject: bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf ...................................................................... bts-trx: Split part of bts_model_trx_close() steps into bts_model_deact_rf bts_model_trx_close is only called during bts_shutdown immediately after bts_model_deact_rf, so its logic keeps being essentially the same after this code movement. On the other hand, bts_model_deact_rf is also called during RSL link establishment if it failed for whatever reason in bts.c:trx_link_estab(). In that case, we want to make sure the TRX is not used so we need to implement bts_model_deact_rf. Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a --- M src/osmo-bts-trx/l1_if.c 1 file changed, 17 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve neels: Looks good to me, but someone else must approve diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index ea3dcfa..2aa27a7 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -396,8 +396,8 @@ return oml_mo_opstart_ack(&trx->mo); } -/* deactivate transceiver */ -int bts_model_trx_close(struct gsm_bts_trx *trx) +/* Deact RF on transceiver */ +int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) { struct phy_instance *pinst = trx_phy_instance(trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -411,6 +411,21 @@ pchan == GSM_PCHAN_CCCH_SDCCH4_CBCH) { lchan_set_state(&trx->ts[0].lchan[CCCH_LCHAN], LCHAN_S_INACTIVE); } + /* FIXME: There's currently no way to communicate to osmo-trx through + * TRXC that a specific TRX processing shall be paused. Let's simply + * make sure that at least we don't transmit with power on it by setting + * a rather low value: + */ + power_ramp_start(trx, to_mdB(-10), 1, NULL); + + return 0; +} + +/* deactivate transceiver */ +int bts_model_trx_close(struct gsm_bts_trx *trx) +{ + struct phy_instance *pinst = trx_phy_instance(trx); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; /* power off transceiver, if not already */ if (l1h->config.enabled) { @@ -846,11 +861,6 @@ return oml_mo_statechg_ack(mo); } -int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) -{ - return 0; -} - int bts_model_oml_estab(struct gsm_bts *bts) { return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id4eae743da81773a04b82e7b454071b0cc66677a Gerrit-Change-Number: 18910 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:16:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:16:57 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: First deact RF on all TRX, finally close them In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18912 ) Change subject: bts_shutdown: First deact RF on all TRX, finally close them ...................................................................... bts_shutdown: First deact RF on all TRX, finally close them It makes more sense to first deactive RF on all TRX and finally close them totally. This way we keep consistency between all TRXs and it's easier for lower layers which may need to close them all at once. Also in the event that we want to turn bts_model_trx_deact_rf to return asynchronously. Change-Id: Ib62358384e37a5cef692926439462042fab0138c --- M src/common/bts_shutdown_fsm.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index faa92a0..e65fff4 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -90,6 +90,8 @@ struct gsm_bts_trx *trx; llist_for_each_entry_reverse(trx, &bts->trx_list, list) { bts_model_trx_deact_rf(trx); + } + llist_for_each_entry_reverse(trx, &bts->trx_list, list) { bts_model_trx_close(trx); } /* There's yet no way to get confirmation from lower layers regarding -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib62358384e37a5cef692926439462042fab0138c Gerrit-Change-Number: 18912 Gerrit-PatchSet: 5 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 Jun 23 14:18:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:18:02 +0000 Subject: Change in osmo-bts[master]: bts_model: Convert bts_model_trx_close() to return asynchronously In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18953 ) Change subject: bts_model: Convert bts_model_trx_close() to return asynchronously ...................................................................... Patch Set 4: Code-Review+2 Re-adding +1+1=+2 after rebase. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a Gerrit-Change-Number: 18953 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:18:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:18:19 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:18:19 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: Wait until all TRX are closed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18954 ) Change subject: bts_shutdown: Wait until all TRX are closed ...................................................................... Patch Set 4: Code-Review+2 Re-adding +2 after rebase. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 Gerrit-Change-Number: 18954 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:18:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:18:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:18:27 +0000 Subject: Change in osmo-bts[master]: bts-virtual: Implement bts_model_trx_close In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18955 ) Change subject: bts-virtual: Implement bts_model_trx_close ...................................................................... Patch Set 4: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id37562652b1ebc27d808d83342e4961b936dbcad Gerrit-Change-Number: 18955 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:18: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 Jun 23 14:18:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:18:41 +0000 Subject: Change in osmo-bts[master]: bts_model: Convert bts_model_trx_close() to return asynchronously In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18953 ) Change subject: bts_model: Convert bts_model_trx_close() to return asynchronously ...................................................................... bts_model: Convert bts_model_trx_close() to return asynchronously Some backends like osmo-bts-trx require exchanging messages like POWEROFF to close the TRX, and hence need some time. Switch the function to expect result asynchronously by calling a callback. This will be used later to wait until all TRX are really powered off before exiting the process. Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a --- M include/osmo-bts/bts_model.h M src/common/bts_shutdown_fsm.c M src/osmo-bts-litecell15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-omldummy/bts_model.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-virtual/bts_model.c M tests/stubs.c 10 files changed, 62 insertions(+), 24 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h index be0480c..f62291c 100644 --- a/include/osmo-bts/bts_model.h +++ b/include/osmo-bts/bts_model.h @@ -30,7 +30,9 @@ void *obj, uint8_t adm_state); int bts_model_trx_deact_rf(struct gsm_bts_trx *trx); -int bts_model_trx_close(struct gsm_bts_trx *trx); + +/* Implementation should call bts_model_trx_close_cb when done */ +void bts_model_trx_close(struct gsm_bts_trx *trx); int bts_model_vty_init(struct gsm_bts *bts); @@ -62,4 +64,10 @@ int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts); void bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan); +/* BTS model specific implementations are expected to call these functions as a + * response to some of the APIs above: + */ + +void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc); + #endif diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index e65fff4..81cd348 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -170,3 +170,9 @@ LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, reason: %s\n", reason); osmo_fsm_inst_dispatch(fi, BTS_SHUTDOWN_EV_START, NULL); } + +void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc) +{ + struct osmo_fsm_inst *fi = trx->bts->shutdown_fi; + LOGPFSML(fi, LOGL_DEBUG, "%s Received TRX close cb rc=%d\n", gsm_trx_name(trx), rc); +} diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index 2f462b6..60fd1e7 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -441,20 +441,24 @@ void *data) { msgb_free(l1_msg); + bts_model_trx_close_cb(trx, 0); return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct lc15l1_hdl *fl1h = trx_lc15l1_hdl(trx); struct msgb *msg; + int rc; msg = l1p_msgb_alloc(); prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphCloseReq, fl1h, l1p_handle_for_trx(trx)); LOGP(DL1C, LOGL_NOTICE, "Close TRX %u\n", trx->nr); - return l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + rc = l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + if (rc < 0) + bts_model_trx_close_cb(trx, rc); } static int trx_rf_lock(struct gsm_bts_trx *trx, int locked, l1if_compl_cb *cb) diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index cc8d02d..89ee0ac 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -457,20 +457,24 @@ void *data) { msgb_free(l1_msg); + bts_model_trx_close_cb(trx, 0); return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct oc2gl1_hdl *fl1h = trx_oc2gl1_hdl(trx); struct msgb *msg; + int rc; msg = l1p_msgb_alloc(); prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphCloseReq, fl1h, l1p_handle_for_trx(trx)); LOGP(DL1C, LOGL_NOTICE, "Close TRX %u\n", trx->nr); - return l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + rc = l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + if (rc < 0) + bts_model_trx_close_cb(trx, rc); } static int trx_rf_lock(struct gsm_bts_trx *trx, int locked, l1if_compl_cb *cb) diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 61d56bb..8cc078e 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1678,7 +1678,7 @@ bts_model_trx_deact_rf(trx); /* Close TRX */ - rc = bts_model_trx_close(trx); + rc = trx_close(trx); if (rc != 0) { LOGP(DL1C, LOGL_ERROR, "Cannot close TRX %d, it is already closed.\n", @@ -1716,10 +1716,11 @@ return l1if_activate_rf(trx, 0); } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { /* FIXME: close only one TRX */ - return trx_close(trx); + int rc = trx_close(trx); + bts_model_trx_close_cb(trx, rc); } diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index a968381..dc0e041 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -50,10 +50,10 @@ return -1; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); - return 0; + bts_model_trx_close_cb(trx, 0); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index c3bf8b6..57eab12 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -437,20 +437,24 @@ void *data) { msgb_free(l1_msg); + bts_model_trx_close_cb(trx, 0); return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct femtol1_hdl *fl1h = trx_femtol1_hdl(trx); struct msgb *msg; + int rc; msg = l1p_msgb_alloc(); prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphCloseReq, fl1h, l1p_handle_for_trx(trx)); LOGP(DL1C, LOGL_NOTICE, "Close TRX %u\n", trx->nr); - return l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + rc = l1if_gsm_req_compl(fl1h, msg, trx_close_compl_cb, NULL); + if (rc < 0) + bts_model_trx_close_cb(trx, rc); } static int trx_rf_lock(struct gsm_bts_trx *trx, int locked, l1if_compl_cb *cb) diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 2aa27a7..22b590a 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -214,17 +214,27 @@ plink->u.osmotrx.poweronoff_sent = false; if (poweronoff) { - if (rc == 0 && pinst->phy_link->state != PHY_LINK_CONNECTED) { + if (rc == 0 && plink->state != PHY_LINK_CONNECTED) { trx_sched_clock_started(pinst->trx->bts); - phy_link_state_set(pinst->phy_link, PHY_LINK_CONNECTED); + phy_link_state_set(plink, PHY_LINK_CONNECTED); /* Begin to ramp up the power on all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { l1if_trx_start_power_ramp(pinst->trx); } - } else if (rc != 0 && pinst->phy_link->state != PHY_LINK_SHUTDOWN) { + } else if (rc != 0 && plink->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); - phy_link_state_set(pinst->phy_link, PHY_LINK_SHUTDOWN); + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + } + } else { + if (plink->state != PHY_LINK_SHUTDOWN) { + trx_sched_clock_stopped(pinst->trx->bts); + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + + /* Notify TRX close on all TRX associated with this phy */ + llist_for_each_entry(pinst, &plink->instances, list) { + bts_model_trx_close_cb(pinst->trx, rc); + } } } } @@ -422,7 +432,7 @@ } /* deactivate transceiver */ -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { struct phy_instance *pinst = trx_phy_instance(trx); struct trx_l1h *l1h = pinst->u.osmotrx.hdl; @@ -431,12 +441,12 @@ if (l1h->config.enabled) { l1h->config.enabled = false; l1if_provision_transceiver_trx(l1h); - } + } else if (!pinst->phy_link->u.osmotrx.poweronoff_sent) { + bts_model_trx_close_cb(trx, 0); + } /* else: poweroff in progress, cb will be called upon TRXC RSP */ /* Set to Operational State: Disabled */ check_transceiver_availability_trx(l1h, 0); - - return 0; } /* on RSL failure, deactivate transceiver */ diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index b971af5..8db0201 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -50,10 +50,10 @@ return -1; } -int bts_model_trx_close(struct gsm_bts_trx *trx) +void bts_model_trx_close(struct gsm_bts_trx *trx) { LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); - return 0; + bts_model_trx_close_cb(trx, 0); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) diff --git a/tests/stubs.c b/tests/stubs.c index 20ce512..4663a44 100644 --- a/tests/stubs.c +++ b/tests/stubs.c @@ -1,4 +1,5 @@ #include +#include struct femtol1_hdl; struct bts_model_set_dyn_pdch_data; @@ -23,8 +24,8 @@ int bts_model_trx_deact_rf(struct gsm_bts_trx *trx) { return 0; } -int bts_model_trx_close(struct gsm_bts_trx *trx) -{ return 0; } +void bts_model_trx_close(struct gsm_bts_trx *trx) +{ bts_model_trx_close_cb(trx, 0); } int bts_model_check_oml(struct gsm_bts *bts, uint8_t msg_type, struct tlv_parsed *old_attr, struct tlv_parsed *new_attr, void *obj) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7d76b600fc06e1114b35bf0c2d08eff5bbd1b69a Gerrit-Change-Number: 18953 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:18:42 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:18:42 +0000 Subject: Change in osmo-bts[master]: bts_shutdown: Wait until all TRX are closed In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18954 ) Change subject: bts_shutdown: Wait until all TRX are closed ...................................................................... bts_shutdown: Wait until all TRX are closed Setting the phy link of a trx to SHUTDOWN sets operative state to DISABLED, so we use operative state as a condition to know whether all TRX are already powered off properly and we can exit. Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/bts_shutdown_fsm.c 2 files changed, 51 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h index 42f953a..1e74ac6 100644 --- a/include/osmo-bts/bts_shutdown_fsm.h +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -28,12 +28,14 @@ enum bts_shutdown_fsm_states { BTS_SHUTDOWN_ST_NONE, BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL, + BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED, BTS_SHUTDOWN_ST_EXIT, }; enum bts_shutdown_fsm_events { BTS_SHUTDOWN_EV_START, BTS_SHUTDOWN_EV_TRX_RAMP_COMPL, + BTS_SHUTDOWN_EV_TRX_CLOSED, }; extern struct osmo_fsm bts_shutdown_fsm; diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index 81cd348..d8a8d11 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -32,7 +32,7 @@ static const struct osmo_tdef_state_timeout bts_shutdown_fsm_timeouts[32] = { [BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL] = { .T = -1 }, - [BTS_SHUTDOWN_ST_EXIT] = { .T = -2 }, + [BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED] = { .T = -2 }, }; #define bts_shutdown_fsm_state_chg(fi, NEXT_STATE) \ @@ -79,12 +79,12 @@ LOGPFSML(fi, LOGL_INFO, "%s Ramping down complete, %u TRX remaining\n", gsm_trx_name(src_trx), remaining); if (remaining == 0) - bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED); break; } } -static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +static void st_wait_trx_closed_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; struct gsm_bts_trx *trx; @@ -94,9 +94,36 @@ llist_for_each_entry_reverse(trx, &bts->trx_list, list) { bts_model_trx_close(trx); } - /* There's yet no way to get confirmation from lower layers regarding - state. Allow a few seconds of select() loop and timeout timer will - exit later */ + /* Now wait until all TRX are closed asynchronously, we'll get feedback through events... */ +} + +static void st_wait_trx_closed(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *src_trx, *trx; + unsigned int remaining = 0; + + switch(event) { + case BTS_SHUTDOWN_EV_TRX_CLOSED: + src_trx = (struct gsm_bts_trx *)data; + + llist_for_each_entry(trx, &bts->trx_list, list) { + if (trx->mo.nm_state.operational != NM_OPSTATE_DISABLED) + remaining++; + } + + LOGPFSML(fi, LOGL_INFO, "%s TRX closed, %u TRX remaining\n", + gsm_trx_name(src_trx), remaining); + if (remaining == 0) + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + break; + } +} + +static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); + exit(0); } static struct osmo_fsm_state bts_shutdown_fsm_states[] = { @@ -111,11 +138,20 @@ .in_event_mask = X(BTS_SHUTDOWN_EV_TRX_RAMP_COMPL), .out_state_mask = - X(BTS_SHUTDOWN_ST_EXIT), + X(BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED), .name = "WAIT_RAMP_DOWN_COMPL", .onenter = st_wait_ramp_down_compl_on_enter, .action = st_wait_ramp_down_compl, }, + [BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED] = { + .in_event_mask = + X(BTS_SHUTDOWN_EV_TRX_CLOSED), + .out_state_mask = + X(BTS_SHUTDOWN_ST_EXIT), + .name = "WAIT_TRX_CLOSED", + .onenter = st_wait_trx_closed_on_enter, + .action = st_wait_trx_closed, + }, [BTS_SHUTDOWN_ST_EXIT] = { .name = "EXIT", .onenter = st_exit_on_enter, @@ -125,6 +161,7 @@ const struct value_string bts_shutdown_fsm_event_names[] = { OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_START), OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_TRX_RAMP_COMPL), + OSMO_VALUE_STRING(BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED), { 0, NULL } }; @@ -133,11 +170,11 @@ switch (fi->state) { case BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL: LOGPFSML(fi, LOGL_ERROR, "Timer expired waiting for ramp down complete\n"); - bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED); break; - case BTS_SHUTDOWN_ST_EXIT: - LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); - exit(0); + case BTS_SHUTDOWN_ST_WAIT_TRX_CLOSED: + LOGPFSML(fi, LOGL_ERROR, "Timer expired waiting for TRX close\n"); + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_EXIT); break; default: OSMO_ASSERT(false); @@ -175,4 +212,5 @@ { struct osmo_fsm_inst *fi = trx->bts->shutdown_fi; LOGPFSML(fi, LOGL_DEBUG, "%s Received TRX close cb rc=%d\n", gsm_trx_name(trx), rc); + osmo_fsm_inst_dispatch(fi, BTS_SHUTDOWN_EV_TRX_CLOSED, trx); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bcd211d7edcc8486461a555d6c470a94b166ed7 Gerrit-Change-Number: 18954 Gerrit-PatchSet: 4 Gerrit-Owner: pespin 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 Jun 23 14:18:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:18:43 +0000 Subject: Change in osmo-bts[master]: bts-virtual: Implement bts_model_trx_close In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18955 ) Change subject: bts-virtual: Implement bts_model_trx_close ...................................................................... bts-virtual: Implement bts_model_trx_close Change-Id: Id37562652b1ebc27d808d83342e4961b936dbcad --- M src/osmo-bts-virtual/bts_model.c 1 file changed, 10 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved neels: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index 8db0201..8209ce2 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -35,6 +35,8 @@ #include #include +#include "virtual_um.h" + /* TODO: check if dummy method is sufficient, else implement */ int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { @@ -52,7 +54,14 @@ void bts_model_trx_close(struct gsm_bts_trx *trx) { - LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + struct phy_instance *pinst = trx_phy_instance(trx); + struct phy_link *plink = pinst->phy_link; + + if (phy_link_state_get(plink) != PHY_LINK_SHUTDOWN) { + virt_um_destroy(plink->u.virt.virt_um); + plink->u.virt.virt_um = NULL; + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + } bts_model_trx_close_cb(trx, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id37562652b1ebc27d808d83342e4961b936dbcad Gerrit-Change-Number: 18955 Gerrit-PatchSet: 4 Gerrit-Owner: pespin 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 Jun 23 14:21:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:21:17 +0000 Subject: Change in osmo-bsc[master]: Avoid selecting channels from administratively locked trx In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18965 ) Change subject: Avoid selecting channels from administratively locked trx ...................................................................... Patch Set 2: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 Gerrit-Change-Number: 18965 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:21:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:21:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:21:20 +0000 Subject: Change in osmo-bsc[master]: Avoid selecting channels from administratively locked trx In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18965 ) Change subject: Avoid selecting channels from administratively locked trx ...................................................................... Avoid selecting channels from administratively locked trx Found while playing with "rf_locked 1" on a 2TRX setup with channel allocator descend. After applying the setting, the 1st TRX is still used to allocate the channels. After this patch is applied, the BSC correctly allocates channels from TRX0. Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 --- M src/osmo-bsc/abis_nm.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/osmo_bsc_main.c M tests/handover/handover_test.c 4 files changed, 11 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index b6d1ec5..e17c6f5 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -848,9 +848,6 @@ if (!trx_is_usable(trx)) return false; - - if (trx->mo.nm_state.administrative == NM_STATE_LOCKED) - return false; } return true; diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 2098f13..f790b90 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1459,10 +1459,13 @@ } bool nm_is_running(const struct gsm_nm_state *s) { - return (s->operational == NM_OPSTATE_ENABLED) && ( - (s->availability == NM_AVSTATE_OK) || - (s->availability == 0xff) - ); + if (s->operational != NM_OPSTATE_ENABLED) + return false; + if ((s->availability != NM_AVSTATE_OK) && (s->availability != 0xff)) + return false; + if (s->administrative != NM_STATE_UNLOCKED) + return false; + return true; } /* determine the logical channel type based on the physical channel type */ diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 9eaaf2a..5fd02dd 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -306,7 +306,7 @@ * This ensures that RACH control in system information is configured correctly. * TRX 0 should be usable and unlocked, otherwise starting ACC ramping is pointless. */ - if (trx_is_usable(trx) && trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) + if (trx_is_usable(trx)) acc_ramp_trigger(&trx->bts->acc_ramp); gsm_bts_trx_set_system_infos(trx); diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index b08e2a3..1a756cd 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -197,14 +197,17 @@ bts->c0->mo.nm_state.operational = NM_OPSTATE_ENABLED; bts->c0->mo.nm_state.availability = NM_AVSTATE_OK; + bts->c0->mo.nm_state.administrative = NM_STATE_UNLOCKED; bts->c0->bb_transc.mo.nm_state.operational = NM_OPSTATE_ENABLED; bts->c0->bb_transc.mo.nm_state.availability = NM_AVSTATE_OK; + bts->c0->bb_transc.mo.nm_state.administrative = NM_STATE_UNLOCKED; /* 4 full rate and 4 half rate channels */ for (i = 1; i <= 6; i++) { bts->c0->ts[i].pchan_from_config = (i < 5) ? GSM_PCHAN_TCH_F : GSM_PCHAN_TCH_H; bts->c0->ts[i].mo.nm_state.operational = NM_OPSTATE_ENABLED; bts->c0->ts[i].mo.nm_state.availability = NM_AVSTATE_OK; + bts->c0->ts[i].mo.nm_state.administrative = NM_STATE_UNLOCKED; } for (i = 0; i < ARRAY_SIZE(bts->c0->ts); i++) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5201d2749363c9cbd0706177bde09117b163cbe3 Gerrit-Change-Number: 18965 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:16 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:16 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: add getter to retrieve received bitrate References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 ) Change subject: iperf3: add getter to retrieve received bitrate ...................................................................... iperf3: add getter to retrieve received bitrate Change-Id: Id5676ce002cab6d52480b9b0f996f3065fd5dda6 --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/81/18981/1 diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index e0e05d8..d61dbb1 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -70,6 +70,14 @@ print("Exception while using iperf3 %s results: %r" % (node_str, repr(result))) raise e +def get_received_mbps(result, isUdp=True): + try: + recv = result['end']['sum' if isUdp else 'sum_received'] + return recv['bits_per_second']/1e6 + except Exception as e: + print("Exception while using iperf3 results: %r" % (repr(result))) + raise e + class IPerf3Server(log.Origin): DEFAULT_SRV_PORT = 5003 @@ -170,6 +178,9 @@ else: print_result_node_tcp(self.get_results(), 'server') + def get_received_mbps(self, client_was_udp): + return get_received_mbps(self.get_results(), client_was_udp) + def addr(self): return self.ip_address.get('addr') @@ -320,6 +331,12 @@ else: print_result_node_tcp(self.get_results(), 'client') + def get_received_mbps(self): + if self.proto() == self.PROTO_UDP: + return get_received_mbps(self.get_results(), isUdp=True) + else: + return get_received_mbps(self.get_results(), isUdp=False) + def set_run_node(self, run_node): self._run_node = run_node -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 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: Id5676ce002cab6d52480b9b0f996f3065fd5dda6 Gerrit-Change-Number: 18981 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:17 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:17 +0000 Subject: Change in osmo-gsm-tester[master]: ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18982 ) Change subject: ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 ...................................................................... ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 two bearer of QCI 1 and 2 Change-Id: I857bed943b0184540b0a8ac696e7ebddd693be87 --- M src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl 1 file changed, 50 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/82/18982/1 diff --git a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl index ce7200f..5fcc74a 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl @@ -68,6 +68,56 @@ pre_emption_capability: "shall_not_trigger_pre_emption", pre_emption_vulnerability: "not_pre_emptable", }, + { + qci: 1, + priority_level: 1, + pre_emption_capability: "shall_not_trigger_pre_emption", + pre_emption_vulnerability: "not_pre_emptable", + setup_type: "on_demand", + filters: [ + { + direction: "both", + id: 1, + precedence: 0, + components: [ + { + type_of_service: 0xb8, + mask: 255 + } + ] + } + ], + on_demand_timeout: 10000, + on_demand_ul_trigger: true, + transaction_identifier: 20, + radio_priority: 1, + packet_flow_identifier: 20 + }, + { + qci: 2, + priority_level: 1, + pre_emption_capability: "shall_not_trigger_pre_emption", + pre_emption_vulnerability: "not_pre_emptable", + setup_type: "on_demand", + filters: [ + { + direction: "both", + id: 2, + precedence: 1, + components: [ + { + type_of_service: 0x60, + mask: 255 + } + ] + } + ], + on_demand_timeout: 10000, + on_demand_ul_trigger: true, + transaction_identifier: 21, + radio_priority: 1, + packet_flow_identifier: 21 + }, ], }, ], -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18982 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: I857bed943b0184540b0a8ac696e7ebddd693be87 Gerrit-Change-Number: 18982 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:17 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:17 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: fix scp-back-metrics routine References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18983 ) Change subject: ms_srs: fix scp-back-metrics routine ...................................................................... ms_srs: fix scp-back-metrics routine every call to verify_metrics would copy back metrics again. see log here: 23:29:22.149299 run srsue(pid=31521): Terminating (SIGINT) 23:29:22.368263 run srsue(pid=31521): Terminated: ok {rc=0} 23:29:28.401035 run scp-back-metrics(pid=32265): Launched 23:29:29.423083 run scp-back-metrics(pid=32265): Terminated: ok {rc=0} 23:29:29.490275 run scp-back-metrics(pid=32271): Launched 23:29:30.513852 run scp-back-metrics(pid=32271): Terminated: ok {rc=0} 23:29:30.550862 run scp-back-metrics(pid=32277): Launched 23:29:31.573962 run scp-back-metrics(pid=32277): Terminated: ok {rc=0} this patch only copies back metrics only once. also make sure that, similar to logs, metrics are always copied back at the end of the run even if they are not used for metrics checking. this is needed to run the plotting script. Change-Id: Ie7c156a5b2c8768bf90ff8e86515976e0d454c25 --- M src/osmo_gsm_tester/obj/ms_srs.py 1 file changed, 27 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/83/18983/1 diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index cf2e166..57721ac 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -81,6 +81,7 @@ self.log_file = None self.pcap_file = None self.metrics_file = None + self.have_metrics_file = False self.process = None self.rem_host = None self.remote_inst = None @@ -107,6 +108,7 @@ self.sleep_after_stop() # copy back files (may not exist, for instance if there was an early error of process): + self.scp_back_metrics(raiseException=False) try: self.rem_host.scpfrom('scp-back-log', self.remote_log_file, self.log_file) except Exception as e: @@ -117,6 +119,29 @@ except Exception as e: self.log(repr(e)) + def scp_back_metrics(self, raiseException=True): + ''' Copy back metrics only if they have not been copied back yet ''' + if not self.have_metrics_file: + # file is not properly flushed until the process has stopped. + if self.running(): + self.stop() + + # only SCP back if not running locally + if not self._run_node.is_local(): + try: + self.rem_host.scpfrom('scp-back-metrics', self.remote_metrics_file, self.metrics_file) + except Exception as e: + if raiseException: + self.err('Failed copying back metrics file from remote host') + raise e + else: + # only log error + self.log(repr(e)) + # make sure to only call it once + self.have_metrics_file = True + else: + self.dbg('Metrics have already been copied back') + def netns(self): return "srsue1" @@ -362,17 +387,8 @@ raise log.Error('counter %s not implemented!' % counter_name) def verify_metric(self, value, operation='avg', metric='dl_brate', criterion='gt', window=1): - # file is not properly flushed until the process has stopped. - if self.running(): - self.stop() - - if not self._run_node.is_local(): - try: - self.rem_host.scpfrom('scp-back-metrics', self.remote_metrics_file, self.metrics_file) - except Exception as e: - self.err('Failed copying back metrics file from remote host') - raise e - + # copy back metrics if we have not already done so + self.scp_back_metrics(self) metrics = srsUEMetrics(self.metrics_file) return metrics.verify(value, operation, metric, criterion, window) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18983 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: Ie7c156a5b2c8768bf90ff8e86515976e0d454c25 Gerrit-Change-Number: 18983 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:17 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:17 +0000 Subject: Change in osmo-gsm-tester[master]: {enb, epc, ms}_srs: expose log.all_level parameter References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18984 ) Change subject: {enb,epc,ms}_srs: expose log.all_level parameter ...................................................................... {enb,epc,ms}_srs: expose log.all_level parameter expose paramter to set log level, use warning as default Change-Id: I4e77e5351399aefef47a309c82b8805e2c6022c5 --- M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/epc_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/templates/srsenb.conf.tmpl M src/osmo_gsm_tester/templates/srsepc.conf.tmpl M src/osmo_gsm_tester/templates/srsue.conf.tmpl M sysmocom/defaults.conf 7 files changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/84/18984/1 diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 1b23172..0bf4f8b 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -29,6 +29,7 @@ def on_register_schemas(): config_schema = { 'enable_pcap': schema.BOOL_STR, + 'log_all_level': schema.STR, } schema.register_config_schema('enb', config_schema) diff --git a/src/osmo_gsm_tester/obj/epc_srs.py b/src/osmo_gsm_tester/obj/epc_srs.py index e1d9f59..9c4b004 100644 --- a/src/osmo_gsm_tester/obj/epc_srs.py +++ b/src/osmo_gsm_tester/obj/epc_srs.py @@ -27,6 +27,7 @@ def on_register_schemas(): config_schema = { 'enable_pcap': schema.BOOL_STR, + 'log_all_level': schema.STR, } schema.register_config_schema('epc', config_schema) diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 57721ac..04df1ba 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -47,6 +47,7 @@ config_schema = { 'enable_pcap': schema.BOOL_STR, + 'log_all_level': schema.STR, } schema.register_config_schema('modem', config_schema) diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index e0c54a1..b58db53 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -122,7 +122,7 @@ # If set to negative, a single log file will be created. ##################################################################### [log] -all_level = warning +all_level = ${enb.log_all_level} all_hex_limit = 32 filename = ${enb.log_filename} file_max_size = -1 diff --git a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl index a792989..f855127 100644 --- a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl @@ -93,7 +93,7 @@ # to print logs to standard output ##################################################################### [log] -all_level = info +all_level = ${epc.log_all_level} all_hex_limit = 32 filename = ${epc.log_filename} diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl index a600f5e..a9faa75 100644 --- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl @@ -102,7 +102,7 @@ # If set to negative, a single log file will be created. ##################################################################### [log] -all_level = warning +all_level = ${ue.log_all_level} phy_lib_level = none all_hex_limit = 32 filename = ${ue.log_filename} diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index b113545..2c99e04 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -101,6 +101,7 @@ srsepc: enable_pcap: false + log_all_level: warning amarisoft: license_server_addr: 0.0.0.0 @@ -143,6 +144,7 @@ enable_pcap: false tx_gain: 80 rx_gain: 40 + log_all_level: warning amarisoftenb: num_prb: 100 @@ -158,6 +160,7 @@ num_carriers: 1 tx_gain: 80 rx_gain: 40 + log_all_level: warning amarisoftue: tx_gain: 89 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18984 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: I4e77e5351399aefef47a309c82b8805e2c6022c5 Gerrit-Change-Number: 18984 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:17 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:17 +0000 Subject: Change in osmo-gsm-tester[master]: process: provide API to return filename for process output References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 ) Change subject: process: provide API to return filename for process output ...................................................................... process: provide API to return filename for process output this is useful if the caller handles the opening/reading from the file itself Change-Id: I5e70fd1593a5bc7902fa218aae6452103545e4e0 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/85/18985/1 diff --git a/src/osmo_gsm_tester/core/process.py b/src/osmo_gsm_tester/core/process.py index 1823a20..19eafd1 100644 --- a/src/osmo_gsm_tester/core/process.py +++ b/src/osmo_gsm_tester/core/process.py @@ -321,12 +321,18 @@ return self.process_obj is not None and self.result is None def get_output(self, which): + ''' Read process output ''' + path = self.get_output_file(which) + with open(path, 'r') as f2: + return f2.read() + + def get_output_file(self, which): + ''' Return filename for given output ''' v = self.outputs.get(which) if not v: return None path, f = v - with open(path, 'r') as f2: - return f2.read() + return path def get_output_tail(self, which, tail=10, prefix=''): out = self.get_output(which) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 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: I5e70fd1593a5bc7902fa218aae6452103545e4e0 Gerrit-Change-Number: 18985 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:18 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:18 +0000 Subject: Change in osmo-gsm-tester[master]: {ms, enb}_srs: add method to read kpi from a test run References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 ) Change subject: {ms,enb}_srs: add method to read kpi from a test run ...................................................................... {ms,enb}_srs: add method to read kpi from a test run this method uses the kpi_analyzer module for analyzing stdout, CSV metrics and the logfile (if present). if the module can't be loaded, no KPI will be added. Change-Id: I28226a375f9ac4e08424c488062ae6a74a19af92 --- M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py A src/osmo_gsm_tester/obj/srslte_common.py 3 files changed, 48 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/86/18986/1 diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 0bf4f8b..fe1ea4e 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -23,6 +23,7 @@ from ..core import log, util, config, template, process, remote from . import enb from . import rfemu +from .srslte_common import srslte_common from ..core import schema @@ -36,7 +37,7 @@ def rf_type_valid(rf_type_str): return rf_type_str in ('zmq', 'uhd', 'soapy', 'bladerf') -class srsENB(enb.eNodeB): +class srsENB(enb.eNodeB, srslte_common): REMOTE_DIR = '/osmo-gsm-tester-srsenb' BINFILE = 'srsenb' @@ -68,6 +69,7 @@ self.remote_log_file = None self.remote_pcap_file = None self.enable_pcap = False + self.metrics_file = None self.testenv = testenv self._additional_args = [] if not rf_type_valid(conf.get('rf_dev_type', None)): @@ -89,6 +91,9 @@ except Exception as e: self.log(repr(e)) + # Collect KPIs for each TC + self.testenv.test().set_kpis(self.get_kpis()) + def start(self, epc): self.log('Starting srsENB') self._epc = epc diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 04df1ba..e4177ba 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -26,6 +26,7 @@ from .run_node import RunNode from ..core.event_loop import MainLoop from .ms import MS +from .srslte_common import srslte_common def rf_type_valid(rf_type_str): return rf_type_str in ('zmq', 'uhd', 'soapy', 'bladerf') @@ -64,7 +65,7 @@ def num_prb2base_srate(num_prb): return num_prb2symbol_sz(num_prb) * 15 * 1000 -class srsUE(MS): +class srsUE(MS, srslte_common): REMOTE_DIR = '/osmo-gsm-tester-srsue' BINFILE = 'srsue' @@ -120,6 +121,9 @@ except Exception as e: self.log(repr(e)) + # Collect KPIs for each TC + self.testenv.test().set_kpis(self.get_kpis()) + def scp_back_metrics(self, raiseException=True): ''' Copy back metrics only if they have not been copied back yet ''' if not self.have_metrics_file: diff --git a/src/osmo_gsm_tester/obj/srslte_common.py b/src/osmo_gsm_tester/obj/srslte_common.py new file mode 100644 index 0000000..c4087ce --- /dev/null +++ b/src/osmo_gsm_tester/obj/srslte_common.py @@ -0,0 +1,37 @@ +# osmo_gsm_tester: common methods shared among srsLTE components +# +# Copyright (C) 2020 by sysmocom - s.f.m.c. GmbH +# +# Author: Pau Espin Pedrol +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +class srslte_common(): + + def get_kpis(self): + ''' Use the srsLTE KPI analyzer module if available to collect UE KPIs ''' + kpis = {} + try: + from kpi_analyzer import kpi_analyzer + analyzer = kpi_analyzer(self.name()) + if self.log_file is not None: + kpis["log_" + self.name()] = analyzer.get_kpi_from_logfile(self.log_file) + if self.process.get_output_file('stdout') is not None: + kpis["stdout_" + self.name()] = analyzer.get_kpi_from_stdout(self.process.get_output_file('stdout')) + if self.metrics_file is not None: + kpis["csv_" + self.name()] = analyzer.get_kpi_from_csv(self.metrics_file) + except ImportError: + print("Can't load KPI analyzer module.") + + return kpis -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 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: I28226a375f9ac4e08424c488062ae6a74a19af92 Gerrit-Change-Number: 18986 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:18 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:18 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb: update lteenb default parameter for PDCCH, SRS and CQI References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18987 ) Change subject: amarisoft_enb: update lteenb default parameter for PDCCH, SRS and CQI ...................................................................... amarisoft_enb: update lteenb default parameter for PDCCH, SRS and CQI those configs should provide better HO performance, PDDCH format is selected automatically Change-Id: I62a4240ac062d793ae5e197f852ea09eb4fe4ae9 --- M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/87/18987/1 diff --git a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl index c02192c..09532cc 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl @@ -123,7 +123,7 @@ /* If defined, force for number of CCEs for UE specific PDCCH to 2^pdcch_format. Otherwise it is computed from the reported CQI. Range: 0 to 3. */ - pdcch_format: 1, + //pdcch_format: 1, /* if defined, force the PDSCH MCS for all UEs. Otherwise it is computed from the reported CQI */ @@ -152,7 +152,7 @@ sr_period: 20, /* CQI report config */ - cqi_period: 160, /* period (ms). Must be >= 32 for HD-FDD */ + cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */ /* RI reporting is done with a period of m_ri * cqi_period. m_ri = 0 (default) disables RI reporting. */ @@ -186,7 +186,7 @@ parameters. srs_config_index and freq_domain_position are allocated for each UE) */ srs_dedicated: { - srs_period: 80, /* period (ms). Must be >= 40 for HD-FDD */ + srs_period: 160, /* period (ms). Must be >= 40 for HD-FDD */ srs_bandwidth: 1, srs_hopping_bandwidth: 0, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18987 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: I62a4240ac062d793ae5e197f852ea09eb4fe4ae9 Gerrit-Change-Number: 18987 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:18 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:18 +0000 Subject: Change in osmo-gsm-tester[master]: test: append KPI rather than overwrite in set_kpi() method References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18988 ) Change subject: test: append KPI rather than overwrite in set_kpi() method ...................................................................... test: append KPI rather than overwrite in set_kpi() method this allows to call set_kpi() multiple times in one TC Change-Id: I5f68d9e6e1135ee2afa79c9af2ed240d371214c4 --- M src/osmo_gsm_tester/core/test.py 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/88/18988/1 diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py index dfbd169..fd3ac04 100644 --- a/src/osmo_gsm_tester/core/test.py +++ b/src/osmo_gsm_tester/core/test.py @@ -143,7 +143,10 @@ def set_kpis(self, kpis): if not isinstance(kpis, dict): raise log.Error('Expected dictionary in toplevel kpis') - self._kpis = kpis + if isinstance(self._kpis, dict): + self._kpis.update(kpis) + else: + self._kpis = kpis def kpis(self): return self._kpis -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18988 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: I5f68d9e6e1135ee2afa79c9af2ed240d371214c4 Gerrit-Change-Number: 18988 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:41:18 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 23 Jun 2020 14:41:18 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: add default EARFCNs for 4xCA config References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18989 ) Change subject: srsue.conf.tmpl: add default EARFCNs for 4xCA config ...................................................................... srsue.conf.tmpl: add default EARFCNs for 4xCA config Change-Id: I553241735b5e204cb4be03936b90628d156c418c --- M src/osmo_gsm_tester/templates/srsue.conf.tmpl 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/89/18989/1 diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl index a9faa75..f1a5333 100644 --- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl @@ -31,7 +31,9 @@ # Default is auto (yes for UHD, no for rest) ##################################################################### [rf] -% if int(ue.num_carriers) == 2: +% if int(ue.num_carriers) == 4: +dl_earfcn = 2850,3050,3250,3350 +% elif int(ue.num_carriers) == 2: dl_earfcn = 2850,3050 % else: dl_earfcn = 2850 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18989 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: I553241735b5e204cb4be03936b90628d156c418c Gerrit-Change-Number: 18989 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:53:48 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 23 Jun 2020 14:53:48 +0000 Subject: Change in osmo-bsc[master]: vty: check with is_ipaccess_bts() before using IPACC In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 to look at the new patch set (#2). Change subject: vty: check with is_ipaccess_bts() before using IPACC ...................................................................... vty: check with is_ipaccess_bts() before using IPACC The IPACC protocol is an extension to the conventional RSL protocol to negotiate ip address and port for RTP/VoIP. This protocol is BTS specific (sysmobts, ip-access nanobts) and not used with E1 BTSs The bsc VTY is able to trigger certain IPACC functions for debug purposes. Some of those commands do not check if the BTS is really of type IP-access before trying to send an IPACC command. Let's add checks to prevent IPACC messages to be sent to E1 or otherwise incompatible BTSs models. Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Related: OS#2547 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/18971/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Gerrit-Change-Number: 18971 Gerrit-PatchSet: 2 Gerrit-Owner: dexter 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 Tue Jun 23 14:54:24 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 23 Jun 2020 14:54:24 +0000 Subject: Change in osmo-bsc[master]: vty: check with is_ipaccess_bts() before using IPACC In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18971 ) Change subject: vty: check with is_ipaccess_bts() before using IPACC ...................................................................... Patch Set 2: (4 comments) (ensuring all comments to be sent!) https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1//COMMIT_MSG at 10 PS1, Line 10: negotiate ip address and port for RTP/VoIP. This protocol is BTS > to negotiate Done https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1//COMMIT_MSG at 12 PS1, Line 12: all locations in osmo-bts check the bts type before using IPACC, lets > let's Done https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/bsc_vty.c at 5138 PS1, Line 5138: if (is_ipaccess_bts(lchan->ts->trx->bts)) > so afaiu after your patch, if the bts is not an IPA based one, this VTY cmd does nothing. [?] Done https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/lchan_rtp_fsm.c File src/osmo-bsc/lchan_rtp_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/18971/1/src/osmo-bsc/lchan_rtp_fsm.c at 347 PS1, Line 347: if (is_ipaccess_bts(lchan->ts->trx->bts)) { > So if it's not an IPACC, why is it in a "wait_ipacc_mdcx_ack" state in first place? This patch looks [?] I am sorry, I will revert the changes in lchan_rtp_fsm.c. You are right, it makes no sense to check this here. I wrote a message, it was a bit late yesterday. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Gerrit-Change-Number: 18971 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:54:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:55:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 14:55:23 +0000 Subject: Change in osmo-bts[master]: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18968 ) Change subject: bts-trx: Mark 'osmotrx power' VTY cmd as deprecated ...................................................................... bts-trx: Mark 'osmotrx power' VTY cmd as deprecated There's a standarized way through OML's Administrate State to control the status of TRX, so let's use and maintain that one rather than this ad-hoc hack. Related: SYS#4920 Change-Id: Ia7f190063c35e0ed8e2e734047b3aff608cd3ce3 --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index b3214ee..2e52958 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -296,7 +296,7 @@ return CMD_SUCCESS; } -DEFUN(cfg_phyinst_power_on, cfg_phyinst_power_on_cmd, +DEFUN_DEPRECATED(cfg_phyinst_power_on, cfg_phyinst_power_on_cmd, "osmotrx power (on|off)", OSMOTRX_STR "Change TRX state\n" @@ -305,6 +305,10 @@ struct phy_instance *pinst = vty->index; struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + vty_out (vty, "'osmotrx power' is deprecated, use OML's standard " + "Administrative State instead to control each TRX " + "('rf_locked' VTY cmd in osmo-bsc)%s", VTY_NEWLINE); + if (strcmp(argv[0], "on")) vty_out(vty, "OFF: %d%s", trx_if_cmd_poweroff(l1h, NULL), VTY_NEWLINE); else { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia7f190063c35e0ed8e2e734047b3aff608cd3ce3 Gerrit-Change-Number: 18968 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 14:57:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 14:57:22 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h File include/osmocom/mgcp/mgcp_endp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h at 44 PS1, Line 44: #define OSMO_RTP_MSG_CTX(MSGB) (*(struct osmo_rtp_msg_ctx**)&((MSGB)->dst)) > Ack I was going to use a pointer to an externally stored struct, and so using cb[0] didn't work, because assuming that unsigned long is guaranteed the size of a void* is bad, and gcc complains: ../../../../src/osmo-mgw/include/osmocom/mgcp/mgcp_endp.h:44:43: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] #define OSMO_RTP_MSG_CTX(MSGB) (*((struct osmo_rtp_msg_ctx**)&((MSGB)->cb[0]))) But I see your approach uses the cb[] as storage itself. Let's see, hopefully cb[] is large enough to store the entire struct. Adding a static assert to ensure that, and it passes. (Now of course no other msg->cb can be used anymore) Making the struct part of the msgb is indeed nicer. But on another note: are we really ever going to remove the dst pointer from msgb?? https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 1302 PS1, Line 1302: /* Since the msgb remains owned and freed by this function, the msg ctx data struct can just be on the stack and > It may be the case now and I'm ok with it, but in the long term I'd argue it makes more sense to tra [?] agreed, for another patch maybe https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/src/libosmo-mgcp/mgcp_network.c at 1330 PS1, Line 1330: static int rx_rtp(struct msgb *msg) > Move this function on top of rtp_data_net and then you can drop the forward reference of rx_rtp at t [?] the reason to keep it here is to show the diff to the previous code -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 14:57:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin 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 Jun 23 15:06:41 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 15:06:41 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: sorry, but no matter what I do, gcc doesn't like casting cb[]: gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 mgcp_endp.h:44:41: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] #define OSMO_RTP_MSG_CTX(MSGB) ((struct osmo_rtp_msg_ctx*)(void*)((MSGB)->cb)) mgcp_endp.h:44:41: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] #define OSMO_RTP_MSG_CTX(MSGB) ((struct osmo_rtp_msg_ctx*)((MSGB)->cb)) I am wondering how JIBUF_MSGB_CB avoids these warnings? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 15:06:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 15:11:29 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 15:11:29 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: > I am wondering how JIBUF_MSGB_CB avoids these warnings? Like this: struct osmo_jibuf_msgb_cb *jbcb = JIBUF_MSGB_CB(msg); return &jbcb->ts; But surely that warning exists for a reason!? We're just dodging the warning but doing exactly what the warning tells us to avoid. Are you guys sure this is a good idea? I'm more comfortable with using msgb->dst, an actual pointer type, to point at a separate struct. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 15:11: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 Tue Jun 23 15:40:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 15:40:24 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h File include/osmocom/mgcp/mgcp_endp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h at 44 PS1, Line 44: #define OSMO_RTP_MSG_CTX(MSGB) (*(struct osmo_rtp_msg_ctx**)&((MSGB)->dst)) > I was going to use a pointer to an externally stored struct, [?] I think you are ending up in a rabbit hole I already felt in when doing the jitterbuffer stuff. AFAIR the code in there is not putting the struct inside the the cb buffer, it's only storing a pointer to one. Putting a struct inside may end up in strange corruptions due to the buffer not being aligned to the struct size, so better avoid doing that. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 15:40:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels 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 Jun 23 16:29:19 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 16:29:19 +0000 Subject: Change in libosmo-sccp[master]: sccp_simple_client: only restart ASP if it was created References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 ) Change subject: sccp_simple_client: only restart ASP if it was created ...................................................................... sccp_simple_client: only restart ASP if it was created In osmo_sccp_simple_client_on_ss7_id(), only call osmo_ss7_asp_restart() if the ASP was created by that function. If a previously existing ASP was re-used, do not restart it. Background: Recently, osmo-bsc started calling osmo_sccp_simple_client_on_ss7_id() multiple times, once for each configured MSC in an MSC pool. Normally, that ends up re-using the same ASP and SCCP client, so should not change anything. Still, it turns out that the SCTP association was re-launched for every configured MSC, which is obviously not necessary when using the same SCCP connection and SCCP user for multiple MSCs. That happened because osmo_sccp_simple_client_on_ss7_id() calls osmo_ss7_asp_restart() even if a pre-existing ASP is re-used. The rapid restarts also uncovered a problem in osmo-stp, causing it to crash -- that is a separate issue. Independently from an osmo-stp fix, this change should in fact avoid the osmo-stp crash and fix the sporadic massive ttcn3-bsc-test fallout we're seeing since merging the MSC pooling feature to osmo-bsc. Related: OS#4625 Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e --- M src/sccp_user.c 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/90/18990/1 diff --git a/src/sccp_user.c b/src/sccp_user.c index d8a7357..1278fae 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -597,16 +597,16 @@ talloc_free(asp_name); osmo_ss7_as_add_asp(as, asp->cfg.name); + + /* Ensure that the ASP we use is set to client mode. */ + asp->cfg.is_server = false; + asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; + + /* Restart ASP */ + if (prot != OSMO_SS7_ASP_PROT_IPA) + osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); + osmo_ss7_asp_restart(asp); } - - /* Ensure that the ASP we use is set to client mode. */ - asp->cfg.is_server = false; - asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; - - /* Restart ASP */ - if (prot != OSMO_SS7_ASP_PROT_IPA) - osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); - osmo_ss7_asp_restart(asp); LOGP(DLSCCP, LOGL_NOTICE, "%s: Using ASP instance %s\n", name, asp->cfg.name); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e Gerrit-Change-Number: 18990 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 Jun 23 16:37:32 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 16:37:32 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP 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-mgw/+/18913 to look at the new patch set (#2). Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... refactor: use msgb to receive, pass and send RTP packets Instead of numerous arguments (buf, len and context data), use a msgb, like most other osmo programs do, with a msb->cb pointing at a context data struct. This opens the future for adding/stripping IuUP header data from the msgb easily. (Checked to pass current ttcn3-mgw-tests.) Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee --- M include/osmocom/mgcp/mgcp_codec.h M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M tests/mgcp/mgcp_test.c 7 files changed, 233 insertions(+), 216 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/13/18913/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels 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 Tue Jun 23 16:42:27 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 16:42:27 +0000 Subject: Change in libosmo-sccp[master]: sccp_simple_client: only restart ASP if it was created In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 ) Change subject: sccp_simple_client: only restart ASP if it was created ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e Gerrit-Change-Number: 18990 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 16:42: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 Jun 23 17:05:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 17:05:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: Hello laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 to look at the new patch set (#2). Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... bts: Introduce test TC_tx_power_start_ramp_down_bcch Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 --- M bts/BTS_Tests.ttcn 1 file changed, 118 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/80/18980/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 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 Tue Jun 23 17:05:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 23 Jun 2020 17:05:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce TC_tx_power_ramp_adm_state_change References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 ) Change subject: bts: Introduce TC_tx_power_ramp_adm_state_change ...................................................................... bts: Introduce TC_tx_power_ramp_adm_state_change Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da --- M bts/BTS_Tests.ttcn 1 file changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/91/18991/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index c781fdb..08d5795 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -2214,6 +2214,59 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } +/* Verify Tx power: + * + ramping down during ADM state UNLOCKED->LOCKED + * + ramping up during ADM state LOCKED->UNLOCKED + */ +function f_TC_tx_power_ramp_adm_state_change(charstring id) runs on ConnHdlr { + var L1ctlDlMessage l1_dl; + var integer last_rx_lvl; + + f_connhdlr_init_vty_bsc(); + + f_l1_tune(L1CTL); + RSL.clear; + + /* Wait until BTS is started and at full power */ + var integer max_rx_lvl := f_wait_ramp_up(); + log("Reached nominal level ", max_rx_lvl, ", changing ADM state to LOCKED"); + + log("ADM STATE UNLOCKED->LOCKED"); + f_vty_enter_cfg_trx(BSCVTY); + f_vty_transceive(BSCVTY, "rf_locked 1"); + last_rx_lvl := max_rx_lvl; + f_verify_ramp_down(max_rx_lvl); + + /* Let some time after we received 0dBm, then check we don't receive BCCH + *anymore because scheduler has stopped after ramping down */ + f_sleep(2.0); + L1CTL.clear; + timer Tlocked := 2.0; + Tlocked.start; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Received data_ind during rf_locked: ", l1_dl)); + } + [] L1CTL.receive { repeat; } + [] Tlocked.timeout { setverdict(pass, "Didn't receive data_ind while in rf_locked state."); } + } + + log("ADM STATE LOCKED->UNLOCKED"); + f_vty_transceive(BSCVTY, "rf_locked 0"); + f_verify_ramp_up(); +} +testcase TC_tx_power_ramp_adm_state_change() runs on test_CT { + var ConnHdlr vc_conn; + var ConnHdlrPars pars; + f_init(); + pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN)); + vc_conn := f_start_handler(refers(f_TC_tx_power_ramp_adm_state_change), pars, + pcu_comp := false, trxc_comp := true); + vc_conn.done; + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + function f_check_meas_bs_power_level(integer level) runs on ConnHdlr { timer T := 8.0; T.start; @@ -6633,6 +6686,7 @@ execute( TC_meas_res_sign_tchh_toa256() ); execute( TC_tx_power_start_ramp_up_bcch() ); execute( TC_tx_power_start_ramp_down_bcch() ); + execute( TC_tx_power_ramp_adm_state_change() ); execute( TC_rsl_bs_pwr_static_ass() ); execute( TC_rsl_bs_pwr_static_power_control() ); execute( TC_rsl_ms_pwr_ctrl() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da Gerrit-Change-Number: 18991 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 Jun 23 19:54:56 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 19:54:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL: pass lost link event to upper layers instead of failing In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 ) Change subject: library/RSL: pass lost link event to upper layers instead of failing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idd4bdfc99514f4c439837f0ce4a20ec5ff45e86c Gerrit-Change-Number: 18979 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 19:54:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:05:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 20:05:54 +0000 Subject: Change in osmo-ttcn3-hacks[laforge/stp]: stp: Add TC_rapid_init_shutdown() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18992 ) Change subject: stp: Add TC_rapid_init_shutdown() ...................................................................... stp: Add TC_rapid_init_shutdown() Change-Id: I3d37cd80acfaf042b60f1590ee12a0e26d8853b5 Related: OS#4625 --- M stp/STP_Tests_M3UA.ttcn 1 file changed, 36 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/92/18992/1 diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn index f6fa625..106de77 100644 --- a/stp/STP_Tests_M3UA.ttcn +++ b/stp/STP_Tests_M3UA.ttcn @@ -628,7 +628,40 @@ f_clear_m3ua(); } +/* test a rapid sequence of several INIT/SHUTDOWN before sending the first ASPUP. OS#4625 */ +private function f_TC_rapid_init_shutdown() runs on RAW_M3UA_CT { + //f_init_common(); + //activate(as_m3ua_sctp()); + //map(self:M3UA[0], system:M3UA_CODEC_PT); + //f_M3UA_connect(0); + /* close one M3UA connection before ever doing anything on it */ + log("close 1"); + f_M3UA_close(0); + + /* re-open and close again */ + log("open 2"); + f_M3UA_connect(0); + log("close 2"); + f_M3UA_close(0); + + /* third re-open, now we want to send an ASPUP */ + log("open 3"); + f_M3UA_connect(0); + log("asp_up"); + f_M3UA_asp_up(0); + log("end"); +} + +testcase TC_rapid_init_shutdown() runs on RAW_M3UA_CT { + log("init"); + f_init_m3ua(); + + var integer i; + for (i := 0; i < 1; i := i + 1) { + f_TC_rapid_init_shutdown(); + } +} control { /* M3UA Tests */ @@ -664,6 +697,9 @@ /* put this one last as it changes the stp side config */ execute( TC_clnt_asp_act_tmt_loadshare() ); + + /* put this one last as it may crash (older versions of) OsmoSTP */ + execute( TC_rapid_init_shutdown() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: laforge/stp Gerrit-Change-Id: I3d37cd80acfaf042b60f1590ee12a0e26d8853b5 Gerrit-Change-Number: 18992 Gerrit-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 Jun 23 20:06:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 20:06:17 +0000 Subject: Change in osmo-ttcn3-hacks[laforge/stp]: stp: Add TC_rapid_init_shutdown() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18992 ) Change subject: stp: Add TC_rapid_init_shutdown() ...................................................................... stp: Add TC_rapid_init_shutdown() Change-Id: I3d37cd80acfaf042b60f1590ee12a0e26d8853b5 Related: OS#4625 --- M stp/STP_Tests_M3UA.ttcn 1 file changed, 36 insertions(+), 0 deletions(-) diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn index f6fa625..106de77 100644 --- a/stp/STP_Tests_M3UA.ttcn +++ b/stp/STP_Tests_M3UA.ttcn @@ -628,7 +628,40 @@ f_clear_m3ua(); } +/* test a rapid sequence of several INIT/SHUTDOWN before sending the first ASPUP. OS#4625 */ +private function f_TC_rapid_init_shutdown() runs on RAW_M3UA_CT { + //f_init_common(); + //activate(as_m3ua_sctp()); + //map(self:M3UA[0], system:M3UA_CODEC_PT); + //f_M3UA_connect(0); + /* close one M3UA connection before ever doing anything on it */ + log("close 1"); + f_M3UA_close(0); + + /* re-open and close again */ + log("open 2"); + f_M3UA_connect(0); + log("close 2"); + f_M3UA_close(0); + + /* third re-open, now we want to send an ASPUP */ + log("open 3"); + f_M3UA_connect(0); + log("asp_up"); + f_M3UA_asp_up(0); + log("end"); +} + +testcase TC_rapid_init_shutdown() runs on RAW_M3UA_CT { + log("init"); + f_init_m3ua(); + + var integer i; + for (i := 0; i < 1; i := i + 1) { + f_TC_rapid_init_shutdown(); + } +} control { /* M3UA Tests */ @@ -664,6 +697,9 @@ /* put this one last as it changes the stp side config */ execute( TC_clnt_asp_act_tmt_loadshare() ); + + /* put this one last as it may crash (older versions of) OsmoSTP */ + execute( TC_rapid_init_shutdown() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: laforge/stp Gerrit-Change-Id: I3d37cd80acfaf042b60f1590ee12a0e26d8853b5 Gerrit-Change-Number: 18992 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:07:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 20:07:52 +0000 Subject: Change in osmo-msc[master]: osmo-msc.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18960 ) Change subject: osmo-msc.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I00c3152b774a826230a112eae93b0e7c4d4f4c7a Gerrit-Change-Number: 18960 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 23 Jun 2020 20:07: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 Jun 23 20:07:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 20:07:56 +0000 Subject: Change in osmo-msc[master]: osmo-msc.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18960 ) Change subject: osmo-msc.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-msc.spec.in: Use %config(noreplace) to retain current config file Change-Id: I00c3152b774a826230a112eae93b0e7c4d4f4c7a --- M contrib/osmo-msc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index da6c0ba..c968d3e 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -114,6 +114,6 @@ %{_bindir}/osmo-msc %{_unitdir}/%{name}.service %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-msc.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-msc.cfg %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I00c3152b774a826230a112eae93b0e7c4d4f4c7a Gerrit-Change-Number: 18960 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 Jun 23 20:08:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 20:08:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 ) Change subject: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I501108bc6c19b17d3fc680211c7290a31770a159 Gerrit-Change-Number: 18945 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 20:08:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:08:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 20:08:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 ) Change subject: bsc: Add CommonID Test: Send CommonID from MSC and check it is processed ...................................................................... bsc: Add CommonID Test: Send CommonID from MSC and check it is processed Related: OS#2969 Change-Id: I501108bc6c19b17d3fc680211c7290a31770a159 --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/BSSMAP_Templates.ttcn 3 files changed, 60 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/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 84f8eaf..9cb15f2 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2777,6 +2777,33 @@ vc_conn.done; } +/* Send a CommonID from the simulated MSC and verify that the information is used to + * fill BSC-internal data structures (specifically, bsc_subscr associated with subscr_conn) */ +private function f_tc_common_id(charstring id) runs on MSC_ConnHdlr { + g_pars := f_gen_test_hdlr_pars(); + f_MscConnHdlr_init_vty(); + + f_create_chan_and_exp(); + /* we should now have a COMPL_L3 at the MSC */ + BSSAP.receive(tr_BSSMAP_ComplL3); + + /* Send CommonID */ + BSSAP.send(ts_BSSMAP_CommonId(g_pars.imsi)); + + /* Use VTY to verify that the IMSI of the subscr_conn is set */ + var charstring regex := "*(IMSI: " & hex2str(g_pars.imsi) & ")*"; + f_vty_transceive_match_regexp_retry(BSCVTY, "show conns", regex, 0, 4, 1.0); + + setverdict(pass); +} +testcase TC_common_id() runs on test_CT { + var MSC_ConnHdlr vc_conn; + f_init(1, true); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_tc_common_id)); + vc_conn.done; +} + private function f_est_single_l3(template PDU_ML3_MS_NW l3) runs on MSC_ConnHdlr { g_pars := f_gen_test_hdlr_pars(); f_create_chan_and_exp(); @@ -5206,6 +5233,7 @@ execute( TC_oml_unknown_unit_id() ); execute( TC_classmark() ); + execute( TC_common_id() ); execute( TC_unsol_ass_fail() ); execute( TC_unsol_ass_compl() ); execute( TC_unsol_ho_fail() ); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 0d4c81b..7d8fce1 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -431,9 +431,7 @@ var boolean g_vty_initialized := false; } -/* initialize all parameters */ -function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) runs on MSC_ConnHdlr { - f_MediaState_init(g_media, i, bts, mgw, codecType); +function f_MscConnHdlr_init_vty() runs on MSC_ConnHdlr { if (not g_vty_initialized) { map(self:BSCVTY, system:BSCVTY); f_vty_set_prompts(BSCVTY); @@ -442,6 +440,12 @@ } } +/* initialize all parameters */ +function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) runs on MSC_ConnHdlr { + f_MediaState_init(g_media, i, bts, mgw, codecType); + f_MscConnHdlr_init_vty(); +} + private function get_next_trans_id() runs on MSC_ConnHdlr return MgcpTransId { var MgcpTransId tid := int2str(g_trans_id); g_trans_id := g_trans_id + 1; diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 406dfc5..776e8be 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1599,6 +1599,31 @@ } } +template PDU_BSSAP ts_BSSMAP_CommonId(hexstring imsi_digits) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + commonID := { + messageType := '2F'O, + iMSI := ts_BSSMAP_Imsi(imsi_digits), + sNAAccessInformation := omit + } + } + } +} + +template PDU_BSSAP tr_BSSMAP_CommonId(template hexstring imsi_digits) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + commonID := { + messageType := '2F'O, + iMSI := tr_BSSMAP_Imsi(imsi_digits), + sNAAccessInformation := * + } + } + } +} -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I501108bc6c19b17d3fc680211c7290a31770a159 Gerrit-Change-Number: 18945 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 Jun 23 20:09:57 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 20:09:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 20:09: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 Jun 23 20:10:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 23 Jun 2020 20:10:11 +0000 Subject: Change in libosmo-sccp[master]: sccp_simple_client: only restart ASP if it was created In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 ) Change subject: sccp_simple_client: only restart ASP if it was created ...................................................................... Patch Set 1: Code-Review+1 I think pmaier has to have the final say here, as he wrote the code that unconditionally restarts the asp - maybe there was some use case we didn't think of so far. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e Gerrit-Change-Number: 18990 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 20:10:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:14:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 20:14:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce TC_tx_power_ramp_adm_state_change In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 ) Change subject: bts: Introduce TC_tx_power_ramp_adm_state_change ...................................................................... Patch Set 1: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991/1/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991/1/bts/BTS_Tests.ttcn at 2219 PS1, Line 2219: * + ramping up during ADM state LOCKED->UNLOCKED (the '+' are bullet points?) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991/1/bts/BTS_Tests.ttcn at 2241 PS1, Line 2241: *anymore because scheduler has stopped after ramping down */ (space after *) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991/1/bts/BTS_Tests.ttcn at 2257 PS1, Line 2257: f_verify_ramp_up(); seems that setverdict(pass) is missing here ... I'd actually expect an f_verify_* function to include a setverdict(pass) (and fail) but looks like it doesn't -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da Gerrit-Change-Number: 18991 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 20:14:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:21:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 20:21:23 +0000 Subject: Change in osmo-bsc[master]: vty: check with is_ipaccess_bts() before using IPACC In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18971 ) Change subject: vty: check with is_ipaccess_bts() before using IPACC ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Gerrit-Change-Number: 18971 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 20:21:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:26:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 20:26:02 +0000 Subject: Change in osmo-bts[master]: tx_power: Support controlling BTS with nominal tx pwr < 0dBm In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18916 ) Change subject: tx_power: Support controlling BTS with nominal tx pwr < 0dBm ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18916/3/src/common/tx_power.c File src/common/tx_power.c: https://gerrit.osmocom.org/c/osmo-bts/+/18916/3/src/common/tx_power.c at 200 PS3, Line 200: "output power. However, it should be %d mdBm!\n", separate fix? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 Gerrit-Change-Number: 18916 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 20:26:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:28:08 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 20:28:08 +0000 Subject: Change in osmo-bsc[master]: vty: check with is_ipaccess_bts() before using IPACC In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18971 ) Change subject: vty: check with is_ipaccess_bts() before using IPACC ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9ee78b6b1d342abaccc09a87dee6af79e76e5468 Gerrit-Change-Number: 18971 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 20: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 Tue Jun 23 20:35:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 20:35:07 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 405 PS2, Line 405: n = 4; shift = n; (style wise i'd either put each in a separate line or do shift = n = 4) https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 421 PS2, Line 421: for (i = 0; i < n; i++) { how are you sure that all n slots of the ring buffer have actually been populated by values? https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 432 PS2, Line 432: .rssi = (rssi_sum / n), (wondering whether this should rather round() than this trunc()) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 20:35:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 20:39:00 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 23 Jun 2020 20:39:00 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... Patch Set 6: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchf.c File src/osmo-bts-trx/sched_lchan_tchf.c: https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchf.c at 176 PS6, Line 176: /* FIXME: any spec. references? */ I guess either you have a spec reference or you don't, doesn't help much to have a comment like this, does it https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchf.c at 214 PS6, Line 214: /* average measurements of the last N (depends on mode) bursts */ (unrelated change?) https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchh.c File src/osmo-bts-trx/sched_lchan_tchh.c: https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchh.c at 231 PS6, Line 231: /* average measurements of the last N (depends on mode) bursts */ (unrelated change?) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 20:39: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 Tue Jun 23 20:55:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 20:55:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... Patch Set 2: Code-Review+1 (5 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn at 380 PS2, Line 380: f_connhdlr_init_vty_bsc Hmm, a separate VTY connection for ConnHdlr is the easiest way, but maybe you can just re-map the port somehow, like we do for the TRXC port? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn at 2037 PS2, Line 2037: function Please make it private, here or in a separate change. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn at 2062 PS2, Line 2062: f_verify_ramp_up Same here, it should be private. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn at 2124 PS2, Line 2124: function private https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn at 2191 PS2, Line 2191: function private -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 20:55:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 21:02:36 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 21:02:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce TC_tx_power_ramp_adm_state_change In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 ) Change subject: bts: Introduce TC_tx_power_ramp_adm_state_change ...................................................................... Patch Set 1: Code-Review+1 Similar notes here, please mark local functions as 'private'. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da Gerrit-Change-Number: 18991 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 23 Jun 2020 21:02:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 21:24:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 21:24:23 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/include/osmo-bts/scheduler.h File include/osmo-bts/scheduler.h: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/include/osmo-bts/scheduler.h at 132 PS2, Line 132: unsigned int idx; > Well, it's a part of the ring buffer. I can move it upwards before the 'struct'. Done https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 377 PS2, Line 377: unsigned int current = chan_state->meas.idx; > Well, it's not really 'next', rather 'current'. I can rename it. Done https://gerrit.osmocom.org/c/osmo-bts/+/18973/2/src/osmo-bts-trx/scheduler_trx.c at 421 PS2, Line 421: for (i = 0; i < n; i++) { > how are you sure that all n slots of the ring buffer have actually been populated by values? I was thinking about this. We could add a boolean flag 'valid' to 'l1sched_meas_set', but I don't think it's worth it. Since we have NOPE indications, there should always be measurements in the buffer. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 21:24:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 21:29:44 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 21:29:44 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... Patch Set 6: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchf.c File src/osmo-bts-trx/sched_lchan_tchf.c: https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchf.c at 176 PS6, Line 176: /* FIXME: any spec. references? */ > I guess either you have a spec reference or you don't, doesn't help much to have a comment like this [?] Well, I assume dexter took this information from somewhere. It's not just random numbers from head, right? https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchf.c at 214 PS6, Line 214: /* average measurements of the last N (depends on mode) bursts */ > (unrelated change?) Done https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchh.c File src/osmo-bts-trx/sched_lchan_tchh.c: https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/sched_lchan_tchh.c at 231 PS6, Line 231: /* average measurements of the last N (depends on mode) bursts */ > (unrelated change?) Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 21:29:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 21:37:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 21:37:01 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: Hello dexter, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 to look at the new patch set (#3). Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... osmo-bts-trx/scheduler: refactor UL burst measurement processing Currently the UL measurements (RSSI, ToA256, C/I) of the burst that concludes a block are passed up to the higher layers. This means that the measurement values of the other bursts are skipped. Let's keep record of all UL measurements and average the values before we pass them up to the higher layers. Use a simple ring buffer to store the measurement history (up to 8 unique entries for now). Remove *_num/*_sum variables from l1sched_chan_state. Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Related: OS#3032, OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_pdtch.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_lchan_xcch.c M src/osmo-bts-trx/scheduler_trx.c 6 files changed, 149 insertions(+), 86 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/18973/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 21:37:01 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 21:37:01 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#7) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... osmo-bts-trx/scheduler: fix measurement handling for SUB frames Make sure that we pick the correct UL measurements from the history when we deal with AMR SID frames (SUB frames). Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Related: OS#2978 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/scheduler_trx.c 4 files changed, 45 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/18035/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 23 21:38:10 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 23 Jun 2020 21:38:10 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18035/6/src/osmo-bts-trx/scheduler_trx.c at 419 PS6, Line 419: /* lower 2 of last 6 bursts */ > It's not really clear what do you mean with "lower" here. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 23 Jun 2020 21:38:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 00:40:34 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 00:40:34 +0000 Subject: Change in osmo-bsc[master]: fix segfault introduced by recent segfault fix References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18993 ) Change subject: fix segfault introduced by recent segfault fix ...................................................................... fix segfault introduced by recent segfault fix This recently merged patch introduced a new bad segfault by dereferencing conn->sccp.msc before it was set to the actual msc pointer: commit 6281d4f8692729dc0022ea7a6a2068972d58e9b6 "fix crashes due to OSMO_ASSERT(conn->lchan)" Change-Id Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Fix that by moving the new checks back further down, to where conn->sccp.msc actually points at the msc. Change-Id: Ic5832da7c58fce583caa504a90f18c334fc234f2 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 12 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/93/18993/1 diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index e288506..2829b67 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -480,15 +480,8 @@ struct msgb *resp; struct gsm0808_speech_codec_list scl; int rc = -2; - struct gsm_bts *bts = conn_get_bts(conn); - struct osmo_cell_global_id *cgi = cgi_for_msc(conn->sccp.msc, bts); - - if (!bts || !cgi) { - /* should never happen */ - LOGP(DMSC, LOGL_ERROR, "Compl L3 without lchan\n"); - rc = -1; - goto early_fail; - } + struct gsm_bts *bts; + struct osmo_cell_global_id *cgi; log_set_context(LOG_CTX_BSC_SUBSCR, conn->bsub); @@ -506,6 +499,16 @@ if (osmo_bsc_sigtran_new_conn(conn, msc) != BSC_CON_SUCCESS) goto early_fail; + bts = conn_get_bts(conn); + cgi = cgi_for_msc(conn->sccp.msc, bts); + + if (!bts || !cgi) { + /* should never happen */ + LOGP(DMSC, LOGL_ERROR, "Compl L3 without lchan\n"); + rc = -1; + goto early_fail; + } + bsc_scan_bts_msg(conn, msg); if (gscon_is_aoip(conn)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic5832da7c58fce583caa504a90f18c334fc234f2 Gerrit-Change-Number: 18993 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 Jun 24 00:41:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 00:41:43 +0000 Subject: Change in osmo-bsc[master]: fix segfault introduced by recent segfault fix In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/18993 ) Change subject: fix segfault introduced by recent segfault fix ...................................................................... fix segfault introduced by recent segfault fix This recently merged patch introduced a new bad segfault in bsc_compl_l3() by dereferencing conn->sccp.msc before it was set to the actual msc pointer: commit 6281d4f8692729dc0022ea7a6a2068972d58e9b6 "fix crashes due to OSMO_ASSERT(conn->lchan)" Change-Id Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Fix that by moving the new checks back further down in bsc_compl_l3(), to where conn->sccp.msc actually points at the msc. Change-Id: Ic5832da7c58fce583caa504a90f18c334fc234f2 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 12 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/93/18993/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic5832da7c58fce583caa504a90f18c334fc234f2 Gerrit-Change-Number: 18993 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 Wed Jun 24 00:42:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 00:42:10 +0000 Subject: Change in osmo-bsc[master]: fix segfault introduced by recent segfault fix In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18993 ) Change subject: fix segfault introduced by recent segfault fix ...................................................................... Patch Set 2: Code-Review+2 fast tracking: fix fatal regression -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic5832da7c58fce583caa504a90f18c334fc234f2 Gerrit-Change-Number: 18993 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 24 Jun 2020 00: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 Jun 24 00:50:06 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 00:50:06 +0000 Subject: Change in osmo-bsc[master]: fix segfault introduced by recent segfault fix In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18993 ) Change subject: fix segfault introduced by recent segfault fix ...................................................................... fix segfault introduced by recent segfault fix This recently merged patch introduced a new bad segfault in bsc_compl_l3() by dereferencing conn->sccp.msc before it was set to the actual msc pointer: commit 6281d4f8692729dc0022ea7a6a2068972d58e9b6 "fix crashes due to OSMO_ASSERT(conn->lchan)" Change-Id Id681dfb0ad654bdb4b71805d1ad4f39a8bf6bbd1 Fix that by moving the new checks back further down in bsc_compl_l3(), to where conn->sccp.msc actually points at the msc. Change-Id: Ic5832da7c58fce583caa504a90f18c334fc234f2 --- M src/osmo-bsc/gsm_08_08.c 1 file changed, 12 insertions(+), 9 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c index e288506..2829b67 100644 --- a/src/osmo-bsc/gsm_08_08.c +++ b/src/osmo-bsc/gsm_08_08.c @@ -480,15 +480,8 @@ struct msgb *resp; struct gsm0808_speech_codec_list scl; int rc = -2; - struct gsm_bts *bts = conn_get_bts(conn); - struct osmo_cell_global_id *cgi = cgi_for_msc(conn->sccp.msc, bts); - - if (!bts || !cgi) { - /* should never happen */ - LOGP(DMSC, LOGL_ERROR, "Compl L3 without lchan\n"); - rc = -1; - goto early_fail; - } + struct gsm_bts *bts; + struct osmo_cell_global_id *cgi; log_set_context(LOG_CTX_BSC_SUBSCR, conn->bsub); @@ -506,6 +499,16 @@ if (osmo_bsc_sigtran_new_conn(conn, msc) != BSC_CON_SUCCESS) goto early_fail; + bts = conn_get_bts(conn); + cgi = cgi_for_msc(conn->sccp.msc, bts); + + if (!bts || !cgi) { + /* should never happen */ + LOGP(DMSC, LOGL_ERROR, "Compl L3 without lchan\n"); + rc = -1; + goto early_fail; + } + bsc_scan_bts_msg(conn, msg); if (gscon_is_aoip(conn)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic5832da7c58fce583caa504a90f18c334fc234f2 Gerrit-Change-Number: 18993 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 Wed Jun 24 05:24:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:24:52 +0000 Subject: Change in osmo-sgsn[master]: *.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18962 ) Change subject: *.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4e7f0a44d5e2d132b24ca0f38dc6f520b59112da Gerrit-Change-Number: 18962 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05:24:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 05:24:55 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:24:55 +0000 Subject: Change in osmo-sgsn[master]: *.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/18962 ) Change subject: *.spec.in: Use %config(noreplace) to retain current config file ...................................................................... *.spec.in: Use %config(noreplace) to retain current config file Change-Id: I4e7f0a44d5e2d132b24ca0f38dc6f520b59112da --- M contrib/osmo-sgsn.spec.in 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/osmo-sgsn.spec.in b/contrib/osmo-sgsn.spec.in index f9fe208..d6a8078 100644 --- a/contrib/osmo-sgsn.spec.in +++ b/contrib/osmo-sgsn.spec.in @@ -115,7 +115,7 @@ %{_docdir}/%{name}/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg %{_bindir}/osmo-sgsn %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-sgsn.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-sgsn.cfg %{_unitdir}/%{name}.service %files -n osmo-gtphub @@ -125,7 +125,7 @@ %{_docdir}/%{name}/examples/osmo-gtphub/osmo-gtphub.cfg %{_bindir}/osmo-gtphub %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-gtphub.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-gtphub.cfg %{_unitdir}/osmo-gtphub.service %files -n osmo-gbproxy @@ -135,7 +135,7 @@ %{_docdir}/%{name}/examples/osmo-gbproxy/osmo-gbproxy.cfg %{_bindir}/osmo-gbproxy %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-gbproxy.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-gbproxy.cfg %{_unitdir}/osmo-gbproxy.service %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/18962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I4e7f0a44d5e2d132b24ca0f38dc6f520b59112da Gerrit-Change-Number: 18962 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 Jun 24 05:25:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:25:06 +0000 Subject: Change in osmo-remsim[master]: *.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/18963 ) Change subject: *.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/18963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I4bf84faef873ef18797d08bbf789ae260922a1e2 Gerrit-Change-Number: 18963 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05:25:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 05:25:09 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:25:09 +0000 Subject: Change in osmo-remsim[master]: *.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/18963 ) Change subject: *.spec.in: Use %config(noreplace) to retain current config file ...................................................................... *.spec.in: Use %config(noreplace) to retain current config file Change-Id: I4bf84faef873ef18797d08bbf789ae260922a1e2 --- M contrib/osmo-remsim.spec.in 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/osmo-remsim.spec.in b/contrib/osmo-remsim.spec.in index 4ff26bc..e11e93f 100644 --- a/contrib/osmo-remsim.spec.in +++ b/contrib/osmo-remsim.spec.in @@ -193,7 +193,7 @@ %files -n osmo-remsim-bankd %{_bindir}/osmo-remsim-bankd %{_unitdir}/osmo-remsim-bankd.service -%config %{_sysconfdir}/default/osmo-remsim-bankd +%config(noreplace) %{_sysconfdir}/default/osmo-remsim-bankd %files -n osmo-remsim-client-shell %{_bindir}/osmo-remsim-client-shell @@ -201,7 +201,7 @@ %files -n osmo-remsim-client-st2 %{_bindir}/osmo-remsim-client-st2 %{_unitdir}/osmo-remsim-client* -%config %{_sysconfdir}/default/osmo-remsim-client* +%config(noreplace) %{_sysconfdir}/default/osmo-remsim-client* %files -n libifd-osmo-remsim-client0 %if 0%{?centos_ver} @@ -211,6 +211,6 @@ %dir %{_libdir}/readers/libifd-osmo-remsim-client.bundle %{_libdir}/readers/libifd-osmo-remsim-client.bundle/* %endif -%config %{_sysconfdir}/reader.conf.d/osmo-remsim-client-reader_conf +%config(noreplace) %{_sysconfdir}/reader.conf.d/osmo-remsim-client-reader_conf %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/18963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I4bf84faef873ef18797d08bbf789ae260922a1e2 Gerrit-Change-Number: 18963 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 Jun 24 05:25:18 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:25:18 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18957 ) Change subject: osmo-trx.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia6a279e4e19eee8368219e3bc1b011802b1fcadc Gerrit-Change-Number: 18957 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05:25: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 Jun 24 05:25:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:25:34 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18957 ) Change subject: osmo-trx.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-trx.spec.in: Use %config(noreplace) to retain current config file Change-Id: Ia6a279e4e19eee8368219e3bc1b011802b1fcadc --- M contrib/osmo-trx.spec.in 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/osmo-trx.spec.in b/contrib/osmo-trx.spec.in index fa46b74..aebd355 100644 --- a/contrib/osmo-trx.spec.in +++ b/contrib/osmo-trx.spec.in @@ -185,14 +185,14 @@ %files lms %{_bindir}/osmo-trx-lms %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-trx-lms.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-lms.cfg %{_unitdir}/osmo-trx-lms.service %endif %files uhd %{_bindir}/osmo-trx-uhd %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-trx-uhd.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-uhd.cfg %{_unitdir}/osmo-trx-uhd.service %if ! 0%{?centos_ver} -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia6a279e4e19eee8368219e3bc1b011802b1fcadc Gerrit-Change-Number: 18957 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 Jun 24 05:25:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:25:39 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18958 ) Change subject: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icba90f52c40860262de9a4d5aebd418ddafde8d8 Gerrit-Change-Number: 18958 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05: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 Wed Jun 24 05:25:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:25:52 +0000 Subject: Change in osmo-bsc[master]: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment chang... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18938 ) Change subject: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment changemark ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73d9bd3cddc561f3a7af8bcc225fac126dca3f78 Gerrit-Change-Number: 18938 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 24 Jun 2020 05:25:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 05:25:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:25:58 +0000 Subject: Change in osmo-bsc[master]: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment chang... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18938 ) Change subject: vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment changemark ...................................................................... vty/bts_resend_cmd: Use gsm_bts_set_system_infos() to increment changemark We assume the SI shall be re-sent because something has changed. This means that change_mark should be incremented. Let's call gsm_bts_set_system_infos() which already does the trick. Change-Id: I73d9bd3cddc561f3a7af8bcc225fac126dca3f78 Closes: OS#3679 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 2941e5b..f46a84c 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4764,7 +4764,6 @@ "Re-generate + re-send BCCH SYSTEM INFORMATION\n") { struct gsm_network *gsmnet; - struct gsm_bts_trx *trx; struct gsm_bts *bts; unsigned int bts_nr; @@ -4783,8 +4782,7 @@ return CMD_WARNING; } - llist_for_each_entry_reverse(trx, &bts->trx_list, list) - gsm_bts_trx_set_system_infos(trx); + gsm_bts_set_system_infos(bts); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73d9bd3cddc561f3a7af8bcc225fac126dca3f78 Gerrit-Change-Number: 18938 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 05:26:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:26:39 +0000 Subject: Change in libosmo-sccp[master]: libosmo-sccp.spec.in: Use %config(noreplace) to retain current config... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18961 ) Change subject: libosmo-sccp.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ife551573160f9545875eecc2a5bfe8f994249814 Gerrit-Change-Number: 18961 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05: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 Wed Jun 24 05:26:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:26:43 +0000 Subject: Change in libosmo-sccp[master]: libosmo-sccp.spec.in: Use %config(noreplace) to retain current config... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18961 ) Change subject: libosmo-sccp.spec.in: Use %config(noreplace) to retain current config file ...................................................................... libosmo-sccp.spec.in: Use %config(noreplace) to retain current config file Change-Id: Ife551573160f9545875eecc2a5bfe8f994249814 --- M contrib/libosmo-sccp.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/libosmo-sccp.spec.in b/contrib/libosmo-sccp.spec.in index b195b1f..d393318 100644 --- a/contrib/libosmo-sccp.spec.in +++ b/contrib/libosmo-sccp.spec.in @@ -177,7 +177,7 @@ %files -n osmo-stp %{_bindir}/osmo-stp %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-stp.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-stp.cfg %{_unitdir}/osmo-stp.service %dir %{_docdir}/%{name} %dir %{_docdir}/%{name}/examples -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ife551573160f9545875eecc2a5bfe8f994249814 Gerrit-Change-Number: 18961 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 Jun 24 05:26:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:26:47 +0000 Subject: Change in osmo-bts[master]: osmo-bts.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18956 ) Change subject: osmo-bts.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d92cfddaa5bbfa33e36f37b48033b468c7d72cf Gerrit-Change-Number: 18956 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05: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 Wed Jun 24 05:26:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:26:50 +0000 Subject: Change in osmo-bts[master]: osmo-bts.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18956 ) Change subject: osmo-bts.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-bts.spec.in: Use %config(noreplace) to retain current config file Change-Id: I8d92cfddaa5bbfa33e36f37b48033b468c7d72cf --- M contrib/osmo-bts.spec.in 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/osmo-bts.spec.in b/contrib/osmo-bts.spec.in index 66213ff..1b7a9e5 100644 --- a/contrib/osmo-bts.spec.in +++ b/contrib/osmo-bts.spec.in @@ -102,13 +102,13 @@ %{_docdir}/%{name}/examples/osmo-bts-virtual/osmo-bts-virtual.cfg %{_bindir}/osmo-bts-trx %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-bts-trx.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-bts-trx.cfg %{_unitdir}/osmo-bts-trx.service %files -n osmo-bts-virtual %{_bindir}/osmo-bts-virtual %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-bts-virtual.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-bts-virtual.cfg %{_unitdir}/osmo-bts-virtual.service %files -n osmo-bts-omldummy -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d92cfddaa5bbfa33e36f37b48033b468c7d72cf Gerrit-Change-Number: 18956 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 Jun 24 05:27:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:27:00 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18959 ) Change subject: osmo-mgw.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I37c130d9715a6826cc338f77edcd3cbec762fffd Gerrit-Change-Number: 18959 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05:27: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 Jun 24 05:27:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:27:07 +0000 Subject: Change in osmo-mgw[master]: osmo-mgw.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18959 ) Change subject: osmo-mgw.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-mgw.spec.in: Use %config(noreplace) to retain current config file Change-Id: I37c130d9715a6826cc338f77edcd3cbec762fffd --- M contrib/osmo-mgw.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/osmo-mgw.spec.in b/contrib/osmo-mgw.spec.in index 09d5a09..d24417e 100644 --- a/contrib/osmo-mgw.spec.in +++ b/contrib/osmo-mgw.spec.in @@ -114,7 +114,7 @@ %{_bindir}/osmo-mgw %{_unitdir}/osmo-mgw.service %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-mgw.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-mgw.cfg %files -n libosmo-mgcp-client6 %{_libdir}/libosmo-mgcp-client.so.6* -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I37c130d9715a6826cc338f77edcd3cbec762fffd Gerrit-Change-Number: 18959 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 Jun 24 05:27:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:27:17 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18958 ) Change subject: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icba90f52c40860262de9a4d5aebd418ddafde8d8 Gerrit-Change-Number: 18958 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 24 Jun 2020 05: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 Jun 24 05:27:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 05:27:20 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18958 ) Change subject: osmo-bsc.spec.in: Use %config(noreplace) to retain current config file ...................................................................... osmo-bsc.spec.in: Use %config(noreplace) to retain current config file Change-Id: Icba90f52c40860262de9a4d5aebd418ddafde8d8 --- M contrib/osmo-bsc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/osmo-bsc.spec.in b/contrib/osmo-bsc.spec.in index 20367a0..1d44940 100644 --- a/contrib/osmo-bsc.spec.in +++ b/contrib/osmo-bsc.spec.in @@ -125,7 +125,7 @@ %{_docdir}/%{name}/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg %{_docdir}/%{name}/examples/osmo-bsc/osmo-bsc-minimal.cfg %dir %{_sysconfdir}/osmocom -%config %{_sysconfdir}/osmocom/osmo-bsc.cfg +%config(noreplace) %{_sysconfdir}/osmocom/osmo-bsc.cfg %{_unitdir}/%{name}.service %files abisip-find -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icba90f52c40860262de9a4d5aebd418ddafde8d8 Gerrit-Change-Number: 18958 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 Jun 24 09:50:26 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 24 Jun 2020 09:50:26 +0000 Subject: Change in osmo-bsc[master]: lchan_rtp_fsm: fix out_state_mask References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18994 ) Change subject: lchan_rtp_fsm: fix out_state_mask ...................................................................... lchan_rtp_fsm: fix out_state_mask In the state LCHAN_RTP_ST_WAIT_MGW_ENDPOINT_CONFIGURED, the event LCHAN_RTP_EV_ROLLBACK is allowed and also handled in the action callback, which causes a change to LCHAN_RTP_ST_ROLLBACK. However, LCHAN_RTP_ST_ROLLBACK is missing from the out_state_mask. Change-Id: Ifca3892901c8389beee6e4f0fea03c33cfbdc265 --- M src/osmo-bsc/lchan_rtp_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/94/18994/1 diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c index 25aca14..4be9790 100644 --- a/src/osmo-bsc/lchan_rtp_fsm.c +++ b/src/osmo-bsc/lchan_rtp_fsm.c @@ -672,6 +672,7 @@ , .out_state_mask = 0 | S(LCHAN_RTP_ST_READY) + | S(LCHAN_RTP_ST_ROLLBACK) , }, [LCHAN_RTP_ST_READY] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifca3892901c8389beee6e4f0fea03c33cfbdc265 Gerrit-Change-Number: 18994 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 Jun 24 11:12:09 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 24 Jun 2020 11:12:09 +0000 Subject: Change in libosmo-sccp[master]: sccp_simple_client: only restart ASP if it was created In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 ) Change subject: sccp_simple_client: only restart ASP if it was created ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e Gerrit-Change-Number: 18990 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 24 Jun 2020 11:12: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 Jun 24 11:19:02 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 11:19:02 +0000 Subject: Change in libosmo-sccp[master]: sccp_simple_client: only restart ASP if it was created In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 ) Change subject: sccp_simple_client: only restart ASP if it was created ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e Gerrit-Change-Number: 18990 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 24 Jun 2020 11:19:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 11:19:12 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 11:19:12 +0000 Subject: Change in libosmo-sccp[master]: sccp_simple_client: only restart ASP if it was created In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 ) Change subject: sccp_simple_client: only restart ASP if it was created ...................................................................... sccp_simple_client: only restart ASP if it was created In osmo_sccp_simple_client_on_ss7_id(), only call osmo_ss7_asp_restart() if the ASP was created by that function. If a previously existing ASP was re-used, do not restart it. Background: Recently, osmo-bsc started calling osmo_sccp_simple_client_on_ss7_id() multiple times, once for each configured MSC in an MSC pool. Normally, that ends up re-using the same ASP and SCCP client, so should not change anything. Still, it turns out that the SCTP association was re-launched for every configured MSC, which is obviously not necessary when using the same SCCP connection and SCCP user for multiple MSCs. That happened because osmo_sccp_simple_client_on_ss7_id() calls osmo_ss7_asp_restart() even if a pre-existing ASP is re-used. The rapid restarts also uncovered a problem in osmo-stp, causing it to crash -- that is a separate issue. Independently from an osmo-stp fix, this change should in fact avoid the osmo-stp crash and fix the sporadic massive ttcn3-bsc-test fallout we're seeing since merging the MSC pooling feature to osmo-bsc. Related: OS#4625 Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e --- M src/sccp_user.c 1 file changed, 9 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: 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/sccp_user.c b/src/sccp_user.c index d8a7357..1278fae 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -597,16 +597,16 @@ talloc_free(asp_name); osmo_ss7_as_add_asp(as, asp->cfg.name); + + /* Ensure that the ASP we use is set to client mode. */ + asp->cfg.is_server = false; + asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; + + /* Restart ASP */ + if (prot != OSMO_SS7_ASP_PROT_IPA) + osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); + osmo_ss7_asp_restart(asp); } - - /* Ensure that the ASP we use is set to client mode. */ - asp->cfg.is_server = false; - asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; - - /* Restart ASP */ - if (prot != OSMO_SS7_ASP_PROT_IPA) - osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); - osmo_ss7_asp_restart(asp); LOGP(DLSCCP, LOGL_NOTICE, "%s: Using ASP instance %s\n", name, asp->cfg.name); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e Gerrit-Change-Number: 18990 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Assignee: dexter 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 Wed Jun 24 17:22:57 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 17:22:57 +0000 Subject: Change in osmo-msc[master]: add comments to clarify some complete l3 details References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18995 ) Change subject: add comments to clarify some complete l3 details ...................................................................... add comments to clarify some complete l3 details Change-Id: I6e289900d38d97c346d615b71d36656254e6f2b5 --- M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c 2 files changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/95/18995/1 diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index a70c4b9..15303b5 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -1396,7 +1396,9 @@ msub_update_id(msub); } -/* VLR informs us that the subscriber has been associated with a conn */ +/* VLR informs us that the subscriber has been associated with a conn. + * The subscriber has *not* been authenticated yet, so the vsub should be protected from potentially invalid information + * from the msc_a. */ static int msc_vlr_subscr_assoc(void *msc_conn_ref, struct vlr_subscr *vsub) { @@ -1406,6 +1408,10 @@ if (msub_set_vsub(msub, vsub)) return -EINVAL; + + /* FIXME: would be better to modify vsub->* only after the subscriber is authenticated, in + * evaluate_acceptance_outcome(conn_accepted == true). */ + vsub->cs.attached_via_ran = msc_a->c.ran->type; /* In case we have already received Classmark Information before the VLR Subscriber was diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index 3bfc0f8..fd66ad3 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1375,6 +1375,8 @@ switch (msg->msg_type) { case RAN_MSG_COMPL_L3: + /* In case the cell_id from Complete Layer 3 Information lacks a PLMN, write the configured PLMN code + * into msc_a->via_cell. Then overwrite with those bits obtained from Complete Layer 3 Information. */ msc_a->via_cell = (struct osmo_cell_global_id){ .lai.plmn = msc_a_net(msc_a)->plmn, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6e289900d38d97c346d615b71d36656254e6f2b5 Gerrit-Change-Number: 18995 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 Jun 24 17:22:58 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 17:22:58 +0000 Subject: Change in osmo-msc[master]: vty 'show connection': show msc_a->via_cell instead of vsub->cgi References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18996 ) Change subject: vty 'show connection': show msc_a->via_cell instead of vsub->cgi ...................................................................... vty 'show connection': show msc_a->via_cell instead of vsub->cgi For 'show subscriber cache', we print vsub->cgi. For 'show connection', it makes more sense to print msc_a->via_cell. This is tested by osmo-ttcn3-hacks Ie410714a96353f74a52a104c56fa0a08683e0004. Related: OS#4627 Change-Id: I194271af2acb37b4f8cc2d106ab2fd2b0d443589 --- M src/libmsc/msc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/96/18996/1 diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 29deb5e..c5e93aa 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -911,7 +911,7 @@ if (vsub) { MSC_VTY_DUMP(vty, offset, "LAC / cell ID: %u / %u%s", - vsub->cgi.lai.lac, vsub->cgi.cell_identity, + msc_a->via_cell.lai.lac, msc_a->via_cell.cell_identity, VTY_NEWLINE); } -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I194271af2acb37b4f8cc2d106ab2fd2b0d443589 Gerrit-Change-Number: 18996 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 Jun 24 17:22:59 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 17:22:59 +0000 Subject: Change in osmo-msc[master]: propagate Compl L3 Info Cell ID to the VLR subscriber record References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/18997 ) Change subject: propagate Compl L3 Info Cell ID to the VLR subscriber record ...................................................................... propagate Compl L3 Info Cell ID to the VLR subscriber record As soon as the subscriber is authenticated, update the VLR entry with the MSC-A's full CGI, including the Cell Id received from the Complete Layer 3 Information. Thus the Cell Id will be shown by vty 'show subscriber cache' and 'show connection'. This is tested by osmo-ttcn3-hacks Ie410714a96353f74a52a104c56fa0a08683e0004. Related: OS#4627 Change-Id: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a --- M src/libmsc/msc_a.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/97/18997/1 diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index fd66ad3..76c0f01 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -138,6 +138,12 @@ update_counters(fi, conn_accepted); + if (conn_accepted) { + /* Record the Cell ID seen in Complete Layer 3 Information in the VLR, so that it also shows in vty + * 'show' output. */ + vsub->cgi = msc_a->via_cell; + } + /* Trigger transactions that we paged for */ if (msc_a->complete_layer3_type == COMPLETE_LAYER3_PAGING_RESP) { if (conn_accepted) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a Gerrit-Change-Number: 18997 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 Jun 24 18:31:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 18:31:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: verify conn and VLR cell id in most tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 ) Change subject: msc: verify conn and VLR cell id in most tests ...................................................................... msc: verify conn and VLR cell id in most tests osmo-msc failed to record the Complete Layer 3 Information LAC and CI in the MSC-A as well as the VLR record. Since osmo-msc Iee1781985fb25b21ce27526c6a3768bf70d4dc9a and I194271af2acb37b4f8cc2d106ab2fd2b0d443589, osmo-msc properly records these for successful Complete Layer 3 procedures. Incorporate verification of the LAC and CI in all tests calling f_perform_lu() and f_expect_clear(). Implement by scraping the output of vty 'show subscriber imsi 1234 conn' Some tests model a failure to attach, or expire the VLR record: for those, add parameter verify_cell_id to g_pars, and pass it as false, to skip checking the LAC and CI. Disable CI checking for all Iu tests globally in f_verify_vty_lac_ci(), see OS#4634. For the latest build, which does not yet record LAC and CI properly, provide mp_enable_cell_id_test, which skips all cell id verification if set to false. Put to effect by docker-playground I052fea208021509e12826c50474b96474e7a58c2. Related: OS#4627 Depends: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a (osmo-msc) Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004 --- M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn 2 files changed, 135 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/18998/1 diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 007e541..cc69a68 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -59,6 +59,8 @@ import from SGsAP_Emulation all; +import from TCCConversion_Functions { function f_strstr }; + /* this component represents a single subscriber connection */ type component BSC_ConnHdlr extends RAN_ConnHdlr, MNCC_ConnHdlr, GSUP_ConnHdlr, MGCP_ConnHdlr, SMPP_ConnHdlr, CTRL_Adapter_CT, SGsAP_ConnHdlr { var BSC_ConnHdlrPars g_pars; @@ -101,7 +103,8 @@ integer ran_idx, boolean use_umts_aka, boolean ran_is_geran, - boolean use_osmux + boolean use_osmux, + boolean verify_cell_id }; /* get a one-octet bitmaks of supported algorithms based on Classmark information */ @@ -364,6 +367,8 @@ /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */ f_cl3_or_initial_ue(l3_info); + f_verify_vty_lac_ci(verify_vlr := false); + f_mm_common(); if (g_pars.net.expect_ciph or not g_pars.ran_is_geran) { /* implicit CM SERVICE ACCEPT? */ @@ -571,6 +576,96 @@ } } +private function f_lac_ci_vty_str(BSSMAP_IE_CellIdentifier cell_id) return charstring +{ + return "LAC / cell ID: " + & int2str(oct2int(cell_id.cellIdentification.cI_CGI.lac)) & " / " + & int2str(oct2int(cell_id.cellIdentification.cI_CGI.ci)); +} + +/* Get an IMSI's info and verify that the g_pars.cell_id is reflected in the info. + * Verify both the "LAC / cell ID" in the VLR and the "LAC / cell ID" in the "Connection:" part, if any. + * If verify_vlr == false, then only verify the "Connection:" part, and fail if there is no "Connection:"; this is + * useful when a conn has been established, but the subscriber has not been authenticated, so the VLR does not yet + * reflect the new conn's cell ID. + */ +function f_verify_vty_lac_ci(boolean verify_vlr := true) runs on BSC_ConnHdlr { + if (not g_pars.ran_is_geran) { + log("Skipping f_verify_vty_lac_ci(), disabled for Iu"); + setverdict(pass); + return; + } + if (not g_pars.verify_cell_id) { + /* Skip this verification; either the TC expects no cell id to end up being accepted, or this was + * disabled globally to test an older osmo-msc which doesn't store the cell id properly yet. */ + log("Skipping f_verify_vty_lac_ci()"); + setverdict(pass); + return; + } + + var charstring vty_cmd := "show subscriber imsi " & hex2str(g_pars.imsi) & " conn"; + var charstring result := f_vty_transceive_ret(MSCVTY, vty_cmd); + var charstring expect_lac_ci := "LAC / cell ID: " + & int2str(oct2int(g_pars.cell_id.cellIdentification.cI_CGI.lac)) & " / " + & int2str(oct2int(g_pars.cell_id.cellIdentification.cI_CGI.ci)); + + var boolean vlr_matches := false; + var boolean connection_present := false; + var boolean connection_matches := false; + + /* There are two occurences of LAC / cell ID: once for the VLR record, and once for the active connection. The + * active connection part starts with 'Connection:'. If there is no active connection, that part is omitted. + * So, first find out whether there is a 'Connection:' part. Then verify the LAC / cell ID above 'Connection:' + * and below 'Connection:', separately. + */ + var integer connection_start := f_strstr(result, "Connection:"); + connection_present := (connection_start >= 0); + + var integer lac_ci_match := f_strstr(result, expect_lac_ci); + if (connection_present) { + if (lac_ci_match > connection_start) { + /* The first match is below 'Connection:', so the VLR part above it did not match. */ + vlr_matches := false; + connection_matches := true; + } else if (lac_ci_match >= 0) { + /* The first match is above 'Connection:', so the VLR part matches. */ + vlr_matches := true; + + /* Now find a match below 'Connection:' */ + lac_ci_match := f_strstr(result, expect_lac_ci, connection_start); + connection_matches := (lac_ci_match > 0); + } + } else { + /* There is no 'Connection:', so a match, if any, is from the VLR part. */ + vlr_matches := (lac_ci_match >= 0); + } + + if (verify_vlr) { + if (not vlr_matches) { + setverdict(fail, vty_cmd, " shows mismatching LAC / cell ID in the VLR part, expecting: ", + expect_lac_ci, " -- got: ", result); + return; + } else { + log("f_verify_vty_lac_ci(): VLR record matches ", expect_lac_ci); + setverdict(pass); + } + } + + if (connection_present) { + if (not connection_matches) { + setverdict(fail, vty_cmd, " shows mismatching LAC cell ID in the 'Connection' part, expecting: ", + expect_lac_ci, " -- got: ", result); + } else { + log("f_verify_vty_lac_ci(): Active connection matches ", expect_lac_ci); + setverdict(pass); + } + } + + if (not verify_vlr and not connection_present) { + setverdict(fail, "f_verify_vty_lac_ci(verify_vlr := false) called, which requires an active connection, but there is no 'Connection:' part to verify in ", result); + } +} + function f_perform_lu() runs on BSC_ConnHdlr { var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi) @@ -589,6 +684,10 @@ f_ranap_initial_ue(l3_lu); } + /* at this point the conn has been established, but the subscriber has not been authenticated, so the VLR does + * not yet reflect this conn's cell ID. */ + f_verify_vty_lac_ci(verify_vlr := false); + f_mm_imei_early(); f_mm_common(); f_msc_lu_hlr(); @@ -1574,7 +1673,7 @@ } } -function f_expect_clear(float t := 5.0) runs on BSC_ConnHdlr { +function f_expect_clear(float t := 5.0, boolean verify_vlr_cell_id := true) runs on BSC_ConnHdlr { timer T := t; T.start; @@ -1586,6 +1685,11 @@ mtc.stop; } } + + if (verify_vlr_cell_id) { + /* Now the conn is gone, but the VLR reflects the cell ID */ + f_verify_vty_lac_ci(); + } } function f_create_bssmap_exp_handoverRequest(integer targetPointCode) runs on BSC_ConnHdlr { diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index bfac7e9..d59d165 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -167,6 +167,8 @@ rctx := 1 } }; + + boolean mp_enable_cell_id_test := true; } /* altstep for the global guard timer (only used when BSSAP_DIRECT @@ -368,7 +370,8 @@ /* FIXME: move into BSC_ConnectionHandler? */ function f_init_pars(integer imsi_suffix, boolean sgsap := false, boolean gsup := true, integer ran_idx := 0, - boolean ran_is_geran := true, boolean use_osmux := false, OCT4 gsup_sid := '20000101'O) + boolean ran_is_geran := true, boolean use_osmux := false, OCT4 gsup_sid := '20000101'O, + boolean verify_cell_id := true) runs on MTC_CT return BSC_ConnHdlrPars { var BSC_ConnHdlrNetworkPars net_pars := { kc_support := '0A'O, /* A5/1 and A5/3 enabled */ @@ -404,7 +407,8 @@ ran_idx := ran_idx, use_umts_aka := false, ran_is_geran := ran_is_geran, - use_osmux := use_osmux + use_osmux := use_osmux, + verify_cell_id := mp_enable_cell_id_test and verify_cell_id }; if (not ran_is_geran) { pars.use_umts_aka := true; @@ -447,9 +451,10 @@ return vc_conn; } -function f_start_handler(void_fn fn, integer imsi_suffix, integer ran_idx := 0, boolean ran_is_geran := true, boolean use_osmux := false) +function f_start_handler(void_fn fn, integer imsi_suffix, integer ran_idx := 0, boolean ran_is_geran := true, boolean use_osmux := false, + boolean verify_cell_id := true) runs on MTC_CT return BSC_ConnHdlr { - return f_start_handler_with_pars(fn, f_init_pars(imsi_suffix, ran_idx := ran_idx, ran_is_geran := ran_is_geran, use_osmux := use_osmux)); + return f_start_handler_with_pars(fn, f_init_pars(imsi_suffix, ran_idx := ran_idx, ran_is_geran := ran_is_geran, use_osmux := use_osmux, verify_cell_id := verify_cell_id)); } private function f_tc_lu_imsi_noauth_tmsi(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { @@ -502,7 +507,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_imsi_reject), 3); + vc_conn := f_start_handler(refers(f_tc_lu_imsi_reject), 3, verify_cell_id := false); vc_conn.done; } @@ -533,7 +538,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_imsi_timeout_gsup), 4); + vc_conn := f_start_handler(refers(f_tc_lu_imsi_timeout_gsup), 4, verify_cell_id := false); vc_conn.done; } @@ -611,7 +616,7 @@ /* f_expect_lu_reject() already waits for T"-1" (X1, 5 seconds), but give some extra time to avoid race conditons... */ - f_expect_clear(7.0); + f_expect_clear(7.0, verify_vlr_cell_id := false); setverdict(pass); } @@ -663,7 +668,7 @@ testcase TC_cmserv_imsi_unknown() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_cmserv_imsi_unknown), 6); + vc_conn := f_start_handler(refers(f_tc_cmserv_imsi_unknown), 6, verify_cell_id := false); vc_conn.done; } @@ -751,7 +756,7 @@ f_init(); f_vty_config(MSCVTY, "network", "authentication required"); - vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_timeout), 8); + vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_timeout), 8, verify_cell_id := false); vc_conn.done; } @@ -785,7 +790,7 @@ f_init(); f_vty_config(MSCVTY, "network", "authentication required"); - vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_err), 9); + vc_conn := f_start_handler(refers(f_tc_lu_auth_sai_err), 9, verify_cell_id := false); vc_conn.done; } @@ -894,7 +899,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_by_imei), 12); + vc_conn := f_start_handler(refers(f_tc_lu_by_imei), 12, verify_cell_id := false); vc_conn.done; } @@ -974,7 +979,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imsi), 14); + vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imsi), 14, verify_cell_id := false); vc_conn.done; } @@ -1000,7 +1005,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_tmsi), 15); + vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_tmsi), 15, verify_cell_id := false); vc_conn.done; } @@ -1026,7 +1031,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imei), 16); + vc_conn := f_start_handler(refers(f_tc_imsi_detach_by_imei), 16, verify_cell_id := false); vc_conn.done; } @@ -1053,7 +1058,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_emerg_call_imei_reject), 17); + vc_conn := f_start_handler(refers(f_tc_emerg_call_imei_reject), 17, verify_cell_id := false); vc_conn.done; } @@ -1195,7 +1200,7 @@ f_init(); f_vty_config(MSCVTY, "network", "authentication required"); - vc_conn := f_start_handler(refers(f_tc_lu_auth_2G_fail), 23); + vc_conn := f_start_handler(refers(f_tc_lu_auth_2G_fail), 23, verify_cell_id := false); vc_conn.done; } @@ -1575,7 +1580,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_gsup_cancel), 33); + vc_conn := f_start_handler(refers(f_tc_gsup_cancel), 33, verify_cell_id := false); vc_conn.done; } @@ -1659,7 +1664,7 @@ f_vty_config(MSCVTY, "network", "authentication required"); f_vty_config(MSCVTY, "network", "encryption a5 3"); - vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 360); + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 360, verify_cell_id := false); vc_conn.done; } testcase TC_lu_imsi_auth_tmsi_encr_3_1_no_cm() runs on MTC_CT { @@ -1669,7 +1674,7 @@ f_vty_config(MSCVTY, "network", "authentication required"); f_vty_config(MSCVTY, "network", "encryption a5 3"); - pars := f_init_pars(361); + pars := f_init_pars(361, verify_cell_id := false); pars.send_early_cm := false; vc_conn := f_start_handler_with_pars(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), pars); vc_conn.done; @@ -1684,7 +1689,7 @@ * message that is reported in OS#2947 to trigger the segfault */ f_vty_config(MSCVTY, "log stderr", "logging level msc debug"); - vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 362); + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_3_1), 362, verify_cell_id := false); vc_conn.done; } @@ -1726,7 +1731,7 @@ f_vty_config(MSCVTY, "network", "authentication required"); f_vty_config(MSCVTY, "network", "encryption a5 1 3"); - vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_13_2), 37); + vc_conn := f_start_handler(refers(f_tc_lu_imsi_auth_tmsi_encr_13_2), 37, verify_cell_id := false); vc_conn.done; } @@ -3986,7 +3991,7 @@ f_init(); f_vty_config(MSCVTY, "network", "encryption a5 1"); - vc_conn := f_start_handler(refers(f_tc_cipher_complete_with_invalid_cipher), 52); + vc_conn := f_start_handler(refers(f_tc_cipher_complete_with_invalid_cipher), 52, verify_cell_id := false); vc_conn.done; } @@ -5999,7 +6004,7 @@ f_init(); - vc_conn := f_start_handler(refers(f_tc_mm_id_resp_no_identity), 7); + vc_conn := f_start_handler(refers(f_tc_mm_id_resp_no_identity), 7, verify_cell_id := false); vc_conn.done; } @@ -6030,7 +6035,7 @@ /* The recent OsmoMSC keeps subscriber in its VLR unless the Paging is completed. * In this case we do not send anything and just wait for a Clear Command. */ - f_expect_clear(); + f_expect_clear(verify_vlr_cell_id := false); } testcase TC_lu_and_expire_while_paging() runs on MTC_CT { var BSC_ConnHdlr vc_conn; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004 Gerrit-Change-Number: 18998 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 Jun 24 18:39:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 18:39:13 +0000 Subject: Change in docker-playground[master]: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/18999 ) Change subject: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build ...................................................................... ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build Change-Id: I2b129caa513686a105d31ae56b065757b12fcac8 --- M ttcn3-bsc-test/jenkins.sh A ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg 2 files changed, 396 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/99/18999/1 diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 75d5401..7f84151 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -17,6 +17,11 @@ mkdir $VOL_BASE_DIR/bsc cp osmo-bsc.cfg $VOL_BASE_DIR/bsc/ +# Disable MSC pooling features until osmo-bsc.git release > 1.6.0 is available +if [ "$IMAGE_SUFFIX" = "latest" ]; then + cp pre-mscpool-osmo-bsc.cfg $VOL_BASE_DIR/bsc/osmo-bsc.cfg +fi + network_create 172.18.2.0/24 echo Starting container with STP diff --git a/ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg b/ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg new file mode 100644 index 0000000..3aa61d0 --- /dev/null +++ b/ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg @@ -0,0 +1,391 @@ +! +! OsmoBSC (1.0.1.122-630df) configuration saved from vty +!! +password foo +! +log gsmtap 172.18.2.203 + logging level set-all debug + logging filter all 1 +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print extended-timestamp 1 + logging print category-hex 0 + logging print file basename last + logging print level 1 + logging level set-all debug + 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 notice + logging level lsccp notice + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice +! +stats interval 5 +! +line vty + no login + bind 0.0.0.0 +! +e1_input + e1_line 0 driver ipa + e1_line 0 port 0 + no e1_line 0 keepalive +cs7 instance 0 + asp asp-clnt-msc-0 2905 2905 m3ua + remote-ip 172.18.2.200 +network + network country code 1 + mobile network code 1 + encryption a5 0 1 3 + neci 1 + paging any use tch 0 + handover 1 + handover window rxlev averaging 10 + handover window rxqual averaging 1 + handover window rxlev neighbor averaging 10 + handover power budget interval 6 + handover power budget hysteresis 3 + handover maximum distance 9999 + timer t3113 10 + timer t3212 30 + bts 0 + type sysmobts + band DCS1800 + cell_identity 0 + location_area_code 1 + dtx uplink force + dtx downlink + base_station_id_code 10 + ms max power 15 + cell reselection hysteresis 4 + rxlev access min 0 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1234 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr hr efr amr + gprs mode gprs + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1234 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1234 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1234 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + hopping enabled 0 + timeslot 1 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 2 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 3 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 4 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 5 + phys_chan_config TCH/H + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 1 + type sysmobts + band DCS1800 + cell_identity 1 + location_area_code 1 + dtx uplink force + dtx downlink + base_station_id_code 11 + ms max power 15 + cell reselection hysteresis 4 + rxlev access min 0 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1235 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr hr efr amr + gprs mode gprs + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1235 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1235 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1235 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + hopping enabled 0 + timeslot 1 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 2 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 3 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 4 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 5 + phys_chan_config TCH/H + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 2 + type sysmobts + band DCS1800 + cell_identity 1 + location_area_code 2 + dtx uplink force + dtx downlink + base_station_id_code 12 + ms max power 15 + cell reselection hysteresis 4 + rxlev access min 0 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1236 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr hr efr amr + gprs mode gprs + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1236 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1236 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1236 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + hopping enabled 0 + timeslot 1 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 2 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 3 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 4 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 5 + phys_chan_config TCH/H + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 3 + type sysmobts + band DCS1800 + cell_identity 3 + location_area_code 3 + # re-use bts 2's ARFCN 871 and BSIC 12 (to test handover config) + base_station_id_code 12 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + timeslot 1 + phys_chan_config TCH/F + timeslot 2 + phys_chan_config TCH/F + timeslot 3 + phys_chan_config TCH/F + timeslot 4 + phys_chan_config TCH/F + timeslot 5 + phys_chan_config TCH/H + timeslot 6 + phys_chan_config PDCH + timeslot 7 + phys_chan_config PDCH +msc 0 + no bsc-welcome-text + no bsc-msc-lost-text + no bsc-grace-text + type normal + allow-emergency allow + amr-config 12_2k forbidden + amr-config 10_2k forbidden + amr-config 7_95k forbidden + amr-config 7_40k forbidden + amr-config 6_70k forbidden + amr-config 5_90k allowed + amr-config 5_15k forbidden + amr-config 4_75k forbidden + codec-list fr1 fr2 fr3 hr1 hr3 + mgw remote-ip 172.18.2.203 + lcls-mode mgw-loop + +bsc + mid-call-timeout 0 + no missing-msc-text +ctrl + bind 0.0.0.0 +cbc + remote-ip 172.18.2.203 + remote-port 48049 + listen-ip 172.18.2.20 + listen-port 48050 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2b129caa513686a105d31ae56b065757b12fcac8 Gerrit-Change-Number: 18999 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 Jun 24 18:40:06 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 18:40:06 +0000 Subject: Change in docker-playground[master]: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18999 ) Change subject: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build ...................................................................... Patch Set 1: Code-Review+2 fast tracking regression fix, to get ttcn3-bsc-test-latest out of total failure -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2b129caa513686a105d31ae56b065757b12fcac8 Gerrit-Change-Number: 18999 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 24 Jun 2020 18:40:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 18:40:15 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 18:40:15 +0000 Subject: Change in docker-playground[master]: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18999 ) Change subject: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2b129caa513686a105d31ae56b065757b12fcac8 Gerrit-Change-Number: 18999 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 24 Jun 2020 18:40: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 Jun 24 18:40:21 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 18:40:21 +0000 Subject: Change in docker-playground[master]: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/18999 ) Change subject: ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build ...................................................................... ttcn3-bsc-test latest: remove MSC pooling specific bits in latest build Change-Id: I2b129caa513686a105d31ae56b065757b12fcac8 --- M ttcn3-bsc-test/jenkins.sh A ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg 2 files changed, 396 insertions(+), 0 deletions(-) Approvals: neels: Looks good to me, approved; Verified diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 75d5401..7f84151 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -17,6 +17,11 @@ mkdir $VOL_BASE_DIR/bsc cp osmo-bsc.cfg $VOL_BASE_DIR/bsc/ +# Disable MSC pooling features until osmo-bsc.git release > 1.6.0 is available +if [ "$IMAGE_SUFFIX" = "latest" ]; then + cp pre-mscpool-osmo-bsc.cfg $VOL_BASE_DIR/bsc/osmo-bsc.cfg +fi + network_create 172.18.2.0/24 echo Starting container with STP diff --git a/ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg b/ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg new file mode 100644 index 0000000..3aa61d0 --- /dev/null +++ b/ttcn3-bsc-test/pre-mscpool-osmo-bsc.cfg @@ -0,0 +1,391 @@ +! +! OsmoBSC (1.0.1.122-630df) configuration saved from vty +!! +password foo +! +log gsmtap 172.18.2.203 + logging level set-all debug + logging filter all 1 +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print extended-timestamp 1 + logging print category-hex 0 + logging print file basename last + logging print level 1 + logging level set-all debug + 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 notice + logging level lsccp notice + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice +! +stats interval 5 +! +line vty + no login + bind 0.0.0.0 +! +e1_input + e1_line 0 driver ipa + e1_line 0 port 0 + no e1_line 0 keepalive +cs7 instance 0 + asp asp-clnt-msc-0 2905 2905 m3ua + remote-ip 172.18.2.200 +network + network country code 1 + mobile network code 1 + encryption a5 0 1 3 + neci 1 + paging any use tch 0 + handover 1 + handover window rxlev averaging 10 + handover window rxqual averaging 1 + handover window rxlev neighbor averaging 10 + handover power budget interval 6 + handover power budget hysteresis 3 + handover maximum distance 9999 + timer t3113 10 + timer t3212 30 + bts 0 + type sysmobts + band DCS1800 + cell_identity 0 + location_area_code 1 + dtx uplink force + dtx downlink + base_station_id_code 10 + ms max power 15 + cell reselection hysteresis 4 + rxlev access min 0 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1234 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr hr efr amr + gprs mode gprs + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1234 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1234 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1234 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + hopping enabled 0 + timeslot 1 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 2 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 3 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 4 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 5 + phys_chan_config TCH/H + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 1 + type sysmobts + band DCS1800 + cell_identity 1 + location_area_code 1 + dtx uplink force + dtx downlink + base_station_id_code 11 + ms max power 15 + cell reselection hysteresis 4 + rxlev access min 0 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1235 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr hr efr amr + gprs mode gprs + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1235 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1235 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1235 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + hopping enabled 0 + timeslot 1 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 2 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 3 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 4 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 5 + phys_chan_config TCH/H + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 2 + type sysmobts + band DCS1800 + cell_identity 1 + location_area_code 2 + dtx uplink force + dtx downlink + base_station_id_code 12 + ms max power 15 + cell reselection hysteresis 4 + rxlev access min 0 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1236 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr hr efr amr + gprs mode gprs + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1236 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1236 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1236 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + si2quater neighbor-list add earfcn 111 thresh-hi 20 thresh-lo 10 prio 3 qrxlv 22 meas 3 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + hopping enabled 0 + timeslot 1 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 2 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 3 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 4 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 5 + phys_chan_config TCH/H + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 3 + type sysmobts + band DCS1800 + cell_identity 3 + location_area_code 3 + # re-use bts 2's ARFCN 871 and BSIC 12 (to test handover config) + base_station_id_code 12 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + timeslot 1 + phys_chan_config TCH/F + timeslot 2 + phys_chan_config TCH/F + timeslot 3 + phys_chan_config TCH/F + timeslot 4 + phys_chan_config TCH/F + timeslot 5 + phys_chan_config TCH/H + timeslot 6 + phys_chan_config PDCH + timeslot 7 + phys_chan_config PDCH +msc 0 + no bsc-welcome-text + no bsc-msc-lost-text + no bsc-grace-text + type normal + allow-emergency allow + amr-config 12_2k forbidden + amr-config 10_2k forbidden + amr-config 7_95k forbidden + amr-config 7_40k forbidden + amr-config 6_70k forbidden + amr-config 5_90k allowed + amr-config 5_15k forbidden + amr-config 4_75k forbidden + codec-list fr1 fr2 fr3 hr1 hr3 + mgw remote-ip 172.18.2.203 + lcls-mode mgw-loop + +bsc + mid-call-timeout 0 + no missing-msc-text +ctrl + bind 0.0.0.0 +cbc + remote-ip 172.18.2.203 + remote-port 48049 + listen-ip 172.18.2.20 + listen-port 48050 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/18999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2b129caa513686a105d31ae56b065757b12fcac8 Gerrit-Change-Number: 18999 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 18:59:35 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 18:59:35 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test latest: do not require VLR cell id match in latest build References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/19000 ) Change subject: ttcn3-msc-test latest: do not require VLR cell id match in latest build ...................................................................... ttcn3-msc-test latest: do not require VLR cell id match in latest build Depends: Ie410714a96353f74a52a104c56fa0a08683e0004 (osmo-msc) Change-Id: I052fea208021509e12826c50474b96474e7a58c2 --- M ttcn3-msc-test/MSC_Tests.cfg M ttcn3-msc-test/jenkins.sh 2 files changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/00/19000/1 diff --git a/ttcn3-msc-test/MSC_Tests.cfg b/ttcn3-msc-test/MSC_Tests.cfg index 1e5fd61..55e739c 100644 --- a/ttcn3-msc-test/MSC_Tests.cfg +++ b/ttcn3-msc-test/MSC_Tests.cfg @@ -52,6 +52,7 @@ MSC_Tests.mp_hlr_ip := "172.18.1.103"; MSC_Tests.mp_mgw_ip := "172.18.1.103"; MSC_Tests.mp_enable_osmux_test := true; +MSC_Tests.mp_enable_cell_id_test := true; [MAIN_CONTROLLER] diff --git a/ttcn3-msc-test/jenkins.sh b/ttcn3-msc-test/jenkins.sh index 6ad7b97..fdba9a5 100755 --- a/ttcn3-msc-test/jenkins.sh +++ b/ttcn3-msc-test/jenkins.sh @@ -13,6 +13,12 @@ mkdir $VOL_BASE_DIR/msc-tester/unix cp MSC_Tests.cfg $VOL_BASE_DIR/msc-tester/ +# Disable verification of VLR and conn Cell ID until osmo-msc.git release > 1.6.1 is available +if [ "$IMAGE_SUFFIX" = "latest" ]; then + sed "s/MSC_Tests.mp_enable_cell_id_test := true/MSC_Tests.mp_enable_cell_id_test := false/" -i \ + "$VOL_BASE_DIR/msc-tester/MSC_Tests.cfg" +fi + mkdir $VOL_BASE_DIR/stp cp osmo-stp.cfg $VOL_BASE_DIR/stp/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I052fea208021509e12826c50474b96474e7a58c2 Gerrit-Change-Number: 19000 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 Jun 24 19:13:23 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 19:13:23 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test latest: do not require VLR cell id match in latest build In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/19000 ) Change subject: ttcn3-msc-test latest: do not require VLR cell id match in latest build ...................................................................... Patch Set 2: don't merge before https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I052fea208021509e12826c50474b96474e7a58c2 Gerrit-Change-Number: 19000 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 24 Jun 2020 19:13: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 Jun 24 19:14:06 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 19:14:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: verify conn and VLR cell id in most tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 ) Change subject: msc: verify conn and VLR cell id in most tests ...................................................................... Patch Set 1: don't merge before https://gerrit.osmocom.org/c/osmo-msc/+/18997 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004 Gerrit-Change-Number: 18998 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 24 Jun 2020 19:14:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 19:20:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 24 Jun 2020 19:20:50 +0000 Subject: Change in libosmo-sccp[master]: WIP: Fix race during fast re-establishment of inbound M3UA connections References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 ) Change subject: WIP: Fix race during fast re-establishment of inbound M3UA connections ...................................................................... WIP: Fix race during fast re-establishment of inbound M3UA connections When a client closes and instantaneously re-opens a SCTP socket for an M3UA connection, there is a chance that both the "shutdwon event" (old connection socket becomes readable for sctp event) and the "init event" (listen-fd becomes readable) happen during the same scheduler interval / select() cycle. As there is no guaranteed order by which we call our file descriptor callbacks, it means that we may end up processing then new connection (accept) before we get the notification that the old one is dead. The fact that the fd number of the accept-fd is mostly lower than the fd number of the individual per-client connection actually makes it likely that the order is exactly the opposite of what would feel "logical". As the ASP is identified by the tuple of (src-port, src-ip, dst-port, dst-ip), both the old connection and the new connection map to the same ASP object. So we need to handle this situation gracefully: If we get a new connection for a tuple that we already [think we still] have one, close the old one and use the new. Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Closes: OS#4625 --- M src/osmo_ss7.c 1 file changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/01/19001/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index b7d69cb..9aeed9b 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1832,6 +1832,17 @@ if (asp) { LOGP(DLSS7, LOGL_INFO, "%s: matched connection to ASP %s\n", sock_name, asp->cfg.name); + /* we need to check if we already have a socket associated, and close it. Otherwise it might + * happen that both the listen-fd for this accept() and the old socket are marked 'readable' + * during the same scheduling interval, and we're processing them in the "wrong" order, i.e. + * we first see the accept of the new fd before we see the close on the old fd */ + if (asp->server) { + LOGPASP(asp, DLSS7, LOGL_FATAL, "accept of new connection from %s before old was closed " + "-> close old one\n", sock_name); + osmo_stream_srv_set_data(asp->server, NULL); + osmo_stream_srv_destroy(asp->server); + asp->server = NULL; + } } else { if (!oxs->cfg.accept_dyn_reg) { LOGP(DLSS7, LOGL_NOTICE, "%s: %s connection without matching " @@ -1870,13 +1881,13 @@ talloc_free(sock_name); return -1; } + llist_add_tail(&asp->siblings, &oxs->asp_list); } /* update the ASP reference back to the server over which the * connection came in */ asp->server = srv; asp->xua_server = oxs; - llist_add_tail(&asp->siblings, &oxs->asp_list); /* update the ASP socket name */ if (asp->sock_name) talloc_free(asp->sock_name); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Gerrit-Change-Number: 19001 Gerrit-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 Jun 24 19:51:30 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 24 Jun 2020 19:51:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: verify conn and VLR cell id in most tests In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 ) Change subject: msc: verify conn and VLR cell id in most tests ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1//COMMIT_MSG at 7 PS1, Line 7: in most tests Does it really make sense to verify it in all test cases? Why not to implement a dedicated test case checking this? IMHO, each test case should ideally verify a specific part of the implementation, not everything at once. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004 Gerrit-Change-Number: 18998 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 24 Jun 2020 19:51:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 22:58:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 22:58:54 +0000 Subject: Change in libosmo-sccp[master]: Revert "sccp_simple_client: only restart ASP if it was created" References: Message-ID: Hello dexter, pespin, laforge, Jenkins Builder, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 to review the following change. Change subject: Revert "sccp_simple_client: only restart ASP if it was created" ...................................................................... Revert "sccp_simple_client: only restart ASP if it was created" This reverts commit ec20a6164b046f9b6190dc886c3cc8a8e1445739. Reason for revert: this patch makes specific variants of 'cs7' config fail. In short, if AS and ASP are configured and connected, the ASP is never started. See OS#4635 for elaborate details. Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b --- M src/sccp_user.c 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/02/19002/1 diff --git a/src/sccp_user.c b/src/sccp_user.c index 1278fae..d8a7357 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -597,16 +597,16 @@ talloc_free(asp_name); osmo_ss7_as_add_asp(as, asp->cfg.name); - - /* Ensure that the ASP we use is set to client mode. */ - asp->cfg.is_server = false; - asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; - - /* Restart ASP */ - if (prot != OSMO_SS7_ASP_PROT_IPA) - osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); - osmo_ss7_asp_restart(asp); } + + /* Ensure that the ASP we use is set to client mode. */ + asp->cfg.is_server = false; + asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; + + /* Restart ASP */ + if (prot != OSMO_SS7_ASP_PROT_IPA) + osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); + osmo_ss7_asp_restart(asp); LOGP(DLSCCP, LOGL_NOTICE, "%s: Using ASP instance %s\n", name, asp->cfg.name); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b Gerrit-Change-Number: 19002 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 22:58:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 22:58:55 +0000 Subject: Change in libosmo-sccp[master]: sccp_simple_client: only restart ASP if it was created In-Reply-To: References: Message-ID: neels has created a revert of this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 ) Change subject: sccp_simple_client: only restart ASP if it was created ...................................................................... -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/18990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I62443edd681a2ec1b38f958520e907f9a7ef285e Gerrit-Change-Number: 18990 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: revert -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 24 22:59:50 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 22:59:50 +0000 Subject: Change in libosmo-sccp[master]: Revert "sccp_simple_client: only restart ASP if it was created" In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 ) Change subject: Revert "sccp_simple_client: only restart ASP if it was created" ...................................................................... Patch Set 1: Code-Review+2 fast track this to fix regression: total failure of ttcn3-msc-tests (and possibly also ttcn3-sgsn-tests) -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b Gerrit-Change-Number: 19002 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 24 Jun 2020 22:59: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 Jun 24 23:00:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 24 Jun 2020 23:00:53 +0000 Subject: Change in libosmo-sccp[master]: Revert "sccp_simple_client: only restart ASP if it was created" In-Reply-To: References: Message-ID: Hello dexter, pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 to look at the new patch set (#2). Change subject: Revert "sccp_simple_client: only restart ASP if it was created" ...................................................................... Revert "sccp_simple_client: only restart ASP if it was created" This reverts commit ec20a6164b046f9b6190dc886c3cc8a8e1445739. Reason for revert: this patch makes specific variants of 'cs7' config fail. In short, if AS and ASP are configured and connected, the ASP is never started. See OS#4635 for elaborate details. Related: OS#4635 Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b --- M src/sccp_user.c 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/02/19002/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b Gerrit-Change-Number: 19002 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 01:09:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 01:09:04 +0000 Subject: Change in osmo-bsc[master]: create ASP+AS only once per cs7 instance References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19003 ) Change subject: create ASP+AS only once per cs7 instance ...................................................................... create ASP+AS only once per cs7 instance Refactor osmo_bsc_sigtran_init(): invoke osmo_sccp_simple_client_on_ss7_id() exactly once per cs7 instance. When introducing MSC pooling to the ttcn3-bsc-tests, it became apparent that osmo-bsc rapidly huts down and re-creates the SCTP link for each configured MSC. This manifested in an osmo-stp crash (fixed in libosmo-sccp I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa). I first tried to fix it by only restarting an ASP when it wasn't found in the AS yet, but that created obscure problems described in OS#4635 which in turn completely broke ttcn3-msc-tests. This solution keeps osmo_sccp_simple_client_on_ss7_id() unchanged and instead invokes it exactly once per cs7 instance. Keep the same auto-config logic, but change and improve the mechanisms to achieve it: Replace the fail_on_next_invalid_cfg flag with a more accurate check against remote PC collisions between configured MSCs. Before this patch, the code made sure that at most one MSC lacks an explicit remote address (and cs7 instance), so that no two MSCs get the same default remote PC. This patch more accurately checks that no two MSCs use the same remote PC on the same cs7 instance, period, whether implicitly or explicitly configured. Before this patch, the logic amounted to creating cs7 instance 0 implicitly, but it was not very obvious: If an 'msc' has an msc-addr configured, it is associated with the cs7 instance that has this addr in its address book. If it has no msc-addr configured, then msc->a.cs7_instance_valid == false. In that case, msc->a.cs7_instance is still 0 (from talloc_zero) and hence osmo_sccp_simple_client_on_ss7_id(ss7_id = 0) created cs7 instance 0. In this patch, that logic remains unchanged, but is written out more explicitly: if any msc has no cs7 instance associated, make sure to create cs7 instance 0 beforehand. Then iterate all osmo_ss7_instances. If at least one MSC uses it, set up the SCCP client on it and connect all MSCs as appropriate. Related: OS#4625 OS#4635 Change-Id: I16f4f7f447f69525a2f57c4649ab295112904d6a --- M src/osmo-bsc/osmo_bsc_sigtran.c 1 file changed, 138 insertions(+), 84 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/19003/1 diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c index 43ffae0..afc6c8d 100644 --- a/src/osmo-bsc/osmo_bsc_sigtran.c +++ b/src/osmo-bsc/osmo_bsc_sigtran.c @@ -468,66 +468,25 @@ /* Initialize osmo sigtran backhaul */ int osmo_bsc_sigtran_init(struct llist_head *mscs) { - bool free_attempt_used = false; - bool fail_on_next_invalid_cfg = false; - struct bsc_msc_data *msc; - char msc_name[32]; uint32_t default_pc; + struct osmo_ss7_instance *inst; + int create_instance_0_for_msc_nr = -1; osmo_ss7_register_rx_unknown_cb(&asp_rx_unknown); OSMO_ASSERT(mscs); msc_list = mscs; + /* Guard against multiple MSCs with identical config */ llist_for_each_entry(msc, msc_list, entry) { - snprintf(msc_name, sizeof(msc_name), "msc-%u", msc->nr); - LOGP(DMSC, LOGL_NOTICE, "Initializing SCCP connection to MSC %s\n", msc_name); + struct bsc_msc_data *msc2; - /* Check if the VTY could determine a valid CS7 instance, - * use safe default in case none is set */ - if (msc->a.cs7_instance_valid == false) { - msc->a.cs7_instance = 0; - if (fail_on_next_invalid_cfg) - goto fail_auto_cofiguration; - free_attempt_used = true; - } - LOGP(DMSC, LOGL_NOTICE, "CS7 Instance identifier, A-Interface: %u\n", msc->a.cs7_instance); + /* An MSC with invalid cs7 instance defaults to cs7 instance 0 */ + uint32_t msc_inst = (msc->a.cs7_instance_valid ? msc->a.cs7_instance : 0); - /* Pre-Check if there is an ss7 instance present */ - if (osmo_ss7_instance_find(msc->a.cs7_instance) == NULL) { - if (fail_on_next_invalid_cfg) - goto fail_auto_cofiguration; - free_attempt_used = true; - } - - /* SS7 Protocol stack */ - default_pc = osmo_ss7_pointcode_parse(NULL, BSC_DEFAULT_PC); - msc->a.sccp = - osmo_sccp_simple_client_on_ss7_id(msc, msc->a.cs7_instance, msc_name, default_pc, - msc->a.asp_proto, 0, NULL, 0, DEFAULT_ASP_REMOTE_IP); - if (!msc->a.sccp) - return -EINVAL; - - /* In SCCPlite, the MSC side of the MGW endpoint is configured by the MSC. Since we have - * no way to figure out which CallID ('C:') the MSC will issue in its CRCX command, set - * an X-Osmo-IGN flag telling osmo-mgw to ignore CallID mismatches for this endpoint. - * If an explicit VTY command has already indicated whether or not to send X-Osmo-IGN, do - * not overwrite that setting. */ - if (msc_is_sccplite(msc) && !msc->x_osmo_ign_configured) - msc->x_osmo_ign |= MGCP_X_OSMO_IGN_CALLID; - - /* If unset, use default local SCCP address */ - if (!msc->a.bsc_addr.presence) - osmo_sccp_local_addr_by_instance(&msc->a.bsc_addr, msc->a.sccp, - OSMO_SCCP_SSN_BSSAP); - - if (!osmo_sccp_check_addr(&msc->a.bsc_addr, OSMO_SCCP_ADDR_T_SSN | OSMO_SCCP_ADDR_T_PC)) { - LOGP(DMSC, LOGL_ERROR, - "(%s) A-interface: invalid local (BSC) SCCP address: %s\n", - msc_name, osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.bsc_addr)); - return -EINVAL; - } + if (!msc->a.cs7_instance_valid) + create_instance_0_for_msc_nr = msc->nr; /* If unset, use default SCCP address for the MSC */ if (!msc->a.msc_addr.presence) @@ -535,50 +494,145 @@ osmo_ss7_pointcode_parse(NULL, MSC_DEFAULT_PC), OSMO_SCCP_SSN_BSSAP); - if (!osmo_sccp_check_addr(&msc->a.msc_addr, OSMO_SCCP_ADDR_T_SSN | OSMO_SCCP_ADDR_T_PC)) { - LOGP(DMSC, LOGL_ERROR, - "(%s) A-interface: invalid remote (MSC) SCCP address: %s\n", - msc_name, osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.msc_addr)); - return -EINVAL; + /* (more optimally, we'd only iterate the remaining other mscs after this msc, but this happens only + * during startup, so nevermind that complexity and rather check each pair twice. That also ensures to + * compare all MSCs that have no explicit msc_addr set, see osmo_sccp_make_addr_pc_ssn() above.) */ + llist_for_each_entry(msc2, msc_list, entry) { + uint32_t msc2_inst; + + if (msc2 == msc) + continue; + + msc2_inst = (msc2->a.cs7_instance_valid ? msc2->a.cs7_instance : 0); + if (msc_inst != msc2_inst) + continue; + + if (osmo_sccp_addr_cmp(&msc->a.msc_addr, &msc2->a.msc_addr, OSMO_SCCP_ADDR_T_PC) == 0) { + LOGP(DMSC, LOGL_ERROR, "'msc %d' and 'msc %d' cannot use the same remote PC" + " %s on the same cs7 instance %u\n", + msc->nr, msc2->nr, osmo_sccp_addr_dump(&msc->a.msc_addr), msc_inst); + return -EINVAL; + } + } + } + + if (create_instance_0_for_msc_nr >= 0 && !osmo_ss7_instance_find(0)) { + LOGP(DMSC, LOGL_NOTICE, "To auto-configure msc %d, creating cs7 instance 0 implicitly\n", + create_instance_0_for_msc_nr); + OSMO_ASSERT(osmo_ss7_instance_find_or_create(tall_bsc_ctx, 0)); + } + + /* Set up exactly one SCCP user and one ASP+AS per cs7 instance. + * Iterate cs7 instance indexes and see for each one whether an MSC is configured for it. + * The 'msc' / 'msc-addr' command selects the cs7 instance used for an MSC. + */ + llist_for_each_entry(inst, &osmo_ss7_instances, list) { + char inst_name[32]; + enum osmo_ss7_asp_protocol used_proto = OSMO_SS7_ASP_PROT_NONE; + int prev_msc_nr; + + struct osmo_sccp_instance *sccp; + + llist_for_each_entry(msc, msc_list, entry) { + /* An MSC with invalid cs7 instance id defaults to cs7 instance 0 */ + if ((inst->cfg.id != msc->a.cs7_instance) + && !(inst->cfg.id == 0 && !msc->a.cs7_instance_valid)) + continue; + + /* This msc runs on this cs7 inst. Check the asp_proto. */ + if (used_proto != OSMO_SS7_ASP_PROT_NONE + && used_proto != msc->a.asp_proto) { + LOGP(DMSC, LOGL_ERROR, "'msc %d' and 'msc %d' with differing ASP protocols" + " %s and %s cannot use the same cs7 instance %u\n", + prev_msc_nr, msc->nr, + osmo_ss7_asp_protocol_name(used_proto), + osmo_ss7_asp_protocol_name(msc->a.asp_proto), + inst->cfg.id); + return -EINVAL; + } + + used_proto = msc->a.asp_proto; + prev_msc_nr = msc->nr; + /* still run through the other MSCs to catch asp_proto mismatches */ } - LOGP(DMSC, LOGL_NOTICE, "(%s) A-interface: local (BSC) SCCP address: %s\n", - msc_name, osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.bsc_addr)); - LOGP(DMSC, LOGL_NOTICE, "(%s) A-interface: remote (MSC) SCCP address: %s\n", - msc_name, osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.msc_addr)); + if (used_proto == OSMO_SS7_ASP_PROT_NONE) { + /* This instance has no MSC associated with it */ + LOGP(DMSC, LOGL_ERROR, "cs7 instance %u has no MSCs configured to run on it\n", inst->cfg.id); + continue; + } - /* Bind SCCP user. Bind only one user per sccp_instance. */ - msc->a.sccp_user = osmo_sccp_user_find(msc->a.sccp, msc->a.bsc_addr.ssn, msc->a.bsc_addr.pc); - LOGP(DMSC, LOGL_NOTICE, "(%s) A-interface: %s\n", msc_name, - msc->a.sccp_user ? "user already bound for this SCCP instance" : "binding SCCP user"); - if (!msc->a.sccp_user) - msc->a.sccp_user = osmo_sccp_user_bind(msc->a.sccp, msc_name, sccp_sap_up, msc->a.bsc_addr.ssn); - if (!msc->a.sccp_user) + snprintf(inst_name, sizeof(inst_name), "A-%u-%s", inst->cfg.id, osmo_ss7_asp_protocol_name(used_proto)); + LOGP(DMSC, LOGL_NOTICE, "Initializing SCCP connection for A/%s on cs7 instance %u\n", + osmo_ss7_asp_protocol_name(used_proto), inst->cfg.id); + + /* SS7 Protocol stack */ + default_pc = osmo_ss7_pointcode_parse(NULL, BSC_DEFAULT_PC); + sccp = osmo_sccp_simple_client_on_ss7_id(tall_bsc_ctx, inst->cfg.id, inst_name, default_pc, used_proto, 0, NULL, + 0, DEFAULT_ASP_REMOTE_IP); + if (!sccp) return -EINVAL; - /* Start MSC-Reset procedure */ - a_reset_alloc(msc, msc_name, osmo_bsc_sigtran_reset_cb); + /* Now that the SCCP client is set up, configure all MSCs on this cs7 instance to use it */ + llist_for_each_entry(msc, msc_list, entry) { + char msc_name[32]; - /* If we have detected that the SS7 configuration of the MSC we have just initialized - * was incomplete or completely missing, we can not tolerate another incomplete - * configuration. The reason for this is that we do only specify exactly one default - * pointcode pair. We also specify localhost as default IP-Address. If we have wanted - * to support multiple MSCs with automatic configuration we would be forced to invent - * a complex ruleset how to allocate the pointcodes and respective IP-Addresses. - * Furthermore, the situation where a single BSC is connected to multiple MSCs - * is a very rare situation anyway. In this case we expect the user to experienced - * enough to create a valid SS7/CS7 VTY configuration that does not lack any - * components */ - if (free_attempt_used) - fail_on_next_invalid_cfg = true; + /* Skip MSCs that don't run on this cs7 instance */ + if ((inst->cfg.id != msc->a.cs7_instance) + && !(inst->cfg.id == 0 && !msc->a.cs7_instance_valid)) + continue; + + snprintf(msc_name, sizeof(msc_name), "msc-%d", msc->nr); + + msc->a.sccp = sccp; + + /* In SCCPlite, the MSC side of the MGW endpoint is configured by the MSC. Since we have + * no way to figure out which CallID ('C:') the MSC will issue in its CRCX command, set + * an X-Osmo-IGN flag telling osmo-mgw to ignore CallID mismatches for this endpoint. + * If an explicit VTY command has already indicated whether or not to send X-Osmo-IGN, do + * not overwrite that setting. */ + if (msc_is_sccplite(msc) && !msc->x_osmo_ign_configured) + msc->x_osmo_ign |= MGCP_X_OSMO_IGN_CALLID; + + /* If unset, use default local SCCP address */ + if (!msc->a.bsc_addr.presence) + osmo_sccp_local_addr_by_instance(&msc->a.bsc_addr, sccp, + OSMO_SCCP_SSN_BSSAP); + + if (!osmo_sccp_check_addr(&msc->a.bsc_addr, OSMO_SCCP_ADDR_T_SSN | OSMO_SCCP_ADDR_T_PC)) { + LOGP(DMSC, LOGL_ERROR, + "%s %s: invalid local (BSC) SCCP address: %s\n", + inst_name, msc_name, osmo_sccp_inst_addr_name(sccp, &msc->a.bsc_addr)); + return -EINVAL; + } + + if (!osmo_sccp_check_addr(&msc->a.msc_addr, OSMO_SCCP_ADDR_T_SSN | OSMO_SCCP_ADDR_T_PC)) { + LOGP(DMSC, LOGL_ERROR, + "%s %s: invalid remote (MSC) SCCP address: %s\n", + inst_name, msc_name, osmo_sccp_inst_addr_name(sccp, &msc->a.msc_addr)); + return -EINVAL; + } + + LOGP(DMSC, LOGL_NOTICE, "%s %s: local (BSC) SCCP address: %s\n", + inst_name, msc_name, osmo_sccp_inst_addr_name(sccp, &msc->a.bsc_addr)); + LOGP(DMSC, LOGL_NOTICE, "%s %s: remote (MSC) SCCP address: %s\n", + inst_name, msc_name, osmo_sccp_inst_addr_name(sccp, &msc->a.msc_addr)); + + /* Bind SCCP user. Bind only one user per sccp_instance and bsc_addr. */ + msc->a.sccp_user = osmo_sccp_user_find(sccp, msc->a.bsc_addr.ssn, msc->a.bsc_addr.pc); + LOGP(DMSC, LOGL_NOTICE, "%s %s: %s\n", inst_name, msc_name, + msc->a.sccp_user ? "user already bound for this SCCP instance" : "binding SCCP user"); + if (!msc->a.sccp_user) + msc->a.sccp_user = osmo_sccp_user_bind(sccp, msc_name, sccp_sap_up, msc->a.bsc_addr.ssn); + if (!msc->a.sccp_user) + return -EINVAL; + + /* Start MSC-Reset procedure */ + a_reset_alloc(msc, msc_name, osmo_bsc_sigtran_reset_cb); + } } return 0; - -fail_auto_cofiguration: - LOGP(DMSC, LOGL_ERROR, - "A-interface: More than one invalid/inclomplete configuration detected, unable to revover - check config file!\n"); - return -EINVAL; } /* this function receives all messages received on an ASP for a PPID / StreamID that -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I16f4f7f447f69525a2f57c4649ab295112904d6a Gerrit-Change-Number: 19003 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 Jun 25 01:09:45 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 01:09:45 +0000 Subject: Change in osmo-bsc[master]: create ASP+AS only once per cs7 instance In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19003 ) Change subject: create ASP+AS only once per cs7 instance ...................................................................... Patch Set 1: untested -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I16f4f7f447f69525a2f57c4649ab295112904d6a Gerrit-Change-Number: 19003 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 25 Jun 2020 01:09:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 01:11:07 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 01:11:07 +0000 Subject: Change in libosmo-sccp[master]: WIP: Fix race during fast re-establishment of inbound M3UA connections In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 ) Change subject: WIP: Fix race during fast re-establishment of inbound M3UA connections ...................................................................... Patch Set 1: Code-Review+1 looks sane, only the "WIP" seems like you don't want to merge it? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Gerrit-Change-Number: 19001 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 01:11: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 Jun 25 06:54:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 06:54:56 +0000 Subject: Change in libosmo-sccp[master]: Fix race during fast re-establishment of inbound M3UA connections In-Reply-To: References: Message-ID: Hello neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 to look at the new patch set (#2). Change subject: Fix race during fast re-establishment of inbound M3UA connections ...................................................................... Fix race during fast re-establishment of inbound M3UA connections When a client closes and instantaneously re-opens a SCTP socket for an M3UA connection, there is a chance that both the "shutdwon event" (old connection socket becomes readable for sctp event) and the "init event" (listen-fd becomes readable) happen during the same scheduler interval / select() cycle. As there is no guaranteed order by which we call our file descriptor callbacks, it means that we may end up processing then new connection (accept) before we get the notification that the old one is dead. The fact that the fd number of the accept-fd is mostly lower than the fd number of the individual per-client connection actually makes it likely that the order is exactly the opposite of what would feel "logical". As the ASP is identified by the tuple of (src-port, src-ip, dst-port, dst-ip), both the old connection and the new connection map to the same ASP object. So we need to handle this situation gracefully: If we get a new connection for a tuple that we already [think we still] have one, close the old one and use the new. Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Closes: OS#4625 --- M src/osmo_ss7.c 1 file changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/01/19001/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Gerrit-Change-Number: 19001 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 06:55:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 06:55:22 +0000 Subject: Change in libosmo-sccp[master]: Fix race during fast re-establishment of inbound M3UA connections In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 ) Change subject: Fix race during fast re-establishment of inbound M3UA connections ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Gerrit-Change-Number: 19001 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 06:55: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 Jun 25 06:55:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 06:55:30 +0000 Subject: Change in libosmo-sccp[master]: Fix race during fast re-establishment of inbound M3UA connections In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 ) Change subject: Fix race during fast re-establishment of inbound M3UA connections ...................................................................... Fix race during fast re-establishment of inbound M3UA connections When a client closes and instantaneously re-opens a SCTP socket for an M3UA connection, there is a chance that both the "shutdwon event" (old connection socket becomes readable for sctp event) and the "init event" (listen-fd becomes readable) happen during the same scheduler interval / select() cycle. As there is no guaranteed order by which we call our file descriptor callbacks, it means that we may end up processing then new connection (accept) before we get the notification that the old one is dead. The fact that the fd number of the accept-fd is mostly lower than the fd number of the individual per-client connection actually makes it likely that the order is exactly the opposite of what would feel "logical". As the ASP is identified by the tuple of (src-port, src-ip, dst-port, dst-ip), both the old connection and the new connection map to the same ASP object. So we need to handle this situation gracefully: If we get a new connection for a tuple that we already [think we still] have one, close the old one and use the new. Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Closes: OS#4625 --- M src/osmo_ss7.c 1 file changed, 12 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index b7d69cb..9aeed9b 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1832,6 +1832,17 @@ if (asp) { LOGP(DLSS7, LOGL_INFO, "%s: matched connection to ASP %s\n", sock_name, asp->cfg.name); + /* we need to check if we already have a socket associated, and close it. Otherwise it might + * happen that both the listen-fd for this accept() and the old socket are marked 'readable' + * during the same scheduling interval, and we're processing them in the "wrong" order, i.e. + * we first see the accept of the new fd before we see the close on the old fd */ + if (asp->server) { + LOGPASP(asp, DLSS7, LOGL_FATAL, "accept of new connection from %s before old was closed " + "-> close old one\n", sock_name); + osmo_stream_srv_set_data(asp->server, NULL); + osmo_stream_srv_destroy(asp->server); + asp->server = NULL; + } } else { if (!oxs->cfg.accept_dyn_reg) { LOGP(DLSS7, LOGL_NOTICE, "%s: %s connection without matching " @@ -1870,13 +1881,13 @@ talloc_free(sock_name); return -1; } + llist_add_tail(&asp->siblings, &oxs->asp_list); } /* update the ASP reference back to the server over which the * connection came in */ asp->server = srv; asp->xua_server = oxs; - llist_add_tail(&asp->siblings, &oxs->asp_list); /* update the ASP socket name */ if (asp->sock_name) talloc_free(asp->sock_name); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Gerrit-Change-Number: 19001 Gerrit-PatchSet: 2 Gerrit-Owner: laforge 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 Thu Jun 25 06:56:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 06:56:12 +0000 Subject: Change in libosmo-sccp[master]: Revert "sccp_simple_client: only restart ASP if it was created" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 ) Change subject: Revert "sccp_simple_client: only restart ASP if it was created" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b Gerrit-Change-Number: 19002 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 06:56: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 Jun 25 06:56:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 06:56:15 +0000 Subject: Change in libosmo-sccp[master]: Revert "sccp_simple_client: only restart ASP if it was created" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 ) Change subject: Revert "sccp_simple_client: only restart ASP if it was created" ...................................................................... Revert "sccp_simple_client: only restart ASP if it was created" This reverts commit ec20a6164b046f9b6190dc886c3cc8a8e1445739. Reason for revert: this patch makes specific variants of 'cs7' config fail. In short, if AS and ASP are configured and connected, the ASP is never started. See OS#4635 for elaborate details. Related: OS#4635 Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b --- M src/sccp_user.c 1 file changed, 9 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/sccp_user.c b/src/sccp_user.c index 1278fae..d8a7357 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -597,16 +597,16 @@ talloc_free(asp_name); osmo_ss7_as_add_asp(as, asp->cfg.name); - - /* Ensure that the ASP we use is set to client mode. */ - asp->cfg.is_server = false; - asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; - - /* Restart ASP */ - if (prot != OSMO_SS7_ASP_PROT_IPA) - osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); - osmo_ss7_asp_restart(asp); } + + /* Ensure that the ASP we use is set to client mode. */ + asp->cfg.is_server = false; + asp->cfg.role = OSMO_SS7_ASP_ROLE_ASP; + + /* Restart ASP */ + if (prot != OSMO_SS7_ASP_PROT_IPA) + osmo_ss7_asp_use_default_lm(asp, LOGL_DEBUG); + osmo_ss7_asp_restart(asp); LOGP(DLSCCP, LOGL_NOTICE, "%s: Using ASP instance %s\n", name, asp->cfg.name); -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Id6e1fd69f312e5dc74e8718b2e2e678ad54bc16b Gerrit-Change-Number: 19002 Gerrit-PatchSet: 3 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 Jun 25 08:33:04 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 08:33:04 +0000 Subject: Change in osmo-msc[master]: vty 'show connection': show msc_a->via_cell instead of vsub->cgi In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18996 ) Change subject: vty 'show connection': show msc_a->via_cell instead of vsub->cgi ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/18996/1/src/libmsc/msc_vty.c File src/libmsc/msc_vty.c: https://gerrit.osmocom.org/c/osmo-msc/+/18996/1/src/libmsc/msc_vty.c at 912 PS1, Line 912: if (vsub) { You don't need this check anymore. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I194271af2acb37b4f8cc2d106ab2fd2b0d443589 Gerrit-Change-Number: 18996 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 25 Jun 2020 08:33:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 08:34:21 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 08:34:21 +0000 Subject: Change in osmo-msc[master]: propagate Compl L3 Info Cell ID to the VLR subscriber record In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18997 ) Change subject: propagate Compl L3 Info Cell ID to the VLR subscriber record ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a Gerrit-Change-Number: 18997 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 25 Jun 2020 08:34:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 09:25:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 09:25:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/RSL: pass lost link event to upper layers instead of failing In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 ) Change subject: library/RSL: pass lost link event to upper layers instead of failing ...................................................................... library/RSL: pass lost link event to upper layers instead of failing Some tests may expect that behavior so let the test decide what to do with it. Change-Id: Idd4bdfc99514f4c439837f0ce4a20ec5ff45e86c --- M library/RSL_Emulation.ttcn 1 file changed, 24 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 66cc4dc..2fcb96c 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -394,6 +394,20 @@ return f_streamId_by_trx(trx_nr); } +private function f_trx_conn_map_unregister(integer conn_id) +runs on RSL_Emulation_CT return IpaStreamId { + + for (var integer i := 0; i < sizeof(TrxConnMap); i := i + 1) { + if (conn_id == TrxConnMap[i]) { + TrxConnMap[i] := -1; + TrxConnNum := TrxConnNum - 1; + return f_streamId_by_trx(i); + } + } + + testcase.stop("Trying to unregister an unknown conn_id=", conn_id); +} + private function f_trx_conn_map_resolve(IpaStreamId id) runs on RSL_Emulation_CT return integer { var integer trx_nr := f_trx_by_streamId(id); @@ -498,12 +512,17 @@ /* Notify the upper layers about a new connection */ CCHAN_PT.send(ts_RSLEm_EV(RSLEM_EV_TRX_UP, sid)); } - [bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Lost IPA connection!"); - + [bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) -> value evt { + log("Lost IPA connection! (conn_id=", evt.conn_id, "): ", evt.id_resp); + /* Notify the upper layers about lost connection */ + var IpaStreamId sid := f_trx_conn_map_unregister(evt.conn_id); + CCHAN_PT.send(ts_RSLEm_EV(RSLEM_EV_TRX_DOWN, sid)); } - [not bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Lost IPA connection!"); + [not bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) -> value evt { + log("Lost IPA connection! (conn_id=", evt.conn_id, ")"); + /* Notify the upper layers about lost connection */ + var IpaStreamId sid := f_trx_conn_map_unregister(evt.conn_id); + CCHAN_PT.send(ts_RSLEm_EV(RSLEM_EV_TRX_DOWN, sid)); } [bts_role] IPA_PT.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_ACK)) { IPA_PT.send(ts_ASP_RSL_UD(ts_RSL_PAGING_LOAD_IND(23))); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idd4bdfc99514f4c439837f0ce4a20ec5ff45e86c Gerrit-Change-Number: 18979 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 09:27:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 09:27:20 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 09: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 Thu Jun 25 09:28:17 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 09:28:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 09:28: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 Jun 25 09:30:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 09:30:46 +0000 Subject: Change in osmo-msc[master]: add comments to clarify some complete l3 details In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18995 ) Change subject: add comments to clarify some complete l3 details ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6e289900d38d97c346d615b71d36656254e6f2b5 Gerrit-Change-Number: 18995 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 09: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 Thu Jun 25 09:31:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 09:31:20 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test latest: do not require VLR cell id match in latest build In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/19000 ) Change subject: ttcn3-msc-test latest: do not require VLR cell id match in latest build ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I052fea208021509e12826c50474b96474e7a58c2 Gerrit-Change-Number: 19000 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 09: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 Jun 25 09:35:58 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 09:35:58 +0000 Subject: Change in libosmo-sccp[master]: Fix race during fast re-establishment of inbound M3UA connections In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 ) Change subject: Fix race during fast re-establishment of inbound M3UA connections ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/19001/2/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/19001/2/src/osmo_ss7.c at 1842 PS2, Line 1842: osmo_stream_srv_set_data(asp->server, NULL); Why setting data to NULL here? shouldn't that be done instead destroy if ever needed? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa Gerrit-Change-Number: 19001 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 09:35:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 09:36:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 09:36:15 +0000 Subject: Change in osmo-pcu[master]: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17708 ) Change subject: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c Gerrit-Change-Number: 17708 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 09:36:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 09:36:19 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 09:36:19 +0000 Subject: Change in osmo-pcu[master]: bts: fix send_gsmtap_rach(): properly pack 11 bit RA In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17709 ) Change subject: bts: fix send_gsmtap_rach(): properly pack 11 bit RA ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb Gerrit-Change-Number: 17709 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 09: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 Thu Jun 25 09:38:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 09:38:06 +0000 Subject: Change in osmo-pcu[master]: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17708 ) Change subject: bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP ...................................................................... bts: add send_gsmtap_rach(), also send PTCCH/U over GSMTAP Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c --- M src/bts.cpp M src/bts.h M src/pcu_vty.c 3 files changed, 18 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 26cb258..0482168 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -430,6 +430,16 @@ return 0; } +void BTS::send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel, + const struct rach_ind_params *rip) +{ + struct pcu_l1_meas meas; + send_gsmtap_meas(categ, true, rip->trx_nr, rip->ts_nr, channel, + rfn_to_fn(rip->rfn), (uint8_t *) &rip->ra, + /* TODO: properly pack 11 bit RA */ + rip->is_11bit ? 2 : 1, &meas); +} + void BTS::send_gsmtap(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, uint8_t ts_no, uint8_t channel, uint32_t fn, const uint8_t *data, unsigned int len) @@ -801,9 +811,7 @@ uint32_t Fn = rfn_to_fn(rip->rfn); uint8_t ta = qta2ta(rip->qta); - send_gsmtap(PCU_GSMTAP_C_UL_RACH, true, rip->trx_nr, rip->ts_nr, - GSMTAP_CHANNEL_RACH, Fn, (uint8_t *) &rip->ra, - rip->is_11bit ? 2 : 1); + send_gsmtap_rach(PCU_GSMTAP_C_UL_RACH, GSMTAP_CHANNEL_RACH, rip); LOGP(DRLCMAC, LOGL_DEBUG, "MS requests Uplink resource on CCCH/RACH: " "ra=0x%02x (%d bit) Fn=%u qta=%d\n", rip->ra, @@ -908,6 +916,8 @@ struct gprs_rlcmac_pdch *pdch; uint8_t ss; + send_gsmtap_rach(PCU_GSMTAP_C_UL_PTCCH, GSMTAP_CHANNEL_PTCCH, rip); + /* Prevent buffer overflow */ if (rip->trx_nr >= ARRAY_SIZE(bts->trx) || rip->ts_nr >= 8) { LOGP(DRLCMAC, LOGL_ERROR, "(TRX=%u TS=%u RFN=%u) Rx malformed " diff --git a/src/bts.h b/src/bts.h index e6b7aa3..edccc28 100644 --- a/src/bts.h +++ b/src/bts.h @@ -67,6 +67,7 @@ PCU_GSMTAP_C_UL_DATA_GPRS = 18, /* uplink GPRS data blocks */ PCU_GSMTAP_C_UL_DATA_EGPRS = 19, /* uplink EGPRS data blocks */ PCU_GSMTAP_C_UL_RACH = 20, /* uplink RACH bursts */ + PCU_GSMTAP_C_UL_PTCCH = 21, /* uplink PTCCH bursts */ }; struct BTS; @@ -336,6 +337,8 @@ void send_gsmtap_meas(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, uint8_t ts_no, uint8_t channel, uint32_t fn, const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas); + void send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel, + const struct rach_ind_params *rip); /* * Below for C interface for the VTY diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 9cae777..99c92b7 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -38,6 +38,7 @@ { PCU_GSMTAP_C_UL_DATA_GPRS, "ul-data-gprs" }, { PCU_GSMTAP_C_UL_DATA_EGPRS, "ul-data-egprs" }, { PCU_GSMTAP_C_UL_RACH, "ul-rach" }, + { PCU_GSMTAP_C_UL_PTCCH, "ul-ptcch" }, { 0, NULL } }; @@ -58,6 +59,7 @@ { PCU_GSMTAP_C_UL_DATA_GPRS, "Uplink Data Blocks (GPRS)" }, { PCU_GSMTAP_C_UL_DATA_EGPRS, "Uplink Data Blocks (EGPRS)" }, { PCU_GSMTAP_C_UL_RACH, "Uplink RACH Bursts" }, + { PCU_GSMTAP_C_UL_PTCCH, "Uplink PTCCH Bursts" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I5cc4c3d2522215a31924121f83fcc2ac9ac6fe9c Gerrit-Change-Number: 17708 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 09:38:07 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 09:38:07 +0000 Subject: Change in osmo-pcu[master]: bts: fix send_gsmtap_rach(): properly pack 11 bit RA In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/17709 ) Change subject: bts: fix send_gsmtap_rach(): properly pack 11 bit RA ...................................................................... bts: fix send_gsmtap_rach(): properly pack 11 bit RA According to 3GPP TS 44.004, section 7.4a, two alternative RACH block formats are specified: 8 bit (1 octet) and 11 bit. The bit order is LSB (right to left), byte order is MSB. In PCUIF RACH.ind structure (see gsm_pcu_if_rach_ind) we use a field of type uint16_t to store RA values regardles of the block format. Thus when packing it to bytes, we cannot just cast uint16_t* to uint8_t*, we need to do some bit shifting. Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb --- M src/bts.cpp 1 file changed, 14 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/bts.cpp b/src/bts.cpp index 0482168..617cd78 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -434,9 +434,21 @@ const struct rach_ind_params *rip) { struct pcu_l1_meas meas; + uint8_t ra_buf[2]; + + /* 3GPP TS 44.004 defines 11 bit RA as follows: xxxx xxxx .... .yyy + * On the PCUIF, we get 16 bit machne dependent number (LE/BE) + * Over GSMTAP we send the following: xxxx xxxx yyy. .... + * This simplifies parsing in Wireshark using its CSN.1 codec. */ + if (rip->is_11bit) { + ra_buf[0] = (uint8_t) ((rip->ra >> 3) & 0xff); + ra_buf[1] = (uint8_t) ((rip->ra << 5) & 0xff); + } else { + ra_buf[0] = (uint8_t) (rip->ra & 0xff); + } + send_gsmtap_meas(categ, true, rip->trx_nr, rip->ts_nr, channel, - rfn_to_fn(rip->rfn), (uint8_t *) &rip->ra, - /* TODO: properly pack 11 bit RA */ + rfn_to_fn(rip->rfn), ra_buf, rip->is_11bit ? 2 : 1, &meas); } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/17709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I08a0a908f855b0d8a002df732e02781126d27dfb Gerrit-Change-Number: 17709 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 10:50:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:50:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980/2/bts/BTS_Tests.ttcn at 380 PS2, Line 380: f_connhdlr_init_vty_bsc > Hmm, a separate VTY connection for ConnHdlr is the easiest way, but maybe you can just re-map the po [?] I see no point in doing that for VTY conn, there's no limitation or issue with having several of them if ever needed. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 10:50: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 Thu Jun 25 10:53:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:53:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: Hello fixeria, neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 to look at the new patch set (#3). Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... bts: Introduce test TC_tx_power_start_ramp_down_bcch Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 --- M bts/BTS_Tests.ttcn 1 file changed, 118 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/80/18980/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 10:53:31 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:53:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce TC_tx_power_ramp_adm_state_change In-Reply-To: References: Message-ID: Hello fixeria, neels, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 to look at the new patch set (#2). Change subject: bts: Introduce TC_tx_power_ramp_adm_state_change ...................................................................... bts: Introduce TC_tx_power_ramp_adm_state_change Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da --- M bts/BTS_Tests.ttcn 1 file changed, 55 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/91/18991/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da Gerrit-Change-Number: 18991 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 10:55:09 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 10:55:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 10:55:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 10:57:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:57:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce TC_tx_power_ramp_adm_state_change In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 ) Change subject: bts: Introduce TC_tx_power_ramp_adm_state_change ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991/1/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991/1/bts/BTS_Tests.ttcn at 2219 PS1, Line 2219: * + ramping up during ADM state LOCKED->UNLOCKED > (the '+' are bullet points?) Yes. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da Gerrit-Change-Number: 18991 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 10:57:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 10:57:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:57:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... Patch Set 3: Code-Review+2 Reapplying +1 from neels after appyling smal lchanges requested by fixeria and merging -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 10:57: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 Jun 25 10:58:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:58:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce TC_tx_power_ramp_adm_state_change In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 ) Change subject: bts: Introduce TC_tx_power_ramp_adm_state_change ...................................................................... Patch Set 2: Code-Review+2 Added the serverdict(pass), re-applying +2 and merging. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da Gerrit-Change-Number: 18991 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 10:58: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 Jun 25 10:58:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:58:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce test TC_tx_power_start_ramp_down_bcch In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 ) Change subject: bts: Introduce test TC_tx_power_start_ramp_down_bcch ...................................................................... bts: Introduce test TC_tx_power_start_ramp_down_bcch Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 --- M bts/BTS_Tests.ttcn 1 file changed, 118 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 9ebd952..a60a50f 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -173,6 +173,9 @@ port TRXC_CODEC_PT BTS_TRXC; var integer g_bts_trxc_conn_id; + /* port to be initialized optionally to access BSC VTY */ + port TELNETasp_PT BSCVTY; + timer g_Tguard; timer g_Tmeas_exp := 2.0; /* >= 103 SACCH multiframe ~ 500ms */ @@ -374,6 +377,12 @@ f_vty_transceive(BSCVTY, "enable"); } +friend function f_connhdlr_init_vty_bsc() runs on ConnHdlr { + map(self:BSCVTY, system:BSCVTY); + f_vty_set_prompts(BSCVTY, "OsmoBSC"); + f_vty_transceive(BSCVTY, "enable"); +} + /* PCU socket may at any time receive a new INFO.ind */ private altstep as_pcu_info_ind(PCUIF_CODEC_PT pt, integer pcu_conn_id, out PCUIF_Message pcu_last_info) { @@ -2024,12 +2033,34 @@ f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr); } -/* Verify Tx power reduction and ramping up during BTS bring up */ -function f_TC_tx_power_start_ramp_up_bcch(charstring id) runs on ConnHdlr { +/* Wait until the BTS has reached full tx power (nominal tx power minus configured attenuation) */ +private function f_wait_ramp_up() runs on ConnHdlr return integer { var L1ctlDlMessage l1_dl; - f_l1_tune(L1CTL); - RSL.clear; + var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp; + timer Tup := 10.0; + Tup.start; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level; + log("Received rx_level=", rx_lvl); + if (rx_lvl != max_rx_lvl) { + repeat; + } + Tup.stop; + } + [] L1CTL.receive { repeat; } + [] Tup.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Didn't reach full power ", max_rx_lvl)); + } + } + return max_rx_lvl; +} + +/* verify BTS ramps power up to full tx power (nominal tx power minus configured attenuation) */ +private function f_verify_ramp_up() runs on ConnHdlr { + var L1ctlDlMessage l1_dl; var integer initial_rx_lvl := -1; var integer last_rx_lvl := -1; var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp; @@ -2087,6 +2118,61 @@ log2str("No Tx power increase during whole ramp up: ", initial_rx_lvl , " -> ", last_rx_lvl)); } +} + +/* verify BTS ramps power down to rx_level 0 */ +private function f_verify_ramp_down(integer max_rx_lvl) runs on ConnHdlr { + var L1ctlDlMessage l1_dl; + var integer last_rx_lvl := max_rx_lvl; + + timer Tdown := 5.0; + Tdown.start; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level; + log("Received rx_level=", rx_lvl); + + /* received Rx level bigger than maximum allowed power by CN */ + if (rx_lvl > max_rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power higher than full power: ", + rx_lvl , " > ", max_rx_lvl)); + } + + /* Make sure it never increases, since we are rumping down */ + if (last_rx_lvl < rx_lvl) { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Detected Tx power increase during ramp up: ", + last_rx_lvl , " -> ", rx_lvl)); + } + + last_rx_lvl := rx_lvl; + if (last_rx_lvl != 0) { + repeat; + } + /* we reached power level 0, we are done */ + Tdown.stop; + } + [] L1CTL.receive { repeat; } + [] Tdown.timeout { } + } + + /* We didn't increase tx power during ramp down */ + if (max_rx_lvl > last_rx_lvl) { + log("Tx power decreased during ramp down: ", max_rx_lvl , " -> ", last_rx_lvl); + } else { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("No Tx power decrease during whole ramp down: ", + max_rx_lvl , " -> ", last_rx_lvl)); + } +} + +/* Verify Tx power reduction and ramping up during BTS bring up */ +function f_TC_tx_power_start_ramp_up_bcch(charstring id) runs on ConnHdlr { + f_l1_tune(L1CTL); + RSL.clear; + + f_verify_ramp_up(); setverdict(pass); } @@ -2101,6 +2187,33 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } +/* Verify Tx power reduction and ramping downd uring BTS bring shutdown due to Abis link failure */ +function f_TC_tx_power_start_ramp_down_bcch(charstring id) runs on ConnHdlr { + f_connhdlr_init_vty_bsc(); + + f_l1_tune(L1CTL); + RSL.clear; + + /* Wait until BTS is started and at full power */ + var integer max_rx_lvl := f_wait_ramp_up(); + log("Reached nominal level ", max_rx_lvl, ", shutting down OML link"); + + f_vty_transceive(BSCVTY, "drop bts connection 0 oml"); + f_verify_ramp_down(max_rx_lvl); + + setverdict(pass); +} +testcase TC_tx_power_start_ramp_down_bcch() runs on test_CT { + var ConnHdlr vc_conn; + var ConnHdlrPars pars; + f_init(); + pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN)); + vc_conn := f_start_handler(refers(f_TC_tx_power_start_ramp_down_bcch), pars, + pcu_comp := false, trxc_comp := true); + vc_conn.done; + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + function f_check_meas_bs_power_level(integer level) runs on ConnHdlr { timer T := 8.0; T.start; @@ -6519,6 +6632,7 @@ execute( TC_meas_res_sign_sdcch8() ); execute( TC_meas_res_sign_tchh_toa256() ); execute( TC_tx_power_start_ramp_up_bcch() ); + execute( TC_tx_power_start_ramp_down_bcch() ); execute( TC_rsl_bs_pwr_static_ass() ); execute( TC_rsl_bs_pwr_static_power_control() ); execute( TC_rsl_ms_pwr_ctrl() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12 Gerrit-Change-Number: 18980 Gerrit-PatchSet: 3 Gerrit-Owner: pespin 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 Thu Jun 25 10:58:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 10:58:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Introduce TC_tx_power_ramp_adm_state_change In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 ) Change subject: bts: Introduce TC_tx_power_ramp_adm_state_change ...................................................................... bts: Introduce TC_tx_power_ramp_adm_state_change Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da --- M bts/BTS_Tests.ttcn 1 file changed, 55 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index a60a50f..132e13e 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -2214,6 +2214,60 @@ Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } +/* Verify Tx power: + * + ramping down during ADM state UNLOCKED->LOCKED + * + ramping up during ADM state LOCKED->UNLOCKED + */ +function f_TC_tx_power_ramp_adm_state_change(charstring id) runs on ConnHdlr { + var L1ctlDlMessage l1_dl; + var integer last_rx_lvl; + + f_connhdlr_init_vty_bsc(); + + f_l1_tune(L1CTL); + RSL.clear; + + /* Wait until BTS is started and at full power */ + var integer max_rx_lvl := f_wait_ramp_up(); + log("Reached nominal level ", max_rx_lvl, ", changing ADM state to LOCKED"); + + log("ADM STATE UNLOCKED->LOCKED"); + f_vty_enter_cfg_trx(BSCVTY); + f_vty_transceive(BSCVTY, "rf_locked 1"); + last_rx_lvl := max_rx_lvl; + f_verify_ramp_down(max_rx_lvl); + + /* Let some time after we received 0dBm, then check we don't receive BCCH + * anymore because scheduler has stopped after ramping down */ + f_sleep(2.0); + L1CTL.clear; + timer Tlocked := 2.0; + Tlocked.start; + alt { + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Received data_ind during rf_locked: ", l1_dl)); + } + [] L1CTL.receive { repeat; } + [] Tlocked.timeout { setverdict(pass, "Didn't receive data_ind while in rf_locked state."); } + } + + log("ADM STATE LOCKED->UNLOCKED"); + f_vty_transceive(BSCVTY, "rf_locked 0"); + f_verify_ramp_up(); + setverdict(pass); +} +testcase TC_tx_power_ramp_adm_state_change() runs on test_CT { + var ConnHdlr vc_conn; + var ConnHdlrPars pars; + f_init(); + pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN)); + vc_conn := f_start_handler(refers(f_TC_tx_power_ramp_adm_state_change), pars, + pcu_comp := false, trxc_comp := true); + vc_conn.done; + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + function f_check_meas_bs_power_level(integer level) runs on ConnHdlr { timer T := 8.0; T.start; @@ -6633,6 +6687,7 @@ execute( TC_meas_res_sign_tchh_toa256() ); execute( TC_tx_power_start_ramp_up_bcch() ); execute( TC_tx_power_start_ramp_down_bcch() ); + execute( TC_tx_power_ramp_adm_state_change() ); execute( TC_rsl_bs_pwr_static_ass() ); execute( TC_rsl_bs_pwr_static_power_control() ); execute( TC_rsl_ms_pwr_ctrl() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I03efdfe19e9cecadb0d03811a7029b54bf6281da Gerrit-Change-Number: 18991 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Thu Jun 25 11:05:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 11:05:33 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx outpu... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18918 ) Change subject: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx output power ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6 Gerrit-Change-Number: 18918 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Thu, 25 Jun 2020 11:05:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:05:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 11:05:36 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx outpu... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18918 ) Change subject: LMSDevice: Compute TxGain on LimeSuite API based on expected Tx output power ...................................................................... LMSDevice: Compute TxGain on LimeSuite API based on expected Tx output power Right now, according to a few measurements taken on LimeMicro devices, we expect the Tx Gain at UHD level to relate 1:1 with the slope in Tx output power given a specific band. If more fine-grained results are wanted or some device doesn't follow a 1:1 slope relationship, functions TxGain2TxPower and TxPower2TxGain need to be adapted/improved. This patch is basically doing the same thing as was done previously for UHDDevice in 992c9bd1cea410e2dd42ce7566299104b5648aff. Related: OS#4583 Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h 2 files changed, 144 insertions(+), 51 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 355c8e4..8bb5316 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -65,8 +65,6 @@ * LimeNET-Micro does not like selecting internal clock */ bool clock_src_int_usable; - /* Device specific maximum tx levels selected by phasenoise measurements, in dB */ - double max_tx_gain; /* Sample rate coef (without having TX/RX samples per symbol into account) */ double rate; /* Sample rate coef (without having TX/RX samples per symbol into account), if multi-arfcn is enabled */ @@ -80,12 +78,48 @@ }; static const std::map dev_param_map { - { LMS_DEV_SDR_USB, { true, true, 73.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_SDR_USB_PREFIX_NAME } }, - { LMS_DEV_SDR_MINI, { false, true, 66.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 8.2e-5, LMS_DEV_SDR_MINI_PREFIX_NAME } }, - { LMS_DEV_NET_MICRO, { true, false, 71.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_NET_MICRO_PREFIX_NAME } }, - { LMS_DEV_UNKNOWN, { true, true, 73.0, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, "UNKNOWN" } }, + { LMS_DEV_SDR_USB, { true, true, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_SDR_USB_PREFIX_NAME } }, + { LMS_DEV_SDR_MINI, { false, true, GSMRATE, MCBTS_SPACING, 8.9e-5, 8.2e-5, LMS_DEV_SDR_MINI_PREFIX_NAME } }, + { LMS_DEV_NET_MICRO, { true, false, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, LMS_DEV_NET_MICRO_PREFIX_NAME } }, + { LMS_DEV_UNKNOWN, { true, true, GSMRATE, MCBTS_SPACING, 8.9e-5, 7.9e-5, "UNKNOWN" } }, }; +typedef std::tuple dev_band_key; +/* Maximum LimeSuite Tx Gain which can be set/used without distorting the output + * signal, and the resulting real output power measured when that gain is used. + */ +struct dev_band_desc { + double nom_lms_tx_gain; /* dB */ + double nom_out_tx_power; /* dBm */ +}; +typedef std::map::const_iterator dev_band_map_it; +static const std::map dev_band_nom_power_param_map { + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_850), { 73.0, 11.2 } }, + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_900), { 73.0, 10.8 } }, + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_1800), { 65.0, -3.5 } }, /* FIXME: OS#4583: 1800Mhz is failing above TxGain=65, which is around -3.5dBm (already < 0 dBm) */ + { std::make_tuple(LMS_DEV_SDR_USB, GSM_BAND_1900), { 73.0, 1.7 } }, /* FIXME: OS#4583: 1900MHz is failing in all TxGain values */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_850), { 66.0, 3.1 } }, /* FIXME: OS#4583: Ensure BAND2 is used at startup */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_900), { 66.0, 2.8 } }, /* FIXME: OS#4583: Ensure BAND2 is used at startup */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_1800), { 66.0, -11.6 } }, /* OS#4583: Any of BAND1 or BAND2 is fine */ + { std::make_tuple(LMS_DEV_SDR_MINI, GSM_BAND_1900), { 66.0, -9.2 } }, /* FIXME: OS#4583: Ensure BAND1 is used at startup */ + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_850), { 71.0, 6.8 } }, + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_900), { 71.0, 6.8 } }, + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_1800), { 65.0, -10.5 } }, /* OS#4583: TxGain=71 (-4.4dBm) FAIL rms phase errors ~10? */ + { std::make_tuple(LMS_DEV_NET_MICRO, GSM_BAND_1900), { 71.0, -6.3 } }, /* FIXME: OS#4583: all FAIL, BAND1/BAND2 rms phase errors >23? */ +}; + +/* So far measurements done for B210 show really close to linear relationship + * between gain and real output power, so we simply adjust the measured offset + */ +static double TxGain2TxPower(const dev_band_desc &desc, double tx_gain_db) +{ + return desc.nom_out_tx_power - (desc.nom_lms_tx_gain - tx_gain_db); +} +static double TxPower2TxGain(const dev_band_desc &desc, double tx_power_dbm) +{ + return desc.nom_lms_tx_gain - (desc.nom_out_tx_power - tx_power_dbm); +} + static enum lms_dev_type parse_dev_type(lms_device_t *m_lms_dev) { std::map::const_iterator it = dev_param_map.begin(); @@ -110,7 +144,7 @@ const std::vector& tx_paths, const std::vector& rx_paths): RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), - m_lms_dev(NULL), started(false), m_dev_type(LMS_DEV_UNKNOWN) + m_lms_dev(NULL), started(false), band((enum gsm_band)0), m_dev_type(LMS_DEV_UNKNOWN) { LOGC(DDEV, INFO) << "creating LMS device..."; @@ -197,6 +231,27 @@ return -1; } +void LMSDevice::get_dev_band_desc(dev_band_desc& desc) +{ + dev_band_map_it it; + enum gsm_band req_band = band; + + if (req_band == 0) { + LOGC(DDEV, ERROR) << "Nominal Tx Power requested before Tx Frequency was set! Providing band 900 by default... "; + req_band = GSM_BAND_900; + } + it = dev_band_nom_power_param_map.find(dev_band_key(m_dev_type, req_band)); + if (it == dev_band_nom_power_param_map.end()) { + dev_desc desc = dev_param_map.at(m_dev_type); + LOGC(DDEV, ERROR) << "No Tx Power measurements exist for device " + << desc.name_prefix << " on band " << gsm_band_name(req_band) + << ", using LimeSDR-USB ones as fallback"; + it = dev_band_nom_power_param_map.find(dev_band_key(LMS_DEV_SDR_USB, req_band)); + } + OSMO_ASSERT(it != dev_band_nom_power_param_map.end()) + desc = it->second; +} + int LMSDevice::open(const std::string &args, int ref, bool swap_channels) { lms_info_str_t* info_list; @@ -322,17 +377,20 @@ LOGC(DDEV, INFO) << "starting LMS..."; unsigned int i; + dev_band_desc desc; if (started) { LOGC(DDEV, ERR) << "Device already started"; return false; } + get_dev_band_desc(desc); + /* configure the channels/streams */ for (i=0; i maxTxGain()) - dB = maxTxGain(); - if (dB < minTxGain()) - dB = minTxGain(); - - LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB"; - - if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) - LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB"; - else - tx_gains[chan] = dB; - return tx_gains[chan]; -} - double LMSDevice::setRxGain(double dB, size_t chan) { if (dB > maxRxGain()) @@ -530,12 +561,45 @@ return rx_gains[chan]; } +double LMSDevice::setPowerAttenuation(int atten, size_t chan) +{ + double dB; + dev_band_desc desc; + + if (chan >= tx_gains.size()) { + LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; + return 0.0f; + } + + get_dev_band_desc(desc); + dB = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + + LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB"; + + if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) + LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB"; + else + tx_gains[chan] = dB; + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); +} + +double LMSDevice::getPowerAttenuation(size_t chan) { + dev_band_desc desc; + if (chan >= tx_gains.size()) { + LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; + return 0.0f; + } + + get_dev_band_desc(desc); + return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); +} + int LMSDevice::getNominalTxPower(size_t chan) { - /* TODO: return value based on some experimentally generated table depending on - * band/arfcn, which is known here thanks to TXTUNE - */ - return 23; + dev_band_desc desc; + get_dev_band_desc(desc); + + return desc.nom_out_tx_power; } void LMSDevice::log_ant_list(bool dir_tx, size_t chan, std::ostringstream& os) @@ -904,13 +968,39 @@ bool LMSDevice::setTxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + + if (chan >= chans) { + LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; + return false; + } + LOGCHAN(chan, DDEV, NOTICE) << "Setting Tx Freq to " << wFreq << " Hz"; + req_arfcn = gsm_freq102arfcn(wFreq / 1000 / 100 , 0); + if (req_arfcn == 0xffff) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown ARFCN for Tx Frequency " << wFreq / 1000 << " kHz"; + return false; + } + if (gsm_arfcn2band_rc(req_arfcn, &req_band) < 0) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown GSM band for Tx Frequency " << wFreq + << " Hz (ARFCN " << req_arfcn << " )"; + return false; + } + + if (band != 0 && req_band != band) { + LOGCHAN(chan, DDEV, ALERT) << "Requesting Tx Frequency " << wFreq + << " Hz different from previous band " << gsm_band_name(band); + return false; + } + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_TX, chan, wFreq) < 0) { LOGCHAN(chan, DDEV, ERROR) << "Error setting Tx Freq to " << wFreq << " Hz"; return false; } + band = req_band; return true; } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index c83fed2..b6a6ab9 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -32,6 +32,10 @@ #include #include +extern "C" { +#include +} + /* Definition of LIMESDR_TX_AMPL limits maximum amplitude of I and Q * channels separately. Hence LIMESDR_TX_AMPL value must be 1/sqrt(2) = * 0.7071.... to get an amplitude of 1 of the complex signal: @@ -48,6 +52,8 @@ LMS_DEV_UNKNOWN, }; +struct dev_band_desc; + /** A class to handle a LimeSuite supported device */ class LMSDevice:public RadioDevice { @@ -66,6 +72,7 @@ TIMESTAMP ts_initial, ts_offset; std::vector tx_gains, rx_gains; + enum gsm_band band; enum lms_dev_type m_dev_type; @@ -77,19 +84,11 @@ void update_stream_stats_rx(size_t chan, bool *overrun); void update_stream_stats_tx(size_t chan, bool *underrun); bool do_clock_src_freq(enum ReferenceType ref, double freq); - /** sets the transmit chan gain, returns the gain setting **/ - double setTxGain(double dB, size_t chan = 0); + void get_dev_band_desc(dev_band_desc& desc); - /** get transmit gain */ - double getTxGain(size_t chan = 0) { - return tx_gains[chan]; - } - - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); + double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } + double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; + double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; public: @@ -178,6 +177,10 @@ /** return minimum Rx Gain **/ double minRxGain(void); + + double setPowerAttenuation(int atten, size_t chan); + double getPowerAttenuation(size_t chan = 0); + int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If154fe4d4cd118aa30ea43c22ee7119117b77da6 Gerrit-Change-Number: 18918 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:12:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:12:16 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: add getter to retrieve received bitrate In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 ) Change subject: iperf3: add getter to retrieve received bitrate ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981/1/src/osmo_gsm_tester/obj/iperf3.py File src/osmo_gsm_tester/obj/iperf3.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981/1/src/osmo_gsm_tester/obj/iperf3.py at 336 PS1, Line 336: return get_received_mbps(self.get_results(), isUdp=True) Shrink it to one line: return get_received_mbps(self.get_results(), self.proto() == self.PROTO_UDP) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 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: Id5676ce002cab6d52480b9b0f996f3065fd5dda6 Gerrit-Change-Number: 18981 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11:12:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:12:51 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:12:51 +0000 Subject: Change in osmo-gsm-tester[master]: ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18982 ) Change subject: ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18982 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: I857bed943b0184540b0a8ac696e7ebddd693be87 Gerrit-Change-Number: 18982 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11:12:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:15:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:15:02 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: fix scp-back-metrics routine In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18983 ) Change subject: ms_srs: fix scp-back-metrics routine ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18983 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: Ie7c156a5b2c8768bf90ff8e86515976e0d454c25 Gerrit-Change-Number: 18983 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11:15: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 Jun 25 11:15:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:15:09 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: add getter to retrieve received bitrate In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 ) Change subject: iperf3: add getter to retrieve received bitrate ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 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: Id5676ce002cab6d52480b9b0f996f3065fd5dda6 Gerrit-Change-Number: 18981 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11:15:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:15:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:15:46 +0000 Subject: Change in osmo-gsm-tester[master]: {enb, epc, ms}_srs: expose log.all_level parameter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18984 ) Change subject: {enb,epc,ms}_srs: expose log.all_level parameter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18984 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: I4e77e5351399aefef47a309c82b8805e2c6022c5 Gerrit-Change-Number: 18984 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11: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 Thu Jun 25 11:17:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 11:17:59 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: remove use-after-free of stream_server after close_cb References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19004 ) Change subject: osmo_ss7: remove use-after-free of stream_server after close_cb ...................................................................... osmo_ss7: remove use-after-free of stream_server after close_cb In I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa we fixed some problems regarding rapid open/close cycles of inbound M3UA client connections. Unfortunately the fix now triggered another bug. xua_srv_conn_closed_cb() is called by libosmo-netif stream code whenever a connection (socket) is closed. As the stream_server is de-allocated right after this call-back, the call-back must make sure to remove any pending references to the stream_server. Change-Id: I2464cf524f1f91bfad10ff1861a03bf1461dfed8 Related: OS#4625 --- M src/osmo_ss7.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/04/19004/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 9aeed9b..cdac27a 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1786,12 +1786,13 @@ /* send M-SCTP_RELEASE.ind to Layer Manager */ xua_asp_send_xlm_prim_simple(asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_INDICATION); + asp->server = NULL; + /* if we were dynamically allocated at accept_cb() time, let's * self-destruct now. A new connection will re-create the ASP. */ if (asp->dyn_allocated) { /* avoid re-entrance via osmo_stream_srv_destroy() which * called us */ - asp->server = NULL; osmo_ss7_asp_destroy(asp); } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2464cf524f1f91bfad10ff1861a03bf1461dfed8 Gerrit-Change-Number: 19004 Gerrit-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 Jun 25 11:18:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 11:18:51 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: remove use-after-free of stream_server after close_cb In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19004 ) Change subject: osmo_ss7: remove use-after-free of stream_server after close_cb ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2464cf524f1f91bfad10ff1861a03bf1461dfed8 Gerrit-Change-Number: 19004 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 25 Jun 2020 11:18:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:18:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 11:18:54 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7: remove use-after-free of stream_server after close_cb In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19004 ) Change subject: osmo_ss7: remove use-after-free of stream_server after close_cb ...................................................................... osmo_ss7: remove use-after-free of stream_server after close_cb In I9b3ae6dfcf6efeabb7fb6c33503d1d7924fec2fa we fixed some problems regarding rapid open/close cycles of inbound M3UA client connections. Unfortunately the fix now triggered another bug. xua_srv_conn_closed_cb() is called by libosmo-netif stream code whenever a connection (socket) is closed. As the stream_server is de-allocated right after this call-back, the call-back must make sure to remove any pending references to the stream_server. Change-Id: I2464cf524f1f91bfad10ff1861a03bf1461dfed8 Related: OS#4625 --- M src/osmo_ss7.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 9aeed9b..cdac27a 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1786,12 +1786,13 @@ /* send M-SCTP_RELEASE.ind to Layer Manager */ xua_asp_send_xlm_prim_simple(asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_INDICATION); + asp->server = NULL; + /* if we were dynamically allocated at accept_cb() time, let's * self-destruct now. A new connection will re-create the ASP. */ if (asp->dyn_allocated) { /* avoid re-entrance via osmo_stream_srv_destroy() which * called us */ - asp->server = NULL; osmo_ss7_asp_destroy(asp); } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2464cf524f1f91bfad10ff1861a03bf1461dfed8 Gerrit-Change-Number: 19004 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:19:12 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:19:12 +0000 Subject: Change in osmo-gsm-tester[master]: process: provide API to return filename for process output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 ) Change subject: process: provide API to return filename for process output ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985/1/src/osmo_gsm_tester/core/process.py File src/osmo_gsm_tester/core/process.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985/1/src/osmo_gsm_tester/core/process.py at 325 PS1, Line 325: path = self.get_output_file(which) Missing return None if path is None. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 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: I5e70fd1593a5bc7902fa218aae6452103545e4e0 Gerrit-Change-Number: 18985 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11:19:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 11:26:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:26:07 +0000 Subject: Change in osmo-gsm-tester[master]: {ms, enb}_srs: add method to read kpi from a test run In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 ) Change subject: {ms,enb}_srs: add method to read kpi from a test run ...................................................................... Patch Set 1: (7 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py File src/osmo_gsm_tester/obj/srslte_common.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 5 PS1, Line 5: # Author: Pau Espin Pedrol I'm not the author ;) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 20 PS1, Line 20: class srslte_common(): inherit from log.Origin https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 26 PS1, Line 26: from kpi_analyzer import kpi_analyzer So this kpi_analyzer is out of tree? What does it do exactly? can't it be mainlained? Please document so in the code. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 28 PS1, Line 28: if self.log_file is not None: add self.log_file = None to the constructor, this way it's easy to see which fields are expected to be set by subclasses. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 29 PS1, Line 29: kpis["log_" + self.name()] = analyzer.get_kpi_from_logfile(self.log_file) if you use self.name(), you definetly want to inherit from log.Origin here. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 30 PS1, Line 30: if self.process.get_output_file('stdout') is not None: self.process = None in constructor https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 35 PS1, Line 35: print("Can't load KPI analyzer module.") self.log() (or self.err()) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 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: I28226a375f9ac4e08424c488062ae6a74a19af92 Gerrit-Change-Number: 18986 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11:26: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 Jun 25 11:26:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:26:24 +0000 Subject: Change in osmo-gsm-tester[master]: amarisoft_enb: update lteenb default parameter for PDCCH, SRS and CQI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18987 ) Change subject: amarisoft_enb: update lteenb default parameter for PDCCH, SRS and CQI ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18987 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: I62a4240ac062d793ae5e197f852ea09eb4fe4ae9 Gerrit-Change-Number: 18987 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11: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 Jun 25 11:27:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:27:20 +0000 Subject: Change in osmo-gsm-tester[master]: test: append KPI rather than overwrite in set_kpi() method In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18988 ) Change subject: test: append KPI rather than overwrite in set_kpi() method ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18988 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: I5f68d9e6e1135ee2afa79c9af2ed240d371214c4 Gerrit-Change-Number: 18988 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11: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 Thu Jun 25 11:28:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:28:05 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: add default EARFCNs for 4xCA config In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18989 ) Change subject: srsue.conf.tmpl: add default EARFCNs for 4xCA config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18989 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: I553241735b5e204cb4be03936b90628d156c418c Gerrit-Change-Number: 18989 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 11:28: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 Jun 25 11:43:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 11:43:05 +0000 Subject: Change in docker-playground[master]: bsc: Store osmo-bts-omldummy logs out of docker container References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/19005 ) Change subject: bsc: Store osmo-bts-omldummy logs out of docker container ...................................................................... bsc: Store osmo-bts-omldummy logs out of docker container Change-Id: I0c02c4a9311122c3fe8ca877e02043f697723281 --- M ttcn3-bsc-test/jenkins.sh 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/05/19005/1 diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 7f84151..11b9d2a 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -17,6 +17,8 @@ mkdir $VOL_BASE_DIR/bsc cp osmo-bsc.cfg $VOL_BASE_DIR/bsc/ +mkdir $VOL_BASE_DIR/bts-omldummy + # Disable MSC pooling features until osmo-bsc.git release > 1.6.0 is available if [ "$IMAGE_SUFFIX" = "latest" ]; then cp pre-mscpool-osmo-bsc.cfg $VOL_BASE_DIR/bsc/osmo-bsc.cfg @@ -48,6 +50,7 @@ docker run --rm \ --network $NET_NAME --ip 172.18.2.10$i \ --ulimit core=-1 \ + -v $VOL_BASE_DIR/bts-omldummy:/data \ --name ${BUILD_TAG}-bts$i -d \ $DOCKER_ARGS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0c02c4a9311122c3fe8ca877e02043f697723281 Gerrit-Change-Number: 19005 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 Jun 25 12:18:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 12:18:48 +0000 Subject: Change in osmo-bts[master]: Fix shutdown in osmo-bts-{omldummy, virtual} References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19006 ) Change subject: Fix shutdown in osmo-bts-{omldummy,virtual} ...................................................................... Fix shutdown in osmo-bts-{omldummy,virtual} Change-Id: Idadb62ec25181b140d9061dc7470da00d47d8336 --- M include/osmo-bts/bts_model.h M src/osmo-bts-omldummy/bts_model.c M src/osmo-bts-virtual/bts_model.c 3 files changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/06/19006/1 diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h index f62291c..4fd0813 100644 --- a/include/osmo-bts/bts_model.h +++ b/include/osmo-bts/bts_model.h @@ -43,6 +43,7 @@ int bts_model_oml_estab(struct gsm_bts *bts); +/* Implementation should call power_trx_change_compl() to confirm power change applied */ int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm); int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan); diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index dc0e041..c31354f 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -158,7 +158,7 @@ int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) { - LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + power_trx_change_compl(trx, p_trxout_mdBm); return 0; } diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index 8209ce2..dfce81f 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -175,6 +175,7 @@ int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) { LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + power_trx_change_compl(trx, p_trxout_mdBm); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idadb62ec25181b140d9061dc7470da00d47d8336 Gerrit-Change-Number: 19006 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 Jun 25 12:18:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 12:18:49 +0000 Subject: Change in osmo-bts[master]: bts-omldumy: Implement bts_model_trx_close References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19007 ) Change subject: bts-omldumy: Implement bts_model_trx_close ...................................................................... bts-omldumy: Implement bts_model_trx_close Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff --- M src/osmo-bts-omldummy/bts_model.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/07/19007/1 diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index c31354f..e4cc826 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -52,7 +52,8 @@ void bts_model_trx_close(struct gsm_bts_trx *trx) { - LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + trx_set_available(trx, 0); + bts_model_trx_close_cb(trx, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff Gerrit-Change-Number: 19007 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 Jun 25 12:18:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 12:18:49 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Speed up shutdown (instantaneous ramp) References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19008 ) Change subject: bts-omldummy: Speed up shutdown (instantaneous ramp) ...................................................................... bts-omldummy: Speed up shutdown (instantaneous ramp) Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 --- M src/osmo-bts-omldummy/bts_model.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/08/19008/1 diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index e4cc826..1ff336e 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -182,6 +182,9 @@ int bts_model_trx_init(struct gsm_bts_trx *trx) { + struct trx_power_params *tpp = &trx->power_params; + /* Speed up shutdown, we don't care about power ramping in omldummy */ + tpp->ramp.step_interval_sec = 0; return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 Gerrit-Change-Number: 19008 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 Jun 25 12:19:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 12:19:22 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Implement bts_model_trx_close In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/19007 ) Change subject: bts-omldummy: Implement bts_model_trx_close ...................................................................... bts-omldummy: Implement bts_model_trx_close Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff --- M src/osmo-bts-omldummy/bts_model.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/07/19007/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff Gerrit-Change-Number: 19007 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 Jun 25 12:19:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 12:19:22 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Speed up shutdown (instantaneous ramp) In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/19008 ) Change subject: bts-omldummy: Speed up shutdown (instantaneous ramp) ...................................................................... bts-omldummy: Speed up shutdown (instantaneous ramp) Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 --- M src/osmo-bts-omldummy/bts_model.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/08/19008/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 Gerrit-Change-Number: 19008 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 Jun 25 13:53:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 13:53:52 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: add getter to read the actual run time of an iperf client run In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18866 ) Change subject: iperf3: add getter to read the actual run time of an iperf client run ...................................................................... iperf3: add getter to read the actual run time of an iperf client run this is helpful to run some action for the exact run time of an iperf3 session. note that if no time spec is given when calling "prepare_test_proc()", a modifier could set the runtime of an DL experiment to an arbitrary value so we need to have a mechanism to read the actual time from within a test Change-Id: I484a0add322ffd269a1e9df72a00cf348950b268 --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index 4ccbf42..e0e05d8 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -209,6 +209,7 @@ self.server = iperf3srv self.testenv = testenv self._proto = None + self._time_sec = None self.log_file = None self.rem_host = None self.remote_log_file = None @@ -237,6 +238,7 @@ else: time_sec = int(time_sec_str) assert(time_sec) + self._time_sec = time_sec if proto is None: proto = values.get('protocol', IPerf3Client.PROTO_TCP) @@ -324,6 +326,9 @@ def proto(self): return self._proto + def time_sec(self): + return self._time_sec + def __str__(self): # FIXME: somehow differentiate between several clients connected to same server? return "%s:%u" %(self.server.addr(), self.server.port()) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18866 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: I484a0add322ffd269a1e9df72a00cf348950b268 Gerrit-Change-Number: 18866 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 13:53:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 13:53:53 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add getter for number of cells of an eNB In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18867 ) Change subject: enb: add getter for number of cells of an eNB ...................................................................... enb: add getter for number of cells of an eNB In order to set up the channel emulator we need to calculate the total number of RF channels that a eNB has from within a test. Change-Id: If641993033eb5dcdc6e2d6afdc8426ed322241ca --- M src/osmo_gsm_tester/obj/enb.py 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 4a151d7..d9fe1a5 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -130,6 +130,9 @@ return 1 return 2 + def num_cells(self): + return self._num_cells + ######################## # PUBLIC - INTERNAL API ######################## -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18867 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: If641993033eb5dcdc6e2d6afdc8426ed322241ca Gerrit-Change-Number: 18867 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 13:53:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 13:53:53 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: add getter to retrieve received bitrate In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 ) Change subject: iperf3: add getter to retrieve received bitrate ...................................................................... iperf3: add getter to retrieve received bitrate Change-Id: Id5676ce002cab6d52480b9b0f996f3065fd5dda6 --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 17 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index e0e05d8..d61dbb1 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -70,6 +70,14 @@ print("Exception while using iperf3 %s results: %r" % (node_str, repr(result))) raise e +def get_received_mbps(result, isUdp=True): + try: + recv = result['end']['sum' if isUdp else 'sum_received'] + return recv['bits_per_second']/1e6 + except Exception as e: + print("Exception while using iperf3 results: %r" % (repr(result))) + raise e + class IPerf3Server(log.Origin): DEFAULT_SRV_PORT = 5003 @@ -170,6 +178,9 @@ else: print_result_node_tcp(self.get_results(), 'server') + def get_received_mbps(self, client_was_udp): + return get_received_mbps(self.get_results(), client_was_udp) + def addr(self): return self.ip_address.get('addr') @@ -320,6 +331,12 @@ else: print_result_node_tcp(self.get_results(), 'client') + def get_received_mbps(self): + if self.proto() == self.PROTO_UDP: + return get_received_mbps(self.get_results(), isUdp=True) + else: + return get_received_mbps(self.get_results(), isUdp=False) + def set_run_node(self, run_node): self._run_node = run_node -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18981 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: Id5676ce002cab6d52480b9b0f996f3065fd5dda6 Gerrit-Change-Number: 18981 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 13:53:53 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 13:53:53 +0000 Subject: Change in osmo-gsm-tester[master]: ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18982 ) Change subject: ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 ...................................................................... ltemme: add two on-demand dedicated bearer for TOS 0xb8 and 0x60 two bearer of QCI 1 and 2 Change-Id: I857bed943b0184540b0a8ac696e7ebddd693be87 --- M src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl 1 file changed, 50 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl index ce7200f..5fcc74a 100644 --- a/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/amarisoft_ltemme.cfg.tmpl @@ -68,6 +68,56 @@ pre_emption_capability: "shall_not_trigger_pre_emption", pre_emption_vulnerability: "not_pre_emptable", }, + { + qci: 1, + priority_level: 1, + pre_emption_capability: "shall_not_trigger_pre_emption", + pre_emption_vulnerability: "not_pre_emptable", + setup_type: "on_demand", + filters: [ + { + direction: "both", + id: 1, + precedence: 0, + components: [ + { + type_of_service: 0xb8, + mask: 255 + } + ] + } + ], + on_demand_timeout: 10000, + on_demand_ul_trigger: true, + transaction_identifier: 20, + radio_priority: 1, + packet_flow_identifier: 20 + }, + { + qci: 2, + priority_level: 1, + pre_emption_capability: "shall_not_trigger_pre_emption", + pre_emption_vulnerability: "not_pre_emptable", + setup_type: "on_demand", + filters: [ + { + direction: "both", + id: 2, + precedence: 1, + components: [ + { + type_of_service: 0x60, + mask: 255 + } + ] + } + ], + on_demand_timeout: 10000, + on_demand_ul_trigger: true, + transaction_identifier: 21, + radio_priority: 1, + packet_flow_identifier: 21 + }, ], }, ], -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18982 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: I857bed943b0184540b0a8ac696e7ebddd693be87 Gerrit-Change-Number: 18982 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 13:53:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 13:53:54 +0000 Subject: Change in osmo-gsm-tester[master]: ms_srs: fix scp-back-metrics routine In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18983 ) Change subject: ms_srs: fix scp-back-metrics routine ...................................................................... ms_srs: fix scp-back-metrics routine every call to verify_metrics would copy back metrics again. see log here: 23:29:22.149299 run srsue(pid=31521): Terminating (SIGINT) 23:29:22.368263 run srsue(pid=31521): Terminated: ok {rc=0} 23:29:28.401035 run scp-back-metrics(pid=32265): Launched 23:29:29.423083 run scp-back-metrics(pid=32265): Terminated: ok {rc=0} 23:29:29.490275 run scp-back-metrics(pid=32271): Launched 23:29:30.513852 run scp-back-metrics(pid=32271): Terminated: ok {rc=0} 23:29:30.550862 run scp-back-metrics(pid=32277): Launched 23:29:31.573962 run scp-back-metrics(pid=32277): Terminated: ok {rc=0} this patch only copies back metrics only once. also make sure that, similar to logs, metrics are always copied back at the end of the run even if they are not used for metrics checking. this is needed to run the plotting script. Change-Id: Ie7c156a5b2c8768bf90ff8e86515976e0d454c25 --- M src/osmo_gsm_tester/obj/ms_srs.py 1 file changed, 27 insertions(+), 11 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index cf2e166..57721ac 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -81,6 +81,7 @@ self.log_file = None self.pcap_file = None self.metrics_file = None + self.have_metrics_file = False self.process = None self.rem_host = None self.remote_inst = None @@ -107,6 +108,7 @@ self.sleep_after_stop() # copy back files (may not exist, for instance if there was an early error of process): + self.scp_back_metrics(raiseException=False) try: self.rem_host.scpfrom('scp-back-log', self.remote_log_file, self.log_file) except Exception as e: @@ -117,6 +119,29 @@ except Exception as e: self.log(repr(e)) + def scp_back_metrics(self, raiseException=True): + ''' Copy back metrics only if they have not been copied back yet ''' + if not self.have_metrics_file: + # file is not properly flushed until the process has stopped. + if self.running(): + self.stop() + + # only SCP back if not running locally + if not self._run_node.is_local(): + try: + self.rem_host.scpfrom('scp-back-metrics', self.remote_metrics_file, self.metrics_file) + except Exception as e: + if raiseException: + self.err('Failed copying back metrics file from remote host') + raise e + else: + # only log error + self.log(repr(e)) + # make sure to only call it once + self.have_metrics_file = True + else: + self.dbg('Metrics have already been copied back') + def netns(self): return "srsue1" @@ -362,17 +387,8 @@ raise log.Error('counter %s not implemented!' % counter_name) def verify_metric(self, value, operation='avg', metric='dl_brate', criterion='gt', window=1): - # file is not properly flushed until the process has stopped. - if self.running(): - self.stop() - - if not self._run_node.is_local(): - try: - self.rem_host.scpfrom('scp-back-metrics', self.remote_metrics_file, self.metrics_file) - except Exception as e: - self.err('Failed copying back metrics file from remote host') - raise e - + # copy back metrics if we have not already done so + self.scp_back_metrics(self) metrics = srsUEMetrics(self.metrics_file) return metrics.verify(value, operation, metric, criterion, window) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18983 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: Ie7c156a5b2c8768bf90ff8e86515976e0d454c25 Gerrit-Change-Number: 18983 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 13:53:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 13:53:54 +0000 Subject: Change in osmo-gsm-tester[master]: {enb, epc, ms}_srs: expose log.all_level parameter In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18984 ) Change subject: {enb,epc,ms}_srs: expose log.all_level parameter ...................................................................... {enb,epc,ms}_srs: expose log.all_level parameter expose paramter to set log level, use warning as default Change-Id: I4e77e5351399aefef47a309c82b8805e2c6022c5 --- M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/epc_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/templates/srsenb.conf.tmpl M src/osmo_gsm_tester/templates/srsepc.conf.tmpl M src/osmo_gsm_tester/templates/srsue.conf.tmpl M sysmocom/defaults.conf 7 files changed, 9 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 1b23172..0bf4f8b 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -29,6 +29,7 @@ def on_register_schemas(): config_schema = { 'enable_pcap': schema.BOOL_STR, + 'log_all_level': schema.STR, } schema.register_config_schema('enb', config_schema) diff --git a/src/osmo_gsm_tester/obj/epc_srs.py b/src/osmo_gsm_tester/obj/epc_srs.py index e1d9f59..9c4b004 100644 --- a/src/osmo_gsm_tester/obj/epc_srs.py +++ b/src/osmo_gsm_tester/obj/epc_srs.py @@ -27,6 +27,7 @@ def on_register_schemas(): config_schema = { 'enable_pcap': schema.BOOL_STR, + 'log_all_level': schema.STR, } schema.register_config_schema('epc', config_schema) diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 57721ac..04df1ba 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -47,6 +47,7 @@ config_schema = { 'enable_pcap': schema.BOOL_STR, + 'log_all_level': schema.STR, } schema.register_config_schema('modem', config_schema) diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index e0c54a1..b58db53 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -122,7 +122,7 @@ # If set to negative, a single log file will be created. ##################################################################### [log] -all_level = warning +all_level = ${enb.log_all_level} all_hex_limit = 32 filename = ${enb.log_filename} file_max_size = -1 diff --git a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl index a792989..f855127 100644 --- a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl @@ -93,7 +93,7 @@ # to print logs to standard output ##################################################################### [log] -all_level = info +all_level = ${epc.log_all_level} all_hex_limit = 32 filename = ${epc.log_filename} diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl index a600f5e..a9faa75 100644 --- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl @@ -102,7 +102,7 @@ # If set to negative, a single log file will be created. ##################################################################### [log] -all_level = warning +all_level = ${ue.log_all_level} phy_lib_level = none all_hex_limit = 32 filename = ${ue.log_filename} diff --git a/sysmocom/defaults.conf b/sysmocom/defaults.conf index b113545..2c99e04 100644 --- a/sysmocom/defaults.conf +++ b/sysmocom/defaults.conf @@ -101,6 +101,7 @@ srsepc: enable_pcap: false + log_all_level: warning amarisoft: license_server_addr: 0.0.0.0 @@ -143,6 +144,7 @@ enable_pcap: false tx_gain: 80 rx_gain: 40 + log_all_level: warning amarisoftenb: num_prb: 100 @@ -158,6 +160,7 @@ num_carriers: 1 tx_gain: 80 rx_gain: 40 + log_all_level: warning amarisoftue: tx_gain: 89 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18984 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: I4e77e5351399aefef47a309c82b8805e2c6022c5 Gerrit-Change-Number: 18984 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 14:02:48 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 14:02:48 +0000 Subject: Change in osmo-bts[master]: Fix shutdown in osmo-bts-{omldummy, virtual} In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19006 ) Change subject: Fix shutdown in osmo-bts-{omldummy,virtual} ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idadb62ec25181b140d9061dc7470da00d47d8336 Gerrit-Change-Number: 19006 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 25 Jun 2020 14: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 Thu Jun 25 14:03:42 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 14:03:42 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Implement bts_model_trx_close In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19007 ) Change subject: bts-omldummy: Implement bts_model_trx_close ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff Gerrit-Change-Number: 19007 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 25 Jun 2020 14: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 Jun 25 14:04:33 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 14:04:33 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Speed up shutdown (instantaneous ramp) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19008 ) Change subject: bts-omldummy: Speed up shutdown (instantaneous ramp) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 Gerrit-Change-Number: 19008 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 25 Jun 2020 14:04: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 Jun 25 14:56:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 14:56:23 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19009 ) Change subject: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number ...................................................................... osmo-bts-trx: fix trx_sched_fn(): properly advance frame number In trx_sched_fn() we schedule Downlink bursts in advance, in order to give the transceiver some time to process them. This function handles all timeslots of all transceivers in a loop. The problem is that the given frame number is overwritten on each iteration. Let's say we have 4 transceivers, each with default fn-advance 20. The given frame number N will be advanced 4 times, so the resulting frame number for 4-th transceiver would be (N + 4 * 20) instead of (N + 20) as expected. Therefore, all additional transceivers would be served more and more in the future (depending on their position). Change-Id: Ie3ab544eac81a675266df09cd2b7740e4183188e --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/09/19009/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 3936124..47cc4b5 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -56,10 +56,11 @@ } /* schedule all frames of all TRX for given FN */ -static int trx_sched_fn(struct gsm_bts *bts, uint32_t fn) +static int trx_sched_fn(struct gsm_bts *bts, const uint32_t fn) { struct trx_dl_burst_req br; struct gsm_bts_trx *trx; + uint32_t sched_fn; uint8_t tn; /* send time indication */ @@ -74,7 +75,7 @@ /* advance frame number, so the transceiver has more * time until it must be transmitted. */ - fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); + sched_fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); /* we don't schedule, if power is off */ if (!trx_if_powered(l1h)) @@ -83,11 +84,12 @@ /* process every TS of TRX */ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { /* ready-to-send */ - _sched_rts(l1t, tn, GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.rts_advance)); + _sched_rts(l1t, tn, GSM_TDMA_FN_SUM(sched_fn, plink->u.osmotrx.rts_advance)); /* All other parameters to be set by _sched_dl_burst() */ br = (struct trx_dl_burst_req) { - .fn = fn, .tn = tn, + .fn = sched_fn, + .tn = tn, }; /* get burst for FN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie3ab544eac81a675266df09cd2b7740e4183188e Gerrit-Change-Number: 19009 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 Jun 25 14:59:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 14:59:05 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19009 ) Change subject: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie3ab544eac81a675266df09cd2b7740e4183188e Gerrit-Change-Number: 19009 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 25 Jun 2020 14:59:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 15:00:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 15:00:39 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18874 ) Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 15:00: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 Jun 25 15:12:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 15:12:15 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: make mark trx_sched_fn() return void References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19010 ) Change subject: osmo-bts-trx/scheduler: make mark trx_sched_fn() return void ...................................................................... osmo-bts-trx/scheduler: make mark trx_sched_fn() return void This function never returns anything else than 0. Change-Id: I119535fc09d611ef9f903f5d44aa21cecdce19a2 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/10/19010/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 47cc4b5..6122ad0 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -56,7 +56,7 @@ } /* schedule all frames of all TRX for given FN */ -static int trx_sched_fn(struct gsm_bts *bts, const uint32_t fn) +static void trx_sched_fn(struct gsm_bts *bts, const uint32_t fn) { struct trx_dl_burst_req br; struct gsm_bts_trx *trx; @@ -102,8 +102,6 @@ trx_if_send_burst(l1h, &br); } } - - return 0; } /*! maximum number of 'missed' frame periods we can tolerate of OS doesn't schedule us*/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I119535fc09d611ef9f903f5d44aa21cecdce19a2 Gerrit-Change-Number: 19010 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 Jun 25 15:12:17 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 15:12:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/schedulder: get rid of _sched_fcch_burst References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/schedulder: get rid of _sched_fcch_burst ...................................................................... osmo-bts-trx/schedulder: get rid of _sched_fcch_burst According to 3GPP 45.002, section 5.2.4, a frequency correction burst is basically a sequence of zeros. Since br->burst is already zero-initialized, there is no need to maintain and memcpy() another sequence of zeros into it. Just set the length. Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d --- M include/osmo-bts/scheduler_backend.h M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_fcch_sch.c 3 files changed, 2 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/11/19011/1 diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h index be23c47..eb8039f 100644 --- a/include/osmo-bts/scheduler_backend.h +++ b/include/osmo-bts/scheduler_backend.h @@ -37,7 +37,6 @@ extern const ubit_t _sched_tsc[8][26]; extern const ubit_t _sched_egprs_tsc[8][78]; -extern const ubit_t _sched_fcch_burst[148]; extern const ubit_t _sched_sch_train[64]; struct msgb *_sched_dequeue_prim(struct l1sched_trx *l1t, int8_t tn, uint32_t fn, diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 62efed4..3068918 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -62,15 +62,6 @@ 0,0,0, }; -/*! \brief FCCH Burst (TS 05.02 Chapter 5.2.4) */ -const ubit_t _sched_fcch_burst[GSM_BURST_LEN] = { - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; - /*! \brief Training Sequences (TS 05.02 Chapter 5.2.3) */ const ubit_t _sched_tsc[8][26] = { { 0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1, }, diff --git a/src/osmo-bts-trx/sched_lchan_fcch_sch.c b/src/osmo-bts-trx/sched_lchan_fcch_sch.c index bc03f81..2a5e482 100644 --- a/src/osmo-bts-trx/sched_lchan_fcch_sch.c +++ b/src/osmo-bts-trx/sched_lchan_fcch_sch.c @@ -40,7 +40,8 @@ { LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting FCCH\n"); - memcpy(br->burst, _sched_fcch_burst, GSM_BURST_LEN); + /* A frequency correction burst is basically a sequence of zeros. + * Since br->burst is already zero-initialized, just set the length. */ br->burst_len = GSM_BURST_LEN; return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 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 Jun 25 15:12:48 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 15:12:48 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst ...................................................................... osmo-bts-trx/scheduler: get rid of _sched_fcch_burst According to 3GPP 45.002, section 5.2.4, a frequency correction burst is basically a sequence of zeros. Since br->burst is already zero-initialized, there is no need to maintain and memcpy() another sequence of zeros into it. Just set the length. Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d --- M include/osmo-bts/scheduler_backend.h M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_fcch_sch.c 3 files changed, 2 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/11/19011/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 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 Thu Jun 25 15:22:13 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 25 Jun 2020 15:22:13 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19009 ) Change subject: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie3ab544eac81a675266df09cd2b7740e4183188e Gerrit-Change-Number: 19009 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 15:22: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 Jun 25 15:31:54 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 15:31:54 +0000 Subject: Change in osmo-bts[master]: Fix shutdown in osmo-bts-{omldummy, virtual} In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19006 ) Change subject: Fix shutdown in osmo-bts-{omldummy,virtual} ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/19006/1/src/osmo-bts-virtual/bts_model.c File src/osmo-bts-virtual/bts_model.c: https://gerrit.osmocom.org/c/osmo-bts/+/19006/1/src/osmo-bts-virtual/bts_model.c at 177 PS1, Line 177: LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); (I'd drop the log because it is now implemented) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idadb62ec25181b140d9061dc7470da00d47d8336 Gerrit-Change-Number: 19006 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 15:31: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 Thu Jun 25 15:32:21 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 15:32:21 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Implement bts_model_trx_close In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19007 ) Change subject: bts-omldummy: Implement bts_model_trx_close ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff Gerrit-Change-Number: 19007 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 15:32:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 15:32:59 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 15:32:59 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Speed up shutdown (instantaneous ramp) In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19008 ) Change subject: bts-omldummy: Speed up shutdown (instantaneous ramp) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 Gerrit-Change-Number: 19008 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 15: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 Thu Jun 25 15:33:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 15:33:05 +0000 Subject: Change in osmo-bts[master]: Fix shutdown in osmo-bts-{omldummy, virtual} In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19006 ) Change subject: Fix shutdown in osmo-bts-{omldummy,virtual} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idadb62ec25181b140d9061dc7470da00d47d8336 Gerrit-Change-Number: 19006 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 15: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 Jun 25 15:33:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 15:33:24 +0000 Subject: Change in osmo-bts[master]: Fix shutdown in osmo-bts-{omldummy, virtual} In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19006 ) Change subject: Fix shutdown in osmo-bts-{omldummy,virtual} ...................................................................... Fix shutdown in osmo-bts-{omldummy,virtual} Change-Id: Idadb62ec25181b140d9061dc7470da00d47d8336 --- M include/osmo-bts/bts_model.h M src/osmo-bts-omldummy/bts_model.c M src/osmo-bts-virtual/bts_model.c 3 files changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h index f62291c..4fd0813 100644 --- a/include/osmo-bts/bts_model.h +++ b/include/osmo-bts/bts_model.h @@ -43,6 +43,7 @@ int bts_model_oml_estab(struct gsm_bts *bts); +/* Implementation should call power_trx_change_compl() to confirm power change applied */ int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm); int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan); diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index dc0e041..c31354f 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -158,7 +158,7 @@ int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) { - LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + power_trx_change_compl(trx, p_trxout_mdBm); return 0; } diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index 8209ce2..dfce81f 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -175,6 +175,7 @@ int bts_model_change_power(struct gsm_bts_trx *trx, int p_trxout_mdBm) { LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + power_trx_change_compl(trx, p_trxout_mdBm); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Idadb62ec25181b140d9061dc7470da00d47d8336 Gerrit-Change-Number: 19006 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Thu Jun 25 15:33:24 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 15:33:24 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Implement bts_model_trx_close In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19007 ) Change subject: bts-omldummy: Implement bts_model_trx_close ...................................................................... bts-omldummy: Implement bts_model_trx_close Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff --- M src/osmo-bts-omldummy/bts_model.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: fixeria: Looks good to me, but someone else must approve neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index c31354f..e4cc826 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -52,7 +52,8 @@ void bts_model_trx_close(struct gsm_bts_trx *trx) { - LOGP(DL1C, LOGL_NOTICE, "Unimplemented %s\n", __func__); + trx_set_available(trx, 0); + bts_model_trx_close_cb(trx, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13221e5dffe3290fc791f8866f25141fcc0821ff Gerrit-Change-Number: 19007 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Thu Jun 25 15:33:25 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 15:33:25 +0000 Subject: Change in osmo-bts[master]: bts-omldummy: Speed up shutdown (instantaneous ramp) In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19008 ) Change subject: bts-omldummy: Speed up shutdown (instantaneous ramp) ...................................................................... bts-omldummy: Speed up shutdown (instantaneous ramp) Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 --- M src/osmo-bts-omldummy/bts_model.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index e4cc826..1ff336e 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -182,6 +182,9 @@ int bts_model_trx_init(struct gsm_bts_trx *trx) { + struct trx_power_params *tpp = &trx->power_params; + /* Speed up shutdown, we don't care about power ramping in omldummy */ + tpp->ramp.step_interval_sec = 0; return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4d4e7a5bfb899787605b3b25dcdc9e9470c438d9 Gerrit-Change-Number: 19008 Gerrit-PatchSet: 2 Gerrit-Owner: pespin 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 Thu Jun 25 15:54:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 15:54:45 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: make mark trx_sched_fn() return void In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19010 ) Change subject: osmo-bts-trx/scheduler: make mark trx_sched_fn() return void ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I119535fc09d611ef9f903f5d44aa21cecdce19a2 Gerrit-Change-Number: 19010 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 15:54: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 Jun 25 15:54:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 15:54:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19009 ) Change subject: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie3ab544eac81a675266df09cd2b7740e4183188e Gerrit-Change-Number: 19009 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 15:54: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 Jun 25 15:55:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 15:55:48 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 15:55: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 Jun 25 17:55:08 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 17:55:08 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_instance_asp_find_by_proto() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 ) Change subject: add osmo_ss7_instance_asp_find_by_proto() ...................................................................... add osmo_ss7_instance_asp_find_by_proto() For 'cs7' auto configuration, we want to pick up an ASP that is not associated with an AS yet. For that, we need API that looks in the entire ss7 instance, not only for already present AS. (Before this, the auto configuration detected "floating" ASP only if they had a specific name, which is changed by upcoming patch I2954e0167729fd0b1a7d0144a5b5775fc1c44c35) Related: OS#4635 Change-Id: Ib204c6906eb02fe64b43b75375e1b69e2a8abd30 --- M include/osmocom/sigtran/osmo_ss7.h M src/osmo_ss7.c 2 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/12/19012/1 diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h index 2502407..06cc43c 100644 --- a/include/osmocom/sigtran/osmo_ss7.h +++ b/include/osmocom/sigtran/osmo_ss7.h @@ -439,6 +439,9 @@ *osmo_ss7_asp_find_by_proto(struct osmo_ss7_as *as, enum osmo_ss7_asp_protocol proto); struct osmo_ss7_asp * +osmo_ss7_instance_asp_find_by_proto(struct osmo_ss7_instance *inst, enum osmo_ss7_asp_protocol proto, + unsigned int match_idx); +struct osmo_ss7_asp * osmo_ss7_asp_find(struct osmo_ss7_instance *inst, const char *name, uint16_t remote_port, uint16_t local_port, enum osmo_ss7_asp_protocol proto); diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index cdac27a..ad6f171 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1285,6 +1285,28 @@ return NULL; } +/*! \brief Find an ASP that matches the given protocol anywhere in the SS7 instance. + * \param[in] inst SS7 instance to look for ASP in. + * \param[in] match_idx return Nth matching ASP, 0 to return first match. + * \returns SS7 ASP in case a matching one is found; NULL otherwise */ +struct osmo_ss7_asp * +osmo_ss7_instance_asp_find_by_proto(struct osmo_ss7_instance *inst, enum osmo_ss7_asp_protocol proto, + unsigned int match_idx) +{ + struct osmo_ss7_asp *asp; + OSMO_ASSERT(ss7_initialized); + llist_for_each_entry(asp, &inst->asp_list, list) { + if (asp->cfg.proto != proto) + continue; + if (match_idx) { + match_idx--; + continue; + } + return asp; + } + return NULL; +} + struct osmo_ss7_asp * osmo_ss7_asp_find(struct osmo_ss7_instance *inst, const char *name, uint16_t remote_port, uint16_t local_port, -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ib204c6906eb02fe64b43b75375e1b69e2a8abd30 Gerrit-Change-Number: 19012 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 Jun 25 17:55:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 17:55:09 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_asp_get_as() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 ) Change subject: add osmo_ss7_asp_get_as() ...................................................................... add osmo_ss7_asp_get_as() For 'cs7' auto configuration, we want to pick up an ASP that is not yet associated with any AS. For that we need to find out whether a given ASP is set up with an AS yet. Related: OS#4635 Change-Id: Ia028625c5e8fab4f2683d05f78a9a1c0092a2cac --- M include/osmocom/sigtran/osmo_ss7.h M src/osmo_ss7.c 2 files changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/13/19013/1 diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h index 06cc43c..b7c59c3 100644 --- a/include/osmocom/sigtran/osmo_ss7.h +++ b/include/osmocom/sigtran/osmo_ss7.h @@ -454,6 +454,7 @@ int osmo_ss7_asp_restart(struct osmo_ss7_asp *asp); int osmo_ss7_asp_use_default_lm(struct osmo_ss7_asp *asp, int log_level); bool osmo_ss7_asp_active(const struct osmo_ss7_asp *asp); +struct osmo_ss7_as *osmo_ss7_asp_get_as(struct osmo_ss7_asp *asp); /*! Weak function to handle payload for unknown/unsupported PPID or IPA StreamID. * This function can be overridden by application code to implement whatever handling diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index ad6f171..8e1fece 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1469,6 +1469,21 @@ return asp->fi->state == XUA_ASP_S_ACTIVE; } +/* Get the AS that the given ASP is added on, if any. + * \param[in] asp ASP to get the AS for. + * \return AS instance, or NULL if the ASP is not added on any AS. + */ +struct osmo_ss7_as *osmo_ss7_asp_get_as(struct osmo_ss7_asp *asp) +{ + struct osmo_ss7_as *as; + OSMO_ASSERT(ss7_initialized); + llist_for_each_entry(as, &asp->inst->as_list, list) { + if (osmo_ss7_as_has_asp(as, asp)) + return as; + } + return NULL; +} + /*********************************************************************** * libosmo-netif integration for SCTP stream server/client ***********************************************************************/ -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ia028625c5e8fab4f2683d05f78a9a1c0092a2cac Gerrit-Change-Number: 19013 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 Jun 25 17:55:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 17:55:10 +0000 Subject: Change in libosmo-sccp[master]: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 ) Change subject: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name ...................................................................... osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name Our manuals explain that the cs7 config automatically adds missing parts. However, previous code requires an ASP to exactly match the default name that the autoconfiguration would choose -- that is unintuitive. If a config included only an ASP, or both AS and ASP but omitting to add the ASP to the AS, auto configuration would pick it up iff it exactly had the name the application chose. For osmo-bsc, that was 'asp-clnt-msc-0', if 'msc 0' is the first MSC in the config file. For osmo-msc, it is 'asp-clnt-OsmoMSC-A' or 'asp-clnt-OsmoMSC-A-Iu' and so forth, so it is not always clear which name the user should pick to get the ASP used by auto config. Refactor so that any ASP with a matching protocol that is not associated with any AS yet is picked up by the auto configuration, i.e. associated with the AS etc., regardless of the name chosen in the config file. Related: OS#4635 Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 --- M src/sccp_user.c 1 file changed, 22 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/14/19014/1 diff --git a/src/sccp_user.c b/src/sccp_user.c index d8a7357..794a0d5 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -574,13 +575,27 @@ * we intend to use. */ asp = osmo_ss7_asp_find_by_proto(as, prot); if (!asp) { - /* Check if the user has already created an ASP elsewhere under - * the default asp name. */ - asp_name = talloc_asprintf(ctx, "asp-clnt-%s", name); - asp = osmo_ss7_asp_find_by_name(ss7, asp_name); + unsigned int asp_idx; + /* Check if the user has created an ASP for this proto that is not added on any AS yet. */ + for (asp_idx = 0; asp_idx < UINT_MAX; asp_idx++) { + asp = osmo_ss7_instance_asp_find_by_proto(ss7, prot, asp_idx); + if (!asp) { + /* No ASP found for that protocol */ + break; + } + if (osmo_ss7_asp_get_as(asp)) { + /* This ASP is already on another AS. If it was on this AS, we'd have found it above. */ + continue; + } + /* This ASP matches the protocol and is not yet associated to any AS. Use it. */ + LOGP(DLSCCP, LOGL_NOTICE, "%s: ASP %s for %s is not associated with any AS, using it\n", + name, asp->cfg.name, osmo_ss7_asp_protocol_name(prot)); + break; + } if (!asp) { - LOGP(DLSCCP, LOGL_NOTICE, "%s: Creating ASP instance\n", - name); + asp_name = talloc_asprintf(ctx, "asp-clnt-%s", name); + LOGP(DLSCCP, LOGL_NOTICE, "%s: No unassociated ASP for %s, creating new ASP %s\n", + name, osmo_ss7_asp_protocol_name(prot), asp_name); asp = osmo_ss7_asp_find_or_create(ss7, asp_name, default_remote_port, @@ -593,8 +608,7 @@ osmo_ss7_asp_peer_set_hosts(&asp->cfg.local, asp, &default_local_ip, 1); osmo_ss7_asp_peer_set_hosts(&asp->cfg.remote, asp, &default_remote_ip, 1); asp->simple_client_allocated = true; - } else - talloc_free(asp_name); + } osmo_ss7_as_add_asp(as, asp->cfg.name); } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 Gerrit-Change-Number: 19014 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 Jun 25 17:59:47 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 25 Jun 2020 17:59:47 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18874 ) Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Patch Set 5: Code-Review+1 (1 comment) can't say I understand what this does, but looks sane https://gerrit.osmocom.org/c/osmo-bts/+/18874/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/18874/5//COMMIT_MSG at 7 PS5, Line 7: Use libosmocore's TDMA frame number API (constatns & arithmetic) s/API/macros statns typo -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 17:59: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 Thu Jun 25 18:00:21 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 25 Jun 2020 18:00:21 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18874 ) Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 18:00: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 Jun 25 18:02:11 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 18:02:11 +0000 Subject: Change in osmo-bts[master]: Use libosmocore's TDMA frame number API (constatns & arithmetic) In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18874 ) Change subject: Use libosmocore's TDMA frame number API (constatns & arithmetic) ...................................................................... Use libosmocore's TDMA frame number API (constatns & arithmetic) Depends: (libosmocore) Ic291fd3644f34964374227a191c7045d79d77e0d Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c M src/osmo-bts-virtual/scheduler_virtbts.c 6 files changed, 31 insertions(+), 52 deletions(-) Approvals: neels: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Hoernchen: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 416864f..255c871 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -35,9 +36,6 @@ #define GSM_HR_BYTES 14 /* TS 101318 Chapter 5.2: 112 bits, no sig */ #define GSM_EFR_BYTES 31 /* TS 101318 Chapter 5.3: 244 bits + 4bit sig */ -#define GSM_SUPERFRAME (26*51) /* 1326 TDMA frames */ -#define GSM_HYPERFRAME (2048*GSM_SUPERFRAME) /* GSM_HYPERFRAME frames */ - #define GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DEFAULT 41 #define GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DISABLE 999999 #define GSM_BTS_AGCH_QUEUE_LOW_LEVEL_DEFAULT 41 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index dad1b49..17a6c5d 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -621,7 +621,7 @@ /* increment number of RACH slots that have passed by since the * last time indication */ for (i = 0; i < frames_expired; i++) { - uint32_t fn = (info_time_ind->fn + GSM_HYPERFRAME - i) % GSM_HYPERFRAME; + uint32_t fn = GSM_TDMA_FN_SUB(info_time_ind->fn, i); bts->load.rach.total += calc_exprd_rach_frames(bts, fn); } @@ -891,7 +891,7 @@ static void l1sap_update_fnstats(struct gsm_bts *bts, uint32_t rts_fn) { - int32_t delta = (rts_fn + GSM_HYPERFRAME - bts->gsm_time.fn) % GSM_HYPERFRAME; + int32_t delta = GSM_TDMA_FN_SUB(rts_fn, bts->gsm_time.fn); if (delta < bts->fn_stats.min) bts->fn_stats.min = delta; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 01edc69..62efed4 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -684,7 +684,7 @@ LOGL1S(DL1P, LOGL_ERROR, l1t, tn, chan, fn, "Prim has wrong type.\n"); goto free_msg; } - prim_fn = ((l1sap_fn + GSM_HYPERFRAME - fn) % GSM_HYPERFRAME); + prim_fn = GSM_TDMA_FN_SUB(l1sap_fn, fn); if (prim_fn > 100) { /* l1sap_fn < fn */ LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Prim %u is out of range (%u vs exp %u), or channel %s with " @@ -1248,12 +1248,6 @@ } } -#define TDMA_FN_SUM(a, b) \ - ((a + GSM_HYPERFRAME + b) % GSM_HYPERFRAME) - -#define TDMA_FN_SUB(a, b) \ - ((a + GSM_HYPERFRAME - b) % GSM_HYPERFRAME) - static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t, struct l1sched_chan_state *l1cs, uint8_t tn, uint32_t fn) { @@ -1291,7 +1285,7 @@ } /* How many frames elapsed since the last one? */ - elapsed_fs = TDMA_FN_SUB(fn, l1cs->last_tdma_fn); + elapsed_fs = GSM_TDMA_FN_SUB(fn, l1cs->last_tdma_fn); if (elapsed_fs > l1ts->mf_period) { /* Too many! */ LOGL1S(DL1P, LOGL_ERROR, l1t, tn, frame_head->ul_chan, fn, "Too many (>%u) contiguous TDMA frames=%u elapsed " @@ -1310,7 +1304,7 @@ * Start counting from the last_fn + 1. */ for (i = 1; i < elapsed_fs; i++) { - fn_i = TDMA_FN_SUM(l1cs->last_tdma_fn, i); + fn_i = GSM_TDMA_FN_SUM(l1cs->last_tdma_fn, i); offset = fn_i % l1ts->mf_period; frame = l1ts->mf_frames + offset; @@ -1343,7 +1337,7 @@ }; for (i = 1; i < elapsed_fs; i++) { - fn_i = TDMA_FN_SUM(l1cs->last_tdma_fn, i); + fn_i = GSM_TDMA_FN_SUM(l1cs->last_tdma_fn, i); offset = fn_i % l1ts->mf_period; frame = l1ts->mf_frames + offset; func = trx_chan_desc[frame->ul_chan].ul_fn; diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index d4a38b6..3936124 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -74,7 +74,7 @@ /* advance frame number, so the transceiver has more * time until it must be transmitted. */ - fn = (fn + plink->u.osmotrx.clock_advance) % GSM_HYPERFRAME; + fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); /* we don't schedule, if power is off */ if (!trx_if_powered(l1h)) @@ -83,8 +83,7 @@ /* process every TS of TRX */ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { /* ready-to-send */ - _sched_rts(l1t, tn, - (fn + plink->u.osmotrx.rts_advance) % GSM_HYPERFRAME); + _sched_rts(l1t, tn, GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.rts_advance)); /* All other parameters to be set by _sched_dl_burst() */ br = (struct trx_dl_burst_req) { @@ -105,10 +104,6 @@ return 0; } -/*! duration of a GSM frame in nano-seconds. (120ms/26) */ -#define FRAME_DURATION_nS 4615384 -/*! duration of a GSM frame in micro-seconds (120s/26) */ -#define FRAME_DURATION_uS (FRAME_DURATION_nS/1000) /*! maximum number of 'missed' frame periods we can tolerate of OS doesn't schedule us*/ #define MAX_FN_SKEW 50 /*! maximum number of frame periods we can tolerate without TRX Clock Indication*/ @@ -126,9 +121,9 @@ /*! compute the number of frame number intervals elapsed between \a last and \a now */ static inline int compute_elapsed_fn(const uint32_t last, const uint32_t now) { - int elapsed_fn = (now + GSM_HYPERFRAME - last) % GSM_HYPERFRAME; + int elapsed_fn = GSM_TDMA_FN_SUB(now, last); if (elapsed_fn >= 135774) - elapsed_fn -= GSM_HYPERFRAME; + elapsed_fn -= GSM_TDMA_HYPERFRAME; return elapsed_fn; } @@ -139,9 +134,6 @@ ts->tv_nsec = ts->tv_nsec % 1000000000; } -/*! Increment a GSM frame number modulo GSM_HYPERFRAME */ -#define INCREMENT_FN(fn) (fn) = (((fn) + 1) % GSM_HYPERFRAME) - extern int quit; /*! this is the timerfd-callback firing for every FN to be processed */ @@ -178,7 +170,7 @@ /* compute actual elapsed time and resulting OS scheduling error */ clock_gettime(CLOCK_MONOTONIC, &tv_now); elapsed_us = compute_elapsed_us(&tcs->last_fn_timer.tv, &tv_now); - error_us = elapsed_us - FRAME_DURATION_uS; + error_us = elapsed_us - GSM_TDMA_FN_DURATION_uS; #ifdef DEBUG_CLOCK printf("%s(): %09ld, elapsed_us=%05" PRId64 ", error_us=%-d: fn=%d\n", __func__, tv_now.tv_nsec, elapsed_us, error_us, tcs->last_fn_timer.fn+1); @@ -186,17 +178,15 @@ tcs->last_fn_timer.tv = tv_now; /* if someone played with clock, or if the process stalled */ - if (elapsed_us > FRAME_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { + if (elapsed_us > GSM_TDMA_FN_DURATION_uS * MAX_FN_SKEW || elapsed_us < 0) { LOGP(DL1C, LOGL_ERROR, "PC clock skew: elapsed_us=%" PRId64 ", error_us=%" PRId64 "\n", elapsed_us, error_us); goto no_clock; } /* call trx_sched_fn() for all expired FN */ - for (i = 0; i < expire_count; i++) { - INCREMENT_FN(tcs->last_fn_timer.fn); - trx_sched_fn(bts, tcs->last_fn_timer.fn); - } + for (i = 0; i < expire_count; i++) + trx_sched_fn(bts, GSM_TDMA_FN_INC(tcs->last_fn_timer.fn)); return 0; @@ -281,7 +271,7 @@ int elapsed_fn; int64_t elapsed_us, elapsed_us_since_clk, elapsed_fn_since_clk, error_us_since_clk; unsigned int fn_caught_up = 0; - const struct timespec interval = { .tv_sec = 0, .tv_nsec = FRAME_DURATION_nS }; + const struct timespec interval = { .tv_sec = 0, .tv_nsec = GSM_TDMA_FN_DURATION_nS }; if (quit) return 0; @@ -307,7 +297,7 @@ elapsed_us_since_clk = compute_elapsed_us(&tcs->last_clk_ind.tv, &tv_now); elapsed_fn_since_clk = compute_elapsed_fn(tcs->last_clk_ind.fn, fn); /* error (delta) between local clock since last CLK and CLK based on FN clock at TRX */ - error_us_since_clk = elapsed_us_since_clk - (FRAME_DURATION_uS * elapsed_fn_since_clk); + error_us_since_clk = elapsed_us_since_clk - (GSM_TDMA_FN_DURATION_uS * elapsed_fn_since_clk); LOGP(DL1C, LOGL_INFO, "TRX Clock Ind: elapsed_us=%7"PRId64", " "elapsed_fn=%3"PRId64", error_us=%+5"PRId64"\n", elapsed_us_since_clk, elapsed_fn_since_clk, error_us_since_clk); @@ -328,14 +318,14 @@ } LOGP(DL1C, LOGL_INFO, "GSM clock jitter: %" PRId64 "us (elapsed_fn=%d)\n", - elapsed_fn * FRAME_DURATION_uS - elapsed_us, elapsed_fn); + elapsed_fn * GSM_TDMA_FN_DURATION_uS - elapsed_us, elapsed_fn); /* too many frames have been processed already */ if (elapsed_fn < 0) { struct timespec first = interval; /* set clock to the time or last FN should have been * transmitted. */ - first.tv_nsec += (0 - elapsed_fn) * FRAME_DURATION_nS; + first.tv_nsec += (0 - elapsed_fn) * GSM_TDMA_FN_DURATION_nS; normalize_timespec(&first); LOGP(DL1C, LOGL_NOTICE, "We were %d FN faster than TRX, compensating\n", -elapsed_fn); /* set time to the time our next FN has to be transmitted */ @@ -345,8 +335,7 @@ /* transmit what we still need to transmit */ while (fn != tcs->last_fn_timer.fn) { - INCREMENT_FN(tcs->last_fn_timer.fn); - trx_sched_fn(bts, tcs->last_fn_timer.fn); + trx_sched_fn(bts, GSM_TDMA_FN_INC(tcs->last_fn_timer.fn)); fn_caught_up++; } diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 6fe0ecd..58f7455 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -121,8 +121,8 @@ LOGPPHI(pinst, DTRX, LOGL_INFO, "Clock indication: fn=%u\n", fn); - if (fn >= GSM_HYPERFRAME) { - fn %= GSM_HYPERFRAME; + if (fn >= GSM_TDMA_HYPERFRAME) { + fn %= GSM_TDMA_HYPERFRAME; LOGPPHI(pinst, DTRX, LOGL_ERROR, "Indicated clock's FN is not " "wrapping correctly, correcting to fn=%u\n", fn); } @@ -737,7 +737,7 @@ bi->rssi = -(int8_t)buf[5]; bi->toa256 = (int16_t) osmo_load16be(buf + 6); - if (bi->fn >= GSM_HYPERFRAME) { + if (bi->fn >= GSM_TDMA_HYPERFRAME) { LOGPPHI(l1h->phy_inst, DTRX, LOGL_ERROR, "Illegal TDMA fn=%u\n", bi->fn); return -EINVAL; diff --git a/src/osmo-bts-virtual/scheduler_virtbts.c b/src/osmo-bts-virtual/scheduler_virtbts.c index d3fdf1a..1c2b057 100644 --- a/src/osmo-bts-virtual/scheduler_virtbts.c +++ b/src/osmo-bts-virtual/scheduler_virtbts.c @@ -532,7 +532,6 @@ ***********************************************************************/ #define RTS_ADVANCE 5 /* about 20ms */ -#define FRAME_DURATION_uS 4615 static int vbts_sched_fn(struct gsm_bts *bts, uint32_t fn) { @@ -558,7 +557,7 @@ * --> Handle and process non-transparent RSL-Messages (activate channel, ) * --> Forward transparent RSL-DATA-Messages to the ms by appending them to * the l1-dl-queue */ - _sched_rts(l1t, br.tn, (fn + RTS_ADVANCE) % GSM_HYPERFRAME); + _sched_rts(l1t, br.tn, GSM_TDMA_FN_SUM(fn, RTS_ADVANCE)); /* schedule transmit backend functions */ /* Process data in the l1-dlqueue and forward it * to MS */ @@ -587,28 +586,27 @@ + (tv_now.tv_usec - tv_clock->tv_usec); /* not so good somehow a lot of time passed between two timer callbacks */ - if (elapsed_us > 2 *FRAME_DURATION_uS) + if (elapsed_us > 2 *GSM_TDMA_FN_DURATION_uS) LOGP(DL1P, LOGL_NOTICE, "vbts_fn_timer_cb after %d us\n", elapsed_us); /* schedule the current frame/s (fn = frame number) * this loop will be called at least once, but can also be executed * multiple times if more than one frame duration (4615us) passed till the last callback */ - while (elapsed_us > FRAME_DURATION_uS / 2) { + while (elapsed_us > GSM_TDMA_FN_DURATION_uS / 2) { const struct timeval tv_frame = { .tv_sec = 0, - .tv_usec = FRAME_DURATION_uS, + .tv_usec = GSM_TDMA_FN_DURATION_uS, }; timeradd(tv_clock, &tv_frame, tv_clock); /* increment the frame number in the BTS model instance */ - bts_virt->last_fn = (bts_virt->last_fn + 1) % GSM_HYPERFRAME; - vbts_sched_fn(bts, bts_virt->last_fn); - elapsed_us -= FRAME_DURATION_uS; + vbts_sched_fn(bts, GSM_TDMA_FN_INC(bts_virt->last_fn)); + elapsed_us -= GSM_TDMA_FN_DURATION_uS; } /* re-schedule the timer */ /* timer is set to frame duration - elapsed time to guarantee that this cb method will be * periodically executed every 4.615ms */ - osmo_timer_schedule(&bts_virt->fn_timer, 0, FRAME_DURATION_uS - elapsed_us); + osmo_timer_schedule(&bts_virt->fn_timer, 0, GSM_TDMA_FN_DURATION_uS - elapsed_us); } int vbts_sched_start(struct gsm_bts *bts) @@ -622,7 +620,7 @@ gettimeofday(&bts_virt->tv_clock, NULL); /* trigger the first timer after 4615us (a frame duration) */ - osmo_timer_schedule(&bts_virt->fn_timer, 0, FRAME_DURATION_uS); + osmo_timer_schedule(&bts_virt->fn_timer, 0, GSM_TDMA_FN_DURATION_uS); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61c97a62bd5dbbb4a984921ebdfc10ad6ed00f2a Gerrit-Change-Number: 18874 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen 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 Thu Jun 25 18:02:12 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 18:02:12 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19009 ) Change subject: osmo-bts-trx: fix trx_sched_fn(): properly advance frame number ...................................................................... osmo-bts-trx: fix trx_sched_fn(): properly advance frame number In trx_sched_fn() we schedule Downlink bursts in advance, in order to give the transceiver some time to process them. This function handles all timeslots of all transceivers in a loop. The problem is that the given frame number is overwritten on each iteration. Let's say we have 4 transceivers, each with default fn-advance 20. The given frame number N will be advanced 4 times, so the resulting frame number for 4-th transceiver would be (N + 4 * 20) instead of (N + 20) as expected. Therefore, all additional transceivers would be served more and more in the future (depending on their position). Change-Id: Ie3ab544eac81a675266df09cd2b7740e4183188e --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 6 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved Hoernchen: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 3936124..47cc4b5 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -56,10 +56,11 @@ } /* schedule all frames of all TRX for given FN */ -static int trx_sched_fn(struct gsm_bts *bts, uint32_t fn) +static int trx_sched_fn(struct gsm_bts *bts, const uint32_t fn) { struct trx_dl_burst_req br; struct gsm_bts_trx *trx; + uint32_t sched_fn; uint8_t tn; /* send time indication */ @@ -74,7 +75,7 @@ /* advance frame number, so the transceiver has more * time until it must be transmitted. */ - fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); + sched_fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); /* we don't schedule, if power is off */ if (!trx_if_powered(l1h)) @@ -83,11 +84,12 @@ /* process every TS of TRX */ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { /* ready-to-send */ - _sched_rts(l1t, tn, GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.rts_advance)); + _sched_rts(l1t, tn, GSM_TDMA_FN_SUM(sched_fn, plink->u.osmotrx.rts_advance)); /* All other parameters to be set by _sched_dl_burst() */ br = (struct trx_dl_burst_req) { - .fn = fn, .tn = tn, + .fn = sched_fn, + .tn = tn, }; /* get burst for FN */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie3ab544eac81a675266df09cd2b7740e4183188e Gerrit-Change-Number: 19009 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 18:02:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 18:02:13 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: make mark trx_sched_fn() return void In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19010 ) Change subject: osmo-bts-trx/scheduler: make mark trx_sched_fn() return void ...................................................................... osmo-bts-trx/scheduler: make mark trx_sched_fn() return void This function never returns anything else than 0. Change-Id: I119535fc09d611ef9f903f5d44aa21cecdce19a2 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 47cc4b5..6122ad0 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -56,7 +56,7 @@ } /* schedule all frames of all TRX for given FN */ -static int trx_sched_fn(struct gsm_bts *bts, const uint32_t fn) +static void trx_sched_fn(struct gsm_bts *bts, const uint32_t fn) { struct trx_dl_burst_req br; struct gsm_bts_trx *trx; @@ -102,8 +102,6 @@ trx_if_send_burst(l1h, &br); } } - - return 0; } /*! maximum number of 'missed' frame periods we can tolerate of OS doesn't schedule us*/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I119535fc09d611ef9f903f5d44aa21cecdce19a2 Gerrit-Change-Number: 19010 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 18:09:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 18:09:22 +0000 Subject: Change in osmo-ci[master]: ansible/gsm-tester: Install patchelf 0.11 on PATH References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/19015 ) Change subject: ansible/gsm-tester: Install patchelf 0.11 on PATH ...................................................................... ansible/gsm-tester: Install patchelf 0.11 on PATH We used to install patchelf 0.10 in a specific path to only use it for some binaries which had bugs with patchelf 0.9 (and other binaries had bugs with 0.10, so we couldn't use 0.10 for all binaries and hence put it in binary). However, 0.11 is fixing both issues so we can use it in all cases, hence we can put it in PATH (/usr/local/bin). Related: OS#4389 Change-Id: Ica30807ecab7b60daee31fe7824b7c848d20c904 --- M ansible/roles/gsm-tester/tasks/main.yml 1 file changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/15/19015/1 diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 7f0bad1..a3765b5 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -180,28 +180,28 @@ - osmo-gsm-tester-proc # patchelf 0.9 available in debian has bugs with certain binaries. Version 0.10 -# fails on other binaries, so we need both 0.9 and 0.10 versions installed. -- name: setup patchelf v0.10 repository +# fails on other binaries, so we need version 0.11 installed in /usr/local/bin +# (takes preference in PATH) +- name: setup patchelf v0.11 repository git: repo: 'https://github.com/NixOS/patchelf.git' dest: /root/patchelf - version: "0.10" + version: "0.11" clone: yes update: no tags: - patchelf - osmo-gsm-tester-proc -- name: build patchelf v0.10 +- name: build patchelf v0.11 shell: | autoreconf -fi && \ - ./configure --prefix=/opt && \ + ./configure --prefix=/usr/local && \ make && \ - mkdir -p /opt/bin/ && \ - cp src/patchelf /opt/bin/patchelf-v0.10 + make install args: chdir: /root/patchelf - creates: /opt/bin/patchelf-v0.10 + creates: /usr/local/bin/patchelf tags: - patchelf - osmo-gsm-tester-proc -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/19015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ica30807ecab7b60daee31fe7824b7c848d20c904 Gerrit-Change-Number: 19015 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 Jun 25 18:09:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 18:09:52 +0000 Subject: Change in osmo-gsm-tester[master]: Drop using patchelf out of PATH References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19016 ) Change subject: Drop using patchelf out of PATH ...................................................................... Drop using patchelf out of PATH New patchelf 0.11 release is out and it has fixes hitting us in both 0.9 and 0.10 on different binaries. So let's simply requiring having patchelf 0.11 in all cases and be done with it (actually, if not running 4G binaries, using 0.9 is enough). Related: OS#4389 Change-Id: I2701e46e7710db4c923a68e6b3a2f3c7b126f356 --- M src/osmo_gsm_tester/obj/ms_amarisoft.py M src/osmo_gsm_tester/obj/ms_srs.py 2 files changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/16/19016/1 diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py index b2dc9c7..565786b 100644 --- a/src/osmo_gsm_tester/obj/ms_amarisoft.py +++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py @@ -145,7 +145,6 @@ # setting capabilities will later disable use of LD_LIBRARY_PATH from ELF loader -> modify RPATH instead. self.log('Setting RPATH for ltetue') # patchelf >= 0.10 is required to support passing several files at once: - self.rem_host.set_remote_env({'PATCHELF_BIN': '/opt/bin/patchelf-v0.10' }) self.rem_host.change_elf_rpath(remote_binary, str(self.remote_inst)) # We also need to patch the arch-optimized binaries that lteue() will exec() into: self.rem_host.change_elf_rpath(self.remote_inst.child('', 'lteue-*'), str(self.remote_inst)) diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 04df1ba..9f77bb6 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -176,7 +176,6 @@ # setting capabilities will later disable use of LD_LIBRARY_PATH from ELF loader -> modify RPATH instead. self.log('Setting RPATH for srsue') # srsue binary needs patchelf >= 0.9+52 to avoid failing during patch. OS#4389, patchelf-GH#192. - self.rem_host.set_remote_env({'PATCHELF_BIN': '/opt/bin/patchelf-v0.10' }) self.rem_host.change_elf_rpath(remote_binary, remote_lib) # srsue requires CAP_SYS_ADMIN to jump to net network namespace: netns(CLONE_NEWNET): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19016 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: I2701e46e7710db4c923a68e6b3a2f3c7b126f356 Gerrit-Change-Number: 19016 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 Jun 25 18:24:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 18:24:14 +0000 Subject: Change in osmo-ci[master]: ansible/gsm-tester: Install patchelf 0.11 on PATH In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/19015 ) Change subject: ansible/gsm-tester: Install patchelf 0.11 on PATH ...................................................................... Patch Set 1: Verified+1 I tested this in osmo-gsm-tester-prod and rnd and everything works fine. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/19015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ica30807ecab7b60daee31fe7824b7c848d20c904 Gerrit-Change-Number: 19015 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 18:24: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 Jun 25 18:24:30 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 18:24:30 +0000 Subject: Change in osmo-ci[master]: ansible/gsm-tester: Install patchelf 0.11 on PATH In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/19015 ) Change subject: ansible/gsm-tester: Install patchelf 0.11 on PATH ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/19015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ica30807ecab7b60daee31fe7824b7c848d20c904 Gerrit-Change-Number: 19015 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 18:24: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 Jun 25 18:24:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 18:24:33 +0000 Subject: Change in osmo-ci[master]: ansible/gsm-tester: Install patchelf 0.11 on PATH In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/19015 ) Change subject: ansible/gsm-tester: Install patchelf 0.11 on PATH ...................................................................... ansible/gsm-tester: Install patchelf 0.11 on PATH We used to install patchelf 0.10 in a specific path to only use it for some binaries which had bugs with patchelf 0.9 (and other binaries had bugs with 0.10, so we couldn't use 0.10 for all binaries and hence put it in binary). However, 0.11 is fixing both issues so we can use it in all cases, hence we can put it in PATH (/usr/local/bin). Related: OS#4389 Change-Id: Ica30807ecab7b60daee31fe7824b7c848d20c904 --- M ansible/roles/gsm-tester/tasks/main.yml 1 file changed, 8 insertions(+), 8 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 7f0bad1..a3765b5 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -180,28 +180,28 @@ - osmo-gsm-tester-proc # patchelf 0.9 available in debian has bugs with certain binaries. Version 0.10 -# fails on other binaries, so we need both 0.9 and 0.10 versions installed. -- name: setup patchelf v0.10 repository +# fails on other binaries, so we need version 0.11 installed in /usr/local/bin +# (takes preference in PATH) +- name: setup patchelf v0.11 repository git: repo: 'https://github.com/NixOS/patchelf.git' dest: /root/patchelf - version: "0.10" + version: "0.11" clone: yes update: no tags: - patchelf - osmo-gsm-tester-proc -- name: build patchelf v0.10 +- name: build patchelf v0.11 shell: | autoreconf -fi && \ - ./configure --prefix=/opt && \ + ./configure --prefix=/usr/local && \ make && \ - mkdir -p /opt/bin/ && \ - cp src/patchelf /opt/bin/patchelf-v0.10 + make install args: chdir: /root/patchelf - creates: /opt/bin/patchelf-v0.10 + creates: /usr/local/bin/patchelf tags: - patchelf - osmo-gsm-tester-proc -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/19015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ica30807ecab7b60daee31fe7824b7c848d20c904 Gerrit-Change-Number: 19015 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 18:31:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 18:31:25 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_instance_asp_find_by_proto() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 ) Change subject: add osmo_ss7_instance_asp_find_by_proto() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/19012/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/19012/1/src/osmo_ss7.c at 1290 PS1, Line 1290: * \param[in] match_idx return Nth matching ASP, 0 to return first match. I'm wondering what's the point about using this Nth stuff, why would you use that? sounds wrong to me, you probably want to iterate directly in that case? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ib204c6906eb02fe64b43b75375e1b69e2a8abd30 Gerrit-Change-Number: 19012 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 18:31:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 18:32:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 18:32:54 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_asp_get_as() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 ) Change subject: add osmo_ss7_asp_get_as() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/19013/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/19013/1/src/osmo_ss7.c at 1476 PS1, Line 1476: struct osmo_ss7_as *osmo_ss7_asp_get_as(struct osmo_ss7_asp *asp) an ASP can be set in more than one AS AFAIR, so this API makes not sense? -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ia028625c5e8fab4f2683d05f78a9a1c0092a2cac Gerrit-Change-Number: 19013 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 18:32: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 Thu Jun 25 18:47:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 25 Jun 2020 18:47:23 +0000 Subject: Change in osmo-bts[master]: vty: fix missing separator in help for power ramp commands References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19017 ) Change subject: vty: fix missing separator in help for power ramp commands ...................................................................... vty: fix missing separator in help for power ramp commands Change-Id: Id83fa562ba8496be8915573d2222dd64c7ca5eb9 --- M src/common/vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/17/19017/1 diff --git a/src/common/vty.c b/src/common/vty.c index 6a1fd9c..91f3706 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -721,7 +721,7 @@ return CMD_SUCCESS; } -#define PR_STR "Power-Ramp settings" +#define PR_STR "Power-Ramp settings\n" DEFUN(cfg_trx_pr_max_initial, cfg_trx_pr_max_initial_cmd, "power-ramp max-initial <0-100000> (dBm|mdBm)", PR_STR "Maximum initial power\n" -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id83fa562ba8496be8915573d2222dd64c7ca5eb9 Gerrit-Change-Number: 19017 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 Jun 25 19:42:33 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 19:42:33 +0000 Subject: Change in osmo-bts[master]: vty: fix missing separator in help for power ramp commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19017 ) Change subject: vty: fix missing separator in help for power ramp commands ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id83fa562ba8496be8915573d2222dd64c7ca5eb9 Gerrit-Change-Number: 19017 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:42:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:42:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:42:59 +0000 Subject: Change in osmo-bts[master]: vty: fix missing separator in help for power ramp commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19017 ) Change subject: vty: fix missing separator in help for power ramp commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id83fa562ba8496be8915573d2222dd64c7ca5eb9 Gerrit-Change-Number: 19017 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:42: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 Jun 25 19:43:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:43:03 +0000 Subject: Change in osmo-bts[master]: vty: fix missing separator in help for power ramp commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19017 ) Change subject: vty: fix missing separator in help for power ramp commands ...................................................................... vty: fix missing separator in help for power ramp commands Change-Id: Id83fa562ba8496be8915573d2222dd64c7ca5eb9 --- M src/common/vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/common/vty.c b/src/common/vty.c index 6a1fd9c..91f3706 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -721,7 +721,7 @@ return CMD_SUCCESS; } -#define PR_STR "Power-Ramp settings" +#define PR_STR "Power-Ramp settings\n" DEFUN(cfg_trx_pr_max_initial, cfg_trx_pr_max_initial_cmd, "power-ramp max-initial <0-100000> (dBm|mdBm)", PR_STR "Maximum initial power\n" -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id83fa562ba8496be8915573d2222dd64c7ca5eb9 Gerrit-Change-Number: 19017 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 Jun 25 19:44:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:44:05 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_asp_get_as() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 ) Change subject: add osmo_ss7_asp_get_as() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/19013/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/19013/1/src/osmo_ss7.c at 1476 PS1, Line 1476: struct osmo_ss7_as *osmo_ss7_asp_get_as(struct osmo_ss7_asp *asp) > an ASP can be set in more than one AS AFAIR, so this API makes not sense? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ia028625c5e8fab4f2683d05f78a9a1c0092a2cac Gerrit-Change-Number: 19013 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:44:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:46:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:46:51 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_asp_get_as() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 ) Change subject: add osmo_ss7_asp_get_as() ...................................................................... Patch Set 1: I don't undrestand the full context, but it might be an idea to constrain all of this to ASPs that are part only of a single AS? I think there are already some functions to check for that, which I recently introduced in the context of supporting M3UA without routing context. That is also only possible in the simplified case where an ASP is part of only one AS. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ia028625c5e8fab4f2683d05f78a9a1c0092a2cac Gerrit-Change-Number: 19013 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:46: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 Thu Jun 25 19:47:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:47:03 +0000 Subject: Change in osmo-gsm-tester[master]: Drop using patchelf out of PATH In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19016 ) Change subject: Drop using patchelf out of PATH ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19016 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: I2701e46e7710db4c923a68e6b3a2f3c7b126f356 Gerrit-Change-Number: 19016 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 19:47:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:48:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:48:47 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst ...................................................................... Patch Set 2: the question is: *if* you want to remove one of the memset-zero, wouldn't it be more logical to remove the one that initializes br->burst to zero and keep the memcpy/memset here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 19:48:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:50:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:50:20 +0000 Subject: Change in docker-playground[master]: bsc: Store osmo-bts-omldummy logs out of docker container In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/19005 ) Change subject: bsc: Store osmo-bts-omldummy logs out of docker container ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0c02c4a9311122c3fe8ca877e02043f697723281 Gerrit-Change-Number: 19005 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 19:50: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 Jun 25 19:51:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:51:04 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test latest: do not require VLR cell id match in latest build In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/19000 ) Change subject: ttcn3-msc-test latest: do not require VLR cell id match in latest build ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I052fea208021509e12826c50474b96474e7a58c2 Gerrit-Change-Number: 19000 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:51:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:51:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:51:38 +0000 Subject: Change in osmo-msc[master]: add comments to clarify some complete l3 details In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18995 ) Change subject: add comments to clarify some complete l3 details ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6e289900d38d97c346d615b71d36656254e6f2b5 Gerrit-Change-Number: 18995 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:51: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 Jun 25 19:52:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:52:40 +0000 Subject: Change in osmo-msc[master]: vty 'show connection': show msc_a->via_cell instead of vsub->cgi In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18996 ) Change subject: vty 'show connection': show msc_a->via_cell instead of vsub->cgi ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I194271af2acb37b4f8cc2d106ab2fd2b0d443589 Gerrit-Change-Number: 18996 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 25 Jun 2020 19:52:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:53:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:53:07 +0000 Subject: Change in osmo-msc[master]: propagate Compl L3 Info Cell ID to the VLR subscriber record In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18997 ) Change subject: propagate Compl L3 Info Cell ID to the VLR subscriber record ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a Gerrit-Change-Number: 18997 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 19:53: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 Jun 25 19:53:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:53:10 +0000 Subject: Change in osmo-msc[master]: add comments to clarify some complete l3 details In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18995 ) Change subject: add comments to clarify some complete l3 details ...................................................................... add comments to clarify some complete l3 details Change-Id: I6e289900d38d97c346d615b71d36656254e6f2b5 --- M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c 2 files changed, 9 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index a70c4b9..15303b5 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -1396,7 +1396,9 @@ msub_update_id(msub); } -/* VLR informs us that the subscriber has been associated with a conn */ +/* VLR informs us that the subscriber has been associated with a conn. + * The subscriber has *not* been authenticated yet, so the vsub should be protected from potentially invalid information + * from the msc_a. */ static int msc_vlr_subscr_assoc(void *msc_conn_ref, struct vlr_subscr *vsub) { @@ -1406,6 +1408,10 @@ if (msub_set_vsub(msub, vsub)) return -EINVAL; + + /* FIXME: would be better to modify vsub->* only after the subscriber is authenticated, in + * evaluate_acceptance_outcome(conn_accepted == true). */ + vsub->cs.attached_via_ran = msc_a->c.ran->type; /* In case we have already received Classmark Information before the VLR Subscriber was diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index 3bfc0f8..fd66ad3 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -1375,6 +1375,8 @@ switch (msg->msg_type) { case RAN_MSG_COMPL_L3: + /* In case the cell_id from Complete Layer 3 Information lacks a PLMN, write the configured PLMN code + * into msc_a->via_cell. Then overwrite with those bits obtained from Complete Layer 3 Information. */ msc_a->via_cell = (struct osmo_cell_global_id){ .lai.plmn = msc_a_net(msc_a)->plmn, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I6e289900d38d97c346d615b71d36656254e6f2b5 Gerrit-Change-Number: 18995 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:53:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:53:11 +0000 Subject: Change in osmo-msc[master]: vty 'show connection': show msc_a->via_cell instead of vsub->cgi In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18996 ) Change subject: vty 'show connection': show msc_a->via_cell instead of vsub->cgi ...................................................................... vty 'show connection': show msc_a->via_cell instead of vsub->cgi For 'show subscriber cache', we print vsub->cgi. For 'show connection', it makes more sense to print msc_a->via_cell. This is tested by osmo-ttcn3-hacks Ie410714a96353f74a52a104c56fa0a08683e0004. Related: OS#4627 Change-Id: I194271af2acb37b4f8cc2d106ab2fd2b0d443589 --- M src/libmsc/msc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 29deb5e..c5e93aa 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -911,7 +911,7 @@ if (vsub) { MSC_VTY_DUMP(vty, offset, "LAC / cell ID: %u / %u%s", - vsub->cgi.lai.lac, vsub->cgi.cell_identity, + msc_a->via_cell.lai.lac, msc_a->via_cell.cell_identity, VTY_NEWLINE); } -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I194271af2acb37b4f8cc2d106ab2fd2b0d443589 Gerrit-Change-Number: 18996 Gerrit-PatchSet: 1 Gerrit-Owner: neels 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 Thu Jun 25 19:53:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:53:11 +0000 Subject: Change in osmo-msc[master]: propagate Compl L3 Info Cell ID to the VLR subscriber record In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18997 ) Change subject: propagate Compl L3 Info Cell ID to the VLR subscriber record ...................................................................... propagate Compl L3 Info Cell ID to the VLR subscriber record As soon as the subscriber is authenticated, update the VLR entry with the MSC-A's full CGI, including the Cell Id received from the Complete Layer 3 Information. Thus the Cell Id will be shown by vty 'show subscriber cache' and 'show connection'. This is tested by osmo-ttcn3-hacks Ie410714a96353f74a52a104c56fa0a08683e0004. Related: OS#4627 Change-Id: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a --- M src/libmsc/msc_a.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index fd66ad3..76c0f01 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -138,6 +138,12 @@ update_counters(fi, conn_accepted); + if (conn_accepted) { + /* Record the Cell ID seen in Complete Layer 3 Information in the VLR, so that it also shows in vty + * 'show' output. */ + vsub->cgi = msc_a->via_cell; + } + /* Trigger transactions that we paged for */ if (msc_a->complete_layer3_type == COMPLETE_LAYER3_PAGING_RESP) { if (conn_accepted) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Iee1781985fb25b21ce27526c6a3768bf70d4dc9a Gerrit-Change-Number: 18997 Gerrit-PatchSet: 1 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 Thu Jun 25 19:53:37 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:53:37 +0000 Subject: Change in osmo-bsc[master]: lchan_rtp_fsm: fix out_state_mask In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18994 ) Change subject: lchan_rtp_fsm: fix out_state_mask ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifca3892901c8389beee6e4f0fea03c33cfbdc265 Gerrit-Change-Number: 18994 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:53: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 Jun 25 19:54:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:54:07 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: fix measurement handling for SUB frames In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18035 ) Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b Gerrit-Change-Number: 18035 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 19:54:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 19:55:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 19:55:51 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18973/3/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/3/src/osmo-bts-trx/scheduler_trx.c at 372 PS3, Line 372: /* Add a set of UL burst measurements to the history */ those kind of functions (non-static, relatively self-contained) should make good candidates for unit tests. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Thu, 25 Jun 2020 19:55:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:03:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:03:35 +0000 Subject: Change in osmo-mgw[master]: refactor: use msgb to receive, pass and send RTP packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18913 ) Change subject: refactor: use msgb to receive, pass and send RTP packets ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h File include/osmocom/mgcp/mgcp_endp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/18913/1/include/osmocom/mgcp/mgcp_endp.h at 44 PS1, Line 44: #define OSMO_RTP_MSG_CTX(MSGB) (*(struct osmo_rtp_msg_ctx**)&((MSGB)->dst)) > I think you are ending up in a rabbit hole I already felt in when doing the jitterbuffer stuff. [?] casting a struct * to the msgb->cb is what I did as this is how things are (were?) done in the Linux kernel for sk_buff->cb. Also, I'm *seriously* surprised that 'unsigned long' should suddenly no longer be guaranteed to be large enouhg to contain pointers. I thought that was what 'long' was all about? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I3af40b63bc49f8636d4e7ea2f8f83bb67f6619ee Gerrit-Change-Number: 18913 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 20:03:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels 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 Jun 25 20:06:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:06:47 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 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 Thu Jun 25 20:08:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:08:01 +0000 Subject: Change in osmo-mgw[master]: endp: add typeset for e1-endpoints In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18755 ) Change subject: endp: add typeset for e1-endpoints ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I68b719a906e8f7251f0ca8c74ceec73bc40376f7 Gerrit-Change-Number: 18755 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 20:08:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:08:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:08:54 +0000 Subject: Change in osmo-msc[master]: make vty-transcrip-test: use $VTY_TEST var like osmo-bsc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18969 ) Change subject: make vty-transcrip-test: use $VTY_TEST var like osmo-bsc ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: If1e2abfa321a5e9fb60358d1f0e4e448b33184af Gerrit-Change-Number: 18969 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 20: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 Jun 25 20:08:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:08:59 +0000 Subject: Change in osmo-msc[master]: make vty-transcrip-test: use $VTY_TEST var like osmo-bsc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/18969 ) Change subject: make vty-transcrip-test: use $VTY_TEST var like osmo-bsc ...................................................................... make vty-transcrip-test: use $VTY_TEST var like osmo-bsc Adopt the same way to run manual vty transcript tests as in osmo-bsc/test/Makefile.am. There are different ways to select a specific test to run in osmo-bsc and here in osmo-msc. The osmo-bsc way is more convenient when building outside the src tree, because it does not need the full absolute path of the test file. Change-Id: If1e2abfa321a5e9fb60358d1f0e4e448b33184af --- M tests/Makefile.am 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/Makefile.am b/tests/Makefile.am index 5af80a4..c765158 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -71,6 +71,9 @@ $(srcdir)/vty_test_runner.py -w $(abs_top_builddir) -v rm -f $(top_builddir)/sms.db +# Run a specific transcript test with: 'make vty-transcript-test VTY_TEST=osmo-msc.vty' +VTY_TEST ?= *.vty + # To update the VTY script from current application behavior, # pass -u to vty_script_runner.py by doing: # make vty-transcript-test U=-u @@ -78,7 +81,7 @@ osmo_verify_transcript_vty.py -v \ -n OsmoMSC -p 4254 \ -r "$(top_builddir)/src/osmo-msc/osmo-msc -c $(top_srcdir)/doc/examples/osmo-msc/osmo-msc.cfg" \ - $(U) $${T:-$(srcdir)/*.vty} + $(U) $(srcdir)/$(VTY_TEST) rm -f $(builddir)/sms.db # don't run multiple tests concurrently so that the ports don't conflict -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/18969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: If1e2abfa321a5e9fb60358d1f0e4e448b33184af Gerrit-Change-Number: 18969 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:09:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:09:15 +0000 Subject: Change in pysim[master]: utils.py: Handle parsing of ePDGId TLV with zero length In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18975 ) Change subject: utils.py: Handle parsing of ePDGId TLV with zero length ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie05ae010948884765363bd9dbc2b0d764ff8d42a Gerrit-Change-Number: 18975 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 20:09:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:09:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:09:56 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18976 ) Change subject: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d Gerrit-Change-Number: 18976 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 20:09:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:10:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:10:23 +0000 Subject: Change in pysim[master]: utils.py: Add helper method to encode ePDG Identifier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/18977 ) Change subject: utils.py: Add helper method to encode ePDG Identifier ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I864bda5505e9061391a727add294a6e90c50f9ef Gerrit-Change-Number: 18977 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 20: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 Jun 25 20:10:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:10:29 +0000 Subject: Change in pysim[master]: utils.py: Handle parsing of ePDGId TLV with zero length In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/18975 ) Change subject: utils.py: Handle parsing of ePDGId TLV with zero length ...................................................................... utils.py: Handle parsing of ePDGId TLV with zero length Change-Id: Ie05ae010948884765363bd9dbc2b0d764ff8d42a --- M pySim/utils.py 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim/utils.py b/pySim/utils.py index 2ca6165..79a1c1b 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -462,6 +462,10 @@ if tlv[0] != 0x80: continue + # Empty field - Zero length + if tlv[1] == 0: + continue + # First byte in the value has the address type addr_type = tlv[2][0] # TODO: Support parsing of IPv4 and IPv6 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ie05ae010948884765363bd9dbc2b0d764ff8d42a Gerrit-Change-Number: 18975 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:10:29 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:10:29 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/18976 ) Change subject: pySim-read.py: Enable parsing of Home ePDG Identifier in USIM ...................................................................... pySim-read.py: Enable parsing of Home ePDG Identifier in USIM As per TS 31.102, version 13.4.0 Release 13, this EF can found under ADF.USIM at File Id 6ff3. Also, if service n?106 and service n?107 are available, this file shall be present. Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d --- M pySim-read.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 5 files changed, 18 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index b23e6ee..69cab4d 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -35,7 +35,7 @@ from pySim.commands import SimCardCommands from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn -from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader +from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_epdgid def parse_options(): @@ -250,6 +250,17 @@ else: print("USIM Service Table: Can't read, response code = %s" % (sw,)) + #EF.ePDGId - Home ePDG Identifier + try: + (res, sw) = card.read_binary(EF_USIM_ADF_map['ePDGId']) + if sw == '9000': + content = dec_epdgid(res) + print("ePDGId:\n%s" % (len(content) and content or '\tNot available\n',)) + else: + print("ePDGId: Can't read, response code = %s" % (sw,)) + except Exception as e: + print("ePDGId: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pysim-testdata/Fairwaves-SIM.ok b/pysim-testdata/Fairwaves-SIM.ok index 930dae0..dcdd43c 100644 --- a/pysim-testdata/Fairwaves-SIM.ok +++ b/pysim-testdata/Fairwaves-SIM.ok @@ -114,5 +114,6 @@ Service 64 - VGCS security Service 65 - VBS security +ePDGId: Can't read file -- SW match failed! Expected 9000 and got 6a82. Done ! diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok index dc23e2a..0e41ec0 100644 --- a/pysim-testdata/Wavemobile-SIM.ok +++ b/pysim-testdata/Wavemobile-SIM.ok @@ -130,5 +130,6 @@ Service 53 - Extension 8 Service 55 - MMS User Connectivity Parameters +ePDGId: Can't read file -- SW match failed! Expected 9000 and got 6a82. Done ! diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 6fe4404..fd3f252 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -150,6 +150,9 @@ Service 94 - Extended Terminal Applications Service 95 - Support of UICC access to IMS +ePDGId: + Not available + ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism diff --git a/pysim-testdata/sysmoUSIM-SJS1.ok b/pysim-testdata/sysmoUSIM-SJS1.ok index fb8e472..55c43ad 100644 --- a/pysim-testdata/sysmoUSIM-SJS1.ok +++ b/pysim-testdata/sysmoUSIM-SJS1.ok @@ -138,5 +138,6 @@ Service 53 - Extension 8 Service 55 - MMS User Connectivity Parameters +ePDGId: Can't read file -- SW match failed! Expected 9000 and got 6a82. Done ! -- To view, visit https://gerrit.osmocom.org/c/pysim/+/18976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I68114d328d1af5682a5bc1fa7642882e80b5de4d Gerrit-Change-Number: 18976 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:12:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:12:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 20: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 Thu Jun 25 20:13:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:13:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 ) Change subject: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 Gerrit-Change-Number: 18932 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 20: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 Thu Jun 25 20:13:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:13:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 ) Change subject: Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk ...................................................................... Osmocom_CTRL_Functions: add: retrieve and verify rate counters in bulk First user will be new MSC pooling tests in ttcn3-bsc-test, see I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f. Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 --- M library/Osmocom_CTRL_Functions.ttcn 1 file changed, 123 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index 22ed405..ee7025c 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -148,4 +148,127 @@ } + /* --- Retrieve and verify rate counter values in bulk --- + * + * BSC_Tests.ttcn shows a nice way to conveniently shorten the code needed to use these functions, see + * f_ctrs_msc_init() and f_ctrs_msc_expect(). + * + * Here also a full usage example: + * + * const CounterNameVals my_counternames := { + * { "mscpool:subscr:new", 0 }, + * { "mscpool:subscr:known", 0 }, + * { "mscpool:subscr:attach_lost", 0 }, + * }; + * + * var CounterNameValsList my_counters := f_counter_name_vals_get_n(instance_name := "msc", instance_count := 3, + * counternames := my_counternames); + * + * // run some tests that increment rate counters in the program, + * // and increment expected counters accordingly: + * my_counters := f_counter_name_vals_list_add(my_counters, instance_nr := 1, "mscpool:subscr:new", 7); + * my_counters := f_counter_name_vals_list_add(my_counters, instance_nr := 2, "mscpool:subscr:attach_lost", 3); + * + * // verify that the program reflects the expected counters: + * f_counter_name_vals_expect_n(instance_name := "msc", my_counters); + * + * // run some more tests... + * my_counters := f_counter_name_vals_list_add(my_counters, instance_nr := 0, "mscpool:subscr:known"); + * // and verify again + * f_counter_name_vals_expect_n(instance_name := "msc", my_counters); + */ + + /* One counter value, e.g. { "name", 23 } */ + type record CounterNameVal { + charstring name, + integer val + } + + /* List of one instance's counters, + * e.g. { {"foo",23}, {"bar",42} } + */ + type record of CounterNameVal CounterNameVals; + + /* List of numerous instances' counters, + * e.g. { { {"foo",23}, {"bar",42} }, + * { {"foo",23}, {"bar",42} } } + */ + type record of CounterNameVals CounterNameValsList; + + /* Retrieve one instance's rate counter values of the given names. */ + function f_counter_name_vals_get(IPA_CTRL_PT pt, charstring instance_name, integer instance_nr, + CounterNameVals counternames) + return CounterNameVals { + var CounterNameVals vals; + for (var integer i := 0; i < lengthof(counternames); i := i + 1) { + vals[i] := { + name := counternames[i].name, + val := f_ctrl_get_ratectr_abs(pt, instance_name, instance_nr, counternames[i].name) + }; + } + return vals; + } + + /* Retrieve the first N instances' rate counter values of the given names */ + function f_counter_name_vals_get_n(IPA_CTRL_PT pt, charstring instance_name := "msc", + integer instance_count, CounterNameVals counternames) + return CounterNameValsList { + var CounterNameValsList valslist; + for (var integer instance_nr := 0; instance_nr < instance_count; instance_nr := instance_nr + 1) { + valslist[instance_nr] := f_counter_name_vals_get(pt, instance_name, instance_nr, counternames); + } + log("retrieved rate counters: ", instance_name, ": ", valslist); + return valslist; + } + + /* In a list of one instance's counters, increment a specifically named counter. */ + function f_counter_name_vals_add(CounterNameVals vals, charstring countername, integer val := 1) + return CounterNameVals{ + for (var integer i := 0; i < lengthof(vals); i := i + 1) { + if (vals[i].name == countername) { + vals[i].val := vals[i].val + val; + return vals; + } + } + /* name not found, append */ + vals[lengthof(vals)] := { + name := countername, + val := val + } + return vals; + } + + /* In a list of several instances' counters, increment a specific instance's specifically named counter. */ + function f_counter_name_vals_list_add(CounterNameValsList vals, integer instance_nr, + charstring countername, integer val := 1) + return CounterNameValsList { + vals[instance_nr] := f_counter_name_vals_add(vals[instance_nr], countername, val); + return vals; + } + + /* For a specific instance, call f_counter_name_vals_get() and compare with expected counter values. + * Set the test verdict accordingly. */ + function f_counter_name_vals_expect(IPA_CTRL_PT pt, charstring instance_name, integer instance_nr, + CounterNameVals vals) { + var CounterNameVals now := f_counter_name_vals_get(pt, instance_name, instance_nr, vals); + for (var integer i := 0; i < lengthof(vals); i := i + 1) { + if (now[i].name != vals[i].name) { + setverdict(fail, "Internal error"); + } + if (now[i].val != vals[i].val) { + setverdict(fail, "Rate counter mismatch: ", instance_name, " ", instance_nr, + " ", vals[i].name, " is at ", now[i].val, " but expected ", vals[i].val); + } + } + setverdict(pass); + } + + /* For N instances, call f_counter_name_vals_get() and compare with expected counter values. + * Set the test verdict accordingly. The number of instances is given by lengthof(valslist). */ + function f_counter_name_vals_expect_n(IPA_CTRL_PT pt, charstring instance_name, CounterNameValsList valslist) { + for (var integer instance_nr := 0; instance_nr < lengthof(valslist); instance_nr := instance_nr + 1) { + f_counter_name_vals_expect(pt, instance_name, instance_nr, valslist[instance_nr]); + } + } + } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ief0d9b096feeee7d37b5f2429dd3e80de0161806 Gerrit-Change-Number: 18932 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 20:13:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 25 Jun 2020 20:13:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: MSC pooling: also test rate counters In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 ) Change subject: bsc: MSC pooling: also test rate counters ...................................................................... bsc: MSC pooling: also test rate counters Use new f_counter_* functions to verify osmo-bsc MSC pooling counters. This nicely also verifies the intended effect of each test in detail. Depends: I2ded757958dfa62b502efbab765203bcadf899e2 (osmo-bsc) Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f --- M bsc/BSC_Tests.ttcn 1 file changed, 113 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 9cb15f2..facb001 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -75,6 +75,15 @@ IPA_Client rsl } +/* Default list of counters for an 'msc' entity. */ +const CounterNameVals counternames_msc_mscpool := { + { "mscpool:subscr:new", 0 }, + { "mscpool:subscr:known", 0 }, + { "mscpool:subscr:reattach", 0 }, + { "mscpool:subscr:attach_lost", 0 }, + { "mscpool:subscr:paged", 0 } +}; + type component test_CT extends CTRL_Adapter_CT { /* Array of per-BTS state */ var BTS_State bts[NUM_BTS]; @@ -107,6 +116,7 @@ /* global test case guard timer (actual timeout value is set in f_init()) */ timer T_guard := 30.0; + var CounterNameValsList g_ctr_msc; } modulepar { @@ -179,6 +189,43 @@ return pars; } +/* Convenience functions for rate counters using g_ctr_msc. */ + +private function f_ctrs_msc_init(integer mscs_count := NUM_MSC, CounterNameVals counternames := counternames_msc_mscpool) runs on test_CT { + g_ctr_msc := f_counter_name_vals_get_n(IPA_CTRL, "msc", mscs_count, counternames); + log("initial msc rate counters: ", g_ctr_msc); +} + +private function f_ctrs_msc_add(integer msc_nr, charstring countername, integer val := 1) runs on test_CT { + g_ctr_msc := f_counter_name_vals_list_add(g_ctr_msc, msc_nr, countername, val); +} + +/* f_ctrs_msc_init(); + * f_do_thing(on_msc := 0); + * f_do_thing(on_msc := 0); + * f_do_other(on_msc := 1); + * f_ctrs_msc_add(0, "thing", 2); + * f_ctrs_msc_add(1, "other"); + * f_ctrs_msc_verify(); + */ +private function f_ctrs_msc_verify() runs on test_CT { + log("verifying msc rate counters: ", g_ctr_msc); + f_counter_name_vals_expect_n(IPA_CTRL, "msc", g_ctr_msc); +} + +/* convenience: f_ctrs_msc_add() and f_ctrs_msc_verify() in one call. + * f_ctrs_msc_init(); + * f_do_thing(on_msc := 0); + * f_do_thing(on_msc := 0); + * f_do_thing(on_msc := 0); + * f_ctrs_msc_expect(0, "thing", 3); + */ +private function f_ctrs_msc_expect(integer msc_nr, charstring countername, integer val := 1) runs on test_CT { + f_ctrs_msc_add(msc_nr, countername, val); + f_ctrs_msc_verify(); +} + + private function f_shutdown_helper() runs on test_CT { all component.stop; setverdict(pass); @@ -4621,8 +4668,13 @@ f_sleep(1.0); var MSC_ConnHdlr vc_conn; var TestHdlrParams pars := f_gen_test_hdlr_pars(); + + f_ctrs_msc_init(); + vc_conn := f_start_handler(refers(f_tc_mscpool_L3Compl_on_1_msc), pars); vc_conn.done; + + f_ctrs_msc_expect(0, "mscpool:subscr:new", 4); } /* Three Layer 3 Complete by IMSI are round-robin'ed across two connected MSCs */ @@ -4637,12 +4689,15 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4650,6 +4705,7 @@ pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:new"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4658,6 +4714,7 @@ pars3.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); } /* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 0 @@ -4673,12 +4730,15 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4686,6 +4746,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:reattach"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4694,6 +4755,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(0)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); } /* Three LU by TMSI are round-robin'ed across two connected MSCs, because they contain the NULL-NRI 1 @@ -4710,12 +4772,15 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4723,6 +4788,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:reattach"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4731,6 +4797,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(1)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:reattach"); } /* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI not @@ -4746,6 +4813,8 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -4753,6 +4822,7 @@ pars1.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(1023)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4761,6 +4831,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(768)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:new"); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4770,6 +4841,7 @@ pars3.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_SS_ACT, valueof(ts_MI_TMSI_NRI_LV(819)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); } /* Three Layer 3 Complete by TMSI are round-robin'ed across two connected MSCs, because they contain an NRI @@ -4785,6 +4857,8 @@ * would be randomly affected by which other tests ran before this. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -4792,6 +4866,9 @@ pars1.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(512)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_add(2, "mscpool:subscr:attach_lost"); + f_ctrs_msc_add(0, "mscpool:subscr:new"); + f_ctrs_msc_verify(); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4800,6 +4877,9 @@ pars2.mscpool.l3_info := valueof(ts_ML3_MO_MM_IMSI_DET_Ind(valueof(ts_MI_TMSI_NRI_LV(767)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_add(2, "mscpool:subscr:attach_lost"); + f_ctrs_msc_add(1, "mscpool:subscr:new"); + f_ctrs_msc_verify(); /* Test round-robin wrap to the first MSC */ var MSC_ConnHdlr vc_conn3; @@ -4809,6 +4889,9 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(750)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_add(2, "mscpool:subscr:attach_lost"); + f_ctrs_msc_add(0, "mscpool:subscr:new"); + f_ctrs_msc_verify(); } /* Three Layer 3 Complete by TMSI with valid NRI for the second MSC are all directed to the second MSC (configured in @@ -4824,6 +4907,8 @@ * this is not using round-robin. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 1); pars1.mscpool.rsl_idx := 0; @@ -4831,6 +4916,7 @@ pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(256)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4839,6 +4925,7 @@ pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(260)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn3; var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -4847,6 +4934,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(511)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); } /* Layer 3 Complete by TMSI with valid NRI for the third MSC are directed to the third MSC (configured in osmo-bsc.cfg), @@ -4862,6 +4950,8 @@ * this is not using round-robin. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 2); pars1.mscpool.rsl_idx := 0; @@ -4869,6 +4959,7 @@ pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, valueof(ts_MI_TMSI_NRI_LV(512)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(2, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); @@ -4877,6 +4968,7 @@ pars2.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_TMSI_NRI_LV(678)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(2, "mscpool:subscr:known"); /* The above forwardings to third MSC have not affected the round robin, which still points at the second MSC */ var MSC_ConnHdlr vc_conn3; @@ -4885,6 +4977,7 @@ pars3.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000013'H)), '00F110'O)); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(1, "mscpool:subscr:new"); } /* LU with a TMSI but indicating a different PLMN in its previous LAI: ignore the NRI. */ @@ -4899,6 +4992,8 @@ * instead, and hits msc 0. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 0"); + f_ctrs_msc_init(); + /* An NRI of the second MSC's range (256-511), but a PLMN that doesn't match with osmo-bsc.cfg */ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); @@ -4906,6 +5001,7 @@ pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(260)), '99F999'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); /* An NRI of the third MSC's range (512-767) and a matching PLMN gets directed by NRI. */ var MSC_ConnHdlr vc_conn2; @@ -4914,6 +5010,7 @@ pars2.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_TMSI_NRI_LV(555)), '00F110'O)); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(2, "mscpool:subscr:known"); } /* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by IMSI, which would be @@ -4954,6 +5051,8 @@ * second MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 1"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -4961,6 +5060,7 @@ pars1.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_imsi), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:paged"); } /* Make sure that whichever MSC paged a subscriber will also get the Paging Response. Page by TMSI with an NRI value @@ -5003,6 +5103,8 @@ * third MSC to make sure we're getting the Paging logic, not a coincidental round robin match. */ f_vty_transceive(BSCVTY, "mscpool roundrobin next 2"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; @@ -5010,6 +5112,7 @@ pars1.sccp_addr_msc := g_bssap[pars1.mscpool.bssap_idx].sccp_addr_own; vc_conn1 := f_start_handler(refers(f_tc_mscpool_paging_tmsi), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:paged"); } /* For round-robin, skip an MSC that has 'no allow-attach' set. */ @@ -5030,12 +5133,15 @@ f_vty_transceive(BSCVTY, "exit"); f_vty_transceive(BSCVTY, "exit"); + f_ctrs_msc_init(); + var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 0); pars1.mscpool.rsl_idx := 0; pars1.mscpool.l3_info := valueof(ts_LU_REQ(LU_Type_IMSI_Attach, valueof(ts_MI_IMSI_LV('001010000000001'H)), '00F110'O)); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 2); @@ -5043,6 +5149,7 @@ pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(2, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn3; var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 0); @@ -5050,6 +5157,7 @@ pars3.mscpool.l3_info := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010000000003'H)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); f_vty_enter_cfg_msc(BSCVTY, 1); f_vty_transceive(BSCVTY, "allow-attach"); @@ -5074,6 +5182,8 @@ f_vty_transceive(BSCVTY, "exit"); f_vty_transceive(BSCVTY, "exit"); + f_ctrs_msc_init(); + /* Round robin points at msc 0, but the valid NRI directs to msc 1, even though msc 1 has 'no allow-attach'. */ var MSC_ConnHdlr vc_conn1; var TestHdlrParams pars1 := f_gen_test_hdlr_pars(bssap_idx := 1); @@ -5082,6 +5192,7 @@ pars1.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_TMSI_NRI_LV(260)))); vc_conn1 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars1); vc_conn1.done; + f_ctrs_msc_expect(1, "mscpool:subscr:known"); var MSC_ConnHdlr vc_conn2; var TestHdlrParams pars2 := f_gen_test_hdlr_pars(bssap_idx := 0); @@ -5089,6 +5200,7 @@ pars2.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000002'H)))); vc_conn2 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars2); vc_conn2.done; + f_ctrs_msc_expect(0, "mscpool:subscr:new"); var MSC_ConnHdlr vc_conn3; var TestHdlrParams pars3 := f_gen_test_hdlr_pars(bssap_idx := 2); @@ -5096,6 +5208,7 @@ pars3.mscpool.l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, valueof(ts_MI_IMSI_LV('001010000000003'H)))); vc_conn3 := f_start_handler(refers(f_tc_mscpool_compl_l3), pars3); vc_conn3.done; + f_ctrs_msc_expect(2, "mscpool:subscr:new"); f_vty_enter_cfg_msc(BSCVTY, 1); f_vty_transceive(BSCVTY, "allow-attach"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2006f1def5352b4b73d0159bfcaa2da9c64bfe3f Gerrit-Change-Number: 18876 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 21:34:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 21:34:21 +0000 Subject: Change in osmo-gsm-tester[master]: Drop using patchelf out of PATH In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19016 ) Change subject: Drop using patchelf out of PATH ...................................................................... Drop using patchelf out of PATH New patchelf 0.11 release is out and it has fixes hitting us in both 0.9 and 0.10 on different binaries. So let's simply requiring having patchelf 0.11 in all cases and be done with it (actually, if not running 4G binaries, using 0.9 is enough). Related: OS#4389 Change-Id: I2701e46e7710db4c923a68e6b3a2f3c7b126f356 --- M src/osmo_gsm_tester/obj/ms_amarisoft.py M src/osmo_gsm_tester/obj/ms_srs.py 2 files changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/ms_amarisoft.py b/src/osmo_gsm_tester/obj/ms_amarisoft.py index b2dc9c7..565786b 100644 --- a/src/osmo_gsm_tester/obj/ms_amarisoft.py +++ b/src/osmo_gsm_tester/obj/ms_amarisoft.py @@ -145,7 +145,6 @@ # setting capabilities will later disable use of LD_LIBRARY_PATH from ELF loader -> modify RPATH instead. self.log('Setting RPATH for ltetue') # patchelf >= 0.10 is required to support passing several files at once: - self.rem_host.set_remote_env({'PATCHELF_BIN': '/opt/bin/patchelf-v0.10' }) self.rem_host.change_elf_rpath(remote_binary, str(self.remote_inst)) # We also need to patch the arch-optimized binaries that lteue() will exec() into: self.rem_host.change_elf_rpath(self.remote_inst.child('', 'lteue-*'), str(self.remote_inst)) diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 04df1ba..9f77bb6 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -176,7 +176,6 @@ # setting capabilities will later disable use of LD_LIBRARY_PATH from ELF loader -> modify RPATH instead. self.log('Setting RPATH for srsue') # srsue binary needs patchelf >= 0.9+52 to avoid failing during patch. OS#4389, patchelf-GH#192. - self.rem_host.set_remote_env({'PATCHELF_BIN': '/opt/bin/patchelf-v0.10' }) self.rem_host.change_elf_rpath(remote_binary, remote_lib) # srsue requires CAP_SYS_ADMIN to jump to net network namespace: netns(CLONE_NEWNET): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19016 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: I2701e46e7710db4c923a68e6b3a2f3c7b126f356 Gerrit-Change-Number: 19016 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 21:39:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 21:39:39 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst ...................................................................... Patch Set 2: > Patch Set 2: > > the question is: *if* you want to remove one of the memset-zero, wouldn't it be more logical to remove the one that initializes br->burst to zero and keep the memcpy/memset here? If you mean removing the memzero from msgb, I'm in favour, but that's probably going to break some existing code :P -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 25 Jun 2020 21:39:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 25 21:40:48 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 21:40:48 +0000 Subject: Change in docker-playground[master]: bsc: Store osmo-bts-omldummy logs out of docker container In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/19005 ) Change subject: bsc: Store osmo-bts-omldummy logs out of docker container ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0c02c4a9311122c3fe8ca877e02043f697723281 Gerrit-Change-Number: 19005 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 25 Jun 2020 21:40: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 Jun 25 21:41:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 25 Jun 2020 21:41:02 +0000 Subject: Change in docker-playground[master]: bsc: Store osmo-bts-omldummy logs out of docker container In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/19005 ) Change subject: bsc: Store osmo-bts-omldummy logs out of docker container ...................................................................... bsc: Store osmo-bts-omldummy logs out of docker container Change-Id: I0c02c4a9311122c3fe8ca877e02043f697723281 --- M ttcn3-bsc-test/jenkins.sh 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Verified diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 7f84151..11b9d2a 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -17,6 +17,8 @@ mkdir $VOL_BASE_DIR/bsc cp osmo-bsc.cfg $VOL_BASE_DIR/bsc/ +mkdir $VOL_BASE_DIR/bts-omldummy + # Disable MSC pooling features until osmo-bsc.git release > 1.6.0 is available if [ "$IMAGE_SUFFIX" = "latest" ]; then cp pre-mscpool-osmo-bsc.cfg $VOL_BASE_DIR/bsc/osmo-bsc.cfg @@ -48,6 +50,7 @@ docker run --rm \ --network $NET_NAME --ip 172.18.2.10$i \ --ulimit core=-1 \ + -v $VOL_BASE_DIR/bts-omldummy:/data \ --name ${BUILD_TAG}-bts$i -d \ $DOCKER_ARGS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0c02c4a9311122c3fe8ca877e02043f697723281 Gerrit-Change-Number: 19005 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 08:52:02 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 26 Jun 2020 08:52:02 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19018 ) Change subject: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() ...................................................................... mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() Change-Id: I2d811b6ddda5b330054145abff37c996c54c3e3a --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/18/19018/1 diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 54db20d..819461d 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -892,6 +892,9 @@ return endpoint; } +/*! Compose endpoint name for a wildcarded request to the virtual trunk + * \param[in] mgcp MGCP client descriptor. + * \returns string containing the endpoint name (e.g. rtpbridge\*@mgw) */ const char *mgcp_client_rtpbridge_wildcard(const struct mgcp_client *mgcp) { return _mgcp_client_name_append_domain(mgcp, "rtpbridge/*"); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2d811b6ddda5b330054145abff37c996c54c3e3a Gerrit-Change-Number: 19018 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 Jun 26 09:26:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 09:26:52 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19018 ) Change subject: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2d811b6ddda5b330054145abff37c996c54c3e3a Gerrit-Change-Number: 19018 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 09:26: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 Jun 26 10:13:50 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 10:13:50 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm_fsm.c: Add missing license header References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19019 ) Change subject: gprs_gmm_fsm.c: Add missing license header ...................................................................... gprs_gmm_fsm.c: Add missing license header The file was created by myself on September 2019, 31c4657c971e40407163034526aafeb9b5a83460. Change-Id: I94299b9ccf760ad13429e149067f06ed60d37de3 --- M src/sgsn/gprs_gmm_fsm.c 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/19/19019/1 diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c index 11b4e4e..886726c 100644 --- a/src/sgsn/gprs_gmm_fsm.c +++ b/src/sgsn/gprs_gmm_fsm.c @@ -1,3 +1,25 @@ +/* GMM mobility management states on the network side, 3GPP TS 24.008 ? 4.1.3.3 */ +/* + * (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/+/19019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I94299b9ccf760ad13429e149067f06ed60d37de3 Gerrit-Change-Number: 19019 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 Jun 26 10:16:02 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 10:16:02 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 ) Change subject: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state ...................................................................... sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state The MS notifies movement to GMM SUSPEND state because it is for instance handling a call and cannot use PDCH anymore. Once it releases the TCH it will ASAP move to either dedicated mode or trigger RAU, which means it will get out of SUSPEND state. So it doesn't make sense to try paging the MS when in that state. This change makes test TC_suspend_nopaging pass. Related: OS#4616 Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b --- M src/sgsn/sgsn_libgtp.c 1 file changed, 3 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/20/19020/1 diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c index 717df4a..e237eed 100644 --- a/src/sgsn/sgsn_libgtp.c +++ b/src/sgsn/sgsn_libgtp.c @@ -661,11 +661,10 @@ switch (mm->gmm_fsm->state) { case ST_GMM_REGISTERED_SUSPENDED: /* initiate PS PAGING procedure */ - LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s\n", + LOGMMCTXP(LOGL_INFO, mm, "Dropping DL packet for MS in GMM state %s\n", osmo_fsm_inst_state_name(mm->gmm_fsm)); - gprs_gb_page_ps_ra(mm); - /* FIXME: queue the packet we received from GTP */ - break; + msgb_free(msg); + return -1; case ST_GMM_REGISTERED_NORMAL: OSMO_ASSERT(mm->gb.mm_state_fsm->state != ST_MM_IDLE); if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b Gerrit-Change-Number: 19020 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 Jun 26 10:21:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 10:21:00 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 ) Change subject: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state ...................................................................... sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state The MS notifies movement to GMM SUSPEND state because it is for instance handling a call and cannot use PDCH anymore. Once it releases the TCH it will ASAP move to either dedicated mode or trigger RAU, which means it will get out of SUSPEND state. So it doesn't make sense to try paging the MS when in that state. This change makes test TC_suspend_nopaging pass. Related: OS#4616 Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b --- M src/sgsn/sgsn_libgtp.c 1 file changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/20/19020/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b Gerrit-Change-Number: 19020 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 Jun 26 10:43:37 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 26 Jun 2020 10:43:37 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm_fsm.c: Add missing license header In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19019 ) Change subject: gprs_gmm_fsm.c: Add missing license header ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I94299b9ccf760ad13429e149067f06ed60d37de3 Gerrit-Change-Number: 19019 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 26 Jun 2020 10:43: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 Jun 26 10:45:20 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 26 Jun 2020 10:45:20 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 ) Change subject: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b Gerrit-Change-Number: 19020 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 26 Jun 2020 10:45:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 11:09:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 11:09:54 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Small clean ups in IMSI storage related code References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19021 ) Change subject: gprs_ms: Small clean ups in IMSI storage related code ...................................................................... gprs_ms: Small clean ups in IMSI storage related code Change-Id: I987af0d33b79302c037d062c9d1c828a0e027147 --- M src/gprs_ms.cpp M src/gprs_ms.h 2 files changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/21/19021/1 diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp index 1ec8eda..341826c 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -120,7 +120,7 @@ LOGP(DRLCMAC, LOGL_INFO, "Creating MS object, TLLI = 0x%08x\n", tlli); - m_imsi[0] = 0; + m_imsi[0] = '\0'; memset(&m_timer, 0, sizeof(m_timer)); m_timer.cb = GprsMs::timeout; m_llc_queue.init(); @@ -463,8 +463,7 @@ "Modifying MS object, TLLI = 0x%08x, IMSI '%s' -> '%s'\n", tlli(), m_imsi, imsi); - strncpy(m_imsi, imsi, sizeof(m_imsi)); - m_imsi[sizeof(m_imsi) - 1] = '\0'; + osmo_strlcpy(m_imsi, imsi, sizeof(m_imsi)); } void GprsMs::set_ta(uint8_t ta_) diff --git a/src/gprs_ms.h b/src/gprs_ms.h index f7b5c36..1e5a155 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -32,6 +32,8 @@ #include #include + #include + #include "coding_scheme.h" } @@ -159,7 +161,7 @@ uint32_t m_new_dl_tlli; /* store IMSI for look-up and PCH retransmission */ - char m_imsi[16]; + char m_imsi[OSMO_IMSI_BUF_SIZE]; uint8_t m_ta; uint8_t m_ms_class; uint8_t m_egprs_ms_class; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I987af0d33b79302c037d062c9d1c828a0e027147 Gerrit-Change-Number: 19021 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 Jun 26 12:35:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 12:35:46 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Transfer known EGPRS MS class when mergling old MS References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19022 ) Change subject: gprs_ms: Transfer known EGPRS MS class when mergling old MS ...................................................................... gprs_ms: Transfer known EGPRS MS class when mergling old MS Since not all the the information about the MS is known during TBF creation in all scenrios, it may happen that when TBF is created it creates a MS which later will end up being found a duplicate of an already previously existing MS. At that point, the old object is dropped and information retrieved from both is merged into the new one. The GPRS MS class was being transferred, but the EGPRS MS class was missing. Change-Id: Ieb9929b60254b12f79392d6acb8b456d71cccb9e --- M src/gprs_ms.cpp 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/22/19022/1 diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp index 341826c..494ed2e 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -386,6 +386,9 @@ if (!ms_class() && old_ms->ms_class()) set_ms_class(old_ms->ms_class()); + if (!egprs_ms_class() && old_ms->egprs_ms_class()) + set_egprs_ms_class(old_ms->egprs_ms_class()); + m_llc_queue.move_and_merge(&old_ms->m_llc_queue); old_ms->reset(); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb9929b60254b12f79392d6acb8b456d71cccb9e Gerrit-Change-Number: 19022 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 Jun 26 12:35:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 12:35:47 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop unneeded method set_tlli_from_ul References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19023 ) Change subject: tbf: Drop unneeded method set_tlli_from_ul ...................................................................... tbf: Drop unneeded method set_tlli_from_ul Since commit 322456ed474a733094c9f3e240295b469023ad14 (and previous one), it is expected that a tbf object ALWAYS has a MS object referend to it, even if it's a temporary copy which will later be merged when TLLI/IMSI is retrieved and it is found that several MS objects relate to the same MS. The purpose of set_tlli_from_ul was mainly to update TBF's ms() to old_ms before going through usual tbf->update_ms() path. That's not really needed since ms() is already always set and TBFs for old_ms are already freed in update_ms() and children function. Change-Id: Ie8795e7a02032336e53febb65c11f9150c36d2a0 --- M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M src/tbf_ul.cpp M tests/tbf/TbfTest.err 5 files changed, 2 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/23/19023/1 diff --git a/src/tbf.cpp b/src/tbf.cpp index 0cc0129..f77b1e2 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -392,9 +392,6 @@ void gprs_rlcmac_tbf::update_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir) { - if (!ms()) - return; - if (!tlli) return; @@ -1439,49 +1436,6 @@ return 0; } -int gprs_rlcmac_tbf::set_tlli_from_ul(uint32_t new_tlli) -{ - struct gprs_rlcmac_tbf *dl_tbf = NULL; - struct gprs_rlcmac_tbf *ul_tbf = NULL; - GprsMs *old_ms; - - OSMO_ASSERT(direction == GPRS_RLCMAC_UL_TBF); - - old_ms = bts->ms_by_tlli(new_tlli); - /* Keep the old MS object for the update_ms() */ - GprsMs::Guard guard(old_ms); - if (old_ms) { - /* Get them before calling set_ms() */ - dl_tbf = old_ms->dl_tbf(); - ul_tbf = old_ms->ul_tbf(); - - if (!ms()) - set_ms(old_ms); - } - - if (dl_tbf && dl_tbf->ms() != ms()) { - LOGPTBFUL(dl_tbf, LOGL_NOTICE, - "Got RACH from TLLI=0x%08x while TBF still exists: killing pending DL TBF\n", new_tlli); - tbf_free(dl_tbf); - dl_tbf = NULL; - } - if (ul_tbf && ul_tbf->ms() != ms()) { - LOGPTBFUL(ul_tbf, LOGL_NOTICE, - "Got RACH from TLLI=0x%08x while TBF still exists: killing pending UL TBF\n", new_tlli); - tbf_free(ul_tbf); - ul_tbf = NULL; - } - - /* The TLLI has been taken from an UL message */ - update_ms(new_tlli, GPRS_RLCMAC_UL_TBF); - -#if 0 /* REMOVEME ??? */ - if (ms()->need_dl_tbf()) - establish_dl_tbf_on_pacch(); -#endif - return 1; -} - const char *tbf_name(gprs_rlcmac_tbf *tbf) { return tbf ? tbf->name() : "(no TBF)"; diff --git a/src/tbf.h b/src/tbf.h index be3336a..528bee3 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -319,7 +319,6 @@ protected: gprs_rlcmac_bts *bts_data() const; void enable_egprs(); - int set_tlli_from_ul(uint32_t new_tlli); void merge_and_clear_ms(GprsMs *old_ms); gprs_llc_queue *llc_queue(); diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 03149ba..02aaa3a 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -151,8 +151,6 @@ ul_tbf = ms->ul_tbf(); ta = ms->ta(); - /* TODO: if (!ms) create MS before tbf_alloc is called? */ - if (ul_tbf && ul_tbf->m_contention_resolution_done && !ul_tbf->m_final_ack_sent) { use_trx = ul_tbf->trx->trx_no; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 3115080..489fc87 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -305,7 +305,7 @@ LOGPTBFUL(this, LOGL_INFO, "Decoded premier TLLI=0x%08x of UL DATA TFI=%d.\n", new_tlli, rlc->tfi); - set_tlli_from_ul(new_tlli); + update_ms(new_tlli, GPRS_RLCMAC_UL_TBF); } else if (new_tlli && new_tlli != tlli()) { LOGPTBFUL(this, LOGL_NOTICE, "TLLI mismatch on UL DATA TFI=%d. (Ignoring due to contention resolution)\n", diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 827f5ce..0d097ee 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -2079,7 +2079,6 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0x00000000 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 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) Decoded premier TLLI=0xf1223344 of UL DATA TFI=0. -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Got RACH from TLLI=0xf1223344 while TBF still exists: killing pending DL TBF TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to RELEASING TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) free TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) stopping timer T0 [freeing TBF] @@ -2089,8 +2088,8 @@ Modifying MS object, TLLI = 0x00000000, IMSI '' -> '0011223344' Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 Clearing MS object, TLLI: 0xf1223344, IMSI: '0011223344' -Modifying MS object, UL TLLI: 0x00000000 -> 0xf1223344, not yet confirmed Destroying MS object, TLLI = 0x00000000 +Modifying MS object, UL TLLI: 0x00000000 -> 0xf1223344, not yet confirmed TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Assembling frames: (len=20) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Frame 1 starts at offset 4, length=16, is_complete=1 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) complete UL frame len=16 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie8795e7a02032336e53febb65c11f9150c36d2a0 Gerrit-Change-Number: 19023 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 Jun 26 12:54:37 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 12:54:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: verify conn and VLR cell id in most tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 ) Change subject: msc: verify conn and VLR cell id in most tests ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1//COMMIT_MSG at 7 PS1, Line 7: in most tests > Does it really make sense to verify it in all test cases? Why not to implement a dedicated test case [?] I would need to set up various kinds of level 3 complete and see whether each one ends up saving the cell id. Instead I decided to use the tests we already have to avoid code dup and make the feature universally tested. The down side is that each test that wants a complete l3 to fail needs to indicate that it doesn't expect the cell id to propagate. But this is a bit like the Codec List (BSS Supported), or whether Osmux is indicated: I'd rather make it part of all the tests because it is a detail present in "every" situation. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004 Gerrit-Change-Number: 18998 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 26 Jun 2020 12:54: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 Fri Jun 26 13:32:05 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 13:32:05 +0000 Subject: Change in osmo-msc[master]: refactor: move RESET Osmux TLV parsing to ran_msg_a.c References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/19024 ) Change subject: refactor: move RESET Osmux TLV parsing to ran_msg_a.c ...................................................................... refactor: move RESET Osmux TLV parsing to ran_msg_a.c ran_peer.c is not the proper place to parse messages, because it should be RAN agnostic. All parsing and encoding belongs in ran_msg_a.c and ran_msg_iu.c. Move the Osmux TLV parsing into the is_reset_msg op: add supports_osmux out-parameter (and add a logging fi pointer). To be able to modify msg->l3h, also make the msgb arg non-const. In ranap_is_reset_msg(), always return non-support for Osmux. In bssmap_is_reset_msg(), return 0 if no TLVs were parsed, 1/-1 if an Osmux TLV was present/not present. Update the osmux support flag directly where the ConnectionLess message is received, so that there is only one place responsible for that. Related: OS#4595 Change-Id: I1ad4a3f9356216dd4bf8c48fba29fd23438810a7 --- M include/osmocom/msc/ran_msg_a.h M include/osmocom/msc/ran_msg_iu.h M include/osmocom/msc/sccp_ran.h M src/libmsc/ran_msg_a.c M src/libmsc/ran_msg_iu.c M src/libmsc/ran_peer.c 6 files changed, 59 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/19024/1 diff --git a/include/osmocom/msc/ran_msg_a.h b/include/osmocom/msc/ran_msg_a.h index 3ba081d..2d045b9 100644 --- a/include/osmocom/msc/ran_msg_a.h +++ b/include/osmocom/msc/ran_msg_a.h @@ -35,7 +35,8 @@ int ran_a_decode_l2(struct ran_dec *ran_a, struct msgb *bssap); struct msgb *ran_a_encode(struct osmo_fsm_inst *caller_fi, const struct ran_msg *ran_enc_msg); -enum reset_msg_type bssmap_is_reset_msg(const struct sccp_ran_inst *sri, const struct msgb *l2); +enum reset_msg_type bssmap_is_reset_msg(const struct sccp_ran_inst *sri, struct osmo_fsm_inst *log_fi, + struct msgb *l2, int *supports_osmux); struct msgb *bssmap_make_reset_msg(const struct sccp_ran_inst *sri, enum reset_msg_type type); struct msgb *bssmap_make_paging_msg(const struct sccp_ran_inst *sri, const struct gsm0808_cell_id *page_cell_id, const char *imsi, uint32_t tmsi, enum paging_cause cause); diff --git a/include/osmocom/msc/ran_msg_iu.h b/include/osmocom/msc/ran_msg_iu.h index 316a91c..3f3d61e 100644 --- a/include/osmocom/msc/ran_msg_iu.h +++ b/include/osmocom/msc/ran_msg_iu.h @@ -28,7 +28,8 @@ int ran_iu_decode_l2(struct ran_dec *ran_dec_iu, struct msgb *ranap); struct msgb *ran_iu_encode(struct osmo_fsm_inst *caller_fi, const struct ran_msg *ran_enc_msg); -enum reset_msg_type ranap_is_reset_msg(const struct sccp_ran_inst *sri, const struct msgb *l2); +enum reset_msg_type ranap_is_reset_msg(const struct sccp_ran_inst *sri, struct osmo_fsm_inst *log_fi, + struct msgb *l2, int *supports_osmux); struct msgb *ranap_make_reset_msg(const struct sccp_ran_inst *sri, enum reset_msg_type type); struct msgb *ranap_make_paging_msg(const struct sccp_ran_inst *sri, const struct gsm0808_cell_id *page_cell_id, const char *imsi, uint32_t tmsi, enum paging_cause cause); diff --git a/include/osmocom/msc/sccp_ran.h b/include/osmocom/msc/sccp_ran.h index f84bf61..a4bd4ca 100644 --- a/include/osmocom/msc/sccp_ran.h +++ b/include/osmocom/msc/sccp_ran.h @@ -233,8 +233,11 @@ /* Return whether the given l2_cl message is a RESET, RESET ACKNOWLEDGE, or RESET-unrelated message. * This callback is stored in struct sccp_ran_inst to provide RESET handling to the caller (ran_peer), - * it is not used in sccp_ran.c. */ - enum reset_msg_type (* is_reset_msg )(const struct sccp_ran_inst *sri, const struct msgb *l2_cl); + * it is not used in sccp_ran.c. + * In supports_osmux, return 0 for no information, 1 for support detected, -1 for non-support detected. + */ + enum reset_msg_type (* is_reset_msg )(const struct sccp_ran_inst *sri, struct osmo_fsm_inst *log_fi, + struct msgb *l2_cl, int *supports_osmux); /* Return a RESET or RESET ACK message for this RAN type. * This callback is stored in struct sccp_ran_inst to provide RESET handling to the caller (ran_peer), diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c index ab58526..937e283 100644 --- a/src/libmsc/ran_msg_a.c +++ b/src/libmsc/ran_msg_a.c @@ -1254,7 +1254,6 @@ struct msgb *ran_a_encode(struct osmo_fsm_inst *caller_fi, const struct ran_msg *ran_enc_msg) { struct msgb *msg = _ran_a_encode(caller_fi, ran_enc_msg); - if (!msg) return NULL; @@ -1275,20 +1274,50 @@ return msg; } -/* Return 1 for a RESET, 2 for a RESET ACK message, 0 otherwise */ -enum reset_msg_type bssmap_is_reset_msg(const struct sccp_ran_inst *sri, const struct msgb *l2) +static void cl_parse_osmux(struct osmo_fsm_inst *log_fi, struct msgb *msg, int *supports_osmux) +{ + struct tlv_parsed tp; + int rc; + + if (supports_osmux == NULL) + return; + + rc = tlv_parse(&tp, gsm0808_att_tlvdef(), msgb_l3(msg) + 1, msgb_l3len(msg) - 1, 0, 0); + if (rc < 0) { + LOGPFSMSL(log_fi, DBSSAP, LOGL_ERROR, "BSSMAP: Failed parsing TLV looking for Osmux support\n"); + return; + } + + if (TLVP_PRESENT(&tp, GSM0808_IE_OSMO_OSMUX_SUPPORT)) { + *supports_osmux = true; + } else { + *supports_osmux = false; + } +} + +/* Return 1 for a RESET, 2 for a RESET ACK message, 0 otherwise. + * In supports_osmux, return 0 for no information, 1 for support detected, -1 for non-support detected. */ +enum reset_msg_type bssmap_is_reset_msg(const struct sccp_ran_inst *sri, struct osmo_fsm_inst *log_fi, + struct msgb *l2, int *supports_osmux) { struct bssmap_header *bs = (struct bssmap_header *)msgb_l2(l2); + if (supports_osmux) + *supports_osmux = 0; + if (!bs || msgb_l2len(l2) < (sizeof(*bs) + 1) || bs->type != BSSAP_MSG_BSS_MANAGEMENT) return SCCP_RAN_MSG_NON_RESET; + l2->l3h = msgb_l2(l2) + sizeof(struct bssmap_header); + switch (l2->l2h[sizeof(*bs)]) { case BSS_MAP_MSG_RESET: + cl_parse_osmux(log_fi, l2, supports_osmux); return SCCP_RAN_MSG_RESET; case BSS_MAP_MSG_RESET_ACKNOWLEDGE: + cl_parse_osmux(log_fi, l2, supports_osmux); return SCCP_RAN_MSG_RESET_ACK; default: return SCCP_RAN_MSG_NON_RESET; diff --git a/src/libmsc/ran_msg_iu.c b/src/libmsc/ran_msg_iu.c index b17aef8..5d13460 100644 --- a/src/libmsc/ran_msg_iu.c +++ b/src/libmsc/ran_msg_iu.c @@ -438,11 +438,15 @@ } } -enum reset_msg_type ranap_is_reset_msg(const struct sccp_ran_inst *sri, const struct msgb *l2) +enum reset_msg_type ranap_is_reset_msg(const struct sccp_ran_inst *sri, struct osmo_fsm_inst *log_fi, + struct msgb *l2, int *supports_osmux) { int ret = SCCP_RAN_MSG_NON_RESET; int rc; + if (supports_osmux != NULL) + *supports_osmux = -1; + rc = ranap_cn_rx_cl(ranap_handle_cl, &ret, msgb_l2(l2), msgb_l2len(l2)); if (rc) return 0; diff --git a/src/libmsc/ran_peer.c b/src/libmsc/ran_peer.c index da88873..80ce558 100644 --- a/src/libmsc/ran_peer.c +++ b/src/libmsc/ran_peer.c @@ -122,25 +122,19 @@ } } -/* TODO: create an sccp_ran_ops.rx_reset(_ack) to handle this differently on 2g and 3G */ -/* We expect RAN peer to provide use with an Osmocom extension TLV in BSSMAP_RESET to - * announce Osmux support */ -static void ran_peer_update_osmux_support(struct ran_peer *rp, struct msgb *msg) +static void ran_peer_update_osmux_support(struct ran_peer *rp, int supports_osmux) { - struct tlv_parsed tp; - int rc; bool old_value = rp->remote_supports_osmux; - OSMO_ASSERT(msg); - msg->l3h = msg->l2h + sizeof(struct bssmap_header); - rc = tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l3h + 1, msgb_l3len(msg) - 1, 0, 0); - if (rc < 0) - LOG_RAN_PEER(rp, LOGL_NOTICE, "Failed parsing TLV looking for Osmux support\n"); - - if (TLVP_PRESENT(&tp, GSM0808_IE_OSMO_OSMUX_SUPPORT)) { + switch (supports_osmux) { + case 1: rp->remote_supports_osmux = true; - } else { + break; + case -1: rp->remote_supports_osmux = false; + break; + default: + return; } if (old_value != rp->remote_supports_osmux) @@ -155,8 +149,6 @@ ran_peer_discard_all_conns(rp); - ran_peer_update_osmux_support(rp, msg); - reset_ack = rp->sri->ran->sccp_ran_ops.make_reset_msg(rp->sri, SCCP_RAN_MSG_RESET_ACK); if (!reset_ack) { @@ -183,7 +175,6 @@ static void ran_peer_rx_reset_ack(struct ran_peer *rp, struct msgb* msg) { ran_peer_state_chg(rp, RAN_PEER_ST_READY); - ran_peer_update_osmux_support(rp, msg); } void ran_peer_reset(struct ran_peer *rp) @@ -213,10 +204,14 @@ struct ran_peer *rp = fi->priv; struct ran_peer_ev_ctx *ctx = data; struct msgb *msg = ctx->msg; + int rc; + int supports_osmux; switch (event) { case RAN_PEER_EV_MSG_UP_CL: - switch (rp->sri->ran->sccp_ran_ops.is_reset_msg(rp->sri, msg)) { + rc = rp->sri->ran->sccp_ran_ops.is_reset_msg(rp->sri, fi, msg, &supports_osmux); + ran_peer_update_osmux_support(rp, supports_osmux); + switch (rc) { case 1: osmo_fsm_inst_dispatch(fi, RAN_PEER_EV_RX_RESET, msg); return; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/19024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I1ad4a3f9356216dd4bf8c48fba29fd23438810a7 Gerrit-Change-Number: 19024 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 Jun 26 13:35:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 13:35:53 +0000 Subject: Change in osmo-msc[master]: refactor: move RESET Osmux TLV parsing to ran_msg_a.c In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-msc/+/19024 ) Change subject: refactor: move RESET Osmux TLV parsing to ran_msg_a.c ...................................................................... refactor: move RESET Osmux TLV parsing to ran_msg_a.c ran_peer.c is not the proper place to parse messages, because it should be RAN agnostic. All parsing and encoding belongs in ran_msg_a.c and ran_msg_iu.c. Move the Osmux TLV parsing into the is_reset_msg op: add supports_osmux out-parameter (and add a logging fi pointer). To be able to modify msg->l3h, also make the msgb arg non-const. In ranap_is_reset_msg(), always return non-support for Osmux. In bssmap_is_reset_msg(), return 0 if no TLVs were parsed, 1/-1 if an Osmux TLV was present/not present. Update the osmux support flag directly where the ConnectionLess message is received, so that there is only one place responsible for that. Related: OS#4595 Change-Id: I1ad4a3f9356216dd4bf8c48fba29fd23438810a7 --- M include/osmocom/msc/ran_msg_a.h M include/osmocom/msc/ran_msg_iu.h M include/osmocom/msc/sccp_ran.h M src/libmsc/ran_msg_a.c M src/libmsc/ran_msg_iu.c M src/libmsc/ran_peer.c 6 files changed, 59 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/19024/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/19024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I1ad4a3f9356216dd4bf8c48fba29fd23438810a7 Gerrit-Change-Number: 19024 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 Jun 26 13:44:18 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 26 Jun 2020 13:44:18 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Small clean ups in IMSI storage related code In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19021 ) Change subject: gprs_ms: Small clean ups in IMSI storage related code ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I987af0d33b79302c037d062c9d1c828a0e027147 Gerrit-Change-Number: 19021 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 26 Jun 2020 13:44:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 13:45:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 26 Jun 2020 13:45:00 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Transfer known EGPRS MS class when mergling old MS In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19022 ) Change subject: gprs_ms: Transfer known EGPRS MS class when mergling old MS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb9929b60254b12f79392d6acb8b456d71cccb9e Gerrit-Change-Number: 19022 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 26 Jun 2020 13:45: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 Jun 26 13:51:22 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 13:51:22 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_instance_asp_find_by_proto() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 ) Change subject: add osmo_ss7_instance_asp_find_by_proto() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmo-sccp/+/19012/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/c/libosmo-sccp/+/19012/1/src/osmo_ss7.c at 1290 PS1, Line 1290: * \param[in] match_idx return Nth matching ASP, 0 to return first match. > I'm wondering what's the point about using this Nth stuff, why would you use that? sounds wrong to m [?] the idea is that an ASP matching a proto may have some reason why the caller doesn't want to use it, so instead find the next one. but iterate directly, yea... the caller I have in mind is sccp_user.c, I assumed some opaque API would prevent accessing directly, but that is actually not the case. Dropping this patch. -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ib204c6906eb02fe64b43b75375e1b69e2a8abd30 Gerrit-Change-Number: 19012 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 13:51:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 13:51:25 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 13:51:25 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_instance_asp_find_by_proto() In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 ) Change subject: add osmo_ss7_instance_asp_find_by_proto() ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ib204c6906eb02fe64b43b75375e1b69e2a8abd30 Gerrit-Change-Number: 19012 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 13:52:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 13:52:49 +0000 Subject: Change in osmo-msc[master]: refactor: move RESET Osmux TLV parsing to ran_msg_a.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/19024 ) Change subject: refactor: move RESET Osmux TLV parsing to ran_msg_a.c ...................................................................... Patch Set 2: Code-Review+1 (3 comments) TBH I don't see a problem with also checking for osmux support on RANAP, even if no HNGBW or whatever doesn't support it yet, it may in the future. That being said, if you think it's more convenient or there's any benefit in doing it this way for whatever reason then fine with me. https://gerrit.osmocom.org/c/osmo-msc/+/19024/2/src/libmsc/ran_msg_a.c File src/libmsc/ran_msg_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/19024/2/src/libmsc/ran_msg_a.c at 1283 PS2, Line 1283: if (supports_osmux == NULL) simply check supports_osmux in bssmap_is_reset_msg()? What abnout simply returning a bool? https://gerrit.osmocom.org/c/osmo-msc/+/19024/2/src/libmsc/ran_msg_a.c at 1314 PS2, Line 1314: l2->l3h = msgb_l2(l2) + sizeof(struct bssmap_header); I find it a bit strange that a "getter" function simply checking the type of message is actually updating the msgb. https://gerrit.osmocom.org/c/osmo-msc/+/19024/2/src/libmsc/ran_msg_iu.c File src/libmsc/ran_msg_iu.c: https://gerrit.osmocom.org/c/osmo-msc/+/19024/2/src/libmsc/ran_msg_iu.c at 447 PS2, Line 447: if (supports_osmux != NULL) You are using "if (supports_osmux)" on the other, you could use it too here. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/19024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I1ad4a3f9356216dd4bf8c48fba29fd23438810a7 Gerrit-Change-Number: 19024 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 13:52: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 Fri Jun 26 13:55:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 13:55:17 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: Add bssgp_tx_bvc_reset2() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/19025 ) Change subject: gprs_bssgp: Add bssgp_tx_bvc_reset2() ...................................................................... gprs_bssgp: Add bssgp_tx_bvc_reset2() If a BVC-RESET is sent from SGSN, there must not be a cell ID IE included. See "Note 1" of TS 48.018 Section 10.4.12. Change-Id: I11d4e70d510265b9c09dffccdab10b3f0816715a --- M TODO-RELEASE M include/osmocom/gprs/gprs_bssgp_bss.h M src/gb/gprs_bssgp_bss.c M src/gb/libosmogb.map 4 files changed, 9 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/19025/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 8aa2367..e2fd830 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -14,3 +14,4 @@ gb API/ABI change deprecate gprs_nsvc_crate(); export gprs_nsvc_create2() gsm API/ABI change add new member to lapd_datalink gsm new API new gsm0808_create_common_id() +gb new API new bssgp_tx_bvc_reset2() diff --git a/include/osmocom/gprs/gprs_bssgp_bss.h b/include/osmocom/gprs/gprs_bssgp_bss.h index f07ab52..ab62b66 100644 --- a/include/osmocom/gprs/gprs_bssgp_bss.h +++ b/include/osmocom/gprs/gprs_bssgp_bss.h @@ -57,6 +57,7 @@ int bssgp_tx_bvc_unblock(struct bssgp_bvc_ctx *bctx); int bssgp_tx_bvc_reset(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause); +int bssgp_tx_bvc_reset2(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause, bool add_cell_id); int bssgp_tx_ul_ud(struct bssgp_bvc_ctx *bctx, uint32_t tlli, const uint8_t *qos_profile, struct msgb *llc_pdu); diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 5c9d11c..5a1ffb9 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -290,7 +290,7 @@ } /*! Transmit a BVC-RESET message (Chapter 10.4.12) */ -int bssgp_tx_bvc_reset(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause) +int bssgp_tx_bvc_reset2(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause, bool add_cell_id) { struct msgb *msg = bssgp_msgb_alloc(); struct bssgp_normal_hdr *bgph = @@ -306,7 +306,7 @@ msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, &cause); - if (bvci != BVCI_PTM) { + if (add_cell_id) { uint8_t bssgp_cid[8]; bssgp_create_cell_id(bssgp_cid, &bctx->ra_id, bctx->cell_id); msgb_tvlv_put(msg, BSSGP_IE_CELL_ID, sizeof(bssgp_cid), bssgp_cid); @@ -315,6 +315,10 @@ return gprs_ns_sendmsg(bssgp_nsi, msg); } +int bssgp_tx_bvc_reset(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause) +{ + return bssgp_tx_bvc_reset2(bctx, bvci, cause, bvci != BVCI_PTM); +} /*! Transmit a FLOW_CONTROL-BVC (Chapter 10.4.4) * \param[in] bctx BVC Context diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index b29ecb9..7a231db 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -15,6 +15,7 @@ bssgp_parse_cell_id; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; +bssgp_tx_bvc_reset2; bssgp_tx_bvc_unblock; bssgp_tx_fc_bvc; bssgp_tx_fc_ms; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I11d4e70d510265b9c09dffccdab10b3f0816715a Gerrit-Change-Number: 19025 Gerrit-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 Jun 26 14:03:49 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 14:03:49 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: Add bssgp_tx_bvc_reset2() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19025 ) Change subject: gprs_bssgp: Add bssgp_tx_bvc_reset2() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I11d4e70d510265b9c09dffccdab10b3f0816715a Gerrit-Change-Number: 19025 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 14:03: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 Jun 26 14:15:23 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 26 Jun 2020 14:15:23 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst ...................................................................... Patch Set 2: > Patch Set 2: > > > Patch Set 2: > > > > the question is: *if* you want to remove one of the memset-zero, wouldn't it be more logical to remove the one that initializes br->burst to zero and keep the memcpy/memset here? > > If you mean removing the memzero from msgb, I'm in favour, but that's probably going to break some existing code :P Actually, in the current code the burst buffer is allocated on stack [1] and then implicitly zero-initialized [2] by structure assignment. I would prefer to keep the implicit initialization, so we don't have to memset() tail bits in each lchan handler. [1] https://git.osmocom.org/osmo-bts/tree/src/osmo-bts-trx/scheduler_trx.c#n61 [2] https://git.osmocom.org/osmo-bts/tree/src/osmo-bts-trx/scheduler_trx.c#n90 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 26 Jun 2020 14:15: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 Jun 26 14:19:43 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 14:19:43 +0000 Subject: Change in libosmocore[master]: api comment: fix example of osmo_mobile_identity_encode_msgb In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/18964 ) Change subject: api comment: fix example of osmo_mobile_identity_encode_msgb ...................................................................... api comment: fix example of osmo_mobile_identity_encode_msgb The previous example showed a type == IMSI while setting a TMSI value. Rather show how to encode IMSI digits. Change-Id: I41af6bf0d61443465172123297b1228584d791d6 --- M src/gsm/gsm48.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 4368ce2..eb1d055 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -751,7 +751,8 @@ /*! Encode Mobile Identity type and BCD digits, appended to a msgb. * Example to add a GSM48_IE_MOBILE_ID IEI with tag and length to a msgb: * - * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI, .tmsi = random_tmsi, }; + * struct osmo_mobile_identity mi = { .type = GSM_MI_TYPE_IMSI }; + * OSMO_STRLCPY_ARRAY(mi.imsi, "1234567890123456"); * uint8_t *l = msgb_tl_put(msg, GSM48_IE_MOBILE_ID); * int rc = osmo_mobile_identity_encode_msgb(msg, &mi, false); * if (rc < 0) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/18964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I41af6bf0d61443465172123297b1228584d791d6 Gerrit-Change-Number: 18964 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder 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 Jun 26 14:19:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 14:19:54 +0000 Subject: Change in libosmocore[master]: gprs_ns: Set sockaddr_in.sin_family for presistent NSVCs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/19026 ) Change subject: gprs_ns: Set sockaddr_in.sin_family for presistent NSVCs ...................................................................... gprs_ns: Set sockaddr_in.sin_family for presistent NSVCs We cannot just set sockaddr_in.sin_addr + sin_port, we also must initializa sin_family. The reason this has worked so far is because we probably always first received a NS packet from the peer, rather than being the first one to send. Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Related: OS#4629 --- M src/gb/gprs_ns_vty.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/19026/1 diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 38d4393..a39e139 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -318,6 +318,7 @@ vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE); return CMD_WARNING; } + nsvc->ip.bts_addr.sin_family = AF_INET; inet_aton(argv[1], &nsvc->ip.bts_addr.sin_addr); return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Gerrit-Change-Number: 19026 Gerrit-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 Jun 26 14:20:52 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 14:20:52 +0000 Subject: Change in osmo-sgsn[master]: Send a BVC-RESET to all presistent Gb interfaces at start-up References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19027 ) Change subject: Send a BVC-RESET to all presistent Gb interfaces at start-up ...................................................................... Send a BVC-RESET to all presistent Gb interfaces at start-up 3GPP TS 48.018 Section 8.4: > After any failure affecting the NSE, the party (BSS or SGSN) where > the failure resided shall reset the signalling BVC. After sending or > receiving a BVC-RESET PDU for the signalling BVC, the BSS shall stop all > traffic and initiate the BVC-RESET procedure for all BVCs corresponding > to PTP functional entities of the underlying network service entity. The > BSS must complete the BVC-RESET procedure for signalling BVC before > starting PTP BVC-RESET procedures. TODO: We should not just trigger a single outbound BVC-RESET message, but we should re-transmit them until we get a response. This would likely entail adding FSMs to libosmogb, which we will leave for a later point - it's anticipated that the NS + BSSGP code is undergoing quite some changes in the coming months anyway, so leave it for then. Change-Id: I0b46035b40709c38bb9ab9493c11031a577e3ee0 Closes: OS#4629 Depends: libosmocore.git I353adc1aa72377f7d4b3336d2ff47791fb73d62c --- M src/sgsn/sgsn_main.c 1 file changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/27/19027/1 diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index 3b18b05..5b53815 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -42,6 +42,7 @@ #include #include +#include #include #include @@ -199,6 +200,23 @@ #endif } +static void bvc_reset_persistent_nsvcs(void) +{ + /* Send BVC-RESET on all persistent NSVCs */ + struct gprs_nsvc *nsvc; + + llist_for_each_entry(nsvc, &sgsn_nsi->gprs_nsvcs, list) { + struct bssgp_bvc_ctx bctx = { + .nsei = nsvc->nsei, + }; + if (!nsvc->persistent) + continue; + /* if it is not marked ALIVE, we cannot send any data over it. */ + nsvc->state |= NSE_S_ALIVE; + bssgp_tx_bvc_reset2(&bctx, BVCI_SIGNALLING, BSSGP_CAUSE_EQUIP_FAIL, false); + } +} + static struct vty_app_info vty_info = { .name = "OsmoSGSN", .version = PACKAGE_VERSION, @@ -522,6 +540,8 @@ ranap_iu_init(tall_sgsn_ctx, DRANAP, "OsmoSGSN-IuPS", sccp, gsm0408_gprs_rcvmsg_iu, sgsn_ranap_iu_event); #endif + bvc_reset_persistent_nsvcs(); + if (daemonize) { rc = osmo_daemonize(); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0b46035b40709c38bb9ab9493c11031a577e3ee0 Gerrit-Change-Number: 19027 Gerrit-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 Jun 26 14:21:04 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 14:21:04 +0000 Subject: Change in osmo-bsc[master]: lchan_rtp_fsm: fix out_state_mask In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18994 ) Change subject: lchan_rtp_fsm: fix out_state_mask ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifca3892901c8389beee6e4f0fea03c33cfbdc265 Gerrit-Change-Number: 18994 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 14:21: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 Jun 26 14:21:09 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 14:21:09 +0000 Subject: Change in osmo-bsc[master]: lchan_rtp_fsm: fix out_state_mask In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/18994 ) Change subject: lchan_rtp_fsm: fix out_state_mask ...................................................................... lchan_rtp_fsm: fix out_state_mask In the state LCHAN_RTP_ST_WAIT_MGW_ENDPOINT_CONFIGURED, the event LCHAN_RTP_EV_ROLLBACK is allowed and also handled in the action callback, which causes a change to LCHAN_RTP_ST_ROLLBACK. However, LCHAN_RTP_ST_ROLLBACK is missing from the out_state_mask. Change-Id: Ifca3892901c8389beee6e4f0fea03c33cfbdc265 --- M src/osmo-bsc/lchan_rtp_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c index 25aca14..4be9790 100644 --- a/src/osmo-bsc/lchan_rtp_fsm.c +++ b/src/osmo-bsc/lchan_rtp_fsm.c @@ -672,6 +672,7 @@ , .out_state_mask = 0 | S(LCHAN_RTP_ST_READY) + | S(LCHAN_RTP_ST_ROLLBACK) , }, [LCHAN_RTP_ST_READY] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/18994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifca3892901c8389beee6e4f0fea03c33cfbdc265 Gerrit-Change-Number: 18994 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder 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 Jun 26 14:25:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 14:25:21 +0000 Subject: Change in libosmocore[master]: gprs_ns: Set sockaddr_in.sin_family for presistent NSVCs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19026 ) Change subject: gprs_ns: Set sockaddr_in.sin_family for presistent NSVCs ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/19026/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/19026/1//COMMIT_MSG at 7 PS1, Line 7: gprs_ns: Set sockaddr_in.sin_family for presistent NSVCs persistent? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Gerrit-Change-Number: 19026 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 14:25: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 Jun 26 15:16:13 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Fri, 26 Jun 2020 15:16:13 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... Patch Set 4: (24 comments) oof, sorry for posting so many comments again. It's mainly details, but a lot of them. Most important to me is the code dup / static-ness of magic-number tables and the logic around blocked (not "available") endpoints. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 81 PS4, Line 81: { 0, 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; (are these the same numbers as below const arrays? if yes please don't dup but use a common global const array) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 373 PS4, Line 373: (e.g. ds/e1-0/s-30/su16-4), returns 0xff on error. */ (comment convention: start all lines with '*', same below) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 374 PS4, Line 374: static uint8_t e1_ts_nr_from_epname(char *epname) const char *epname, same below https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 410 PS4, Line 410: static const uint8_t rates[] = { 64, 32, 16, 16, 8 }; (global? like commented below) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 468 PS4, Line 468: } The above e1_xxx_from_epname() each tokenize and parse the same epname, one after the other. Wouldn't it make more sense to have a single function that extracts all of these items at the same time? (could also include below _ss_nr_) If it were me I'd make single point of conversion between a struct and a string: struct e1_ep { uint8_t rate; uint8_t offs; uint8_t ts; uint8_t ss_nr; } char *e1_ep_to_str_c(void *ctx, const struct e1_rp *e1_ep); int e1_ep_from_str(struct e1_ep *e1_ep, const char *epname); Whether the remaining code stores the string or the e1_ep struct is then arbitrary. Just an idea, I think it would make for cleaner code overall. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 485 PS4, Line 485: { 0, 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; maybe these two const arrays should be defined at the top of the .c file? (then it is clear that they are static and also available for other functions that might use them in the future) A const does not need to be static, just leave it to the compiler to optimize the values used. static only needed if changes to it should survive across re-invocations of the function. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 487 PS4, Line 487: OSMO_ASSERT(sizeof(rates) == sizeof(offsets)); this should use an osmo_static_assert() (compile time) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 506 PS4, Line 506: * rate in the form: i:r where i is the subsolt number and r the (subsolt x2) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 534 PS4, Line 534: { 0, 3, 4, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1 }, (maybe decide on indent or no indent) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 548 PS4, Line 548: }; (this array could also be global, further up in the .c file. If not, then there is no need to make it 'static', really) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 563 PS4, Line 563: if (ts_nr == 0xff || ss_nr == 0xff) { (here is a place that would look nicer to me if it was just a single conversion function...) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 571 PS4, Line 571: for (i = 0; i < 15; i++) { (could use sizeof(interlock_tab[0]) instead of 15?) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 572 PS4, Line 572: /* Detect table end */ (more like row end?) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 591 PS4, Line 591: * (This is an exceptional situation, that should not occurr (occur) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 592 PS4, Line 592: * in a properly configured environment!) */ IIUC then this function is called by e.g. a CRCX message coming from outside of osmo-mgw. Then that is rather an error situation that osmo-mgw needs to protect against, and properly configuring osmo-mgw is not related? https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 607 PS4, Line 607: bool mgcp_endp_avail(struct mgcp_endpoint *endp) But a virtual endpoint could also already be in use? IIUC this function may be described "check whether an endpoint is blocked by another endpoint (for E1)"? https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 611 PS4, Line 611: /* There are no obsticels that may render a virtual trunk (obstacles) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 614 PS4, Line 614: return true; but a virtual endpoint could also already be in use? https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_protocol.c at 750 PS4, Line 750: if (!mgcp_endp_avail(endp)) { (...this is the CRCX rx I mentioned elsewhere) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_protocol.c at 1011 PS4, Line 1011: if (!mgcp_endp_avail(endp)) { an MDCX is by definition sent for an endpoint that is already in use. wouldn't this check forbid all MDCX for all E1 endpoints? (same for DLCX) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c File src/libosmo-mgcp/mgcp_ratectr.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c at 66 PS4, Line 66: [MGCP_CRCX_FAIL_AVAIL] = { "crcx:availability", "endpoint unavailable." }, i'd prefer 'crcx:unavailable' (otherwise sounds like it counts successful CRCX) or after previous discussion 'crcx:blocked'? https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c at 94 PS4, Line 94: [MGCP_MDCX_FAIL_AVAIL] = { "mdcx:availability", "endpoint unavailable." }, MDCX only makes sense for conns that are already active. So either we should get MGCP_MDCX_FAIL_NO_CONN, or the MDCX should succeed, right? https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c at 116 PS4, Line 116: [MGCP_DLCX_FAIL_AVAIL] = { "dlcx:availability", "endpoint unavailable." }, same as for MDCX https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_vty.c at 203 PS4, Line 203: mgcp_endp_avail(endp) ? "available" : "not in service", VTY_NEWLINE); how about those endpoints currently in use? We print "available" for all endpoints, which may be interpreted as not being used. Maybe also use the term "blocked" here? Maybe don't print anything at all for non-blocked endpoints, only for those that are blocked add a "Blocked by: " ? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Fri, 26 Jun 2020 15:16: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 Jun 26 16:06:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:06:54 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: Add bssgp_tx_bvc_reset2() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19025 ) Change subject: gprs_bssgp: Add bssgp_tx_bvc_reset2() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I11d4e70d510265b9c09dffccdab10b3f0816715a Gerrit-Change-Number: 19025 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 16:06:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:07:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:07:05 +0000 Subject: Change in libosmocore[master]: gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/19026 to look at the new patch set (#2). Change subject: gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs ...................................................................... gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs We cannot just set sockaddr_in.sin_addr + sin_port, we also must initializa sin_family. The reason this has worked so far is because we probably always first received a NS packet from the peer, rather than being the first one to send. Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Related: OS#4629 --- M src/gb/gprs_ns_vty.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/19026/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Gerrit-Change-Number: 19026 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 Fri Jun 26 16:07:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:07:13 +0000 Subject: Change in libosmocore[master]: gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19026 ) Change subject: gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Gerrit-Change-Number: 19026 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 16:07:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:07:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:07:15 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: Add bssgp_tx_bvc_reset2() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19025 ) Change subject: gprs_bssgp: Add bssgp_tx_bvc_reset2() ...................................................................... gprs_bssgp: Add bssgp_tx_bvc_reset2() If a BVC-RESET is sent from SGSN, there must not be a cell ID IE included. See "Note 1" of TS 48.018 Section 10.4.12. Change-Id: I11d4e70d510265b9c09dffccdab10b3f0816715a --- M TODO-RELEASE M include/osmocom/gprs/gprs_bssgp_bss.h M src/gb/gprs_bssgp_bss.c M src/gb/libosmogb.map 4 files changed, 9 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 8aa2367..e2fd830 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -14,3 +14,4 @@ gb API/ABI change deprecate gprs_nsvc_crate(); export gprs_nsvc_create2() gsm API/ABI change add new member to lapd_datalink gsm new API new gsm0808_create_common_id() +gb new API new bssgp_tx_bvc_reset2() diff --git a/include/osmocom/gprs/gprs_bssgp_bss.h b/include/osmocom/gprs/gprs_bssgp_bss.h index f07ab52..ab62b66 100644 --- a/include/osmocom/gprs/gprs_bssgp_bss.h +++ b/include/osmocom/gprs/gprs_bssgp_bss.h @@ -57,6 +57,7 @@ int bssgp_tx_bvc_unblock(struct bssgp_bvc_ctx *bctx); int bssgp_tx_bvc_reset(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause); +int bssgp_tx_bvc_reset2(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause, bool add_cell_id); int bssgp_tx_ul_ud(struct bssgp_bvc_ctx *bctx, uint32_t tlli, const uint8_t *qos_profile, struct msgb *llc_pdu); diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index 5c9d11c..5a1ffb9 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -290,7 +290,7 @@ } /*! Transmit a BVC-RESET message (Chapter 10.4.12) */ -int bssgp_tx_bvc_reset(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause) +int bssgp_tx_bvc_reset2(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause, bool add_cell_id) { struct msgb *msg = bssgp_msgb_alloc(); struct bssgp_normal_hdr *bgph = @@ -306,7 +306,7 @@ msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, &cause); - if (bvci != BVCI_PTM) { + if (add_cell_id) { uint8_t bssgp_cid[8]; bssgp_create_cell_id(bssgp_cid, &bctx->ra_id, bctx->cell_id); msgb_tvlv_put(msg, BSSGP_IE_CELL_ID, sizeof(bssgp_cid), bssgp_cid); @@ -315,6 +315,10 @@ return gprs_ns_sendmsg(bssgp_nsi, msg); } +int bssgp_tx_bvc_reset(struct bssgp_bvc_ctx *bctx, uint16_t bvci, uint8_t cause) +{ + return bssgp_tx_bvc_reset2(bctx, bvci, cause, bvci != BVCI_PTM); +} /*! Transmit a FLOW_CONTROL-BVC (Chapter 10.4.4) * \param[in] bctx BVC Context diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index b29ecb9..7a231db 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -15,6 +15,7 @@ bssgp_parse_cell_id; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; +bssgp_tx_bvc_reset2; bssgp_tx_bvc_unblock; bssgp_tx_fc_bvc; bssgp_tx_fc_ms; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I11d4e70d510265b9c09dffccdab10b3f0816715a Gerrit-Change-Number: 19025 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:07:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:07:16 +0000 Subject: Change in libosmocore[master]: gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19026 ) Change subject: gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs ...................................................................... gprs_ns: Set sockaddr_in.sin_family for persistent NSVCs We cannot just set sockaddr_in.sin_addr + sin_port, we also must initializa sin_family. The reason this has worked so far is because we probably always first received a NS packet from the peer, rather than being the first one to send. Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Related: OS#4629 --- M src/gb/gprs_ns_vty.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 38d4393..a39e139 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -318,6 +318,7 @@ vty_out(vty, "No such NSE (%u)%s", nsei, VTY_NEWLINE); return CMD_WARNING; } + nsvc->ip.bts_addr.sin_family = AF_INET; inet_aton(argv[1], &nsvc->ip.bts_addr.sin_addr); return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6cefc2cd5516c7a4c01a2cc040afca454e59dd57 Gerrit-Change-Number: 19026 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 Fri Jun 26 16:07:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:07:38 +0000 Subject: Change in osmo-sgsn[master]: Send a BVC-RESET to all persistent Gb interfaces at start-up In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19027 to look at the new patch set (#2). Change subject: Send a BVC-RESET to all persistent Gb interfaces at start-up ...................................................................... Send a BVC-RESET to all persistent Gb interfaces at start-up 3GPP TS 48.018 Section 8.4: > After any failure affecting the NSE, the party (BSS or SGSN) where > the failure resided shall reset the signalling BVC. After sending or > receiving a BVC-RESET PDU for the signalling BVC, the BSS shall stop all > traffic and initiate the BVC-RESET procedure for all BVCs corresponding > to PTP functional entities of the underlying network service entity. The > BSS must complete the BVC-RESET procedure for signalling BVC before > starting PTP BVC-RESET procedures. TODO: We should not just trigger a single outbound BVC-RESET message, but we should re-transmit them until we get a response. This would likely entail adding FSMs to libosmogb, which we will leave for a later point - it's anticipated that the NS + BSSGP code is undergoing quite some changes in the coming months anyway, so leave it for then. Change-Id: I0b46035b40709c38bb9ab9493c11031a577e3ee0 Closes: OS#4629 Depends: libosmocore.git I353adc1aa72377f7d4b3336d2ff47791fb73d62c --- M src/sgsn/sgsn_main.c 1 file changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/27/19027/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I0b46035b40709c38bb9ab9493c11031a577e3ee0 Gerrit-Change-Number: 19027 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 Jun 26 16:08:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:08:31 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19018 ) Change subject: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2d811b6ddda5b330054145abff37c996c54c3e3a Gerrit-Change-Number: 19018 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 16:08: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 Jun 26 16:09:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:09:13 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19018 ) Change subject: mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() ...................................................................... mgcp_client: add docstring for mgcp_client_rtpbridge_wildcard() Change-Id: I2d811b6ddda5b330054145abff37c996c54c3e3a --- M src/libosmo-mgcp-client/mgcp_client.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/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 54db20d..819461d 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -892,6 +892,9 @@ return endpoint; } +/*! Compose endpoint name for a wildcarded request to the virtual trunk + * \param[in] mgcp MGCP client descriptor. + * \returns string containing the endpoint name (e.g. rtpbridge\*@mgw) */ const char *mgcp_client_rtpbridge_wildcard(const struct mgcp_client *mgcp) { return _mgcp_client_name_append_domain(mgcp, "rtpbridge/*"); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2d811b6ddda5b330054145abff37c996c54c3e3a Gerrit-Change-Number: 19018 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:11:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:11:12 +0000 Subject: Change in osmo-msc[master]: refactor: move RESET Osmux TLV parsing to ran_msg_a.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/19024 ) Change subject: refactor: move RESET Osmux TLV parsing to ran_msg_a.c ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-msc/+/19024/2/src/libmsc/ran_msg_a.c File src/libmsc/ran_msg_a.c: https://gerrit.osmocom.org/c/osmo-msc/+/19024/2/src/libmsc/ran_msg_a.c at 1314 PS2, Line 1314: l2->l3h = msgb_l2(l2) + sizeof(struct bssmap_header); > I find it a bit strange that a "getter" function simply checking the type of message is actually upd [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/19024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I1ad4a3f9356216dd4bf8c48fba29fd23438810a7 Gerrit-Change-Number: 19024 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 26 Jun 2020 16:11:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:11:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:11:46 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Transfer known EGPRS MS class when mergling old MS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19022 ) Change subject: gprs_ms: Transfer known EGPRS MS class when mergling old MS ...................................................................... Patch Set 1: Code-Review+2 oh wow, how did you catch that one? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb9929b60254b12f79392d6acb8b456d71cccb9e Gerrit-Change-Number: 19022 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 26 Jun 2020 16:11: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 Jun 26 16:12:25 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:12:25 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Small clean ups in IMSI storage related code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19021 ) Change subject: gprs_ms: Small clean ups in IMSI storage related code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I987af0d33b79302c037d062c9d1c828a0e027147 Gerrit-Change-Number: 19021 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 26 Jun 2020 16:12:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:12:32 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:12:32 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Small clean ups in IMSI storage related code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19021 ) Change subject: gprs_ms: Small clean ups in IMSI storage related code ...................................................................... gprs_ms: Small clean ups in IMSI storage related code Change-Id: I987af0d33b79302c037d062c9d1c828a0e027147 --- M src/gprs_ms.cpp M src/gprs_ms.h 2 files changed, 5 insertions(+), 4 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/gprs_ms.cpp b/src/gprs_ms.cpp index 1ec8eda..341826c 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -120,7 +120,7 @@ LOGP(DRLCMAC, LOGL_INFO, "Creating MS object, TLLI = 0x%08x\n", tlli); - m_imsi[0] = 0; + m_imsi[0] = '\0'; memset(&m_timer, 0, sizeof(m_timer)); m_timer.cb = GprsMs::timeout; m_llc_queue.init(); @@ -463,8 +463,7 @@ "Modifying MS object, TLLI = 0x%08x, IMSI '%s' -> '%s'\n", tlli(), m_imsi, imsi); - strncpy(m_imsi, imsi, sizeof(m_imsi)); - m_imsi[sizeof(m_imsi) - 1] = '\0'; + osmo_strlcpy(m_imsi, imsi, sizeof(m_imsi)); } void GprsMs::set_ta(uint8_t ta_) diff --git a/src/gprs_ms.h b/src/gprs_ms.h index f7b5c36..1e5a155 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -32,6 +32,8 @@ #include #include + #include + #include "coding_scheme.h" } @@ -159,7 +161,7 @@ uint32_t m_new_dl_tlli; /* store IMSI for look-up and PCH retransmission */ - char m_imsi[16]; + char m_imsi[OSMO_IMSI_BUF_SIZE]; uint8_t m_ta; uint8_t m_ms_class; uint8_t m_egprs_ms_class; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I987af0d33b79302c037d062c9d1c828a0e027147 Gerrit-Change-Number: 19021 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:12:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:12:33 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Transfer known EGPRS MS class when mergling old MS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19022 ) Change subject: gprs_ms: Transfer known EGPRS MS class when mergling old MS ...................................................................... gprs_ms: Transfer known EGPRS MS class when mergling old MS Since not all the the information about the MS is known during TBF creation in all scenrios, it may happen that when TBF is created it creates a MS which later will end up being found a duplicate of an already previously existing MS. At that point, the old object is dropped and information retrieved from both is merged into the new one. The GPRS MS class was being transferred, but the EGPRS MS class was missing. Change-Id: Ieb9929b60254b12f79392d6acb8b456d71cccb9e --- M src/gprs_ms.cpp 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp index 341826c..494ed2e 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -386,6 +386,9 @@ if (!ms_class() && old_ms->ms_class()) set_ms_class(old_ms->ms_class()); + if (!egprs_ms_class() && old_ms->egprs_ms_class()) + set_egprs_ms_class(old_ms->egprs_ms_class()); + m_llc_queue.move_and_merge(&old_ms->m_llc_queue); old_ms->reset(); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb9929b60254b12f79392d6acb8b456d71cccb9e Gerrit-Change-Number: 19022 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:12:56 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:12:56 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop unneeded method set_tlli_from_ul In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19023 ) Change subject: tbf: Drop unneeded method set_tlli_from_ul ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie8795e7a02032336e53febb65c11f9150c36d2a0 Gerrit-Change-Number: 19023 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 26 Jun 2020 16:12: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 Jun 26 16:14:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:14:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: verify conn and VLR cell id in most tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 ) Change subject: msc: verify conn and VLR cell id in most tests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004 Gerrit-Change-Number: 18998 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 26 Jun 2020 16: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 Jun 26 16:14:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:14:35 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm_fsm.c: Add missing license header In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19019 ) Change subject: gprs_gmm_fsm.c: Add missing license header ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I94299b9ccf760ad13429e149067f06ed60d37de3 Gerrit-Change-Number: 19019 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 26 Jun 2020 16: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 Fri Jun 26 16:14:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:14:38 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm_fsm.c: Add missing license header In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19019 ) Change subject: gprs_gmm_fsm.c: Add missing license header ...................................................................... gprs_gmm_fsm.c: Add missing license header The file was created by myself on September 2019, 31c4657c971e40407163034526aafeb9b5a83460. Change-Id: I94299b9ccf760ad13429e149067f06ed60d37de3 --- M src/sgsn/gprs_gmm_fsm.c 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/sgsn/gprs_gmm_fsm.c b/src/sgsn/gprs_gmm_fsm.c index 11b4e4e..886726c 100644 --- a/src/sgsn/gprs_gmm_fsm.c +++ b/src/sgsn/gprs_gmm_fsm.c @@ -1,3 +1,25 @@ +/* GMM mobility management states on the network side, 3GPP TS 24.008 ? 4.1.3.3 */ +/* + * (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/+/19019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I94299b9ccf760ad13429e149067f06ed60d37de3 Gerrit-Change-Number: 19019 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:16:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:16:11 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 ) Change subject: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b Gerrit-Change-Number: 19020 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 26 Jun 2020 16:16:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:16:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:16:14 +0000 Subject: Change in osmo-sgsn[master]: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 ) Change subject: sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state ...................................................................... sgsn_libgtp: Avoid ps-paging MS on GMM Suspended state The MS notifies movement to GMM SUSPEND state because it is for instance handling a call and cannot use PDCH anymore. Once it releases the TCH it will ASAP move to either dedicated mode or trigger RAU, which means it will get out of SUSPEND state. So it doesn't make sense to try paging the MS when in that state. This change makes test TC_suspend_nopaging pass. Related: OS#4616 Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b --- M src/sgsn/sgsn_libgtp.c 1 file changed, 3 insertions(+), 5 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/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c index 717df4a..581e74d 100644 --- a/src/sgsn/sgsn_libgtp.c +++ b/src/sgsn/sgsn_libgtp.c @@ -660,12 +660,10 @@ switch (mm->gmm_fsm->state) { case ST_GMM_REGISTERED_SUSPENDED: - /* initiate PS PAGING procedure */ - LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s\n", + LOGMMCTXP(LOGL_INFO, mm, "Dropping DL packet for MS in GMM state %s\n", osmo_fsm_inst_state_name(mm->gmm_fsm)); - gprs_gb_page_ps_ra(mm); - /* FIXME: queue the packet we received from GTP */ - break; + msgb_free(msg); + return -1; case ST_GMM_REGISTERED_NORMAL: OSMO_ASSERT(mm->gb.mm_state_fsm->state != ST_MM_IDLE); if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/19020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia245899eb9f16c7f839785def4ceb721a1c3a11b Gerrit-Change-Number: 19020 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 16:19:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:19:27 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 16:19: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 Jun 26 16:19:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 26 Jun 2020 16:19:30 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19011 ) Change subject: osmo-bts-trx/scheduler: get rid of _sched_fcch_burst ...................................................................... osmo-bts-trx/scheduler: get rid of _sched_fcch_burst According to 3GPP 45.002, section 5.2.4, a frequency correction burst is basically a sequence of zeros. Since br->burst is already zero-initialized, there is no need to maintain and memcpy() another sequence of zeros into it. Just set the length. Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d --- M include/osmo-bts/scheduler_backend.h M src/common/scheduler.c M src/osmo-bts-trx/sched_lchan_fcch_sch.c 3 files changed, 2 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h index be23c47..eb8039f 100644 --- a/include/osmo-bts/scheduler_backend.h +++ b/include/osmo-bts/scheduler_backend.h @@ -37,7 +37,6 @@ extern const ubit_t _sched_tsc[8][26]; extern const ubit_t _sched_egprs_tsc[8][78]; -extern const ubit_t _sched_fcch_burst[148]; extern const ubit_t _sched_sch_train[64]; struct msgb *_sched_dequeue_prim(struct l1sched_trx *l1t, int8_t tn, uint32_t fn, diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 62efed4..3068918 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -62,15 +62,6 @@ 0,0,0, }; -/*! \brief FCCH Burst (TS 05.02 Chapter 5.2.4) */ -const ubit_t _sched_fcch_burst[GSM_BURST_LEN] = { - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -}; - /*! \brief Training Sequences (TS 05.02 Chapter 5.2.3) */ const ubit_t _sched_tsc[8][26] = { { 0,0,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1, }, diff --git a/src/osmo-bts-trx/sched_lchan_fcch_sch.c b/src/osmo-bts-trx/sched_lchan_fcch_sch.c index bc03f81..2a5e482 100644 --- a/src/osmo-bts-trx/sched_lchan_fcch_sch.c +++ b/src/osmo-bts-trx/sched_lchan_fcch_sch.c @@ -40,7 +40,8 @@ { LOGL1S(DL1P, LOGL_DEBUG, l1t, br->tn, chan, br->fn, "Transmitting FCCH\n"); - memcpy(br->burst, _sched_fcch_burst, GSM_BURST_LEN); + /* A frequency correction burst is basically a sequence of zeros. + * Since br->burst is already zero-initialized, just set the length. */ br->burst_len = GSM_BURST_LEN; return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic4f6d550010da5caf4bc471ff1e184c9fab30c6d Gerrit-Change-Number: 19011 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 26 21:43:25 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 26 Jun 2020 21:43:25 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Transfer known EGPRS MS class when mergling old MS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19022 ) Change subject: gprs_ms: Transfer known EGPRS MS class when mergling old MS ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+2 > > oh wow, how did you catch that one? By looking at related code trying to understand how MS object update works and trying to clean it up. In osmo-pcu you start looking at A and start pulling through all what's wrong and get to Z. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb9929b60254b12f79392d6acb8b456d71cccb9e Gerrit-Change-Number: 19022 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 26 Jun 2020 21:43:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jun 27 02:01:12 2020 From: admin at opensuse.org (OBS Notification) Date: Sat, 27 Jun 2020 02:01:12 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5ef6a877c08a7_7f382adb732645fc2216ae@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_9.0/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 303s] | #define STDC_HEADERS 1 [ 303s] | #define HAVE_SYS_TYPES_H 1 [ 303s] | #define HAVE_SYS_STAT_H 1 [ 303s] | #define HAVE_STDLIB_H 1 [ 303s] | #define HAVE_STRING_H 1 [ 303s] | #define HAVE_MEMORY_H 1 [ 303s] | #define HAVE_STRINGS_H 1 [ 303s] | #define HAVE_INTTYPES_H 1 [ 303s] | #define HAVE_STDINT_H 1 [ 303s] | #define HAVE_UNISTD_H 1 [ 303s] | #define HAVE_DLFCN_H 1 [ 303s] | #define LT_OBJDIR ".libs/" [ 303s] | #define STDC_HEADERS 1 [ 303s] | [ 303s] | configure: exit 0 [ 303s] [ 303s] debian/rules:24: recipe for target 'override_dh_auto_test' failed [ 303s] make[1]: *** [override_dh_auto_test] Error 1 [ 303s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 303s] debian/rules:12: recipe for target 'build' failed [ 303s] make: *** [build] Error 2 [ 303s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 303s] ### VM INTERACTION START ### [ 306s] [ 295.820567] sysrq: SysRq : Power Off [ 306s] [ 295.824773] reboot: Power down [ 306s] ### VM INTERACTION END ### [ 306s] [ 306s] lamb62 failed "build osmo-pcu_0.8.0.156.cbf0.dsc" at Sat Jun 27 02:01:00 UTC 2020. [ 306s] -- 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 Jun 27 11:58:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 27 Jun 2020 11:58:14 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/18721/2/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18721/2/Transceiver52M/device/uhd/UHDDevice.cpp at 1029 PS2, Line 1029: if (band != 0 && req_band != band) { Hi Pau, this patch, in particular this (req_band != band) check, makes it impossible to change an ARFCN from one band to an ARFCN from another band in osmo-bsc/osmo-bts-trx without restarting osmo-trx-uhd. I faced this a few minutes ago, and it took me a while to investigate/realize this. Why do we need this check? I could not find any explanation in the commit message, nor any comments in the code why the new freq. band shall be the same as was used before? To me it looks like we don't need this check at all. If I am wrong, please add some comments and update documentation, so another user facing this error message would not need to read the source code and bisect git history. Thanks. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 27 Jun 2020 11:58: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 Sat Jun 27 13:57:29 2020 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Sat, 27 Jun 2020 13:57:29 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... Patch Set 2: In practice the band is fixed after startup, since the nominal tx power is band dependant and reported towards osmo-bts-trx, so if you change the band, what's the power? This also affects the ipc interface where the other side pretty much conveys a nominal tx power value once since it's not really a generic device that can switch bands anyway. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 27 Jun 2020 13:57: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 Jun 27 14:08:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 27 Jun 2020 14:08:03 +0000 Subject: Change in osmo-trx[master]: UHDDevice: Implement getNominalTxPower() based on TxFrequency In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18721 ) Change subject: UHDDevice: Implement getNominalTxPower() based on TxFrequency ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/18721/2/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/18721/2/Transceiver52M/device/uhd/UHDDevice.cpp at 1029 PS2, Line 1029: if (band != 0 && req_band != band) { > Hi Pau, [?] That's done in order to avoid misconfigurations of different TRX on different bands (which make no sense afaiu and means broken config), and as Eric explains we need a specific band to provide correct power. The problem you face looks more like we don't reset band to 0 when stopping() the device. Probably adding a bool set_after_stop = false and ten it set to true when setTxFreq() is called, and only do the check if set_after_stop==true, which then only checks for all trx but not fo first one. Please open a ticket. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If7ef5bf95ffe4afe5864c0f051853aa38b9639eb Gerrit-Change-Number: 18721 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Reviewer: tnt Gerrit-Comment-Date: Sat, 27 Jun 2020 14:08: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 Sat Jun 27 14:23:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 27 Jun 2020 14:23:03 +0000 Subject: Change in osmo-bts[master]: tx_power: Support controlling BTS with nominal tx pwr < 0dBm In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18916 ) Change subject: tx_power: Support controlling BTS with nominal tx pwr < 0dBm ...................................................................... Patch Set 3: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 Gerrit-Change-Number: 18916 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 27 Jun 2020 14:23:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 27 14:23:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 27 Jun 2020 14:23:06 +0000 Subject: Change in osmo-bts[master]: tx_power: Support controlling BTS with nominal tx pwr < 0dBm In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18916 ) Change subject: tx_power: Support controlling BTS with nominal tx pwr < 0dBm ...................................................................... tx_power: Support controlling BTS with nominal tx pwr < 0dBm Related: OS#4583 Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 --- M src/common/tx_power.c M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_if.h 5 files changed, 12 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/tx_power.c b/src/common/tx_power.c index 68cc0e3..8292d9f 100644 --- a/src/common/tx_power.c +++ b/src/common/tx_power.c @@ -196,8 +196,8 @@ /* for now we simply write an error message, but in the future * we might use the value (again) as part of our math? */ if (p_trxout_cur_mdBm != p_trxout_should_mdBm) { - LOGPTRX(trx, DL1C, LOGL_ERROR, "bts_model notifies us of %u mdBm TRX " - "output power. However, it should be %u mdBm!\n", + LOGPTRX(trx, DL1C, LOGL_ERROR, "bts_model notifies us of %d mdBm TRX " + "output power. However, it should be %d mdBm!\n", p_trxout_cur_mdBm, p_trxout_should_mdBm); } diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 22b590a..638a674 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -150,13 +150,16 @@ } /* Sets the nominal power, in dB */ -void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power) +void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, int nominal_power) { struct phy_instance *pinst = trx_phy_instance(trx); bool nom_pwr_changed = trx->nominal_power != nominal_power; trx->nominal_power = nominal_power; trx->power_params.trx_p_max_out_mdBm = to_mdB(nominal_power); + /* If we receive ultra-low nominal Tx power (<0dBm), make sure to update where we are */ + trx->power_params.p_total_cur_mdBm = OSMO_MIN(trx->power_params.p_total_cur_mdBm, + trx->power_params.trx_p_max_out_mdBm); /* If TRX is not yet powered, delay ramping until it's ON */ if (!nom_pwr_changed || !pinst->phy_link->u.osmotrx.powered) @@ -168,12 +171,12 @@ l1if_trx_start_power_ramp(trx); } -static void l1if_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc) +static void l1if_getnompower_cb(struct trx_l1h *l1h, int nominal_power, int rc) { struct phy_instance *pinst = l1h->phy_inst; struct gsm_bts_trx *trx = pinst->trx; - LOGPPHI(pinst, DL1C, LOGL_DEBUG, "l1if_getnompower_cb(nominal_power=%u, rc=%d)\n", nominal_power, rc); + LOGPPHI(pinst, DL1C, LOGL_DEBUG, "l1if_getnompower_cb(nominal_power=%d, rc=%d)\n", nominal_power, rc); l1if_trx_set_nominal_power(trx, nominal_power); } diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 5f51acb..3fda726 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -114,7 +114,7 @@ int l1if_provision_transceiver_trx(struct trx_l1h *l1h); int l1if_provision_transceiver(struct gsm_bts *bts); int l1if_mph_time_ind(struct gsm_bts *bts, uint32_t fn); -void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, unsigned int nominal_power); +void l1if_trx_set_nominal_power(struct gsm_bts_trx *trx, int nominal_power); static inline struct l1sched_trx *trx_l1sched_hdl(struct gsm_bts_trx *trx) { diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 58f7455..7508606 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -554,7 +554,7 @@ { trx_if_cmd_getnompower_cb *cb = (trx_if_cmd_getnompower_cb*) rsp->cb; struct phy_instance *pinst = l1h->phy_inst; - unsigned int nominal_power; + int nominal_power; if (rsp->status) LOGPPHI(pinst, DTRX, LOGL_ERROR, "transceiver NOMTXPOWER failed " @@ -563,7 +563,7 @@ "through VTY cmd 'nominal-tx-power'.\n", rsp->status); if (cb) { - sscanf(rsp->params, "%u", &nominal_power); + sscanf(rsp->params, "%d", &nominal_power); cb(l1h, nominal_power, rsp->status); } return 0; diff --git a/src/osmo-bts-trx/trx_if.h b/src/osmo-bts-trx/trx_if.h index 16b6c76..b2fc326 100644 --- a/src/osmo-bts-trx/trx_if.h +++ b/src/osmo-bts-trx/trx_if.h @@ -16,7 +16,7 @@ typedef void trx_if_cmd_poweronoff_cb(struct trx_l1h *l1h, bool poweronoff, int rc); typedef void trx_if_cmd_setslot_cb(struct trx_l1h *l1h, uint8_t tn, uint8_t type, int rc); -typedef void trx_if_cmd_getnompower_cb(struct trx_l1h *l1h, unsigned int nominal_power, int rc); +typedef void trx_if_cmd_getnompower_cb(struct trx_l1h *l1h, int nominal_power, int rc); typedef void trx_if_cmd_setpower_att_cb(struct trx_l1h *l1h, int power_att_db, int rc); void trx_if_init(struct trx_l1h *l1h); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I88d59d47837105d52e2b4dfb819511cd360c50a1 Gerrit-Change-Number: 18916 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Sun Jun 28 13:39:13 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 28 Jun 2020 13:39:13 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes In-Reply-To: References: Message-ID: Hello pespin, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 to look at the new patch set (#3). Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... A-bis/OML: handle hopping params in Set Channel Attributes Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Related: OS#4546 --- M include/osmo-bts/gsm_data.h M src/common/gsm_data.c M src/common/oml.c 3 files changed, 42 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/37/18837/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 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 Sun Jun 28 13:39:15 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 28 Jun 2020 13:39:15 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19028 ) Change subject: osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check ...................................................................... osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check I believe the modern compilers are smart enough to optimize the outer (per-timeslot) loop of trx_sched_fn() in a way that TDMA frame number is advanced after making sure that a transceiver is powered on. However, it's still more perspicuous to check availability of a given transceiver first. Change-Id: I6a97000c1c84e36096e9ba378a489c82caa4cc5b --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/28/19028/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 6122ad0..472bae8 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -73,14 +73,14 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl; struct l1sched_trx *l1t = &l1h->l1s; - /* advance frame number, so the transceiver has more - * time until it must be transmitted. */ - sched_fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); - /* we don't schedule, if power is off */ if (!trx_if_powered(l1h)) continue; + /* advance frame number, so the transceiver has more + * time until it must be transmitted. */ + sched_fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); + /* process every TS of TRX */ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { /* ready-to-send */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a97000c1c84e36096e9ba378a489c82caa4cc5b Gerrit-Change-Number: 19028 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 Jun 28 13:39:16 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 28 Jun 2020 13:39:16 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor dummy burst scheduling References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19029 ) Change subject: osmo-bts-trx/scheduler: refactor dummy burst scheduling ...................................................................... osmo-bts-trx/scheduler: refactor dummy burst scheduling This change facilitates the upcoming freq. hopping implementation, in particular scheduling of dummy bursts on C0 with hopping time- slots. One problem is that we cannot know in advance, whether to send a dummy burst on a given timeslot unless all transceivers are processed. For example, trx#3 may want to send a normal burst on ARFCN of trx#0 (C0), while we have already sent a dummy burst... Another important aspect is that we shall not be sending dummy bursts on transceivers other than C0. Scheduling dummy bursts from _sched_dl_burst() in the context of a single hopping timeslot of a single transceiver leaves trx_sched_fn() no way to know whether it's a dummy burst or something else. Let's solve both problems by moving dummy burst scheduling logic from _sched_dl_burst() to trx_sched_fn(). Maintain C0 slot-mask in the inner (per-trx) loop, so that we can fill missing bursts with dummy bursts afterwards. Change-Id: I8c3651c27d2991079e83b8abdb7e2c3f95b97a43 Related: OS#4546 --- M include/osmo-bts/scheduler_backend.h M src/common/scheduler.c M src/osmo-bts-trx/scheduler_trx.c 3 files changed, 29 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/29/19029/1 diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h index eb8039f..e3326f6 100644 --- a/include/osmo-bts/scheduler_backend.h +++ b/include/osmo-bts/scheduler_backend.h @@ -35,6 +35,7 @@ }; extern const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX]; +extern const ubit_t _sched_dummy_burst[]; extern const ubit_t _sched_tsc[8][26]; extern const ubit_t _sched_egprs_tsc[8][78]; extern const ubit_t _sched_sch_train[64]; diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 3068918..e5836b0 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -51,8 +51,9 @@ enum trx_chan_type chan); static int rts_tchh_fn(struct l1sched_trx *l1t, uint8_t tn, uint32_t fn, enum trx_chan_type chan); + /*! \brief Dummy Burst (TS 05.02 Chapter 5.2.6) */ -static const ubit_t dummy_burst[GSM_BURST_LEN] = { +const ubit_t _sched_dummy_burst[] = { 0,0,0, 1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0, 0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,0,0, @@ -1188,7 +1189,7 @@ enum trx_chan_type chan; if (!l1ts->mf_index) - goto no_data; + return; /* get frame from multiframe */ period = l1ts->mf_period; @@ -1203,11 +1204,11 @@ /* check if channel is active */ if (!TRX_CHAN_IS_ACTIVE(l1cs, chan)) - goto no_data; + return; /* get burst from function */ if (func(l1t, chan, bid, br) != 0) - goto no_data; + return; /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) @@ -1224,19 +1225,6 @@ br->burst[i + 88] ^= ks[i + 57]; } } - -no_data: - /* in case of C0, we need a dummy burst to maintain RF power */ - if (!br->burst_len && l1t->trx == l1t->trx->bts->c0) { -#if 0 - if (chan != TRXC_IDLE) // hack - LOGP(DL1C, LOGL_DEBUG, "No burst data for %s fn=%u ts=%u " - "burst=%d on C0, so filling with dummy burst\n", - trx_chan_desc[chan].name, fn, tn, bid); -#endif - memcpy(br->burst, dummy_burst, ARRAY_SIZE(dummy_burst)); - br->burst_len = ARRAY_SIZE(dummy_burst); - } } static int trx_sched_calc_frame_loss(struct l1sched_trx *l1t, diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 472bae8..8e1ccfa 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -60,6 +60,7 @@ { struct trx_dl_burst_req br; struct gsm_bts_trx *trx; + uint8_t c0_mask = 0x00; uint32_t sched_fn; uint8_t tn; @@ -99,9 +100,31 @@ continue; } + /* update dummy burst mask for C0 */ + if (trx == bts->c0) + c0_mask |= (1 << tn); + trx_if_send_burst(l1h, &br); } } + + /* send dummy bursts on inactive timeslots of C0 */ + struct phy_instance *pinst = trx_phy_instance(bts->c0); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + struct phy_link *plink = pinst->phy_link; + + br = (struct trx_dl_burst_req) { + .fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance), + .burst_len = GSM_BURST_LEN, + }; + + memcpy(br.burst, _sched_dummy_burst, GSM_BURST_LEN); + + for (br.tn = 0; br.tn < TRX_NR_TS; br.tn++) { + if (c0_mask & (1 << br.tn)) + continue; + trx_if_send_burst(l1h, &br); + } } /*! maximum number of 'missed' frame periods we can tolerate of OS doesn't schedule us*/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c3651c27d2991079e83b8abdb7e2c3f95b97a43 Gerrit-Change-Number: 19029 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 Jun 28 13:39:17 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 28 Jun 2020 13:39:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: implement baseband frequency hopping References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19030 ) Change subject: osmo-bts-trx/scheduler: implement baseband frequency hopping ...................................................................... osmo-bts-trx/scheduler: implement baseband frequency hopping Change-Id: I68f4ae09fd0789ad0d8f1c1e17e17dfc4de8e462 Related: OS#4546 --- M include/osmo-bts/scheduler.h M src/osmo-bts-trx/scheduler_trx.c M src/osmo-bts-trx/trx_if.c 3 files changed, 78 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/30/19030/1 diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index e65665f..6f93812 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -270,6 +270,7 @@ }; /*! Handle an UL burst received by PHY */ +int trx_sched_route_burst_ind(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi); int trx_sched_ul_burst(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi); #endif /* TRX_SCHEDULER_H */ diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 8e1ccfa..eecc65e 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -34,6 +34,7 @@ #include #include #include +#include #include @@ -55,6 +56,30 @@ return 0; } +/* Find a route (PHY instance) for a given Downlink burst request */ +static struct phy_instance *dlfh_route_br(const struct gsm_bts_trx_ts *ts, + const struct trx_dl_burst_req *br) +{ + const struct gsm_bts_trx *trx; + struct gsm_time time; + uint16_t arfcn; + + gsm_fn2gsmtime(&time, br->fn); + + /* TODO: implement a "cache", so we could avoid frequent lookups */ + arfcn = gsm0502_hop_seq_gen(&time, ts->hopping.hsn, ts->hopping.maio, + ts->hopping.ma_len, ts->hopping.ma); + llist_for_each_entry(trx, &ts->trx->bts->trx_list, list) { + if (trx->arfcn == arfcn) + return trx->role_bts.l1h; + } + + LOGP(DL1C, LOGL_FATAL, "Failed to resolve TDMA fn=%u " + "(hsn=%u, maio=%u, ma_len=%u)\n", + br->fn, ts->hopping.hsn, ts->hopping.maio, ts->hopping.ma_len); + return ts->trx->role_bts.l1h; /* fall-back to the current trx */ +} + /* schedule all frames of all TRX for given FN */ static void trx_sched_fn(struct gsm_bts *bts, const uint32_t fn) { @@ -100,8 +125,14 @@ continue; } + /* resolve PHY instance if freq. hopping is enabled */ + if (trx->ts[tn].hopping.enabled) { + pinst = dlfh_route_br(&trx->ts[tn], &br); + l1h = pinst->u.osmotrx.hdl; + } + /* update dummy burst mask for C0 */ - if (trx == bts->c0) + if (pinst->trx == bts->c0) c0_mask |= (1 << tn); trx_if_send_burst(l1h, &br); @@ -127,6 +158,50 @@ } } +/* Find a route (TRX instance) for a given Uplink burst indication */ +static struct gsm_bts_trx *ulfh_route_bi(const struct gsm_bts_trx *src_trx, + const struct trx_ul_burst_ind *bi) +{ + struct gsm_bts_trx *trx; + struct gsm_time time; + uint16_t arfcn; + + gsm_fn2gsmtime(&time, bi->fn); + + /* TODO: implement a "cache", so we could avoid frequent lookups */ + llist_for_each_entry(trx, &src_trx->bts->trx_list, list) { + const struct gsm_bts_trx_ts *ts = &trx->ts[bi->tn]; + if (!ts->hopping.enabled) + continue; + + arfcn = gsm0502_hop_seq_gen(&time, ts->hopping.hsn, ts->hopping.maio, + ts->hopping.ma_len, ts->hopping.ma); + if (src_trx->arfcn == arfcn) + return trx; + } + + LOGP(DL1C, LOGL_FATAL, "Failed to find transceiver for an Uplink burst fn=%u\n", bi->fn); + return (struct gsm_bts_trx *) src_trx; /* fall-back to the originating trx */ +} + +/* Route a given Uplink burst indication to the scheduler depending on freq. hopping state */ +int trx_sched_route_burst_ind(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi) +{ + const struct phy_instance *pinst; + const struct gsm_bts_trx *trx; + struct trx_l1h *l1h; + + /* no frequency hopping => nothing to do */ + if (!l1t->trx->ts[bi->tn].hopping.enabled) + return trx_sched_ul_burst(l1t, bi); + + trx = ulfh_route_bi(l1t->trx, bi); + pinst = trx_phy_instance(trx); + l1h = pinst->u.osmotrx.hdl; + + return trx_sched_ul_burst(&l1h->l1s, bi); +} + /*! maximum number of 'missed' frame periods we can tolerate of OS doesn't schedule us*/ #define MAX_FN_SKEW 50 /*! maximum number of frame periods we can tolerate without TRX Clock Indication*/ diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 58f7455..2b74cd8 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1097,7 +1097,7 @@ hdr_ver, trx_data_desc_msg(&bi)); /* feed received burst into scheduler code */ - trx_sched_ul_burst(&l1h->l1s, &bi); + trx_sched_route_burst_ind(&l1h->l1s, &bi); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I68f4ae09fd0789ad0d8f1c1e17e17dfc4de8e462 Gerrit-Change-Number: 19030 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 Jun 28 13:39:17 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 28 Jun 2020 13:39:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: indicate support of BTS_FEAT_HOPPING References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/19031 ) Change subject: osmo-bts-trx: indicate support of BTS_FEAT_HOPPING ...................................................................... osmo-bts-trx: indicate support of BTS_FEAT_HOPPING Change-Id: I81c35d76d4ca0aa54b18c6fd1909a97b4f5f7b68 Related: OS#4546 --- M src/osmo-bts-trx/main.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/31/19031/1 diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 0d2a1f7..fae1ed8 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -118,6 +118,7 @@ osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_F_AMR); osmo_bts_set_feature(bts->features, BTS_FEAT_SPEECH_H_AMR); osmo_bts_set_feature(bts->features, BTS_FEAT_CBCH); + osmo_bts_set_feature(bts->features, BTS_FEAT_HOPPING); bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I81c35d76d4ca0aa54b18c6fd1909a97b4f5f7b68 Gerrit-Change-Number: 19031 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 Jun 28 16:29:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 28 Jun 2020 16:29:45 +0000 Subject: Change in osmo-e1d[master]: add .gitignore References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19032 ) Change subject: add .gitignore ...................................................................... add .gitignore Change-Id: I8ffa037248b5048cf8d7625c1ed36a3fa0941579 --- A .gitignore 1 file changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/32/19032/1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d52225c --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +config.* + +.version +Makefile +Makefile.in +aclocal.m4 +autom4te.cache +compile +configure +depcomp +install-sh +libtool +ltmain.sh +m4 +missing +*.pc + +.deps +.libs + +*.la +*.lo +*.o + +src/osmo-e1d -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I8ffa037248b5048cf8d7625c1ed36a3fa0941579 Gerrit-Change-Number: 19032 Gerrit-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 Jun 28 16:29:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 28 Jun 2020 16:29:46 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... remove code not specific to USB from usb.c to intf_line.c Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 --- M src/Makefile.am M src/e1d.h A src/intf_line.c M src/usb.c 4 files changed, 176 insertions(+), 125 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/33/19033/1 diff --git a/src/Makefile.am b/src/Makefile.am index 2890554..bc05998 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,6 +30,7 @@ osmo_e1d_SOURCES = \ ctl.c \ + intf_line.c \ log.c \ osmo-e1d.c \ usb.c \ diff --git a/src/e1d.h b/src/e1d.h index 330168b..fe3f733 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -80,3 +80,15 @@ void *ctx; struct llist_head interfaces; }; + +struct e1_intf * +_e1_intf_new(struct e1_daemon *e1d, void *drv_data); + +struct e1_line * +_e1_line_new(struct e1_intf *intf, void *drv_data); + +int +_e1_rx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len); + +int +_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len); diff --git a/src/intf_line.c b/src/intf_line.c new file mode 100644 index 0000000..87cc22a --- /dev/null +++ b/src/intf_line.c @@ -0,0 +1,163 @@ +/* + * intf_line.c + * + * (C) 2019 by Sylvain Munaut + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include + +#include +#include + +#include "e1d.h" +#include "log.h" + + +// --------------------------------------------------------------------------- +// e1d structures +// --------------------------------------------------------------------------- + +struct e1_intf * +_e1_intf_new(struct e1_daemon *e1d, void *drv_data) +{ + struct e1_intf *intf; + + intf = talloc_zero(e1d->ctx, struct e1_intf); + OSMO_ASSERT(intf); + + intf->e1d = e1d; + intf->drv_data = drv_data; + + INIT_LLIST_HEAD(&intf->list); + INIT_LLIST_HEAD(&intf->lines); + + if (!llist_empty(&e1d->interfaces)) { + struct e1_intf *f = llist_first_entry(&e1d->interfaces, struct e1_intf, list); + intf->id = f->id + 1; + } + + llist_add(&intf->list, &e1d->interfaces); + + return intf; +} + +struct e1_line * +_e1_line_new(struct e1_intf *intf, void *drv_data) +{ + struct e1_line *line; + + line = talloc_zero(intf->e1d->ctx, struct e1_line); + OSMO_ASSERT(line); + + line->intf = intf; + line->drv_data = drv_data; + + for (int i=0; i<32; i++) + line->ts[i].id = i; + + INIT_LLIST_HEAD(&line->list); + + if (!llist_empty(&intf->lines)) { + struct e1_line *l = llist_first_entry(&intf->lines, struct e1_line, list); + line->id = l->id + 1; + } + + llist_add(&line->list, &intf->lines); + + return line; +} + +// --------------------------------------------------------------------------- +// data transfer +// --------------------------------------------------------------------------- + +int +_e1_rx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) +{ + int rv, cl, oi; + + oi = 0; + + while (oi < len) { + rv = osmo_isdnhdlc_decode(&ts->hdlc_rx, + &buf[oi], len-oi, &cl, + ts->rx_buf, sizeof(ts->rx_buf) + ); + + if (rv > 0) { + printf("RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); + write(ts->fd, ts->rx_buf, rv); + } else if (rv < 0 && ts->id == 4) { + printf("ERR RX: %d %d %d [ %s]\n",rv,oi,cl, osmo_hexdump(buf, len)); + } + + oi += cl; + } + + return 0; +} + +int +_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) +{ + int rv, oo, cl; + + oo = 0; + + while (oo < len) { + /* Pending message ? */ + if (!ts->tx_len) { + rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); + if (rv > 0) { + printf("TX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); + ts->tx_len = rv; + ts->tx_ofs = 0; + } + } + + /* */ + rv = osmo_isdnhdlc_encode(&ts->hdlc_tx, + &ts->tx_buf[ts->tx_ofs], ts->tx_len - ts->tx_ofs, &cl, + &buf[oo], len - oo + ); + + if (rv < 0) + printf("ERR TX: %d\n", rv); + + if (ts->tx_ofs < ts->tx_len) + printf("TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); + + if (rv > 0) + oo += rv; + + ts->tx_ofs += cl; + if (ts->tx_ofs >= ts->tx_len) { + ts->tx_len = 0; + ts->tx_ofs = 0; + } + } + + return len; +} diff --git a/src/usb.c b/src/usb.c index 19855f8..c7b8f13 100644 --- a/src/usb.c +++ b/src/usb.c @@ -105,75 +105,6 @@ // --------------------------------------------------------------------------- static int -_e1_rx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) -{ - int rv, cl, oi; - - oi = 0; - - while (oi < len) { - rv = osmo_isdnhdlc_decode(&ts->hdlc_rx, - &buf[oi], len-oi, &cl, - ts->rx_buf, sizeof(ts->rx_buf) - ); - - if (rv > 0) { - printf("RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); - write(ts->fd, ts->rx_buf, rv); - } else if (rv < 0 && ts->id == 4) { - printf("ERR RX: %d %d %d [ %s]\n",rv,oi,cl, osmo_hexdump(buf, len)); - } - - oi += cl; - } - - return 0; -} - -static int -_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) -{ - int rv, oo, cl; - - oo = 0; - - while (oo < len) { - /* Pending message ? */ - if (!ts->tx_len) { - rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); - if (rv > 0) { - printf("TX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); - ts->tx_len = rv; - ts->tx_ofs = 0; - } - } - - /* */ - rv = osmo_isdnhdlc_encode(&ts->hdlc_tx, - &ts->tx_buf[ts->tx_ofs], ts->tx_len - ts->tx_ofs, &cl, - &buf[oo], len - oo - ); - - if (rv < 0) - printf("ERR TX: %d\n", rv); - - if (ts->tx_ofs < ts->tx_len) - printf("TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); - - if (rv > 0) - oo += rv; - - ts->tx_ofs += cl; - if (ts->tx_ofs >= ts->tx_len) { - ts->tx_len = 0; - ts->tx_ofs = 0; - } - } - - return len; -} - -static int e1_usb_xfer_in(struct e1_usb_flow *flow, uint8_t *buf, int size) { struct e1_line *line = flow->line; @@ -410,62 +341,6 @@ // --------------------------------------------------------------------------- -// e1d structures -// --------------------------------------------------------------------------- - -struct e1_intf * -_e1_intf_new(struct e1_daemon *e1d, void *drv_data) -{ - struct e1_intf *intf; - - intf = talloc_zero(e1d->ctx, struct e1_intf); - OSMO_ASSERT(intf); - - intf->e1d = e1d; - intf->drv_data = drv_data; - - INIT_LLIST_HEAD(&intf->list); - INIT_LLIST_HEAD(&intf->lines); - - if (!llist_empty(&e1d->interfaces)) { - struct e1_intf *f = llist_first_entry(&e1d->interfaces, struct e1_intf, list); - intf->id = f->id + 1; - } - - llist_add(&intf->list, &e1d->interfaces); - - return intf; -} - -struct e1_line * -_e1_line_new(struct e1_intf *intf, void *drv_data) -{ - struct e1_line *line; - - line = talloc_zero(intf->e1d->ctx, struct e1_line); - OSMO_ASSERT(line); - - line->intf = intf; - line->drv_data = drv_data; - - for (int i=0; i<32; i++) - line->ts[i].id = i; - - INIT_LLIST_HEAD(&line->list); - - if (!llist_empty(&intf->lines)) { - struct e1_line *l = llist_first_entry(&intf->lines, struct e1_line, list); - line->id = l->id + 1; - } - - llist_add(&line->list, &intf->lines); - - return line; -} - - - -// --------------------------------------------------------------------------- // Init / Probing // --------------------------------------------------------------------------- -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-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 Jun 28 16:29:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 28 Jun 2020 16:29:47 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19034 ) Change subject: move from printf() debug output to libosmocore logging ...................................................................... move from printf() debug output to libosmocore logging Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 --- M src/intf_line.c M src/log.c M src/log.h M src/usb.c 4 files changed, 19 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/34/19034/1 diff --git a/src/intf_line.c b/src/intf_line.c index 87cc22a..a2a623a 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -107,10 +107,12 @@ ); if (rv > 0) { - printf("RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); + LOGP(DXFR, LOGL_DEBUG, "RX Message: %d %d [ %s]\n", + ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); write(ts->fd, ts->rx_buf, rv); } else if (rv < 0 && ts->id == 4) { - printf("ERR RX: %d %d %d [ %s]\n",rv,oi,cl, osmo_hexdump(buf, len)); + LOGP(DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", + rv,oi,cl, osmo_hexdump(buf, len)); } oi += cl; @@ -131,7 +133,8 @@ if (!ts->tx_len) { rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); if (rv > 0) { - printf("TX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); + LOGP(DXFR, LOGL_DEBUG, "TX Message: %d %d [ %s]\n", + ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); ts->tx_len = rv; ts->tx_ofs = 0; } @@ -144,10 +147,12 @@ ); if (rv < 0) - printf("ERR TX: %d\n", rv); + LOGP(DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); - if (ts->tx_ofs < ts->tx_len) - printf("TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); + if (ts->tx_ofs < ts->tx_len) { + LOGP(DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", + ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); + } if (rv > 0) oo += rv; diff --git a/src/log.c b/src/log.c index 805d355..c50efe5 100644 --- a/src/log.c +++ b/src/log.c @@ -33,6 +33,11 @@ .loglevel = LOGL_DEBUG, .enabled = 1, }, + [DXFR] = { + .name = "DXFR", + .loglevel = LOGL_DEBUG, + .enabled = 1, + }, }; const struct log_info log_info = { diff --git a/src/log.h b/src/log.h index b3bed47..2a9b210 100644 --- a/src/log.h +++ b/src/log.h @@ -28,6 +28,7 @@ enum { DE1D, + DXFR, }; extern const struct log_info log_info; diff --git a/src/usb.c b/src/usb.c index c7b8f13..f35f548 100644 --- a/src/usb.c +++ b/src/usb.c @@ -111,7 +111,7 @@ int ftr; if (size <= 0) { - printf("IN ERROR: %d\n", size); + LOGP(DXFR, LOGL_ERROR, "IN ERROR: %d\n", size); return -1; } @@ -151,7 +151,7 @@ int fts, tsz; if (size <= 0) { - printf("OUT ERROR: %d\n", size); + LOGP(DXFR, LOGL_ERROR, "OUT ERROR: %d\n", size); return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-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 Jun 28 16:29:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 28 Jun 2020 16:29:47 +0000 Subject: Change in osmo-e1d[master]: libosmo-e1d: Add value_string for msg_type and mode References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19035 ) Change subject: libosmo-e1d: Add value_string for msg_type and mode ...................................................................... libosmo-e1d: Add value_string for msg_type and mode Change-Id: I72807f8eb2dcfaaba2819969c7aa62a4a1a79966 --- M include/osmocom/e1d/proto.h M src/proto.c 2 files changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/35/19035/1 diff --git a/include/osmocom/e1d/proto.h b/include/osmocom/e1d/proto.h index a3c94bb..f719cff 100644 --- a/include/osmocom/e1d/proto.h +++ b/include/osmocom/e1d/proto.h @@ -27,6 +27,7 @@ #include #include +#include /* E1DP_CMD_INTF_QUERY @@ -107,3 +108,6 @@ struct msgb *osmo_e1dp_recv(struct osmo_fd *ofd, int *fd); int osmo_e1dp_send(struct osmo_fd *ofd, struct msgb *msgb, int fd); + +extern const struct value_string osmo_e1dp_msg_type_names[]; +extern const struct value_string osmo_e1dp_ts_mode_names[]; diff --git a/src/proto.c b/src/proto.c index ee59ad1..6a32bb7 100644 --- a/src/proto.c +++ b/src/proto.c @@ -37,6 +37,22 @@ #include "log.h" +const struct value_string osmo_e1dp_msg_type_names[] = { + { E1DP_CMD_INTF_QUERY, "CMD_INTF_QUERY" }, + { E1DP_CMD_LINE_QUERY, "CMD_LINE_QUERY" }, + { E1DP_CMD_TS_QUERY, "CMD_TS_QUERY" }, + { E1DP_CMD_TS_OPEN, "CMD_TS_OPEN" }, + { E1DP_EVT_TYPE, "EVT_TYPE" }, + { E1DP_RESP_TYPE, "RESP_TYPE" }, + { E1DP_ERR_TYPE, "ERR_TYPE" }, + { 0, NULL } +}; +const struct value_string osmo_e1dp_ts_mode_names[] = { + { E1DP_TSMODE_OFF, "OFF" }, + { E1DP_TSMODE_RAW, "RAW" }, + { E1DP_TSMODE_HDLCFCS, "HDLC-FCS" }, + { 0, NULL } +}; struct msgb * osmo_e1dp_recv(struct osmo_fd *ofd, int *fd) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I72807f8eb2dcfaaba2819969c7aa62a4a1a79966 Gerrit-Change-Number: 19035 Gerrit-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 Jun 28 16:29:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 28 Jun 2020 16:29:47 +0000 Subject: Change in osmo-e1d[master]: VTY interface support References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... VTY interface support Let's add a VTY interface on TCP port 4269. The purpose is - for now - not for configuration storage, but for state introspection. Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 --- M configure.ac M src/Makefile.am M src/ctl.c M src/e1d.h M src/osmo-e1d.c A src/vty.c 6 files changed, 225 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/36/19036/1 diff --git a/configure.ac b/configure.ac index c0508eb..5be845b 100644 --- a/configure.ac +++ b/configure.ac @@ -33,6 +33,7 @@ PKG_CHECK_MODULES(TALLOC, [talloc >= 2.0.1]) PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.0.1.120) +PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty) PKG_CHECK_MODULES(LIBOSMOUSB, libosmousb) PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= 1.0.21) diff --git a/src/Makefile.am b/src/Makefile.am index bc05998..aa796f2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,8 @@ LIBVERSION=0:0:0 AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir) -AM_CFLAGS=-Wall -Wno-unused-result $(LIBOSMOCORE_CFLAGS) $(LIBOSMOUSB_LIBS) $(LIBUSB_CFLAGS) +AM_CFLAGS=-Wall -Wno-unused-result $(LIBOSMOCORE_CFLAGS) \ + $(LIBOSMOVTY_LIBS) $(LIBOSMOUSB_LIBS) $(LIBUSB_CFLAGS) lib_LTLIBRARIES = libosmo-e1d.la @@ -34,6 +35,8 @@ log.c \ osmo-e1d.c \ usb.c \ + vty.c \ $(NULL) -osmo_e1d_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOUSB_LIBS) $(LIBUSB_LIBS) libosmo-e1d.la +osmo_e1d_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) \ + $(LIBOSMOUSB_LIBS) $(LIBUSB_LIBS) libosmo-e1d.la diff --git a/src/ctl.c b/src/ctl.c index 835811f..f6e9311 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -38,7 +38,7 @@ #include "e1d.h" -static struct e1_intf * +struct e1_intf * _e1d_find_intf(struct e1_daemon *e1d, uint8_t id) { struct e1_intf *intf; diff --git a/src/e1d.h b/src/e1d.h index fe3f733..ed5414b 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -82,6 +82,9 @@ }; struct e1_intf * +_e1d_find_intf(struct e1_daemon *e1d, uint8_t id); + +struct e1_intf * _e1_intf_new(struct e1_daemon *e1d, void *drv_data); struct e1_line * @@ -92,3 +95,5 @@ int _e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len); + +void e1d_vty_init(struct e1_daemon *e1d); diff --git a/src/osmo-e1d.c b/src/osmo-e1d.c index 92d98d3..35c1401 100644 --- a/src/osmo-e1d.c +++ b/src/osmo-e1d.c @@ -28,23 +28,30 @@ #include #include +#define _GNU_SOURCE +#include + #include #include #include #include +#include #include #include "e1d.h" #include "log.h" +#ifndef OSMO_VTY_PORT_E1D +#define OSMO_VTY_PORT_E1D 4269 +#endif extern struct osmo_e1dp_server_handler e1d_ctl_handlers[]; extern int e1_usb_probe(struct e1_daemon *e1d); - +static const char *config_file = "osmo-e1d.cfg"; static void *g_e1d_ctx = NULL; static int g_shutdown = 0; @@ -71,6 +78,61 @@ } } +static struct vty_app_info vty_info = { + .name = "osmo-e1d", + .version = PACKAGE_VERSION, + .copyright = + "(C) 2019 by Sylvain Munaut \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", +}; + +static void print_help(void) +{ + printf(" Some useful help...\n"); + printf(" -h --help This text.\n"); + printf(" -d --debug option --debug=DE1D:DXFR enable debugging.\n"); + printf(" -c --config-file filename The config file to use.\n"); +} + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_index = 0, c; + static const struct option long_options[] = { + {"help", 0, 0, 'h'}, + {"debug", 1, 0, 'd'}, + {"config-file", 1, 0, 'c'}, + {0, 0, 0, 0} + }; + + c = getopt_long(argc, argv, "hd:c:", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'c': + config_file = optarg; + break; + default: + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } + + if (argc > optind) { + fprintf(stderr, "Unsupported positional arguments on command line\n"); + exit(2); + } +} int main(int argc, char *argv[]) { @@ -82,6 +144,7 @@ /* talloc init */ g_e1d_ctx = talloc_named_const(NULL, 0, "osmo-e1d"); msgb_talloc_ctx_init(g_e1d_ctx, 0); + vty_info.tall_ctx = g_e1d_ctx; /* logging init */ osmo_init_logging2(g_e1d_ctx, &log_info); @@ -108,6 +171,23 @@ OSMO_ASSERT(e1d); INIT_LLIST_HEAD(&e1d->interfaces); + vty_init(&vty_info); + e1d_vty_init(e1d); + + handle_options(argc, argv); + + rv = vty_read_config_file(config_file, NULL); + if (rv < 0) { + LOGP(DE1D, LOGL_FATAL, "Failed to parse the config file '%s'\n", config_file); + return rv; + } + + rv = telnet_init_dynif(g_e1d_ctx, e1d, vty_get_bind_addr(), OSMO_VTY_PORT_E1D); + if (rv != 0) { + LOGP(DE1D, LOGL_FATAL, "Failed to bind VTY interface to %s:%u\n", + vty_get_bind_addr(), OSMO_VTY_PORT_E1D); + exit(1); + } /* probe devices */ rv = e1_usb_probe(e1d); diff --git a/src/vty.c b/src/vty.c new file mode 100644 index 0000000..2c7fa81 --- /dev/null +++ b/src/vty.c @@ -0,0 +1,132 @@ +/* osmo-e1d VTY interface */ +/* (C) 2020 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 . + * + */ + +#define _GNU_SOURCE /* struct ucred */ +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include "e1d.h" + +static struct e1_daemon *vty_e1d; + +#if 0 +static void vty_dump_ts(struct vty *vty, const struct e1_ts *ts) +{ +} +#endif + +static void vty_dump_intf(struct vty *vty, const struct e1_intf *intf) +{ + vty_out(vty, "Interface #%u, Driver: FIXME%s", intf->id, VTY_NEWLINE); +} + +DEFUN(show_intf, show_intf_cmd, "show interface [<0-255>]", + SHOW_STR "Display information about an E1 Interface/Card\n") +{ + struct e1_intf *intf; + + if (argc) { + int id = atoi(argv[0]); + intf = _e1d_find_intf(vty_e1d, id); + if (!intf) { + vty_out(vty, "%% Unknown interface %u%s\n", id, VTY_NEWLINE); + return CMD_WARNING; + } + vty_dump_intf(vty, intf); + } else { + llist_for_each_entry(intf, &vty_e1d->interfaces, list) + vty_dump_intf(vty, intf); + } + + return CMD_SUCCESS; +} + +static int get_remote_pid(int fd) +{ + struct ucred uc; + socklen_t len = sizeof(uc); + int rc; + + rc = getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &uc, &len); + if (rc != 0) + return -1; + return uc.pid; +} + +static void vty_dump_line(struct vty *vty, const struct e1_line *line) +{ + int tn; + + vty_out(vty, "Interface #%u, Line #%u:%s", line->intf->id, line->id, VTY_NEWLINE); + + for (tn = 0; tn < ARRAY_SIZE(line->ts); tn++) { + const struct e1_ts *ts = &line->ts[tn]; + vty_out(vty, " TS%02u: Mode %s, FD %d, Peer PID %d%s", + ts->id, get_value_string(osmo_e1dp_ts_mode_names, ts->mode), + ts->fd, get_remote_pid(ts->fd), VTY_NEWLINE); + } +} + +DEFUN(show_line, show_line_cmd, "show line [<0-255>]", + SHOW_STR "Display information about an E1 Line\n") +{ + struct e1_line *line; + struct e1_intf *intf; + + if (argc) { + int id = atoi(argv[0]); + intf = _e1d_find_intf(vty_e1d, id); + if (!intf) { + vty_out(vty, "%% Unknown interface %u%s\n", id, VTY_NEWLINE); + return CMD_WARNING; + } + llist_for_each_entry(line, &intf->lines, list) + vty_dump_line(vty, line); + } else { + llist_for_each_entry(intf, &vty_e1d->interfaces, list) { + llist_for_each_entry(line, &intf->lines, list) + vty_dump_line(vty, line); + } + } + + return CMD_SUCCESS; +} + +void e1d_vty_init(struct e1_daemon *e1d) +{ + vty_e1d = e1d; + install_element_ve(&show_intf_cmd); + install_element_ve(&show_line_cmd); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-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 Jun 29 01:43:53 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 29 Jun 2020 01:43:53 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop unneeded method set_tlli_from_ul In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19023 ) Change subject: tbf: Drop unneeded method set_tlli_from_ul ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie8795e7a02032336e53febb65c11f9150c36d2a0 Gerrit-Change-Number: 19023 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 29 Jun 2020 01:43: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 Jun 29 05:04:28 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 29 Jun 2020 05:04:28 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19037 ) Change subject: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty ...................................................................... abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty According to 3GPP TS 48.058 (version 15.0.0), section 9.3.5, the 3GPP TS 24.008 "Mobile Allocation" shall for compatibility reasons be included but empty, i.e. the length shall be zero. Therefore, no matter if frequency hopping is in use or not, send it empty. Change-Id: Ie224a45f10522332eac653fa371564f022108c3f Related: OS#4545, OS#4546 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 4 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/37/19037/1 diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 8376f98..f6e564b 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -516,11 +516,10 @@ len = msgb_put(msg, 1); msgb_tv_fixed_put(msg, GSM48_IE_CHANDESC_2, sizeof(cd), (const uint8_t *) &cd); - if (lchan->ts->hopping.enabled) - msgb_tlv_put(msg, GSM48_IE_MA_AFTER, lchan->ts->hopping.ma_len, - lchan->ts->hopping.ma_data); - else - msgb_tlv_put(msg, GSM48_IE_MA_AFTER, 0, NULL); + /* See 3GPP TS 48.058 (version 15.0.0), section 9.3.5 "Channel Identification". + * The 3GPP TS 24.008 "Mobile Allocation" shall for compatibility reasons + * be included but empty, i.e. the length shall be zero. */ + msgb_tlv_put(msg, GSM48_IE_MA_AFTER, 0, NULL); /* update the calculated size */ msg->l3h = len + 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie224a45f10522332eac653fa371564f022108c3f Gerrit-Change-Number: 19037 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 Jun 29 08:29:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:29:37 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop unneeded method set_tlli_from_ul In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19023 ) Change subject: tbf: Drop unneeded method set_tlli_from_ul ...................................................................... Patch Set 1: Code-Review+2 +1+1=+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie8795e7a02032336e53febb65c11f9150c36d2a0 Gerrit-Change-Number: 19023 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:29: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 Jun 29 08:29:40 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:29:40 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop unneeded method set_tlli_from_ul In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19023 ) Change subject: tbf: Drop unneeded method set_tlli_from_ul ...................................................................... tbf: Drop unneeded method set_tlli_from_ul Since commit 322456ed474a733094c9f3e240295b469023ad14 (and previous one), it is expected that a tbf object ALWAYS has a MS object referend to it, even if it's a temporary copy which will later be merged when TLLI/IMSI is retrieved and it is found that several MS objects relate to the same MS. The purpose of set_tlli_from_ul was mainly to update TBF's ms() to old_ms before going through usual tbf->update_ms() path. That's not really needed since ms() is already always set and TBFs for old_ms are already freed in update_ms() and children function. Change-Id: Ie8795e7a02032336e53febb65c11f9150c36d2a0 --- M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M src/tbf_ul.cpp M tests/tbf/TbfTest.err 5 files changed, 2 insertions(+), 52 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/tbf.cpp b/src/tbf.cpp index 0cc0129..f77b1e2 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -392,9 +392,6 @@ void gprs_rlcmac_tbf::update_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir) { - if (!ms()) - return; - if (!tlli) return; @@ -1439,49 +1436,6 @@ return 0; } -int gprs_rlcmac_tbf::set_tlli_from_ul(uint32_t new_tlli) -{ - struct gprs_rlcmac_tbf *dl_tbf = NULL; - struct gprs_rlcmac_tbf *ul_tbf = NULL; - GprsMs *old_ms; - - OSMO_ASSERT(direction == GPRS_RLCMAC_UL_TBF); - - old_ms = bts->ms_by_tlli(new_tlli); - /* Keep the old MS object for the update_ms() */ - GprsMs::Guard guard(old_ms); - if (old_ms) { - /* Get them before calling set_ms() */ - dl_tbf = old_ms->dl_tbf(); - ul_tbf = old_ms->ul_tbf(); - - if (!ms()) - set_ms(old_ms); - } - - if (dl_tbf && dl_tbf->ms() != ms()) { - LOGPTBFUL(dl_tbf, LOGL_NOTICE, - "Got RACH from TLLI=0x%08x while TBF still exists: killing pending DL TBF\n", new_tlli); - tbf_free(dl_tbf); - dl_tbf = NULL; - } - if (ul_tbf && ul_tbf->ms() != ms()) { - LOGPTBFUL(ul_tbf, LOGL_NOTICE, - "Got RACH from TLLI=0x%08x while TBF still exists: killing pending UL TBF\n", new_tlli); - tbf_free(ul_tbf); - ul_tbf = NULL; - } - - /* The TLLI has been taken from an UL message */ - update_ms(new_tlli, GPRS_RLCMAC_UL_TBF); - -#if 0 /* REMOVEME ??? */ - if (ms()->need_dl_tbf()) - establish_dl_tbf_on_pacch(); -#endif - return 1; -} - const char *tbf_name(gprs_rlcmac_tbf *tbf) { return tbf ? tbf->name() : "(no TBF)"; diff --git a/src/tbf.h b/src/tbf.h index be3336a..528bee3 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -319,7 +319,6 @@ protected: gprs_rlcmac_bts *bts_data() const; void enable_egprs(); - int set_tlli_from_ul(uint32_t new_tlli); void merge_and_clear_ms(GprsMs *old_ms); gprs_llc_queue *llc_queue(); diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 03149ba..02aaa3a 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -151,8 +151,6 @@ ul_tbf = ms->ul_tbf(); ta = ms->ta(); - /* TODO: if (!ms) create MS before tbf_alloc is called? */ - if (ul_tbf && ul_tbf->m_contention_resolution_done && !ul_tbf->m_final_ack_sent) { use_trx = ul_tbf->trx->trx_no; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 3115080..489fc87 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -305,7 +305,7 @@ LOGPTBFUL(this, LOGL_INFO, "Decoded premier TLLI=0x%08x of UL DATA TFI=%d.\n", new_tlli, rlc->tfi); - set_tlli_from_ul(new_tlli); + update_ms(new_tlli, GPRS_RLCMAC_UL_TBF); } else if (new_tlli && new_tlli != tlli()) { LOGPTBFUL(this, LOGL_NOTICE, "TLLI mismatch on UL DATA TFI=%d. (Ignoring due to contention resolution)\n", diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 827f5ce..0d097ee 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -2079,7 +2079,6 @@ TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) BSN 0 storing in window (0..63) TBF(TFI=0 TLLI=0x00000000 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 TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=FLOW) Decoded premier TLLI=0xf1223344 of UL DATA TFI=0. -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Got RACH from TLLI=0xf1223344 while TBF still exists: killing pending DL TBF TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) changes state from ASSIGN to RELEASING TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) free TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=RELEASING) stopping timer T0 [freeing TBF] @@ -2089,8 +2088,8 @@ Modifying MS object, TLLI = 0x00000000, IMSI '' -> '0011223344' Modifying MS object, TLLI = 0x00000000, MS class 0 -> 1 Clearing MS object, TLLI: 0xf1223344, IMSI: '0011223344' -Modifying MS object, UL TLLI: 0x00000000 -> 0xf1223344, not yet confirmed Destroying MS object, TLLI = 0x00000000 +Modifying MS object, UL TLLI: 0x00000000 -> 0xf1223344, not yet confirmed TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Assembling frames: (len=20) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) Frame 1 starts at offset 4, length=16, is_complete=1 TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) complete UL frame len=16 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie8795e7a02032336e53febb65c11f9150c36d2a0 Gerrit-Change-Number: 19023 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 Mon Jun 29 08:34:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:34:28 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18837 ) Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:34: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 Jun 29 08:36:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:36:07 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19028 ) Change subject: osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a97000c1c84e36096e9ba378a489c82caa4cc5b Gerrit-Change-Number: 19028 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:36: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 Jun 29 08:42:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 08:42:14 +0000 Subject: Change in libosmocore[master]: vty/ports.h: Add VTY port for osmo-e1d References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/19038 ) Change subject: vty/ports.h: Add VTY port for osmo-e1d ...................................................................... vty/ports.h: Add VTY port for osmo-e1d Change-Id: Ia19b870146334b4ab749f12dc87fb628c1cdcca9 --- M include/osmocom/vty/ports.h 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/38/19038/1 diff --git a/include/osmocom/vty/ports.h b/include/osmocom/vty/ports.h index 56f7307..cda6a55 100644 --- a/include/osmocom/vty/ports.h +++ b/include/osmocom/vty/ports.h @@ -35,4 +35,5 @@ /* 4262-4263 used by control interface */ #define OSMO_VTY_PORT_CBC 4264 #define OSMO_VTY_PORT_UECUPS 4268 +#define OSMO_VTY_PORT_E1D 4269 /* When adding/changing port numbers, keep docs and wiki in sync. See above. */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia19b870146334b4ab749f12dc87fb628c1cdcca9 Gerrit-Change-Number: 19038 Gerrit-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 Jun 29 08:45:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 08:45:57 +0000 Subject: Change in osmo-gsm-manuals[master]: synchronize port_numbers.adoc with wiki References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/19039 ) Change subject: synchronize port_numbers.adoc with wiki ...................................................................... synchronize port_numbers.adoc with wiki The osmo-uecups related ports were not added at the time, and the upcoming osmo-e1d VTY port had to be added, too. Change-Id: If4128991efdba3a1c3c38e6cd688593a212346f6 --- M common/chapters/port_numbers.adoc 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/39/19039/1 diff --git a/common/chapters/port_numbers.adoc b/common/chapters/port_numbers.adoc index 2ab698a..fdb8ef9 100644 --- a/common/chapters/port_numbers.adoc +++ b/common/chapters/port_numbers.adoc @@ -45,6 +45,9 @@ |TCP|4265|Control Interface|osmo-cbc |TCP|4266|D-GSM MS Lookup: mDNS serve|osmo-hlr |TCP|4267|Control Interface|osmo-mgw +|TCP|4268|telnet (VTY)|osmo-uecups +|SCTP|4268|UECUPS|osmo-uecups +|TCP|4269|telnet (VTY)|osmo-e1d |UDP|4729|GSMTAP|Almost every osmocom project |TCP|5000|A/IP|osmo-bsc, osmo-bsc_nat |UDP|23000|GPRS-NS over IP default port|osmo-pcu, osmo-sgsn, osmo-gbproxy -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/19039 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: If4128991efdba3a1c3c38e6cd688593a212346f6 Gerrit-Change-Number: 19039 Gerrit-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 Jun 29 08:46:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:46:05 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor dummy burst scheduling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19029 ) Change subject: osmo-bts-trx/scheduler: refactor dummy burst scheduling ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/common/scheduler.c File src/common/scheduler.c: https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/common/scheduler.c at 56 PS1, Line 56: const ubit_t _sched_dummy_burst[] = { if it's GSM_BURST_LEN size, then please leave it there, it's convenient to quickly understand sizes of arrays in this case. https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/osmo-bts-trx/scheduler_trx.c at 105 PS1, Line 105: c0_mask |= (1 << tn); Why not simply moving all the code below inside this if condition and you don't need to work with this c0_mask? https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/osmo-bts-trx/scheduler_trx.c at 124 PS1, Line 124: if (c0_mask & (1 << br.tn)) don't you need to do the opposite? send when this holds true? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c3651c27d2991079e83b8abdb7e2c3f95b97a43 Gerrit-Change-Number: 19029 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:46:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 08:47:27 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 08:47:27 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18837 ) Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:47: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 Jun 29 08:51:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 08:51:11 +0000 Subject: Change in osmo-bts[master]: A-bis/OML: handle hopping params in Set Channel Attributes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18837 ) Change subject: A-bis/OML: handle hopping params in Set Channel Attributes ...................................................................... A-bis/OML: handle hopping params in Set Channel Attributes Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Related: OS#4546 --- M include/osmo-bts/gsm_data.h M src/common/gsm_data.c M src/common/oml.c 3 files changed, 42 insertions(+), 21 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 255c871..7b4d456 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -350,17 +350,13 @@ uint8_t nm_chan_comb; int tsc; /* -1 == use BTS TSC */ + /* Frequency hopping parameters (configured via OML) */ struct { - /* Parameters below are configured by VTY */ - int enabled; + bool enabled; uint8_t maio; uint8_t hsn; - struct bitvec arfcns; - uint8_t arfcns_data[1024/8]; - /* This is the pre-computed MA for channel assignments */ - struct bitvec ma; - uint8_t ma_len; /* part of ma_data that is used */ - uint8_t ma_data[8]; /* 10.5.2.21: max 8 bytes value part */ + uint16_t ma[64]; + uint8_t ma_len; } hopping; struct gsm_lchan lchan[TS_MAX_LCHAN]; diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index ae604ec..7239440 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -228,11 +228,6 @@ gsm_mo_init(&ts->mo, bts, NM_OC_CHANNEL, bts->nr, trx->nr, ts->nr); - ts->hopping.arfcns.data_len = sizeof(ts->hopping.arfcns_data); - ts->hopping.arfcns.data = ts->hopping.arfcns_data; - ts->hopping.ma.data_len = sizeof(ts->hopping.ma_data); - ts->hopping.ma.data = ts->hopping.ma_data; - for (l = 0; l < TS_MAX_LCHAN; l++) { struct gsm_lchan *lchan; char *name; diff --git a/src/common/oml.c b/src/common/oml.c index 28fa066..5f64d52 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -872,7 +872,7 @@ struct abis_om_fom_hdr *foh = msgb_l3(msg); struct gsm_bts *bts = ts->trx->bts; struct tlv_parsed tp, *tp_merged; - int rc; + int rc, i; DEBUGPFOH(DOML, foh, "Rx SET CHAN ATTR\n"); @@ -883,11 +883,39 @@ return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT); } - /* 9.4.21 HSN... */ - /* 9.4.27 MAIO */ + /* Check frequency hopping parameters (HSN, MAIO, ARFCN list) */ if (TLVP_PRESENT(&tp, NM_ATT_HSN) || TLVP_PRESENT(&tp, NM_ATT_MAIO)) { - LOGPFOH(DOML, LOGL_NOTICE, foh, "SET CHAN ATTR: Frequency hopping not supported.\n"); - return oml_fom_ack_nack(msg, NM_NACK_SPEC_IMPL_NOTSUPP); + if (!osmo_bts_has_feature(bts->features, BTS_FEAT_HOPPING)) { + LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: Frequency hopping not supported.\n"); + return oml_fom_ack_nack(msg, NM_NACK_SPEC_IMPL_NOTSUPP); + } + + if (!TLVP_PRES_LEN(&tp, NM_ATT_HSN, 1) || !TLVP_PRES_LEN(&tp, NM_ATT_MAIO, 1)) { + LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: HSN and/or MAIO is missing: " + "hsn=%u, maio=%u\n", TLVP_LEN(&tp, NM_ATT_HSN), TLVP_LEN(&tp, NM_ATT_MAIO)); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } + + if (!TLVP_PRES_LEN(&tp, NM_ATT_ARFCN_LIST, 2)) { /* At least one ARFCN */ + LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: ARFCN list is missing\n"); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } + + if (TLVP_LEN(&tp, NM_ATT_ARFCN_LIST) > sizeof(ts->hopping.ma)) { + LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: ARFCN list is too long\n"); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } else if (TLVP_LEN(&tp, NM_ATT_ARFCN_LIST) % 2 != 0) { + LOGPFOH(DOML, LOGL_ERROR, foh, "SET CHAN ATTR: ARFCN list has odd length\n"); + return oml_fom_ack_nack(msg, NM_NACK_ATTRLIST_INCONSISTENT); + } + + ts->hopping.enabled = true; + ts->hopping.hsn = *TLVP_VAL(&tp, NM_ATT_HSN); + ts->hopping.maio = *TLVP_VAL(&tp, NM_ATT_MAIO); + + ts->hopping.ma_len = TLVP_LEN(&tp, NM_ATT_ARFCN_LIST) / sizeof(uint16_t); + for (i = 0; i < ts->hopping.ma_len; i++) + ts->hopping.ma[i] = osmo_load16be(TLVP_VAL(&tp, NM_ATT_ARFCN_LIST) + i * 2); } /* 9.4.52 Starting Time */ @@ -928,8 +956,6 @@ } } - /* 9.4.5 ARFCN List */ - /* 9.4.60 TSC */ if (TLVP_PRES_LEN(&tp, NM_ATT_TSC, 1)) { ts->tsc = *TLVP_VAL(&tp, NM_ATT_TSC); @@ -937,8 +963,12 @@ /* If there is no TSC specified, use the BCC */ ts->tsc = BSIC2BCC(bts->bsic); } - LOGPFOH(DOML, LOGL_INFO, foh, "SET CHAN ATTR (TSC=%u pchan=%s)\n", + LOGPFOH(DOML, LOGL_INFO, foh, "SET CHAN ATTR (TSC=%u pchan=%s", ts->tsc, gsm_pchan_name(ts->pchan)); + if (ts->hopping.enabled) + LOGPC(DOML, LOGL_INFO, " hsn=%u maio=%u ma_len=%u", + ts->hopping.hsn, ts->hopping.maio, ts->hopping.ma_len); + LOGPC(DOML, LOGL_INFO, ")\n"); /* call into BTS driver to apply new attributes to hardware */ return bts_model_apply_oml(bts, msg, tp_merged, NM_OC_CHANNEL, ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieac26c7aca118c16889cdde2565a514681dc137b Gerrit-Change-Number: 18837 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 Jun 29 08:51:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 08:51:11 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19028 ) Change subject: osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check ...................................................................... osmo-bts-trx/scheduler: cosmetic: move trx_if_powered() check I believe the modern compilers are smart enough to optimize the outer (per-timeslot) loop of trx_sched_fn() in a way that TDMA frame number is advanced after making sure that a transceiver is powered on. However, it's still more perspicuous to check availability of a given transceiver first. Change-Id: I6a97000c1c84e36096e9ba378a489c82caa4cc5b --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 6122ad0..472bae8 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -73,14 +73,14 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl; struct l1sched_trx *l1t = &l1h->l1s; - /* advance frame number, so the transceiver has more - * time until it must be transmitted. */ - sched_fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); - /* we don't schedule, if power is off */ if (!trx_if_powered(l1h)) continue; + /* advance frame number, so the transceiver has more + * time until it must be transmitted. */ + sched_fn = GSM_TDMA_FN_SUM(fn, plink->u.osmotrx.clock_advance); + /* process every TS of TRX */ for (tn = 0; tn < ARRAY_SIZE(l1t->ts); tn++) { /* ready-to-send */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6a97000c1c84e36096e9ba378a489c82caa4cc5b Gerrit-Change-Number: 19028 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 08:51:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 08:51:21 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: indicate support of BTS_FEAT_HOPPING In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19031 ) Change subject: osmo-bts-trx: indicate support of BTS_FEAT_HOPPING ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I81c35d76d4ca0aa54b18c6fd1909a97b4f5f7b68 Gerrit-Change-Number: 19031 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 29 Jun 2020 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 Mon Jun 29 08:51:28 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:51:28 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: indicate support of BTS_FEAT_HOPPING In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19031 ) Change subject: osmo-bts-trx: indicate support of BTS_FEAT_HOPPING ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I81c35d76d4ca0aa54b18c6fd1909a97b4f5f7b68 Gerrit-Change-Number: 19031 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:51: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 Jun 29 08:52:00 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:52:00 +0000 Subject: Change in osmo-e1d[master]: add .gitignore In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19032 ) Change subject: add .gitignore ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I8ffa037248b5048cf8d7625c1ed36a3fa0941579 Gerrit-Change-Number: 19032 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:52:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 08:52:24 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:52:24 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 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 Mon Jun 29 08:52:55 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:52:55 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19034 ) Change subject: move from printf() debug output to libosmocore logging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08: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 Mon Jun 29 08:53:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:53:15 +0000 Subject: Change in osmo-e1d[master]: libosmo-e1d: Add value_string for msg_type and mode In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19035 ) Change subject: libosmo-e1d: Add value_string for msg_type and mode ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I72807f8eb2dcfaaba2819969c7aa62a4a1a79966 Gerrit-Change-Number: 19035 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:53: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 Jun 29 08:56:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:56:22 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/vty.c File src/vty.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/vty.c at 44 PS1, Line 44: #if 0 what about this? -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:56: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 Mon Jun 29 08:57:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:57:01 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19037 ) Change subject: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie224a45f10522332eac653fa371564f022108c3f Gerrit-Change-Number: 19037 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:57: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 Jun 29 08:57:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 08:57:21 +0000 Subject: Change in osmo-gsm-manuals[master]: synchronize port_numbers.adoc with wiki In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/19039 ) Change subject: synchronize port_numbers.adoc with wiki ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/19039 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: If4128991efdba3a1c3c38e6cd688593a212346f6 Gerrit-Change-Number: 19039 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 08:57:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 09:03:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 09:03:39 +0000 Subject: Change in osmo-trx[master]: Drop old TxGain APIs from parent radioDevice abstract class In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18919 ) Change subject: Drop old TxGain APIs from parent radioDevice abstract class ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ice005cd0a07c49b6e212c06f1228ef93c24db727 Gerrit-Change-Number: 18919 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 09:03:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 09:03:47 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 09:03:47 +0000 Subject: Change in osmo-trx[master]: {UHD, LMS}Dervice: Log expected resulting TxPower when setting device ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18922 ) Change subject: {UHD,LMS}Dervice: Log expected resulting TxPower when setting device specific TxGain ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3c54c61cd6dd7e40bb2831fd4962ff72130b390d Gerrit-Change-Number: 18922 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-Comment-Date: Mon, 29 Jun 2020 09:03: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 Jun 29 09:03:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 09:03:49 +0000 Subject: Change in osmo-trx[master]: Drop old TxGain APIs from parent radioDevice abstract class In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18919 ) Change subject: Drop old TxGain APIs from parent radioDevice abstract class ...................................................................... Drop old TxGain APIs from parent radioDevice abstract class All radioDevice subclasses except USRPDevice have already been reworked to use the new SetPowerAttenuation() methods, hence we can drop the compatibility layer that was added to transition from the old API to the new one, and move those functions to USRPDevice. This way we simplify the parent abstract class with methods not needed by most devices and not used anymore by external users of those classes. Change-Id: Ice005cd0a07c49b6e212c06f1228ef93c24db727 --- M Transceiver52M/device/common/radioDevice.h M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.h M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 5 files changed, 20 insertions(+), 50 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/Transceiver52M/device/common/radioDevice.h b/Transceiver52M/device/common/radioDevice.h index e51527d..cfe65da 100644 --- a/Transceiver52M/device/common/radioDevice.h +++ b/Transceiver52M/device/common/radioDevice.h @@ -151,17 +151,8 @@ virtual double getRxFreq(size_t chan = 0) = 0; virtual double getSampleRate()=0; - /* Default backward-compatible implementation based on TxGain APIs. New - implementations should be based on getNominalTxPower() once implemented for - the specific backend. */ - virtual double setPowerAttenuation(int atten, size_t chan) { - double rfGain; - rfGain = setTxGain(maxTxGain() - atten, chan); - return maxTxGain() - rfGain; - } - virtual double getPowerAttenuation(size_t chan=0) { - return maxTxGain() - getTxGain(chan); - } + virtual double setPowerAttenuation(int atten, size_t chan) = 0; + virtual double getPowerAttenuation(size_t chan=0) = 0; protected: size_t tx_sps, rx_sps; @@ -171,15 +162,6 @@ std::vector tx_paths, rx_paths; std::vector m_ctr; - /** sets the transmit chan gain, returns the gain setting **/ - virtual double setTxGain(double dB, size_t chan = 0) = 0; - - /** get transmit gain */ - virtual double getTxGain(size_t chan = 0) = 0; - - /** return maximum Tx Gain **/ - virtual double maxTxGain(void) = 0; - RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chan_num, double offset, const std::vector& tx_paths, const std::vector& rx_paths): diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index b6a6ab9..7af09e2 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -86,10 +86,6 @@ bool do_clock_src_freq(enum ReferenceType ref, double freq); void get_dev_band_desc(dev_band_desc& desc); - double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } - double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; - double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; - public: /** Object constructor */ diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 2c428ca..22a0948 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -134,10 +134,6 @@ }; private: - double setTxGain(double db, size_t chan) {OSMO_ASSERT(false); return 0.0f; } - double getTxGain(size_t chan = 0) { OSMO_ASSERT(false); return 0.0f; }; - double maxTxGain(void) { OSMO_ASSERT(false); return 0.0f; }; - uhd::usrp::multi_usrp::sptr usrp_dev; uhd::tx_streamer::sptr tx_stream; uhd::rx_streamer::sptr rx_stream; diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 73117d2..5c40aa8 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -205,8 +205,8 @@ writeLock.unlock(); // Set gains to midpoint - setTxGain((minTxGain() + maxTxGain()) / 2); - setRxGain((minRxGain() + maxRxGain()) / 2); + setTxGain((m_dbTx->gain_min() + m_dbTx->gain_max()) / 2); + setRxGain((m_dbTx->gain_min() + m_dbTx->gain_max()) / 2); data = new short[currDataSize]; dataStart = 0; @@ -243,16 +243,6 @@ #endif } -double USRPDevice::maxTxGain() -{ - return m_dbTx->gain_max(); -} - -double USRPDevice::minTxGain() -{ - return m_dbTx->gain_min(); -} - double USRPDevice::maxRxGain() { return m_dbRx->gain_max(); @@ -271,10 +261,10 @@ } writeLock.lock(); - if (dB > maxTxGain()) - dB = maxTxGain(); - if (dB < minTxGain()) - dB = minTxGain(); + if (dB > m_dbTx->gain_max()) + dB = m_dbTx->gain_max(); + if (dB < m_dbTx->gain_min()) + dB = m_dbTx->gain_min(); LOGC(DDEV, NOTICE) << "Setting TX gain to " << dB << " dB."; @@ -314,6 +304,15 @@ return rxGain; } +double USRPDevice::setPowerAttenuation(int atten, size_t chan) { + double rfGain; + rfGain = setTxGain(m_dbTx->gain_max() - atten, chan); + return m_dbTx->gain_max() - rfGain; +} +double USRPDevice::getPowerAttenuation(size_t chan) { + return m_dbTx->gain_max() - getTxGain(chan); +} + int USRPDevice::getNominalTxPower(size_t chan) { /* TODO: return value based on some experimentally generated table depending on diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index 1c1b3be..f761dc0 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -91,12 +91,6 @@ /** get transmit gain */ double getTxGain(size_t chan = 0) { return txGain; } - /** return maximum Tx Gain **/ - double maxTxGain(void); - - /** return minimum Rx Gain **/ - double minTxGain(void); - #ifdef SWLOOPBACK short loopbackBuffer[1000000]; int loopbackBufferSize; @@ -180,6 +174,9 @@ /** return minimum Rx Gain **/ double minRxGain(void); + double setPowerAttenuation(int atten, size_t chan); + double getPowerAttenuation(size_t chan=0); + int getNominalTxPower(size_t chan = 0); /** sets the RX path to use, returns true if successful and false otherwise */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ice005cd0a07c49b6e212c06f1228ef93c24db727 Gerrit-Change-Number: 18919 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 09:03:50 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 09:03:50 +0000 Subject: Change in osmo-trx[master]: {UHD, LMS}Dervice: Log expected resulting TxPower when setting device ... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/18922 ) Change subject: {UHD,LMS}Dervice: Log expected resulting TxPower when setting device specific TxGain ...................................................................... {UHD,LMS}Dervice: Log expected resulting TxPower when setting device specific TxGain Change-Id: I3c54c61cd6dd7e40bb2831fd4962ff72130b390d --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/uhd/UHDDevice.cpp 2 files changed, 11 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 8bb5316..20b9856 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -563,7 +563,7 @@ double LMSDevice::setPowerAttenuation(int atten, size_t chan) { - double dB; + double tx_power, dB; dev_band_desc desc; if (chan >= tx_gains.size()) { @@ -572,12 +572,13 @@ } get_dev_band_desc(desc); - dB = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + tx_power = desc.nom_out_tx_power - atten; + dB = TxPower2TxGain(desc, tx_power); - LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB"; + LOGCHAN(chan, DDEV, NOTICE) << "Setting TX gain to " << dB << " dB (~" << tx_power << " dBm)"; if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) - LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB"; + LOGCHAN(chan, DDEV, ERR) << "Error setting TX gain to " << dB << " dB (~" << tx_power << " dBm)"; else tx_gains[chan] = dB; return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index d1f61d3..0eb79fc 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -358,7 +358,7 @@ } double uhd_device::setPowerAttenuation(int atten, size_t chan) { - double db; + double tx_power, db; dev_band_desc desc; if (chan >= tx_gains.size()) { @@ -367,7 +367,8 @@ } get_dev_band_desc(desc); - db = TxPower2TxGain(desc, desc.nom_out_tx_power - atten); + tx_power = desc.nom_out_tx_power - atten; + db = TxPower2TxGain(desc, tx_power); if (dev_type == UMTRX) { std::vector gain_stages = usrp_dev->get_tx_gain_names(0); @@ -388,7 +389,9 @@ tx_gains[chan] = usrp_dev->get_tx_gain(chan); - LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)"; + LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB, ~" + << TxGain2TxPower(desc, tx_gains[chan]) << " dBm " + << "(asked for " << db << " dB, ~" << tx_power << " dBm)"; return desc.nom_out_tx_power - TxGain2TxPower(desc, tx_gains[chan]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/18922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3c54c61cd6dd7e40bb2831fd4962ff72130b390d Gerrit-Change-Number: 18922 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: roh Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 09:58:42 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 29 Jun 2020 09:58:42 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor dummy burst scheduling In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/19029 ) Change subject: osmo-bts-trx/scheduler: refactor dummy burst scheduling ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/osmo-bts-trx/scheduler_trx.c at 105 PS1, Line 105: c0_mask |= (1 << tn); > Why not simply moving all the code below inside this if condition and you don't need to work with th [?] As I wrote in the commit message, you cannot immediately send a Dummy Burst here when freq. hopping is in use. If you do this here, then what if the next transceiver would want to send a Normal Bursts on ARFCN of C0? That's why we postpone dummy burst scheduling. https://gerrit.osmocom.org/c/osmo-bts/+/19029/1/src/osmo-bts-trx/scheduler_trx.c at 124 PS1, Line 124: if (c0_mask & (1 << br.tn)) > don't you need to do the opposite? send when this holds true? '1'B means that a burst was [already] sent, otherwise we send a dummy burst. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/19029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8c3651c27d2991079e83b8abdb7e2c3f95b97a43 Gerrit-Change-Number: 19029 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 09:58:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 10:44:06 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 29 Jun 2020 10:44:06 +0000 Subject: Change in osmo-trx[master]: UHDDevice: catch LookupError/IndexError in set{Rx, Tx}Antenna() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/19040 ) Change subject: UHDDevice: catch LookupError/IndexError in set{Rx,Tx}Antenna() ...................................................................... UHDDevice: catch LookupError/IndexError in set{Rx,Tx}Antenna() Currently configuring 3 channels in multi-ARFCN mode makes the process crash during the Rx/Tx antenna configuration due to uncaught UHD specific LookupError/IndexError exceptions: terminate called after throwing an instance of 'uhd::index_error' what(): LookupError: IndexError: multi_usrp: TX channel 2 out of range for configured TX frontends Let's catch them and terminate gracefully. Change-Id: If66305f2787c6292375e4bfbd60c1d3d764cffd4 Related: OS#4636 --- M Transceiver52M/device/uhd/UHDDevice.cpp 1 file changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/40/19040/1 diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index d1f61d3..57ac0ce 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -1094,7 +1094,14 @@ return false; } - avail = usrp_dev->get_rx_antennas(chan); + /* UHD may throw a LookupError/IndexError here (see OS#4636) */ + try { + avail = usrp_dev->get_rx_antennas(chan); + } catch (const uhd::index_error &e) { + LOGC(DDEV, ALERT) << "UHD Error: " << e.what(); + return false; + } + if (std::find(avail.begin(), avail.end(), ant) == avail.end()) { LOGC(DDEV, ALERT) << "Requested non-existent Rx antenna " << ant << " on channel " << chan; LOGC(DDEV, INFO) << "Available Rx antennas: "; @@ -1130,7 +1137,14 @@ return false; } - avail = usrp_dev->get_tx_antennas(chan); + /* UHD may throw a LookupError/IndexError here (see OS#4636) */ + try { + avail = usrp_dev->get_tx_antennas(chan); + } catch (const uhd::index_error &e) { + LOGC(DDEV, ALERT) << "UHD Error: " << e.what(); + return false; + } + if (std::find(avail.begin(), avail.end(), ant) == avail.end()) { LOGC(DDEV, ALERT) << "Requested non-existent Tx antenna " << ant << " on channel " << chan; LOGC(DDEV, INFO) << "Available Tx antennas: "; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If66305f2787c6292375e4bfbd60c1d3d764cffd4 Gerrit-Change-Number: 19040 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 Jun 29 12:11:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:11:12 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19041 ) Change subject: introduce notion of 'driver' ...................................................................... introduce notion of 'driver' Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b --- M src/e1d.h M src/intf_line.c M src/usb.c M src/vty.c 4 files changed, 14 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/41/19041/1 diff --git a/src/e1d.h b/src/e1d.h index ed5414b..e93d0e5 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -65,12 +65,19 @@ struct e1_ts ts[32]; }; +enum e1_driver { + E1_DRIVER_USB, +}; + +extern const struct value_string e1_driver_names[]; + struct e1_intf { struct llist_head list; struct e1_daemon *e1d; uint8_t id; + enum e1_driver drv; void *drv_data; struct llist_head lines; diff --git a/src/intf_line.c b/src/intf_line.c index a2a623a..83e629f 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -34,6 +34,10 @@ #include "e1d.h" #include "log.h" +const struct value_string e1_driver_names[] = { + { E1_DRIVER_USB, "usb" }, + { 0, NULL } +}; // --------------------------------------------------------------------------- // e1d structures diff --git a/src/usb.c b/src/usb.c index f35f548..8938a78 100644 --- a/src/usb.c +++ b/src/usb.c @@ -366,6 +366,7 @@ intf_data->devh = devh; intf = _e1_intf_new(e1d, intf_data); + intf->drv = E1_DRIVER_USB; ret = libusb_get_active_config_descriptor(dev, &cd); if (ret) { diff --git a/src/vty.c b/src/vty.c index 2c7fa81..753a8ad 100644 --- a/src/vty.c +++ b/src/vty.c @@ -49,7 +49,8 @@ static void vty_dump_intf(struct vty *vty, const struct e1_intf *intf) { - vty_out(vty, "Interface #%u, Driver: FIXME%s", intf->id, VTY_NEWLINE); + vty_out(vty, "Interface #%u, Driver: %s%s", intf->id, + get_value_string(e1_driver_names, intf->drv), VTY_NEWLINE); } DEFUN(show_intf, show_intf_cmd, "show interface [<0-255>]", -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-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 Jun 29 12:11:12 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:11:12 +0000 Subject: Change in osmo-e1d[master]: _e1_line_new(): Initialize timeslot fd to -1 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19042 ) Change subject: _e1_line_new(): Initialize timeslot fd to -1 ...................................................................... _e1_line_new(): Initialize timeslot fd to -1 Otherwise we might up ending up doing plenty of unintended close(0) in _e1d_ts_stop() Change-Id: I6b88a3ff7d650a0caa242e6ac60d7778564e237c --- M src/intf_line.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/42/19042/1 diff --git a/src/intf_line.c b/src/intf_line.c index 83e629f..27fc5db 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -78,8 +78,10 @@ line->intf = intf; line->drv_data = drv_data; - for (int i=0; i<32; i++) + for (int i=0; i<32; i++) { line->ts[i].id = i; + line->ts[i].fd = -1; + } INIT_LLIST_HEAD(&line->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b88a3ff7d650a0caa242e6ac60d7778564e237c Gerrit-Change-Number: 19042 Gerrit-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 Jun 29 12:11:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:11:13 +0000 Subject: Change in osmo-e1d[master]: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19043 ) Change subject: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor ...................................................................... ctl.c: Fix off-by-one: FD=0 is a valid file descriptor It is possible that fd=0 (stdin) is closed in a daemon scenario, and subsequently fd=0 is reused for other files/sockets. Change-Id: Id8279f04373e891009224bab34a4d1d886520fea --- M src/ctl.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/43/19043/1 diff --git a/src/ctl.c b/src/ctl.c index f6e9311..0d6c313 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -96,7 +96,7 @@ { ts->mode = E1_TS_MODE_OFF; - if (ts->fd > 0) { + if (ts->fd >= 0) { close(ts->fd); ts->fd = -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Id8279f04373e891009224bab34a4d1d886520fea Gerrit-Change-Number: 19043 Gerrit-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 Jun 29 12:11:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:11:13 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19044 ) Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Export _e1d_ts_stop() function inside daemon Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 --- M src/ctl.c M src/e1d.h 2 files changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/44/19044/1 diff --git a/src/ctl.c b/src/ctl.c index 0d6c313..8517aef 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -91,7 +91,7 @@ } -static void +void _e1d_ts_stop(struct e1_ts *ts) { ts->mode = E1_TS_MODE_OFF; diff --git a/src/e1d.h b/src/e1d.h index e93d0e5..55b4800 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -104,3 +104,6 @@ _e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len); void e1d_vty_init(struct e1_daemon *e1d); + +void +_e1d_ts_stop(struct e1_ts *ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-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 Jun 29 12:11:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:11:13 +0000 Subject: Change in osmo-e1d[master]: add _e1d_line_destroy() / _e1d_intf_destroy() functions References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add _e1d_line_destroy() / _e1d_intf_destroy() functions ...................................................................... add _e1d_line_destroy() / _e1d_intf_destroy() functions Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b --- M src/e1d.h M src/intf_line.c 2 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/45/19045/1 diff --git a/src/e1d.h b/src/e1d.h index 55b4800..0cc1993 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -94,9 +94,15 @@ struct e1_intf * _e1_intf_new(struct e1_daemon *e1d, void *drv_data); +void +_e1_intf_destroy(struct e1_intf *intf); + struct e1_line * _e1_line_new(struct e1_intf *intf, void *drv_data); +void +_e1_line_destroy(struct e1_line *line); + int _e1_rx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len); diff --git a/src/intf_line.c b/src/intf_line.c index 27fc5db..0dfa3fc 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -67,6 +67,21 @@ return intf; } +void +_e1_intf_destroy(struct e1_intf *intf) +{ + struct e1_line *line, *line2; + + /* destroy all lines */ + llist_for_each_entry_safe(line, line2, &intf->lines, list) + _e1_line_destroy(line); + + /* remove from global list of interfaces */ + llist_del(&intf->list); + + talloc_free(intf); +} + struct e1_line * _e1_line_new(struct e1_intf *intf, void *drv_data) { @@ -95,6 +110,20 @@ return line; } +void +_e1_line_destroy(struct e1_line *line) +{ + /* close all [peer] file descriptors */ + for (int i=0; i<32; i++) + _e1d_ts_stop(&line->ts[i]); + + /* remove from per-interface list of lines */ + llist_del(&line->list); + + talloc_free(line); +} + + // --------------------------------------------------------------------------- // data transfer // --------------------------------------------------------------------------- -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-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 Jun 29 12:11:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:11:14 +0000 Subject: Change in osmo-e1d[master]: factor-out core E1 mux/demux functions to intf_line.c References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19046 ) Change subject: factor-out core E1 mux/demux functions to intf_line.c ...................................................................... factor-out core E1 mux/demux functions to intf_line.c This way we can de-couple the E1 mux/demux from the specific USB interface code that the current hardware uses. Change-Id: I9ab11617e70697b84c85f7793f118fb8c915997b --- M src/e1d.h M src/intf_line.c M src/usb.c 3 files changed, 99 insertions(+), 70 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/46/19046/1 diff --git a/src/e1d.h b/src/e1d.h index 0cc1993..39df28e 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -109,6 +109,12 @@ int _e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len); +int +_e1_mux_out(struct e1_line *line, uint8_t *buf, int fts); + +int +_e1_demux_in(struct e1_line *line, const uint8_t *buf, int size); + void e1d_vty_init(struct e1_daemon *e1d); void diff --git a/src/intf_line.c b/src/intf_line.c index 0dfa3fc..33edf05 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -201,3 +201,92 @@ return len; } + +/*! generate (multiplex) output data for the specified e1_line + * \param[in] line E1 line for which to genrate output data + * \param[in] buf caller-allocated output buffer for multiplexed data + * \param[in] fts number of E1 frames (32 bytes each) to generate + * \return number of bytes written to buf */ +int +_e1_mux_out(struct e1_line *line, uint8_t *buf, int fts) +{ + int tsz; + + /* Prepare */ + tsz = 32 * fts; + memset(buf, 0xff, tsz); + + /* Scan timeslots */ + for (int tsn=1; tsn<32; tsn++) + { + struct e1_ts *ts = &line->ts[tsn]; + uint8_t buf_ts[fts]; + int l; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + switch (ts->mode) { + case E1_TS_MODE_RAW: + l = read(ts->fd, buf_ts, fts); + break; + case E1_TS_MODE_HDLCFCS: + l = _e1_tx_hdlcfs(ts, buf_ts, fts); + break; + default: + continue; + } + + if (l <= 0) + continue; + + for (int i=0; its[tsn]; + uint8_t buf_ts[ftr]; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + for (int i=0; imode) { + case E1_TS_MODE_RAW: + write(ts->fd, buf_ts, ftr); + break; + case E1_TS_MODE_HDLCFCS: + _e1_rx_hdlcfs(ts, buf_ts, ftr); + break; + default: + continue; + } + } + + return 0; +} diff --git a/src/usb.c b/src/usb.c index 8938a78..59bcac8 100644 --- a/src/usb.c +++ b/src/usb.c @@ -107,40 +107,7 @@ static int e1_usb_xfer_in(struct e1_usb_flow *flow, uint8_t *buf, int size) { - struct e1_line *line = flow->line; - int ftr; - - if (size <= 0) { - LOGP(DXFR, LOGL_ERROR, "IN ERROR: %d\n", size); - return -1; - } - - ftr = (size - 4) / 32; - - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[32]; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - for (int i=0; imode) { - case E1_TS_MODE_RAW: - write(ts->fd, buf_ts, ftr); - break; - case E1_TS_MODE_HDLCFCS: - _e1_rx_hdlcfs(ts, buf_ts, ftr); - break; - default: - continue; - } - } - - return 0; + return _e1_demux_in(flow->line, buf, size - 4); } static int @@ -148,7 +115,7 @@ { struct e1_line *line = flow->line; struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; - int fts, tsz; + int fts; if (size <= 0) { LOGP(DXFR, LOGL_ERROR, "OUT ERROR: %d\n", size); @@ -166,42 +133,9 @@ if (ld->r_acc & 0x80000000) ld->r_acc = 0; - /* Prepare */ - tsz = 4 + 32 * fts; - memset(buf, 0xff, tsz); + memset(buf, 0xff, 4); - /* Header */ - /* FIXME */ - - /* Scan timeslots */ - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[32]; - int l; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - switch (ts->mode) { - case E1_TS_MODE_RAW: - l = read(ts->fd, buf_ts, fts); - break; - case E1_TS_MODE_HDLCFCS: - l = _e1_tx_hdlcfs(ts, buf_ts, fts); - break; - default: - continue; - } - - if (l <= 0) - continue; - - for (int i=0; i Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 12:11:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:11:14 +0000 Subject: Change in osmo-e1d[master]: WIP: Add virtual pair of E1 interfaces References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19047 ) Change subject: WIP: Add virtual pair of E1 interfaces ...................................................................... WIP: Add virtual pair of E1 interfaces The idea is to generate a pair of virtual E1 interfaces (each with identical number of lines), where each line A:n is connected to line B:n of the pair and vice-versa. This allows to test E1 using applications back to back against each other, without any physical E1 circuits in between. Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 --- M src/Makefile.am M src/ctl.c M src/e1d.h M src/intf_line.c A src/vpair.c M src/vty.c 6 files changed, 209 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/47/19047/1 diff --git a/src/Makefile.am b/src/Makefile.am index aa796f2..e811f0a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ log.c \ osmo-e1d.c \ usb.c \ + vpair.c \ vty.c \ $(NULL) diff --git a/src/ctl.c b/src/ctl.c index 8517aef..e7bb77d 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -50,7 +50,7 @@ return NULL; } -static struct e1_line * +struct e1_line * _e1d_find_line(struct e1_intf *intf, uint8_t id) { struct e1_line *line; diff --git a/src/e1d.h b/src/e1d.h index 39df28e..a9374b1 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -67,6 +67,7 @@ enum e1_driver { E1_DRIVER_USB, + E1_DRIVER_VPAIR, }; extern const struct value_string e1_driver_names[]; @@ -97,6 +98,10 @@ void _e1_intf_destroy(struct e1_intf *intf); + +struct e1_line * +_e1d_find_line(struct e1_intf *intf, uint8_t id); + struct e1_line * _e1_line_new(struct e1_intf *intf, void *drv_data); @@ -119,3 +124,7 @@ void _e1d_ts_stop(struct e1_ts *ts); + + +int +_e1_vpair_create(struct e1_daemon *e1d, unsigned int num_lines); diff --git a/src/intf_line.c b/src/intf_line.c index 33edf05..fae4b64 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -36,6 +36,7 @@ const struct value_string e1_driver_names[] = { { E1_DRIVER_USB, "usb" }, + { E1_DRIVER_VPAIR, "vpair" }, { 0, NULL } }; diff --git a/src/vpair.c b/src/vpair.c new file mode 100644 index 0000000..9bb38f1 --- /dev/null +++ b/src/vpair.c @@ -0,0 +1,179 @@ +/* Virtual E1 interface pair: Two virtual interfaces with N lines each, + * where data written to A can be read from B and vice-versa. + * + * (C) 2020 by Harald Welte + */ + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "e1d.h" +#include "log.h" + +/* number of bits in each frame */ +#define BITS_PER_FRAME (32*8) +/* overall bit-rate of E1 line in bits per second */ +#define BITRATE 2048000 +/* number of frames per second (8000) */ +#define FRAME_RATE (BITRATE / BITS_PER_FRAME) +/* duration of one frame in nanoseconds (125000) */ +#define FRAME_DURATION_NS (1000000000UL / FRAME_RATE) + +/* number of E1 frames (32bytes) to handle for each timer interval */ +#define FRAMES_PER_TIMER 10 + +struct ve1_intf_data { + /* pointer to other side of the interface pair */ + struct e1_intf *peer; + struct osmo_fd timerfd; +}; + +struct ve1_line_data { + /* pointer to other side of the interface pair */ + struct e1_line *peer; +}; + +static struct e1_intf * +vintf_create(struct e1_daemon *e1d, unsigned int num_lines) +{ + struct e1_intf *intf; + struct ve1_intf_data *intf_data; + unsigned int i; + + intf_data = talloc_zero(e1d->ctx, struct ve1_intf_data); + + intf = _e1_intf_new(e1d, intf_data); + intf->drv = E1_DRIVER_VPAIR; + + for (i = 0; i < num_lines; i++) { + struct e1_line *line; + struct ve1_line_data *line_data; + + line_data = talloc_zero(e1d->ctx, struct ve1_line_data); + line = _e1_line_new(intf, line_data); + } + + return intf; +} + +static void +vintf_destroy(struct e1_intf *intf) +{ + OSMO_ASSERT(intf->drv == E1_DRIVER_VPAIR); + _e1_intf_destroy(intf); + talloc_free(intf->drv_data); +} + +static int +ve1_timerfd_cb(struct osmo_fd *ofd, unsigned int what) +{ + struct e1_intf *intf = ofd->data; + struct e1_line *line, *peer; + uint64_t expire_count; + unsigned int frames_expired; + int rc; + + if (!(what & OSMO_FD_READ)) + return 0; + + rc = read(ofd->fd, (void *) &expire_count, sizeof(expire_count)); + if (rc < 0 && errno == EAGAIN) + return 0; + OSMO_ASSERT(rc == sizeof(expire_count)); + + if (expire_count > 1) { + LOGP(DE1D, LOGL_NOTICE, "vpair timer expire_count=%" PRIu64 + ": We missed %" PRIu64 " timers\n", expire_count, expire_count-1); + } + + OSMO_ASSERT(expire_count < UINT_MAX/FRAMES_PER_TIMER); + frames_expired = expire_count * FRAMES_PER_TIMER; + + llist_for_each_entry(line, &intf->lines, list) { + uint8_t buf[32*frames_expired]; + struct ve1_line_data *ldata = line->drv_data; + + peer = ldata->peer; + + /* generate data on current line */ + rc = _e1_mux_out(line, buf, frames_expired); + OSMO_ASSERT(rc >= 0); + /* write data to peer */ + rc = _e1_demux_in(peer, buf, rc); + OSMO_ASSERT(rc >= 0); + + /* generate data on peer line */ + rc = _e1_mux_out(peer, buf, frames_expired); + OSMO_ASSERT(rc >= 0); + /* write data to current line */ + rc = _e1_demux_in(line, buf, rc); + OSMO_ASSERT(rc >= 0); + } + + return 0; +} + +int +_e1_vpair_create(struct e1_daemon *e1d, unsigned int num_lines) +{ + struct e1_intf *a, *b; + struct e1_line *al, *bl; + struct ve1_intf_data *adata, *bdata; + int rc = -1; + + /* create both interfaces, each with identical line count */ + a = vintf_create(e1d, num_lines); + if (!a) + goto err; + adata = a->drv_data; + + b = vintf_create(e1d, num_lines); + if (!b) + goto err_free_a; + bdata = b->drv_data; + + /* point the interfaces at each other */ + adata->peer = b; + bdata->peer = a; + + /* point the lines at each other */ + llist_for_each_entry(al, &a->lines, list) { + struct ve1_line_data *aldata, *bldata; + bl = _e1d_find_line(b, al->id); + OSMO_ASSERT(bl); + aldata = al->drv_data; + bldata = bl->drv_data; + + aldata->peer = bl; + bldata->peer = al; + } + + /* schedule timer only for 'a' side; handles both directions */ + struct timespec interval = { + .tv_sec = 0, + .tv_nsec = FRAME_DURATION_NS*FRAMES_PER_TIMER, + }; + adata->timerfd.fd = -1; + rc = osmo_timerfd_setup(&adata->timerfd, ve1_timerfd_cb, a); + if (rc < 0) + goto err_free_b; + rc = osmo_timerfd_schedule(&adata->timerfd, NULL, &interval); + if (rc < 0) + goto err_free_b; + + return 0; + +err_free_b: + vintf_destroy(b); +err_free_a: + vintf_destroy(a); +err: + return rc; +} diff --git a/src/vty.c b/src/vty.c index 753a8ad..0043f93 100644 --- a/src/vty.c +++ b/src/vty.c @@ -125,9 +125,27 @@ return CMD_SUCCESS; } +DEFUN(cfg_vpair, cfg_vpair_cmd, "virtual-e1-pair <1-255>", + "Create a virtual E1 interface pair\n" + "Number of E1 lines in virtual E1 interface pair\n") +{ + int num_lines = atoi(argv[0]); + int rc; + + rc = _e1_vpair_create(vty_e1d, num_lines); + if (rc < 0) { + vty_out(vty, "%% Error creating virtual-e1-pair: %d%s", rc, VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + void e1d_vty_init(struct e1_daemon *e1d) { vty_e1d = e1d; install_element_ve(&show_intf_cmd); install_element_ve(&show_line_cmd); + + install_element(CONFIG_NODE, &cfg_vpair_cmd); } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 Gerrit-Change-Number: 19047 Gerrit-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 Jun 29 12:14:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:14:24 +0000 Subject: Change in osmo-e1d[master]: add .gitignore In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19032 ) Change subject: add .gitignore ...................................................................... add .gitignore Change-Id: I8ffa037248b5048cf8d7625c1ed36a3fa0941579 --- A .gitignore 1 file changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d52225c --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +config.* + +.version +Makefile +Makefile.in +aclocal.m4 +autom4te.cache +compile +configure +depcomp +install-sh +libtool +ltmain.sh +m4 +missing +*.pc + +.deps +.libs + +*.la +*.lo +*.o + +src/osmo-e1d -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I8ffa037248b5048cf8d7625c1ed36a3fa0941579 Gerrit-Change-Number: 19032 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 Jun 29 12:23:10 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 12:23:10 +0000 Subject: Change in osmo-trx[master]: UHDDevice: catch LookupError/IndexError in set{Rx, Tx}Antenna() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19040 ) Change subject: UHDDevice: catch LookupError/IndexError in set{Rx,Tx}Antenna() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If66305f2787c6292375e4bfbd60c1d3d764cffd4 Gerrit-Change-Number: 19040 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 29 Jun 2020 12:23: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 Jun 29 12:37:36 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:37:36 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19041 ) Change subject: introduce notion of 'driver' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 12:37:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 12:37:52 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:37:52 +0000 Subject: Change in osmo-e1d[master]: _e1_line_new(): Initialize timeslot fd to -1 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19042 ) Change subject: _e1_line_new(): Initialize timeslot fd to -1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b88a3ff7d650a0caa242e6ac60d7778564e237c Gerrit-Change-Number: 19042 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 12: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 Mon Jun 29 12:38:22 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:38:22 +0000 Subject: Change in osmo-e1d[master]: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19043 ) Change subject: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Id8279f04373e891009224bab34a4d1d886520fea Gerrit-Change-Number: 19043 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 12:38: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 Jun 29 12:39:10 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:39:10 +0000 Subject: Change in osmo-e1d[master]: add _e1d_line_destroy() / _e1d_intf_destroy() functions In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add _e1d_line_destroy() / _e1d_intf_destroy() functions ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 12:39:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 12:39:38 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:39:38 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19044 ) Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Patch Set 1: Usually you want to do this in the same patch where it starts being used. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 12:39: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 Jun 29 12:41:45 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:41:45 +0000 Subject: Change in osmo-e1d[master]: factor-out core E1 mux/demux functions to intf_line.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19046 ) Change subject: factor-out core E1 mux/demux functions to intf_line.c ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/19046/1/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19046/1/src/intf_line.c at 206 PS1, Line 206: * \param[in] line E1 line for which to genrate output data typo:generate https://gerrit.osmocom.org/c/osmo-e1d/+/19046/1/src/intf_line.c at 220 PS1, Line 220: for (int tsn=1; tsn<32; tsn++) spacing -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I9ab11617e70697b84c85f7793f118fb8c915997b Gerrit-Change-Number: 19046 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 12:41: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 Mon Jun 29 12:43:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:43:04 +0000 Subject: Change in osmo-trx[master]: UHDDevice: catch LookupError/IndexError in set{Rx, Tx}Antenna() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19040 ) Change subject: UHDDevice: catch LookupError/IndexError in set{Rx,Tx}Antenna() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If66305f2787c6292375e4bfbd60c1d3d764cffd4 Gerrit-Change-Number: 19040 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 12: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 Mon Jun 29 12:43:06 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 12:43:06 +0000 Subject: Change in osmo-trx[master]: UHDDevice: catch LookupError/IndexError in set{Rx, Tx}Antenna() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19040 ) Change subject: UHDDevice: catch LookupError/IndexError in set{Rx,Tx}Antenna() ...................................................................... UHDDevice: catch LookupError/IndexError in set{Rx,Tx}Antenna() Currently configuring 3 channels in multi-ARFCN mode makes the process crash during the Rx/Tx antenna configuration due to uncaught UHD specific LookupError/IndexError exceptions: terminate called after throwing an instance of 'uhd::index_error' what(): LookupError: IndexError: multi_usrp: TX channel 2 out of range for configured TX frontends Let's catch them and terminate gracefully. Change-Id: If66305f2787c6292375e4bfbd60c1d3d764cffd4 Related: OS#4636 --- M Transceiver52M/device/uhd/UHDDevice.cpp 1 file changed, 16 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 0eb79fc..854ed2e 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -1097,7 +1097,14 @@ return false; } - avail = usrp_dev->get_rx_antennas(chan); + /* UHD may throw a LookupError/IndexError here (see OS#4636) */ + try { + avail = usrp_dev->get_rx_antennas(chan); + } catch (const uhd::index_error &e) { + LOGC(DDEV, ALERT) << "UHD Error: " << e.what(); + return false; + } + if (std::find(avail.begin(), avail.end(), ant) == avail.end()) { LOGC(DDEV, ALERT) << "Requested non-existent Rx antenna " << ant << " on channel " << chan; LOGC(DDEV, INFO) << "Available Rx antennas: "; @@ -1133,7 +1140,14 @@ return false; } - avail = usrp_dev->get_tx_antennas(chan); + /* UHD may throw a LookupError/IndexError here (see OS#4636) */ + try { + avail = usrp_dev->get_tx_antennas(chan); + } catch (const uhd::index_error &e) { + LOGC(DDEV, ALERT) << "UHD Error: " << e.what(); + return false; + } + if (std::find(avail.begin(), avail.end(), ant) == avail.end()) { LOGC(DDEV, ALERT) << "Requested non-existent Tx antenna " << ant << " on channel " << chan; LOGC(DDEV, INFO) << "Available Tx antennas: "; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: If66305f2787c6292375e4bfbd60c1d3d764cffd4 Gerrit-Change-Number: 19040 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 12:45:02 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 12:45:02 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/19033/1/src/e1d.h File src/e1d.h: https://gerrit.osmocom.org/c/osmo-e1d/+/19033/1/src/e1d.h at 85 PS1, Line 85: _e1_intf_new(struct e1_daemon *e1d, void *drv_data); I would remove the _ (underscore) prefix, which I try to keep for internal / static helpers to the file and not for exposed functions. https://gerrit.osmocom.org/c/osmo-e1d/+/19033/1/src/e1d.h at 91 PS1, Line 91: _e1_rx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len); I think e1_ts_xxx would fit the naming scheme better if this becomes some sort of internal API. (i.e. e1_ts_rx_hdlcfs(...) ) Same for TX obviously. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 12:45: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 Mon Jun 29 13:20:55 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 13:20:55 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19034 ) Change subject: move from printf() debug output to libosmocore logging ...................................................................... Patch Set 1: Code-Review+1 Looks fine, but really most of these could be removed or turned into actual readable messages. They were commited just as part of stashing "working" code for testing. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 13:20: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 Jun 29 13:21:57 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 13:21:57 +0000 Subject: Change in osmo-e1d[master]: libosmo-e1d: Add value_string for msg_type and mode In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19035 ) Change subject: libosmo-e1d: Add value_string for msg_type and mode ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I72807f8eb2dcfaaba2819969c7aa62a4a1a79966 Gerrit-Change-Number: 19035 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 13: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 Jun 29 13:53:17 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 13:53:17 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... Patch Set 1: Code-Review-1 (4 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/e1d.h File src/e1d.h: https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/e1d.h at 85 PS1, Line 85: _e1d_find_intf(struct e1_daemon *e1d, uint8_t id); Again, remove _ prefix.. https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c File src/osmo-e1d.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c at 54 PS1, Line 54: static const char *config_file = "osmo-e1d.cfg"; g_ prefix for consistency. https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c at 86 PS1, Line 86: "License AGPLv3+: GNU AGPL version 3 or later \r\n" Huh this is not AGPL. https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c at 189 PS1, Line 189: exit(1); Using 'return' for one error and 'exit' for the other is weird. Pick one :) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 13:53: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 Mon Jun 29 13:56:49 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 13:56:49 +0000 Subject: Change in osmo-e1d[master]: _e1_line_new(): Initialize timeslot fd to -1 In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19042 ) Change subject: _e1_line_new(): Initialize timeslot fd to -1 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b88a3ff7d650a0caa242e6ac60d7778564e237c Gerrit-Change-Number: 19042 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 13:56:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 13:57:22 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 13:57:22 +0000 Subject: Change in osmo-e1d[master]: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19043 ) Change subject: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Id8279f04373e891009224bab34a4d1d886520fea Gerrit-Change-Number: 19043 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 13:57: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 Jun 29 14:01:06 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 14:01:06 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19044 ) Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19044/1/src/e1d.h File src/e1d.h: https://gerrit.osmocom.org/c/osmo-e1d/+/19044/1/src/e1d.h at 109 PS1, Line 109: _e1d_ts_stop(struct e1_ts *ts); _ prefix , possibly also group with the e1_ts_{rx,tx} ... -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 14:01: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 Mon Jun 29 14:03:16 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 14:03:16 +0000 Subject: Change in osmo-e1d[master]: add _e1d_line_destroy() / _e1d_intf_destroy() functions In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add _e1d_line_destroy() / _e1d_intf_destroy() functions ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19045/1/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19045/1/src/intf_line.c at 71 PS1, Line 71: _e1_intf_destroy(struct e1_intf *intf) _ prefix Also, I'm getting a bit confused about the e1_ vs e1d_ prefix and what belongs where logically. (I'm just looking at the individual patches ATM so I don't have a clear view of the final code organization). But obviously it's confusing since the commit title uses e1d_ and the function is actually e1_ ... -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 14:03:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 14:04:18 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 14:04:18 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19041 ) Change subject: introduce notion of 'driver' ...................................................................... Patch Set 1: Code-Review+1 I'm just wondering if a "type" is enough or if it should be struct with function pointers to the various operations / handlers for that driver. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 14:04:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 14:10:05 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 14:10:05 +0000 Subject: Change in osmo-e1d[master]: factor-out core E1 mux/demux functions to intf_line.c In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19046 ) Change subject: factor-out core E1 mux/demux functions to intf_line.c ...................................................................... Patch Set 1: Code-Review-1 Just the _ prefix as for the other patches. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I9ab11617e70697b84c85f7793f118fb8c915997b Gerrit-Change-Number: 19046 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 14:10:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 14:51:15 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 14:51:15 +0000 Subject: Change in osmo-trx[master]: cosmetic: trx_rate_ctr: Fix whitespace References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/19048 ) Change subject: cosmetic: trx_rate_ctr: Fix whitespace ...................................................................... cosmetic: trx_rate_ctr: Fix whitespace Change-Id: I4dc8220a6813d6ff30f1b241cc46b801adec4057 --- M CommonLibs/trx_rate_ctr.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/48/19048/1 diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index 1b44b13..d10b315 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -255,7 +255,7 @@ llist_for_each_entry(ctr, &threshold_list, list) { secs = ctr_threshold_2_seconds(ctr); - if( min_secs > secs) + if (min_secs > secs) min_secs = secs; } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4dc8220a6813d6ff30f1b241cc46b801adec4057 Gerrit-Change-Number: 19048 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 Jun 29 14:51:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 14:51:16 +0000 Subject: Change in osmo-trx[master]: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/19049 ) Change subject: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds ...................................................................... trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds For instance, use in VTY: "ctr-error-threshold tx_underruns 5 per-second" If the condition becomes true (eg 5 underruns happened in one sec), the statement inside OSMO_MAX would become -1, but it was being handled as an unsigned when doing the OSMO_MAX internal comparison. As a result, OSMO_MAX((unsigned)-1, 1) was returning -1 (unsigned) stored in threshold_timer_sched_secs which then became and int -1, which was handled by osmo_timer_schedule as a 0, hence having an immediate trigerring all the time. While at it, make threshold_timer_sched_secs unsigned since it doesn't make sense to have it as signed anyway. Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea --- M CommonLibs/trx_rate_ctr.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/49/19049/1 diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index d10b315..381b387 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -81,7 +81,7 @@ struct osmo_timer_list threshold_timer; static LLIST_HEAD(threshold_list); -static int threshold_timer_sched_secs; +static unsigned int threshold_timer_sched_secs; static bool threshold_initied; const struct value_string rate_ctr_intv[] = { @@ -260,7 +260,7 @@ } - threshold_timer_sched_secs = OSMO_MAX(min_secs / 2 - 1, 1); + threshold_timer_sched_secs = OSMO_MAX((int)(min_secs / 2 - 1), 1); LOGC(DMAIN, INFO) << "New ctr-error-threshold check interval: " << threshold_timer_sched_secs << " seconds"; osmo_timer_schedule(&threshold_timer, threshold_timer_sched_secs, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea Gerrit-Change-Number: 19049 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 Jun 29 15:04:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:04:59 +0000 Subject: Change in osmo-e1d[master]: add _e1d_line_destroy() / _e1d_intf_destroy() functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add _e1d_line_destroy() / _e1d_intf_destroy() functions ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19045/1/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19045/1/src/intf_line.c at 71 PS1, Line 71: _e1_intf_destroy(struct e1_intf *intf) > Also, I'm getting a bit confused about the e1_ vs e1d_ prefix and what belongs where logically. > (I'm just looking at the individual patches ATM so I don't have a clear view of the final code organization). I'm confused about the naming in the original code, where some functions have e1d_ prefix and some have e1_ prefix. I think it would make sense to call everything e1d_* prefix if it is inside the daaemon while other code just has e1_ prefix. For now I will use e1d_ prefix only if the first argument is a 'struct e1_daemon', and use e1_ts / e1_intf / e1_line prefix for the respective other first arguments. > But obviously it's confusing since the commit title uses e1d_ and the function is actually e1_ ... Agreed, will change that. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 15:04:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:09:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:09:13 +0000 Subject: Change in osmo-trx[master]: Rename device specific rate counter multi-thread helpers References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/19050 ) Change subject: Rename device specific rate counter multi-thread helpers ...................................................................... Rename device specific rate counter multi-thread helpers RadioInterface ones will be added in next commit, so let's differentiate the structs required for each one. Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975 --- M CommonLibs/trx_rate_ctr.cpp M CommonLibs/trx_rate_ctr.h 2 files changed, 49 insertions(+), 49 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/50/19050/1 diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index 381b387..e941cf0 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -67,17 +67,17 @@ #include "Threads.h" #include "Logger.h" -/* Used in ctrs_pending, when set it means that channel slot contains unused +/* Used in dev_ctrs_pending, when set it means that channel slot contains unused (non-pending) counter data */ #define PENDING_CHAN_NONE SIZE_MAX static void *trx_rate_ctr_ctx; static struct rate_ctr_group** rate_ctrs; -static struct device_counters* ctrs_pending; +static struct device_counters* dev_ctrs_pending; static size_t chan_len; -static struct osmo_fd rate_ctr_timerfd; -static Mutex rate_ctr_mutex; +static struct osmo_fd dev_rate_ctr_timerfd; +static Mutex dev_rate_ctr_mutex; struct osmo_timer_list threshold_timer; static LLIST_HEAD(threshold_list); @@ -93,22 +93,22 @@ }; const struct value_string trx_chan_ctr_names[] = { - { TRX_CTR_RX_OVERRUNS, "rx_overruns" }, - { TRX_CTR_TX_UNDERRUNS, "tx_underruns" }, - { TRX_CTR_RX_DROP_EV, "rx_drop_events" }, - { TRX_CTR_RX_DROP_SMPL, "rx_drop_samples" }, - { TRX_CTR_TX_DROP_EV, "tx_drop_events" }, - { TRX_CTR_TX_DROP_SMPL, "tx_drop_samples" }, + { TRX_CTR_DEV_RX_OVERRUNS, "rx_overruns" }, + { TRX_CTR_DEV_TX_UNDERRUNS, "tx_underruns" }, + { TRX_CTR_DEV_RX_DROP_EV, "rx_drop_events" }, + { TRX_CTR_DEV_RX_DROP_SMPL, "rx_drop_samples" }, + { TRX_CTR_DEV_TX_DROP_EV, "tx_drop_events" }, + { TRX_CTR_DEV_TX_DROP_SMPL, "tx_drop_samples" }, { 0, NULL } }; static const struct rate_ctr_desc trx_chan_ctr_desc[] = { - [TRX_CTR_RX_OVERRUNS] = { "device:rx_overruns", "Number of Rx overruns in FIFO queue" }, - [TRX_CTR_TX_UNDERRUNS] = { "device:tx_underruns", "Number of Tx underruns in FIFO queue" }, - [TRX_CTR_RX_DROP_EV] = { "device:rx_drop_events", "Number of times Rx samples were dropped by HW" }, - [TRX_CTR_RX_DROP_SMPL] = { "device:rx_drop_samples", "Number of Rx samples dropped by HW" }, - [TRX_CTR_TX_DROP_EV] = { "device:tx_drop_events", "Number of times Tx samples were dropped by HW" }, - [TRX_CTR_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" } + [TRX_CTR_DEV_RX_OVERRUNS] = { "device:rx_overruns", "Number of Rx overruns in FIFO queue" }, + [TRX_CTR_DEV_TX_UNDERRUNS] = { "device:tx_underruns", "Number of Tx underruns in FIFO queue" }, + [TRX_CTR_DEV_RX_DROP_EV] = { "device:rx_drop_events", "Number of times Rx samples were dropped by HW" }, + [TRX_CTR_DEV_RX_DROP_SMPL] = { "device:rx_drop_samples", "Number of Rx samples dropped by HW" }, + [TRX_CTR_DEV_TX_DROP_EV] = { "device:tx_drop_events", "Number of times Tx samples were dropped by HW" }, + [TRX_CTR_DEV_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" } }; static const struct rate_ctr_group_desc trx_chan_ctr_group_desc = { @@ -119,34 +119,34 @@ .ctr_desc = trx_chan_ctr_desc, }; -static int rate_ctr_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { +static int dev_rate_ctr_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { size_t chan; struct rate_ctr *ctr; - LOGC(DMAIN, NOTICE) << "Main thread is updating counters"; - rate_ctr_mutex.lock(); + LOGC(DMAIN, NOTICE) << "Main thread is updating Device counters"; + dev_rate_ctr_mutex.lock(); for (chan = 0; chan < chan_len; chan++) { - if (ctrs_pending[chan].chan == PENDING_CHAN_NONE) + if (dev_ctrs_pending[chan].chan == PENDING_CHAN_NONE) continue; LOGCHAN(chan, DMAIN, INFO) << "rate_ctr update"; - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_RX_OVERRUNS]; - rate_ctr_add(ctr, ctrs_pending[chan].rx_overruns - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TX_UNDERRUNS]; - rate_ctr_add(ctr, ctrs_pending[chan].tx_underruns - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_RX_DROP_EV]; - rate_ctr_add(ctr, ctrs_pending[chan].rx_dropped_events - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_RX_DROP_SMPL]; - rate_ctr_add(ctr, ctrs_pending[chan].rx_dropped_samples - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TX_DROP_EV]; - rate_ctr_add(ctr, ctrs_pending[chan].tx_dropped_events - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TX_DROP_SMPL]; - rate_ctr_add(ctr, ctrs_pending[chan].tx_dropped_samples - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_RX_OVERRUNS]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].rx_overruns - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_TX_UNDERRUNS]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].tx_underruns - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_RX_DROP_EV]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].rx_dropped_events - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_RX_DROP_SMPL]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].rx_dropped_samples - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_TX_DROP_EV]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].tx_dropped_events - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_TX_DROP_SMPL]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].tx_dropped_samples - ctr->current); /* Mark as done */ - ctrs_pending[chan].chan = PENDING_CHAN_NONE; + dev_ctrs_pending[chan].chan = PENDING_CHAN_NONE; } - if (osmo_timerfd_disable(&rate_ctr_timerfd) < 0) + if (osmo_timerfd_disable(&dev_rate_ctr_timerfd) < 0) LOGC(DMAIN, ERROR) << "Failed to disable timerfd"; - rate_ctr_mutex.unlock(); + dev_rate_ctr_mutex.unlock(); return 0; } @@ -165,12 +165,12 @@ case S_DEVICE_COUNTER_CHANGE: ctr = (struct device_counters *)signal_data; LOGCHAN(ctr->chan, DMAIN, NOTICE) << "Received counter change from radioDevice"; - rate_ctr_mutex.lock(); - ctrs_pending[ctr->chan] = *ctr; - if (osmo_timerfd_schedule(&rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { + dev_rate_ctr_mutex.lock(); + dev_ctrs_pending[ctr->chan] = *ctr; + if (osmo_timerfd_schedule(&dev_rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { LOGC(DMAIN, ERROR) << "Failed to schedule timerfd: " << errno << " = "<< strerror(errno); } - rate_ctr_mutex.unlock(); + dev_rate_ctr_mutex.unlock(); break; default: break; @@ -272,19 +272,19 @@ size_t i; trx_rate_ctr_ctx = ctx; chan_len = trx_ctx->cfg.num_chans; - ctrs_pending = (struct device_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct device_counters)); + dev_ctrs_pending = (struct device_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct device_counters)); rate_ctrs = (struct rate_ctr_group**) talloc_zero_size(ctx, chan_len * sizeof(struct rate_ctr_group*)); for (i = 0; i < chan_len; i++) { - ctrs_pending[i].chan = PENDING_CHAN_NONE; + dev_ctrs_pending[i].chan = PENDING_CHAN_NONE; rate_ctrs[i] = rate_ctr_group_alloc(ctx, &trx_chan_ctr_group_desc, i); if (!rate_ctrs[i]) { LOGCHAN(i, DMAIN, ERROR) << "Failed to allocate rate ctr"; exit(1); } } - rate_ctr_timerfd.fd = -1; - if (osmo_timerfd_setup(&rate_ctr_timerfd, rate_ctr_timerfd_cb, NULL) < 0) { + dev_rate_ctr_timerfd.fd = -1; + if (osmo_timerfd_setup(&dev_rate_ctr_timerfd, dev_rate_ctr_timerfd_cb, NULL) < 0) { LOGC(DMAIN, ERROR) << "Failed to setup timerfd"; exit(1); } diff --git a/CommonLibs/trx_rate_ctr.h b/CommonLibs/trx_rate_ctr.h index 155f413..e122f99 100644 --- a/CommonLibs/trx_rate_ctr.h +++ b/CommonLibs/trx_rate_ctr.h @@ -4,12 +4,12 @@ #include enum TrxCtr { - TRX_CTR_RX_OVERRUNS, - TRX_CTR_TX_UNDERRUNS, - TRX_CTR_RX_DROP_EV, - TRX_CTR_RX_DROP_SMPL, - TRX_CTR_TX_DROP_EV, - TRX_CTR_TX_DROP_SMPL, + TRX_CTR_DEV_RX_OVERRUNS, + TRX_CTR_DEV_TX_UNDERRUNS, + TRX_CTR_DEV_RX_DROP_EV, + TRX_CTR_DEV_RX_DROP_SMPL, + TRX_CTR_DEV_TX_DROP_EV, + TRX_CTR_DEV_TX_DROP_SMPL, }; struct ctr_threshold { -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975 Gerrit-Change-Number: 19050 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 Jun 29 15:09:13 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:09:13 +0000 Subject: Change in osmo-trx[master]: Introduce rate counter tx_stale_bursts References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/19051 ) Change subject: Introduce rate counter tx_stale_bursts ...................................................................... Introduce rate counter tx_stale_bursts This allows checking if there's timing issues on the downlink side between osmo-bts-trx and osmo-trx. This counter is useful to find information about osmo-bts-trx 'fn-advance' setting, since this counter basically counts if burstrs from it arrived too late to osmo-trx. Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 --- M CommonLibs/osmo_signal.h M CommonLibs/trx_rate_ctr.cpp M CommonLibs/trx_rate_ctr.h M CommonLibs/trx_vty.c M Transceiver52M/Transceiver.cpp M Transceiver52M/Transceiver.h 6 files changed, 73 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/51/19051/1 diff --git a/CommonLibs/osmo_signal.h b/CommonLibs/osmo_signal.h index ceb7d6f..de17b1d 100644 --- a/CommonLibs/osmo_signal.h +++ b/CommonLibs/osmo_signal.h @@ -43,6 +43,7 @@ (struct device_counters). Must be sent with PTHREAD_CANCEL_DISABLE to avoid deadlocks in case osmo-trx process is asked to exit. */ S_DEVICE_COUNTER_CHANGE, + S_TRX_COUNTER_CHANGE, /* same, but for Transceiver class */ }; /* signal cb for signal */ @@ -55,3 +56,9 @@ unsigned int tx_dropped_events; unsigned int tx_dropped_samples; }; + +/* signal cb for signal */ +struct trx_counters { + size_t chan; + unsigned int tx_stale_bursts; /* Amount of Tx bursts dropped to to arriving too late from TRXD */ +}; diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index e941cf0..76aff7d 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -75,9 +75,12 @@ static struct rate_ctr_group** rate_ctrs; static struct device_counters* dev_ctrs_pending; +static struct trx_counters* trx_ctrs_pending; static size_t chan_len; static struct osmo_fd dev_rate_ctr_timerfd; +static struct osmo_fd trx_rate_ctr_timerfd; static Mutex dev_rate_ctr_mutex; +static Mutex trx_rate_ctr_mutex; struct osmo_timer_list threshold_timer; static LLIST_HEAD(threshold_list); @@ -99,6 +102,7 @@ { TRX_CTR_DEV_RX_DROP_SMPL, "rx_drop_samples" }, { TRX_CTR_DEV_TX_DROP_EV, "tx_drop_events" }, { TRX_CTR_DEV_TX_DROP_SMPL, "tx_drop_samples" }, + { TRX_CTR_TRX_TX_STALE_BURSTS, "tx_stale_bursts" }, { 0, NULL } }; @@ -108,7 +112,8 @@ [TRX_CTR_DEV_RX_DROP_EV] = { "device:rx_drop_events", "Number of times Rx samples were dropped by HW" }, [TRX_CTR_DEV_RX_DROP_SMPL] = { "device:rx_drop_samples", "Number of Rx samples dropped by HW" }, [TRX_CTR_DEV_TX_DROP_EV] = { "device:tx_drop_events", "Number of times Tx samples were dropped by HW" }, - [TRX_CTR_DEV_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" } + [TRX_CTR_DEV_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" }, + [TRX_CTR_TRX_TX_STALE_BURSTS] = { "trx:tx_stale_bursts", "Number of Tx burts dropped by TRX due to arriving too late" }, }; static const struct rate_ctr_group_desc trx_chan_ctr_group_desc = { @@ -150,11 +155,32 @@ return 0; } +static int trx_rate_ctr_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { + size_t chan; + struct rate_ctr *ctr; + LOGC(DMAIN, NOTICE) << "Main thread is updating Transceiver counters"; + dev_rate_ctr_mutex.lock(); + for (chan = 0; chan < chan_len; chan++) { + if (trx_ctrs_pending[chan].chan == PENDING_CHAN_NONE) + continue; + LOGCHAN(chan, DMAIN, INFO) << "rate_ctr update"; + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TRX_TX_STALE_BURSTS]; + rate_ctr_add(ctr, trx_ctrs_pending[chan].tx_stale_bursts - ctr->current); + /* Mark as done */ + trx_ctrs_pending[chan].chan = PENDING_CHAN_NONE; + } + if (osmo_timerfd_disable(&trx_rate_ctr_timerfd) < 0) + LOGC(DMAIN, ERROR) << "Failed to disable timerfd"; + trx_rate_ctr_mutex.unlock(); + return 0; +} + /* Callback function to be called every time we receive a signal from DEVICE */ static int device_sig_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { - struct device_counters *ctr; + struct device_counters *dev_ctr; + struct trx_counters *trx_ctr; /* Delay sched around 20 ms, in case we receive several calls from several * channels batched */ struct timespec next_sched = {.tv_sec = 0, .tv_nsec = 20*1000*1000}; @@ -163,15 +189,25 @@ switch (signal) { case S_DEVICE_COUNTER_CHANGE: - ctr = (struct device_counters *)signal_data; - LOGCHAN(ctr->chan, DMAIN, NOTICE) << "Received counter change from radioDevice"; + dev_ctr = (struct device_counters *)signal_data; + LOGCHAN(dev_ctr->chan, DMAIN, NOTICE) << "Received counter change from radioDevice"; dev_rate_ctr_mutex.lock(); - dev_ctrs_pending[ctr->chan] = *ctr; + dev_ctrs_pending[dev_ctr->chan] = *dev_ctr; if (osmo_timerfd_schedule(&dev_rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { LOGC(DMAIN, ERROR) << "Failed to schedule timerfd: " << errno << " = "<< strerror(errno); } dev_rate_ctr_mutex.unlock(); break; + case S_TRX_COUNTER_CHANGE: + trx_ctr = (struct trx_counters *)signal_data; + LOGCHAN(trx_ctr->chan, DMAIN, NOTICE) << "Received counter change from Transceiver"; + trx_rate_ctr_mutex.lock(); + trx_ctrs_pending[trx_ctr->chan] = *trx_ctr; + if (osmo_timerfd_schedule(&trx_rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { + LOGC(DMAIN, ERROR) << "Failed to schedule timerfd: " << errno << " = "<< strerror(errno); + } + trx_rate_ctr_mutex.unlock(); + break; default: break; } @@ -273,10 +309,12 @@ trx_rate_ctr_ctx = ctx; chan_len = trx_ctx->cfg.num_chans; dev_ctrs_pending = (struct device_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct device_counters)); + trx_ctrs_pending = (struct trx_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct trx_counters)); rate_ctrs = (struct rate_ctr_group**) talloc_zero_size(ctx, chan_len * sizeof(struct rate_ctr_group*)); for (i = 0; i < chan_len; i++) { dev_ctrs_pending[i].chan = PENDING_CHAN_NONE; + trx_ctrs_pending[i].chan = PENDING_CHAN_NONE; rate_ctrs[i] = rate_ctr_group_alloc(ctx, &trx_chan_ctr_group_desc, i); if (!rate_ctrs[i]) { LOGCHAN(i, DMAIN, ERROR) << "Failed to allocate rate ctr"; @@ -288,6 +326,11 @@ LOGC(DMAIN, ERROR) << "Failed to setup timerfd"; exit(1); } + trx_rate_ctr_timerfd.fd = -1; + if (osmo_timerfd_setup(&trx_rate_ctr_timerfd, trx_rate_ctr_timerfd_cb, NULL) < 0) { + LOGC(DMAIN, ERROR) << "Failed to setup timerfd"; + exit(1); + } osmo_signal_register_handler(SS_DEVICE, device_sig_cb, NULL); /* Now set up threshold checks */ diff --git a/CommonLibs/trx_rate_ctr.h b/CommonLibs/trx_rate_ctr.h index e122f99..588ac2f 100644 --- a/CommonLibs/trx_rate_ctr.h +++ b/CommonLibs/trx_rate_ctr.h @@ -10,6 +10,7 @@ TRX_CTR_DEV_RX_DROP_SMPL, TRX_CTR_DEV_TX_DROP_EV, TRX_CTR_DEV_TX_DROP_SMPL, + TRX_CTR_TRX_TX_STALE_BURSTS, }; struct ctr_threshold { diff --git a/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c index 3f875f5..f085d09 100644 --- a/CommonLibs/trx_vty.c +++ b/CommonLibs/trx_vty.c @@ -390,7 +390,7 @@ return -1; } -#define THRESHOLD_ARGS "(rx_overruns|tx_underruns|rx_drop_events|rx_drop_samples|tx_drop_events|tx_drop_samples)" +#define THRESHOLD_ARGS "(rx_overruns|tx_underruns|rx_drop_events|rx_drop_samples|tx_drop_events|tx_drop_samples|tx_stale_bursts)" #define THRESHOLD_STR_VAL(s) "Set threshold value for rate_ctr device:" OSMO_STRINGIFY_VAL(s) "\n" #define THRESHOLD_STRS \ THRESHOLD_STR_VAL(rx_overruns) \ @@ -398,7 +398,8 @@ THRESHOLD_STR_VAL(rx_drop_events) \ THRESHOLD_STR_VAL(rx_drop_samples) \ THRESHOLD_STR_VAL(tx_drop_events) \ - THRESHOLD_STR_VAL(tx_drop_samples) + THRESHOLD_STR_VAL(tx_drop_samples) \ + THRESHOLD_STR_VAL(tx_stale_bursts) #define INTV_ARGS "(per-second|per-minute|per-hour|per-day)" #define INTV_STR_VAL(s) "Threshold value sampled " OSMO_STRINGIFY_VAL(s) "\n" #define INTV_STRS \ diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 7a81b7b..941b761 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -420,18 +420,29 @@ std::vector bursts(mChans); std::vector zeros(mChans); std::vector filler(mChans, true); + bool stale_bursts_changed; for (size_t i = 0; i < mChans; i ++) { state = &mStates[i]; + stale_bursts_changed = false; while ((burst = mTxPriorityQueues[i].getStaleBurst(nowTime))) { LOGCHAN(i, DTRXDDL, NOTICE) << "dumping STALE burst in TRX->SDR interface (" << burst->getTime() <<" vs " << nowTime << "), retrans=" << state->mRetrans; + state->ctrs.tx_stale_bursts++; + stale_bursts_changed = true; if (state->mRetrans) updateFillerTable(i, burst); delete burst; } + if (stale_bursts_changed) { + thread_enable_cancel(false); + state->ctrs.chan = i; + osmo_signal_dispatch(SS_DEVICE, S_TRX_COUNTER_CHANGE, &state->ctrs); + thread_enable_cancel(true); + } + TN = nowTime.TN(); modFN = nowTime.FN() % state->fillerModulus[TN]; diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h index 6e0d157..7ce5fa2 100644 --- a/Transceiver52M/Transceiver.h +++ b/Transceiver52M/Transceiver.h @@ -83,6 +83,9 @@ /* Shadowed downlink attenuation */ int mPower; + + /* counters */ + struct trx_counters ctrs; }; /** The Transceiver class, responsible for physical layer of basestation */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 Gerrit-Change-Number: 19051 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 Jun 29 15:09:57 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:09:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... Patch Set 4: Code-Review-1 This seems indeed too low for LimeNET-micro. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 4 Gerrit-Owner: daniel 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: Mon, 29 Jun 2020 15:09: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 Jun 29 15:12:30 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 15:12:30 +0000 Subject: Change in osmo-hlr[master]: manual: describe subscriber import by SQL References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/19052 ) Change subject: manual: describe subscriber import by SQL ...................................................................... manual: describe subscriber import by SQL It seems a bad idea to cement the internal SQL structure in the user manual, but since we currently lack a safe and portable import mechanism (like CSV import in osmo-hlr-db-tool), this is currently valuable info to users. Change-Id: I3246e6d5364215a71c33b5aca876deab7b6cfd70 --- M doc/manuals/chapters/running.adoc M doc/manuals/chapters/subscribers.adoc 2 files changed, 81 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/52/19052/1 diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc index ff75c7f..1f1bcdc 100644 --- a/doc/manuals/chapters/running.adoc +++ b/doc/manuals/chapters/running.adoc @@ -54,7 +54,7 @@ Alternatively, you may use the `osmo-hlr-db-tool`, which is installed along with `osmo-hlr`, to bootstrap an empty database, or to migrate subscriber data -from an old 'OsmoNITB' database. See `osmo-hlr-db-tool --help`. +from an old 'OsmoNITB' database. See <>. === Multiple instances diff --git a/doc/manuals/chapters/subscribers.adoc b/doc/manuals/chapters/subscribers.adoc index ab41b0f..3bd5879 100644 --- a/doc/manuals/chapters/subscribers.adoc +++ b/doc/manuals/chapters/subscribers.adoc @@ -127,3 +127,83 @@ ---- <1> Randomly generated 5 digit MSISDN <2> Disabled CS and PS NAM prevent the subscriber from accessing the network + + +=== Import Subscriber Data + +==== Scripted Import + +WARNING: It is not generally a good idea to depend on the HLR database's internal table structure, but in the lack of an +automated import procedure, this example is provided as an ad-hoc method to aid automated subscriber import. This is not +guaranteed to remain valid. + +NOTE: We may add CSV and other import methods to the `osmo-hlr-db-tool`, but so far that is not implemented. Contact the +community if you are interested in such a feature being implemented. + +NOTE: `sqlite3` is available from your distribution packages or `sqlite.org`. + +Currently, probably the easiest way to automatically import subscribers to OsmoHLR is to write out a text file with SQL +commands per subscriber, and feed that to `sqlite3`, as described below. + +A difficulty is to always choose subscriber IDs that are not yet in use. For an initial import, the subscriber ID may be +incremented per subscriber record. If adding more subscribers to an existing database, it is necessary to choose +subscriber IDs that are not yet in use. Get the highest ID in use with: + +---- +sqlite3 hlr.db 'select max(id) from subscriber' +---- + +A full SQL example of adding a single subscriber with id 23, IMSI 001010123456789, MSISDN 1234, Ki for COMP128v1, and K +and OPC for Milenage: + +---- +INSERT subscriber (id, imsi, msisdn) VALUES (23, '001010123456789', '1234'); + +INSERT INTO auc_2g (subscriber_id, algo_id_2g, ki) +VALUES(23, 1, '0123456789abcdef0123456789abcdef'); + +INSERT INTO auc_3g (subscriber_id, algo_id_3g, k, op, opc) +VALUES(23, 5, '0123456789abcdef0123456789abcdef',NULL,'0123456789abcdef0123456789abcdef'); +---- + +Table entries to `auc_2g` and/or `auc_3g` may be omitted if no such key material is required. + +UMTS Milenage auth (on both 2G and 3G RAN) is configured by the `auc_3g` table. `algo_id_3g` must currently always be 5 +(MILENAGE). + +The algorithm IDs for `algo_id_2g` and `algo_id_3g` are: + +.Algorithm IDs in OsmoHLR's database +[options="header",width="50%",cols="40%,60%"] +|=== +|`algo_id_2g` / `algo_id_3g` | Authentication Algorithm +| 1 | COMP128v1 +| 2 | COMP128v2 +| 3 | COMP128v3 +| 4 | XOR +| 5 | MILENAGE +|=== + +Create an empty HLR database with + +---- +osmo-hlr-db-tool -l hlr.db create +---- + +Repeat above SQL commands per subscriber, incrementing the subscriber ID for each block, then feed the SQL commands for +the subscribers to be imported to the `sqlite3` command line tool: + +---- +sqlite3 hlr.db < subscribers.sql +---- + +[[db_import_nitb]] +==== Import OsmoNITB database + +To upgrade from old OsmoNITB to OsmoHLR, use `osmo-hlr-db-tool`: + +---- +osmo-hlr-db-tool -l hlr.db import-nitb-db nitb.db +---- + +Be aware that the import is lossy, only the IMSI, MSISDN, nam_cs/ps and 2G auth data are set. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/19052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3246e6d5364215a71c33b5aca876deab7b6cfd70 Gerrit-Change-Number: 19052 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 Jun 29 15:16:07 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 15:16:07 +0000 Subject: Change in osmo-e1d[master]: add _e1d_line_destroy() / _e1d_intf_destroy() functions In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add _e1d_line_destroy() / _e1d_intf_destroy() functions ...................................................................... Patch Set 1: > Patch Set 1: > > (1 comment) I think the original intent behind the 'e1' vs 'e1d' prefix was to have the former for things that were not specifically linked to the daemon and the latter for things that would only make sense in the context of the daemon ... but really with the code reorganization and making stuff more common, I'm not sure it make sense anymore so I'm fine with e1_xxx -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 15:16: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 Jun 29 15:19:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:51 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: Hello tnt, pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 to look at the new patch set (#2). Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... remove code not specific to USB from usb.c to intf_line.c Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 --- M src/Makefile.am M src/e1d.h A src/intf_line.c M src/usb.c 4 files changed, 271 insertions(+), 197 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/33/19033/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:19:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:51 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging In-Reply-To: References: Message-ID: Hello tnt, pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 to look at the new patch set (#2). Change subject: move from printf() debug output to libosmocore logging ...................................................................... move from printf() debug output to libosmocore logging Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 --- M src/intf_line.c M src/log.c M src/log.h M src/usb.c 4 files changed, 19 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/34/19034/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:19:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:51 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: Hello tnt, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 to look at the new patch set (#2). Change subject: VTY interface support ...................................................................... VTY interface support Let's add a VTY interface on TCP port 4269. The purpose is - for now - not for configuration storage, but for state introspection. Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 --- M configure.ac M src/Makefile.am M src/ctl.c M src/e1d.h M src/osmo-e1d.c A src/vty.c 6 files changed, 231 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/36/19036/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:19:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:51 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' In-Reply-To: References: Message-ID: Hello tnt, pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 to look at the new patch set (#2). Change subject: introduce notion of 'driver' ...................................................................... introduce notion of 'driver' Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b --- M src/e1d.h M src/intf_line.c M src/usb.c 3 files changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/41/19041/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:19:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:51 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon In-Reply-To: References: Message-ID: Hello tnt, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 to look at the new patch set (#2). Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Export _e1d_ts_stop() function inside daemon Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 --- M src/ctl.c M src/e1d.h 2 files changed, 7 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/44/19044/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:19:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:51 +0000 Subject: Change in osmo-e1d[master]: add e1_line_destroy() / e1_intf_destroy() functions In-Reply-To: References: Message-ID: Hello tnt, pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 to look at the new patch set (#2). Change subject: add e1_line_destroy() / e1_intf_destroy() functions ...................................................................... add e1_line_destroy() / e1_intf_destroy() functions Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b --- M src/e1d.h M src/intf_line.c 2 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/45/19045/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:19:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:54 +0000 Subject: Change in osmo-e1d[master]: update .gitignore to ignore binaries from contrib References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19053 ) Change subject: update .gitignore to ignore binaries from contrib ...................................................................... update .gitignore to ignore binaries from contrib Change-Id: I15c33d271eded44214ab61da40427f71d1fdb128 --- M .gitignore 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/53/19053/1 diff --git a/.gitignore b/.gitignore index d52225c..7185862 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ *.o src/osmo-e1d +contrib/e1-prbs-test/e1-prbs-test +contrib/e1-prbs-test/ice40-e1-prbs-check -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I15c33d271eded44214ab61da40427f71d1fdb128 Gerrit-Change-Number: 19053 Gerrit-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 Jun 29 15:19:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:19:54 +0000 Subject: Change in osmo-e1d[master]: change list ordering for list of interfaces / lines References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19054 ) Change subject: change list ordering for list of interfaces / lines ...................................................................... change list ordering for list of interfaces / lines By using llist_add_tail(), we add new elements at the end of the list, rather than inserting at front. Among other things, this has the added benefit that when the VTY prints information on lines, they are printed in numerically ascending orrder (0,1,2, ...) and not the reverse. Change-Id: I07a6ba706f855a29b4e33b1a6b008e0d2f11b6f3 --- M src/intf_line.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/54/19054/1 diff --git a/src/intf_line.c b/src/intf_line.c index bc01559..c3466e0 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -54,11 +54,11 @@ INIT_LLIST_HEAD(&intf->lines); if (!llist_empty(&e1d->interfaces)) { - struct e1_intf *f = llist_first_entry(&e1d->interfaces, struct e1_intf, list); + struct e1_intf *f = llist_last_entry(&e1d->interfaces, struct e1_intf, list); intf->id = f->id + 1; } - llist_add(&intf->list, &e1d->interfaces); + llist_add_tail(&intf->list, &e1d->interfaces); return intf; } @@ -80,11 +80,11 @@ INIT_LLIST_HEAD(&line->list); if (!llist_empty(&intf->lines)) { - struct e1_line *l = llist_first_entry(&intf->lines, struct e1_line, list); + struct e1_line *l = llist_last_entry(&intf->lines, struct e1_line, list); line->id = l->id + 1; } - llist_add(&line->list, &intf->lines); + llist_add_tail(&line->list, &intf->lines); return line; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I07a6ba706f855a29b4e33b1a6b008e0d2f11b6f3 Gerrit-Change-Number: 19054 Gerrit-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 Jun 29 15:20:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:20:51 +0000 Subject: Change in osmo-e1d[master]: factor-out core E1 mux/demux functions to intf_line.c In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19046 ) Change subject: factor-out core E1 mux/demux functions to intf_line.c ...................................................................... Abandoned merged into I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I9ab11617e70697b84c85f7793f118fb8c915997b Gerrit-Change-Number: 19046 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:20:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:20:54 +0000 Subject: Change in osmo-hlr[master]: manual: describe subscriber import by SQL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/19052 ) Change subject: manual: describe subscriber import by SQL ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/19052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I3246e6d5364215a71c33b5aca876deab7b6cfd70 Gerrit-Change-Number: 19052 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:20: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 Jun 29 15:21:13 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:21:13 +0000 Subject: Change in osmo-e1d[master]: update .gitignore to ignore binaries from contrib In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19053 ) Change subject: update .gitignore to ignore binaries from contrib ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I15c33d271eded44214ab61da40427f71d1fdb128 Gerrit-Change-Number: 19053 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 29 Jun 2020 15:21:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:23:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:23:11 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19033/2/src/e1d.h File src/e1d.h: https://gerrit.osmocom.org/c/osmo-e1d/+/19033/2/src/e1d.h at 85 PS2, Line 85: e1_intf_new( actually if the naming conventions as I undertand it so far were strictly followed, it would have to be called e1d_new_intf. e1d because the first argument is a daemon, then the action and finally the newly added object. Likewise below it would have to be e1_intf_new_line(). What do you think? -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 15:23: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 Jun 29 15:23:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:23:43 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19034 ) Change subject: move from printf() debug output to libosmocore logging ...................................................................... Patch Set 2: > Patch Set 1: Code-Review+1 > > Looks fine, but really most of these could be removed or turned into actual readable messages. > They were commited just as part of stashing "working" code for testing. leaving that for a possible future patch -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 15:23: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 Jun 29 15:24:49 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:24:49 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c File src/osmo-e1d.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c at 54 PS1, Line 54: static const char *config_file = "osmo-e1d.cfg"; > g_ prefix for consistency. done https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c at 86 PS1, Line 86: "License AGPLv3+: GNU AGPL version 3 or later \r\n" > Huh this is not AGPL. sorry, no bad intention here, was just mentally copy+pasting. https://gerrit.osmocom.org/c/osmo-e1d/+/19036/1/src/osmo-e1d.c at 189 PS1, Line 189: exit(1); > Using 'return' for one error and 'exit' for the other is weird. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:24:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:26:24 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:26:24 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19041 ) Change subject: introduce notion of 'driver' ...................................................................... Patch Set 2: > I'm just wondering if a "type" is enough or if it should be struct with function pointers to the various operations / handlers for that driver. if you want to build a plugin architecture with an ABI, you need the function dispatch (e1_driver_ops). As long a we don't know how those drivers look like, we can either live with compiled-in drivers, they can be handled by switch() statements. I prefer to introduce infrastructure "as we go" and hence started simple. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 15:26: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 Mon Jun 29 15:27:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 15:27:07 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19044 ) Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19044/1/src/e1d.h File src/e1d.h: https://gerrit.osmocom.org/c/osmo-e1d/+/19044/1/src/e1d.h at 109 PS1, Line 109: _e1d_ts_stop(struct e1_ts *ts); > _ prefix , possibly also group with the e1_ts_{rx,tx} ... Done -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:27:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:27:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:27:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: verify conn and VLR cell id in most tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 ) Change subject: msc: verify conn and VLR cell id in most tests ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1/msc/BSC_ConnectionHandler.ttcn File msc/BSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1/msc/BSC_ConnectionHandler.ttcn at 62 PS1, Line 62: import from TCCConversion_Functions { function f_strstr }; oh I thought last discussion we had about this concluded this partial including was not supported in titan, but looks like it is? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1/msc/BSC_ConnectionHandler.ttcn at 370 PS1, Line 370: f_verify_vty_lac_ci(verify_vlr := false); In general I'm for testing stuff in general for all tests, but I'm not really sure we want to run stuff through the VTY every time someone establishes a dedicated channel, since this really impacts time and how tests execute 8as in timing of events). Since the function runs in BSC_ConnHdlr, what about setting a boolean there to call this verify function? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998/1/msc/MSC_Tests.ttcn at 411 PS1, Line 411: verify_cell_id := mp_enable_cell_id_test and verify_cell_id So you are actualyl doing what I requested, but you are not checking the var in all places where the verify function is called. Please do so and create an extra test enabling it (or enable it in an existing test for which it makes sense). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie410714a96353f74a52a104c56fa0a08683e0004 Gerrit-Change-Number: 18998 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:27: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 Mon Jun 29 15:27:53 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 15:27:53 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c at 145 PS8, Line 145: epname + prefix_len == str_trunk_nr_end @pespin, are you sure this condition is correct? Is it checking whether endptr still is at the start of the string? The endptr logic in strtoul: it parses digits found at the start of the string (if any), and points endptr to after those digits. If I write "23potatoes" or "23 4 5 6" then strtoul() returns 23 and points at the rest of the string. However, usually those are invalid input strings and they should be rejected instead. So IIUC we should do: if (*endptr != '\0') error(invalid input string) Or if some other delimiter character follows the trunk name, then that instead of '\0', right? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:27:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:30:59 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 29 Jun 2020 15:30:59 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: Hello pespin, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 to look at the new patch set (#5). Change subject: endp: add E1 endpoint interlocking ...................................................................... endp: add E1 endpoint interlocking E1 endpoint names also represent different rates, this may mean that some rate / subslot combinations are not possible because they overlap within nthe timeslot. When the equipment (BSC) is properly configured, this will be no problem, however invalid configuration may cause the selection of overlapping endpoints and this needs to be prevented, and logged. Also rate counters need to be in place. Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Related: OS#2547 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_ratectr.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_ratectr.c M src/libosmo-mgcp/mgcp_vty.c 6 files changed, 301 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/98/18898/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:31:34 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 29 Jun 2020 15:31:34 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... Patch Set 5: (19 comments) (ensure all comments are sent) https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 81 PS4, Line 81: { 0, 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; > (are these the same numbers as below const arrays? if yes please don't dup but use a common global c [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 373 PS4, Line 373: (e.g. ds/e1-0/s-30/su16-4), returns 0xff on error. */ > (comment convention: start all lines with '*', same below) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 374 PS4, Line 374: static uint8_t e1_ts_nr_from_epname(char *epname) > const char *epname, same below Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 410 PS4, Line 410: static const uint8_t rates[] = { 64, 32, 16, 16, 8 }; > (global? like commented below) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 468 PS4, Line 468: } > The above e1_xxx_from_epname() each tokenize and parse the same epname, one after the other. [?] I thought about doing that while I was doing the implementation, but I prefer to have a single function for each parameter. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 485 PS4, Line 485: { 0, 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; > maybe these two const arrays should be defined at the top of the .c file? [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 487 PS4, Line 487: OSMO_ASSERT(sizeof(rates) == sizeof(offsets)); > this should use an osmo_static_assert() (compile time) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 506 PS4, Line 506: * rate in the form: i:r where i is the subsolt number and r the > (subsolt x2) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 534 PS4, Line 534: { 0, 3, 4, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1 }, > (maybe decide on indent or no indent) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 563 PS4, Line 563: if (ts_nr == 0xff || ss_nr == 0xff) { > (here is a place that would look nicer to me if it was just a single conversion function... [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 571 PS4, Line 571: for (i = 0; i < 15; i++) { > (could use sizeof(interlock_tab[0]) instead of 15?) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 572 PS4, Line 572: /* Detect table end */ > (more like row end?) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 591 PS4, Line 591: * (This is an exceptional situation, that should not occurr > (occur) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 592 PS4, Line 592: * in a properly configured environment!) */ > IIUC then this function is called by e.g. a CRCX message coming from outside of osmo-mgw. [?] If this happens its not a problem at the mgw side. osmo-mgw will reject the request with an error code. Its the requestor that has a problematic configuration or malfunction then. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 611 PS4, Line 611: /* There are no obsticels that may render a virtual trunk > (obstacles) Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 614 PS4, Line 614: return true; > but a virtual endpoint could also already be in use? In "in use" means something different here. "Available" just means that the client can do something with the endpoint (CRCX, DLCX, MDCX etc.). Its more like an "in service" or "out of service" thing. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c File src/libosmo-mgcp/mgcp_ratectr.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c at 66 PS4, Line 66: [MGCP_CRCX_FAIL_AVAIL] = { "crcx:availability", "endpoint unavailable." }, > i'd prefer 'crcx:unavailable' (otherwise sounds like it counts successful CRCX) [?] Done https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c at 94 PS4, Line 94: [MGCP_MDCX_FAIL_AVAIL] = { "mdcx:availability", "endpoint unavailable." }, > MDCX only makes sense for conns that are already active. [?] It does not matter if MDCX, CRCX etc would succeed or not, this is checked much later. The question is, does the client try to something with an endpoint that is currently not in service. (e.g. The linecard for this endpoint is not installed in the rack.). If there is an active call on an endpoint and if it is not allowed to create another connection, than the endpoint is "available" and the operation will fail for a different reason. I think it fails earlier and the _NO_CONN counter does not tick. I added the availablity as a separate counter because especially with the E1 the problem could be difficult to diagnose. Its an unlikely situation that the bsc will mess up the endpoints, but if it ever happens we need to be able spot this immediately. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c at 116 PS4, Line 116: [MGCP_DLCX_FAIL_AVAIL] = { "dlcx:availability", "endpoint unavailable." }, > same as for MDCX Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Mon, 29 Jun 2020 15:31:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:32:26 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 15:32:26 +0000 Subject: Change in libosmo-sccp[master]: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 to look at the new patch set (#2). Change subject: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name ...................................................................... osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name Our manuals explain that the cs7 config automatically adds missing parts. However, previous code requires an ASP to exactly match the default name that the autoconfiguration would choose -- that is unintuitive. If a config included only an ASP, or both AS and ASP but omitting to add the ASP to the AS, auto configuration would pick it up iff it exactly had the name the application chose. For osmo-bsc, that was 'asp-clnt-msc-0', if 'msc 0' is the first MSC in the config file. For osmo-msc, it is 'asp-clnt-OsmoMSC-A' or 'asp-clnt-OsmoMSC-A-Iu' and so forth, so it is not always clear which name the user should pick to get the ASP used by auto config. Refactor so that any ASP with a matching protocol that is not associated with any AS yet is picked up by the auto configuration, i.e. associated with the AS etc., regardless of the name chosen in the config file. Related: OS#4635 Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 --- M src/sccp_user.c 1 file changed, 28 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/14/19014/2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 Gerrit-Change-Number: 19014 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 Mon Jun 29 15:32:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 15:32:55 +0000 Subject: Change in libosmo-sccp[master]: add osmo_ss7_asp_get_as() In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 ) Change subject: add osmo_ss7_asp_get_as() ...................................................................... Abandoned now inlined in sccp_user.c in https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Ia028625c5e8fab4f2683d05f78a9a1c0092a2cac Gerrit-Change-Number: 19013 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:34:51 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 15:34:51 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... Patch Set 2: (1 comment) > Patch Set 2: > > (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19033/2/src/e1d.h File src/e1d.h: https://gerrit.osmocom.org/c/osmo-e1d/+/19033/2/src/e1d.h at 85 PS2, Line 85: e1_intf_new( > actually if the naming conventions as I undertand it so far were strictly followed, it would have to [?] Well the intent when I first thought of it, and how it turned out due to the reality of things beings not entirely separate and inevitably connected is probably how it ended up that way. So I'm fine with dropped e1d_ all together really and just have the e1_daemon_new_intf / e1_intf_new_line / ... to have things more consistent with the "object model". Also some of the names being static / file-local I probably took liberties that I wouldn't do in a more global scope. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 15:34:51 +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 Jun 29 15:37:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:37:41 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/5/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/5/src/libosmo-mgcp/mgcp_trunk.c at 142 PS5, Line 142: if (errno == ERANGE || trunk_nr > 64 || trunk_nr == 0) > Done I'm simply following what man strtoul says: "unless the original (nonnegated) value would overflow; in the latter case, strtoul() returns ULONG_MAX and sets errno to ERANGE" But I guess it's fine simply checking for errno == ERANGE. However, you are still not checking against EINVAL for instance. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:37:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter 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 Jun 29 15:39:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:39:43 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c at 145 PS8, Line 145: epname + prefix_len == str_trunk_nr_end > @pespin, are you sure this condition is correct? Is it checking whether endptr still is at the start [?] well it really depends on the format of the string, so no idea here. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:39:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 15:43:16 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 15:43:16 +0000 Subject: Change in libosmo-sccp[master]: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 ) Change subject: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 Gerrit-Change-Number: 19014 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15: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 Jun 29 15:54:06 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 15:54:06 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... Patch Set 5: Code-Review+1 (4 comments) thanks I'm still not convinced about mdcx:unavailable and dlcx:unavailable, as in inline comment. Otherwise letting my bikesheds rest. https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 468 PS4, Line 468: } > I thought about doing that while I was doing the implementation, but I prefer to have a single funct [?] I still disagree but leaving it up to you https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_endp.c at 592 PS4, Line 592: * in a properly configured environment!) */ > If this happens its not a problem at the mgw side. [?] ok, so the comment means it is the peer program that is not properly configured? The comment sounds like it would be osmo-mgw that is not properly configured, that's why I'm asking about this. (Any program should always obviously guard against peers sending total nonsense...) it's just a comment so just letting it be https://gerrit.osmocom.org/c/osmo-mgw/+/18898/5/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/5/src/libosmo-mgcp/mgcp_endp.c at 600 PS5, Line 600: bool mgcp_endp_avail(struct mgcp_endpoint *endp) IMHO "available" is the wrong word, but leaving it up to you https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c File src/libosmo-mgcp/mgcp_ratectr.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18898/4/src/libosmo-mgcp/mgcp_ratectr.c at 94 PS4, Line 94: [MGCP_MDCX_FAIL_AVAIL] = { "mdcx:availability", "endpoint unavailable." }, > It does not matter if MDCX, CRCX etc would succeed or not, this is checked much later. [?] I was more thinking in this line: if we receive an MDCX for an endpoint for which we haven't previously seen a CRCX. If there is an MDCX before a CRCX, that is a protocol error (like as if we sent "GARBAGE") and osmo-mgw doesn't even need to check availability. When the protocol is followed correctly: if an E1 endpoint is blocked, then the first CRCX on it should hit crcx:unavailable above. After that CRCX was successful, there is no situation where an MDCX on the same would hit mdcx:unavailable. So I doubt that we would ever see this happening. Do you still think counting MDCX and DLCX on blocked endpoints makes sense? I still have my doubts that the MDCX and DLCX counters are useful. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 15:54:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: dexter Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 16:03:46 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 16:03:46 +0000 Subject: Change in osmo-bsc[master]: create ASP+AS only once per cs7 instance In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19003 ) Change subject: create ASP+AS only once per cs7 instance ...................................................................... Patch Set 1: (1 comment) This change is ready for review. https://gerrit.osmocom.org/c/osmo-bsc/+/19003/1/src/osmo-bsc/osmo_bsc_sigtran.c File src/osmo-bsc/osmo_bsc_sigtran.c: https://gerrit.osmocom.org/c/osmo-bsc/+/19003/1/src/osmo-bsc/osmo_bsc_sigtran.c at 510 PS1, Line 510: if (osmo > theoretically, the same point code would be permitted if the two MSC are in different cs7 instances. yes, that's why just above this it says "if (msc_inst != msc2_inst) continue;" -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I16f4f7f447f69525a2f57c4649ab295112904d6a Gerrit-Change-Number: 19003 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 29 Jun 2020 16:03:46 +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 Jun 29 16:05:10 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 16:05:10 +0000 Subject: Change in osmo-trx[master]: cosmetic: trx_rate_ctr: Fix whitespace In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19048 ) Change subject: cosmetic: trx_rate_ctr: Fix whitespace ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4dc8220a6813d6ff30f1b241cc46b801adec4057 Gerrit-Change-Number: 19048 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 29 Jun 2020 16:05:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 16:13:55 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 16:13:55 +0000 Subject: Change in osmo-trx[master]: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19049 ) Change subject: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/19049/1/CommonLibs/trx_rate_ctr.cpp File CommonLibs/trx_rate_ctr.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/19049/1/CommonLibs/trx_rate_ctr.cpp at 263 PS1, Line 263: threshold_timer_sched_secs = OSMO_MAX((int)(min_secs / 2 - 1), 1); I think you need to cast 'min_secs' before the operation, otherwise you're still getting an unsigned int cast back to an int. That can go well if both are of the same size, but code shouldn't depend on size_t being identical size as int. ((int)min_secs) / 2 - 1 And then you're assigning it back to an unsigned int?? or maybe I'm not understanding the issue... "for 5 underruns the statement in OSMO_MAX becomes -1" wondering how 5 / 2 - 1 can ever become -1... Can you explain for dummies in the commit log? Can't wrap my head around it -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea Gerrit-Change-Number: 19049 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 29 Jun 2020 16:13:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 16:15:39 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 16:15:39 +0000 Subject: Change in osmo-trx[master]: Rename device specific rate counter multi-thread helpers In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19050 ) Change subject: Rename device specific rate counter multi-thread helpers ...................................................................... Patch Set 1: Code-Review+1 I was already thinking in the other patch how ugly these globals are. Would it make sense to group the dev counters in a struct named 'dev' or something like that? -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975 Gerrit-Change-Number: 19050 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 29 Jun 2020 16:15: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 Jun 29 16:25:25 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 29 Jun 2020 16:25:25 +0000 Subject: Change in osmo-trx[master]: Introduce rate counter tx_stale_bursts In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19051 ) Change subject: Introduce rate counter tx_stale_bursts ...................................................................... Patch Set 1: Code-Review+1 (3 comments) cosmetics... https://gerrit.osmocom.org/c/osmo-trx/+/19051/1/CommonLibs/osmo_signal.h File CommonLibs/osmo_signal.h: https://gerrit.osmocom.org/c/osmo-trx/+/19051/1/CommonLibs/osmo_signal.h at 60 PS1, Line 60: /* signal cb for signal */ technically a cb is a callback is a function, this would be data (but i see the same mistake above) https://gerrit.osmocom.org/c/osmo-trx/+/19051/1/CommonLibs/trx_rate_ctr.cpp File CommonLibs/trx_rate_ctr.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/19051/1/CommonLibs/trx_rate_ctr.cpp at 83 PS1, Line 83: static Mutex trx_rate_ctr_mutex; oof, now you're also interleaving globals of different realms ... i think two separate struct instances would be much nicer, could even re-use the struct definition for both, right? Maybe also possible to reduce code dup below a bit https://gerrit.osmocom.org/c/osmo-trx/+/19051/1/CommonLibs/trx_rate_ctr.cpp at 161 PS1, Line 161: LOGC(DMAIN, NOTICE) << "Main thread is updating Transceiver counters"; (looks more like DEBUG to me, but copying above code, i see) -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 Gerrit-Change-Number: 19051 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 29 Jun 2020 16:25:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 16:33:09 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 16:33:09 +0000 Subject: Change in osmo-trx[master]: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19049 ) Change subject: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/19049/1/CommonLibs/trx_rate_ctr.cpp File CommonLibs/trx_rate_ctr.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/19049/1/CommonLibs/trx_rate_ctr.cpp at 263 PS1, Line 263: threshold_timer_sched_secs = OSMO_MAX((int)(min_secs / 2 - 1), 1); > I think you need to cast 'min_secs' before the operation, otherwise you're still getting an unsigned [?] The fix is right as it is, I tested it with a debugger. case: min_secs = 1 OSMO_MAX(1/2-1, 1) -> OSMO_MAX(-1, 1), but -1 is actually encoded as an unsigned because min_secs is an unsigned, so it's actually SIZE_MAX and then the comparison instruction used by the compiler is unsigned. And when SIZE_MAX is stored in threshold_timer_sched_secs, it becomes -1 because the variable is an integer. And calling schedule(-1,0), seems to work the same as schedule(0,0). -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea Gerrit-Change-Number: 19049 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 16:33:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 16:55:07 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 29 Jun 2020 16:55:07 +0000 Subject: Change in osmo-trx[master]: Introduce rate counter tx_stale_bursts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19051 ) Change subject: Introduce rate counter tx_stale_bursts ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/19051/1/CommonLibs/trx_rate_ctr.cpp File CommonLibs/trx_rate_ctr.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/19051/1/CommonLibs/trx_rate_ctr.cpp at 83 PS1, Line 83: static Mutex trx_rate_ctr_mutex; > oof, now you're also interleaving globals of different realms ... [?] I just tried and it's not possible because one would be holding a "trx_counters" and another one a "device_counters", so only the mutex and the timerfd would be joined, and I see not much benefit. It's fine as it is now, if it needs to be extended afterwards the it can be improved as needed. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 Gerrit-Change-Number: 19051 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 16:55:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:14:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:14:21 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: Hello tnt, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 to look at the new patch set (#3). Change subject: VTY interface support ...................................................................... VTY interface support Let's add a VTY interface on TCP port 4269. The purpose is - for now - not for configuration storage, but for state introspection. Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 --- M configure.ac M src/Makefile.am M src/ctl.c M src/e1d.h M src/osmo-e1d.c A src/vty.c 6 files changed, 238 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/36/19036/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:14:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:14:22 +0000 Subject: Change in osmo-e1d[master]: proto.h: Share default socket path between client and daemon References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19055 ) Change subject: proto.h: Share default socket path between client and daemon ...................................................................... proto.h: Share default socket path between client and daemon This way clients and daemon don't have to be manually configured to use the same default socket path. Change-Id: Ibc5bc1bc59056ebaf0f6072de0ff08c2f3bb5457 --- M include/osmocom/e1d/proto.h M src/osmo-e1d.c 2 files changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/55/19055/1 diff --git a/include/osmocom/e1d/proto.h b/include/osmocom/e1d/proto.h index f719cff..ef95d0c 100644 --- a/include/osmocom/e1d/proto.h +++ b/include/osmocom/e1d/proto.h @@ -73,6 +73,7 @@ #define E1DP_MAGIC 0x00e1 #define E1DP_MAX_LEN 4096 #define E1DP_INVALID 0xff +#define E1DP_DEFAULT_SOCKET "/tmp/osmo-e1d.ctl" struct osmo_e1dp_msg_hdr { diff --git a/src/osmo-e1d.c b/src/osmo-e1d.c index 808bd68..647b039 100644 --- a/src/osmo-e1d.c +++ b/src/osmo-e1d.c @@ -39,6 +39,7 @@ #include #include +#include #include "e1d.h" #include "log.h" @@ -196,7 +197,7 @@ } /* server init */ - srv = osmo_e1dp_server_create(g_e1d_ctx, "/tmp/osmo-e1d.ctl", e1d_ctl_handlers, e1d); + srv = osmo_e1dp_server_create(g_e1d_ctx, E1DP_DEFAULT_SOCKET, e1d_ctl_handlers, e1d); OSMO_ASSERT(srv); /* main loop */ -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibc5bc1bc59056ebaf0f6072de0ff08c2f3bb5457 Gerrit-Change-Number: 19055 Gerrit-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 Jun 29 20:14:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:14:22 +0000 Subject: Change in osmo-e1d[master]: close timeslot socket if read or write returns negative References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19056 ) Change subject: close timeslot socket if read or write returns negative ...................................................................... close timeslot socket if read or write returns negative If the user application has closed the timeslot socket, we will get error returns from read/write calls, which we must use to clean up the daemon-side state for this timeslot. Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f --- M src/intf_line.c 1 file changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/56/19056/1 diff --git a/src/intf_line.c b/src/intf_line.c index 9118232..fdfaa82 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -142,9 +142,14 @@ ); if (rv > 0) { + int bytes_to_write = rv; LOGP(DXFR, LOGL_DEBUG, "RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); - write(ts->fd, ts->rx_buf, rv); + rv = write(ts->fd, ts->rx_buf, bytes_to_write); + if (rv < 0 && errno != EAGAIN) { + e1_ts_stop(ts); + return -1; + } } else if (rv < 0 && ts->id == 4) { LOGP(DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", rv,oi,cl, osmo_hexdump(buf, len)); @@ -172,6 +177,9 @@ ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); ts->tx_len = rv; ts->tx_ofs = 0; + } else if (rv < 0 && errno != EAGAIN) { + e1_ts_stop(ts); + return -1; } } @@ -229,6 +237,8 @@ switch (ts->mode) { case E1_TS_MODE_RAW: l = read(ts->fd, buf_ts, fts); + if (l < 0 && errno != EAGAIN) + e1_ts_stop(ts); break; case E1_TS_MODE_HDLCFCS: l = _e1_tx_hdlcfs(ts, buf_ts, fts); @@ -269,6 +279,7 @@ { struct e1_ts *ts = &line->ts[tsn]; uint8_t buf_ts[ftr]; + int rv; if (ts->mode == E1_TS_MODE_OFF) continue; @@ -278,7 +289,9 @@ switch (ts->mode) { case E1_TS_MODE_RAW: - write(ts->fd, buf_ts, ftr); + rv = write(ts->fd, buf_ts, ftr); + if (rv < 0 && errno != EAGAIN) + e1_ts_stop(ts); break; case E1_TS_MODE_HDLCFCS: _e1_rx_hdlcfs(ts, buf_ts, ftr); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f Gerrit-Change-Number: 19056 Gerrit-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 Jun 29 20:14:22 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:14:22 +0000 Subject: Change in osmo-e1d[master]: Always log context (interface/line/timeslot) when available References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19057 ) Change subject: Always log context (interface/line/timeslot) when available ...................................................................... Always log context (interface/line/timeslot) when available We always want to know as much context as possible. Which exact timeslot on which line of which interface ha logged something? Change-Id: I3d8909b396928ed3c023b8ac47fa9ec72c99e681 --- M src/intf_line.c M src/log.h M src/usb.c 3 files changed, 21 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/57/19057/1 diff --git a/src/intf_line.c b/src/intf_line.c index fdfaa82..335fb83 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -143,15 +143,15 @@ if (rv > 0) { int bytes_to_write = rv; - LOGP(DXFR, LOGL_DEBUG, "RX Message: %d %d [ %s]\n", - ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); + LOGPTS(ts, DXFR, LOGL_DEBUG, "RX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->rx_buf, rv)); rv = write(ts->fd, ts->rx_buf, bytes_to_write); if (rv < 0 && errno != EAGAIN) { e1_ts_stop(ts); return -1; } } else if (rv < 0 && ts->id == 4) { - LOGP(DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", rv,oi,cl, osmo_hexdump(buf, len)); } @@ -173,8 +173,8 @@ if (!ts->tx_len) { rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); if (rv > 0) { - LOGP(DXFR, LOGL_DEBUG, "TX Message: %d %d [ %s]\n", - ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->tx_buf, rv)); ts->tx_len = rv; ts->tx_ofs = 0; } else if (rv < 0 && errno != EAGAIN) { @@ -190,10 +190,10 @@ ); if (rv < 0) - LOGP(DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); if (ts->tx_ofs < ts->tx_len) { - LOGP(DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); } @@ -268,7 +268,7 @@ int ftr; if (size <= 0) { - LOGP(DXFR, LOGL_ERROR, "IN ERROR: %d\n", size); + LOGPLI(line, DXFR, LOGL_ERROR, "IN ERROR: %d\n", size); return -1; } diff --git a/src/log.h b/src/log.h index 2a9b210..d46a5a7 100644 --- a/src/log.h +++ b/src/log.h @@ -31,4 +31,13 @@ DXFR, }; +#define LOGPIF(itf, ss, lvl, fmt, args...) \ + LOGP(ss, lvl, "(I%u) " fmt, (itf)->id, ## args) + +#define LOGPLI(li, ss, lvl, fmt, args...) \ + LOGP(ss, lvl, "(I%u:L%u) " fmt, (li)->intf->id, (li)->id, ## args) + +#define LOGPTS(ts, ss, lvl, fmt, args...) \ + LOGP(ss, lvl, "(I%u:L%u:T%u) " fmt, (ts)->line->intf->id, (ts)->line->id, (ts)->id, ## args) + extern const struct log_info log_info; diff --git a/src/usb.c b/src/usb.c index 5d38d32..578bc34 100644 --- a/src/usb.c +++ b/src/usb.c @@ -118,7 +118,7 @@ int fts; if (size <= 0) { - LOGP(DXFR, LOGL_ERROR, "OUT ERROR: %d\n", size); + LOGPLI(line, DXFR, LOGL_ERROR, "OUT ERROR: %d\n", size); return -1; } @@ -144,10 +144,10 @@ struct e1_usb_line_data *ld = (struct e1_usb_line_data *) flow->line->drv_data; if (size < 0) { - LOGP(DE1D, LOGL_ERROR, "Feedback transfer error\n"); + LOGPLI(flow->line, DE1D, LOGL_ERROR, "Feedback transfer error\n"); return 0; } else if (size != 3) { - LOGP(DE1D, LOGL_ERROR, "Feedback packet invalid size (%d)\n", size); + LOGPLI(flow->line, DE1D, LOGL_ERROR, "Feedback packet invalid size (%d)\n", size); return 0; } @@ -193,7 +193,7 @@ rv = libusb_submit_transfer(xfr); if (rv) - LOGP(DE1D, LOGL_ERROR, "Failed to resubmit buffer for transfer\n"); + LOGPLI(flow->line, DE1D, LOGL_ERROR, "Failed to resubmit buffer for transfer\n"); } static struct e1_usb_flow * -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I3d8909b396928ed3c023b8ac47fa9ec72c99e681 Gerrit-Change-Number: 19057 Gerrit-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 Jun 29 20:14:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:14:23 +0000 Subject: Change in osmo-e1d[master]: extend logging (log more noteworthy events) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19058 ) Change subject: extend logging (log more noteworthy events) ...................................................................... extend logging (log more noteworthy events) Let's log some more events that might happen. Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 --- M src/ctl.c M src/intf_line.c 2 files changed, 26 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/58/19058/1 diff --git a/src/ctl.c b/src/ctl.c index 1fa5d84..b29e990 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -31,11 +31,13 @@ #include #include +#include #include #include #include "e1d.h" +#include "log.h" struct e1_intf * @@ -94,6 +96,8 @@ void e1_ts_stop(struct e1_ts *ts) { + LOGPTS(ts, DE1D, LOGL_INFO, "Stopping\n"); + ts->mode = E1_TS_MODE_OFF; if (ts->fd >= 0) { @@ -107,6 +111,8 @@ { int ret, sd[2]; + LOGPTS(ts, DE1D, LOGL_INFO, "Starting in mode %u\n", mode); + ret = socketpair(AF_UNIX, SOCK_SEQPACKET, 0, sd); if (ret < 0) return ret; diff --git a/src/intf_line.c b/src/intf_line.c index 335fb83..7127617 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -64,6 +64,8 @@ llist_add_tail(&intf->list, &e1d->interfaces); + LOGPIF(intf, DE1D, LOGL_NOTICE, "Created\n"); + return intf; } @@ -72,6 +74,8 @@ { struct e1_line *line, *line2; + LOGPIF(intf, DE1D, LOGL_NOTICE, "Destroying\n"); + /* destroy all lines */ llist_for_each_entry_safe(line, line2, &intf->lines, list) e1_line_destroy(line); @@ -107,12 +111,16 @@ llist_add_tail(&line->list, &intf->lines); + LOGPLI(line, DE1D, LOGL_NOTICE, "Created\n"); + return line; } void e1_line_destroy(struct e1_line *line) { + LOGPLI(line, DE1D, LOGL_NOTICE, "Destroying\n"); + /* close all [peer] file descriptors */ for (int i=0; i<32; i++) e1_ts_stop(&line->ts[i]); @@ -147,6 +155,8 @@ rv, osmo_hexdump(ts->rx_buf, rv)); rv = write(ts->fd, ts->rx_buf, bytes_to_write); if (rv < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during write: %s\n", + strerror(errno)); e1_ts_stop(ts); return -1; } @@ -178,6 +188,8 @@ ts->tx_len = rv; ts->tx_ofs = 0; } else if (rv < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during read: %s\n", + strerror(errno)); e1_ts_stop(ts); return -1; } @@ -237,8 +249,11 @@ switch (ts->mode) { case E1_TS_MODE_RAW: l = read(ts->fd, buf_ts, fts); - if (l < 0 && errno != EAGAIN) + if (l < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during read: %s\n", + strerror(errno)); e1_ts_stop(ts); + } break; case E1_TS_MODE_HDLCFCS: l = _e1_tx_hdlcfs(ts, buf_ts, fts); @@ -290,8 +305,11 @@ switch (ts->mode) { case E1_TS_MODE_RAW: rv = write(ts->fd, buf_ts, ftr); - if (rv < 0 && errno != EAGAIN) + if (rv < 0 && errno != EAGAIN) { + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during write: %s\n", + strerror(errno)); e1_ts_stop(ts); + } break; case E1_TS_MODE_HDLCFCS: _e1_rx_hdlcfs(ts, buf_ts, ftr); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 Gerrit-Change-Number: 19058 Gerrit-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 Jun 29 20:14:23 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:14:23 +0000 Subject: Change in osmo-e1d[master]: actually set the back-pointer from timeslot to line References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19059 ) Change subject: actually set the back-pointer from timeslot to line ...................................................................... actually set the back-pointer from timeslot to line 'struct e1_ts' always had a back-pointer to the line it is part of, but apparently this was never initialized so far. Change-Id: I5e6c8189bf5aa4af26d6cd6c6d288a149ed7fa66 --- M src/intf_line.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/59/19059/1 diff --git a/src/intf_line.c b/src/intf_line.c index 7127617..24522fa 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -98,6 +98,7 @@ line->drv_data = drv_data; for (int i=0; i<32; i++) { + line->ts[i].line = line; line->ts[i].id = i; line->ts[i].fd = -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5e6c8189bf5aa4af26d6cd6c6d288a149ed7fa66 Gerrit-Change-Number: 19059 Gerrit-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 Jun 29 20:30:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:30:06 +0000 Subject: Change in osmo-e1d[master]: WIP: Add virtual pair of E1 interfaces In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19047 ) Change subject: WIP: Add virtual pair of E1 interfaces ...................................................................... Removed Code-Review+2 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 Gerrit-Change-Number: 19047 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: tnt Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:30:11 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:30:11 +0000 Subject: Change in osmo-e1d[master]: WIP: Add virtual pair of E1 interfaces In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19047 ) Change subject: WIP: Add virtual pair of E1 interfaces ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 Gerrit-Change-Number: 19047 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:30: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 Jun 29 20:32:34 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:32:34 +0000 Subject: Change in osmo-trx[master]: Rename device specific rate counter multi-thread helpers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19050 ) Change subject: Rename device specific rate counter multi-thread helpers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975 Gerrit-Change-Number: 19050 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 29 Jun 2020 20: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 Mon Jun 29 20:33:08 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:33:08 +0000 Subject: Change in osmo-trx[master]: Introduce rate counter tx_stale_bursts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19051 ) Change subject: Introduce rate counter tx_stale_bursts ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 Gerrit-Change-Number: 19051 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 20:33: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 Jun 29 20:33:36 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:33:36 +0000 Subject: Change in osmo-bsc[master]: create ASP+AS only once per cs7 instance In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19003 ) Change subject: create ASP+AS only once per cs7 instance ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I16f4f7f447f69525a2f57c4649ab295112904d6a Gerrit-Change-Number: 19003 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 29 Jun 2020 20:33: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 Jun 29 20:34:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:34:57 +0000 Subject: Change in libosmo-sccp[master]: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 ) Change subject: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 Gerrit-Change-Number: 19014 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 20:34:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:34:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:34:59 +0000 Subject: Change in libosmo-sccp[master]: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 ) Change subject: osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name ...................................................................... osmo_sccp_simple_client_on_ss7_id(): do not care about ASP name Our manuals explain that the cs7 config automatically adds missing parts. However, previous code requires an ASP to exactly match the default name that the autoconfiguration would choose -- that is unintuitive. If a config included only an ASP, or both AS and ASP but omitting to add the ASP to the AS, auto configuration would pick it up iff it exactly had the name the application chose. For osmo-bsc, that was 'asp-clnt-msc-0', if 'msc 0' is the first MSC in the config file. For osmo-msc, it is 'asp-clnt-OsmoMSC-A' or 'asp-clnt-OsmoMSC-A-Iu' and so forth, so it is not always clear which name the user should pick to get the ASP used by auto config. Refactor so that any ASP with a matching protocol that is not associated with any AS yet is picked up by the auto configuration, i.e. associated with the AS etc., regardless of the name chosen in the config file. Related: OS#4635 Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 --- M src/sccp_user.c 1 file changed, 28 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/src/sccp_user.c b/src/sccp_user.c index d8a7357..e1329ac 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -574,13 +575,33 @@ * we intend to use. */ asp = osmo_ss7_asp_find_by_proto(as, prot); if (!asp) { - /* Check if the user has already created an ASP elsewhere under - * the default asp name. */ - asp_name = talloc_asprintf(ctx, "asp-clnt-%s", name); - asp = osmo_ss7_asp_find_by_name(ss7, asp_name); + /* Check if the user has created an ASP for this proto that is not added on any AS yet. */ + struct osmo_ss7_asp *asp_i; + llist_for_each_entry(asp_i, &ss7->asp_list, list) { + struct osmo_ss7_as *as_i; + bool is_on_as = false; + if (asp_i->cfg.proto != prot) + continue; + llist_for_each_entry(as_i, &ss7->as_list, list) { + if (!osmo_ss7_as_has_asp(as_i, asp_i)) + continue; + is_on_as = true; + break; + } + if (is_on_as) { + /* This ASP is already on another AS. If it was on this AS, we'd have found it above. */ + continue; + } + /* This ASP matches the protocol and is not yet associated to any AS. Use it. */ + asp = asp_i; + LOGP(DLSCCP, LOGL_NOTICE, "%s: ASP %s for %s is not associated with any AS, using it\n", + name, asp->cfg.name, osmo_ss7_asp_protocol_name(prot)); + break; + } if (!asp) { - LOGP(DLSCCP, LOGL_NOTICE, "%s: Creating ASP instance\n", - name); + asp_name = talloc_asprintf(ctx, "asp-clnt-%s", name); + LOGP(DLSCCP, LOGL_NOTICE, "%s: No unassociated ASP for %s, creating new ASP %s\n", + name, osmo_ss7_asp_protocol_name(prot), asp_name); asp = osmo_ss7_asp_find_or_create(ss7, asp_name, default_remote_port, @@ -593,8 +614,7 @@ osmo_ss7_asp_peer_set_hosts(&asp->cfg.local, asp, &default_local_ip, 1); osmo_ss7_asp_peer_set_hosts(&asp->cfg.remote, asp, &default_remote_ip, 1); asp->simple_client_allocated = true; - } else - talloc_free(asp_name); + } osmo_ss7_as_add_asp(as, asp->cfg.name); } -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/19014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I2954e0167729fd0b1a7d0144a5b5775fc1c44c35 Gerrit-Change-Number: 19014 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:37:27 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:37:27 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:37: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 Jun 29 20:38:23 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:38:23 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19034 ) Change subject: move from printf() debug output to libosmocore logging ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20: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 Mon Jun 29 20:41:46 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:41:46 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 20: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 Jun 29 20:43:05 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:43:05 +0000 Subject: Change in osmo-e1d[master]: change list ordering for list of interfaces / lines In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19054 ) Change subject: change list ordering for list of interfaces / lines ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I07a6ba706f855a29b4e33b1a6b008e0d2f11b6f3 Gerrit-Change-Number: 19054 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:43:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:43:57 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:43:57 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19041 ) Change subject: introduce notion of 'driver' ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:43: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 Jun 29 20:47:52 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:47:52 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19044 ) Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 20: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 Mon Jun 29 20:48:38 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:48:38 +0000 Subject: Change in osmo-e1d[master]: add e1_line_destroy() / e1_intf_destroy() functions In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add e1_line_destroy() / e1_intf_destroy() functions ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20: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 Mon Jun 29 20:49:41 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:49:41 +0000 Subject: Change in osmo-e1d[master]: proto.h: Share default socket path between client and daemon In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19055 ) Change subject: proto.h: Share default socket path between client and daemon ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibc5bc1bc59056ebaf0f6072de0ff08c2f3bb5457 Gerrit-Change-Number: 19055 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:49: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 Jun 29 20:55:21 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:55:21 +0000 Subject: Change in osmo-e1d[master]: close timeslot socket if read or write returns negative In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19056 ) Change subject: close timeslot socket if read or write returns negative ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19056/1/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19056/1/src/intf_line.c at 150 PS1, Line 150: e1_ts_stop(ts); I think the e1_ts_stop should be in the caller. Just return -1 in the helper and leave the choice to the caller how to deal with the failure. ATM there is a check for if (l <= 0) continue, I guess I'd add it as a case here that if < 0 then e1_ts_stop (which handles both the HDLC and RAW case at once too). Same remark for the other instances. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f Gerrit-Change-Number: 19056 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:55:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:56:29 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:56:29 +0000 Subject: Change in osmo-e1d[master]: Always log context (interface/line/timeslot) when available In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19057 ) Change subject: Always log context (interface/line/timeslot) when available ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I3d8909b396928ed3c023b8ac47fa9ec72c99e681 Gerrit-Change-Number: 19057 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:56:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:57:22 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:57:22 +0000 Subject: Change in osmo-e1d[master]: extend logging (log more noteworthy events) In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19058 ) Change subject: extend logging (log more noteworthy events) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 Gerrit-Change-Number: 19058 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:57: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 Jun 29 20:57:56 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 20:57:56 +0000 Subject: Change in osmo-e1d[master]: actually set the back-pointer from timeslot to line In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19059 ) Change subject: actually set the back-pointer from timeslot to line ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5e6c8189bf5aa4af26d6cd6c6d288a149ed7fa66 Gerrit-Change-Number: 19059 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 20:57:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 20:59:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 20:59:28 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19060 ) Change subject: Add osmo-e1d-pipe utility ...................................................................... Add osmo-e1d-pipe utility This adds the 'osmo-e1d-pipe' utlility program, which can be used as a command-line client to open a given E1 timeslot and connect it to stdin/stdout. This in turn allows to rediect file input/output via the shell. Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 --- M .gitignore M src/Makefile.am A src/e1d-ts-pipe.c 3 files changed, 203 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/60/19060/1 diff --git a/.gitignore b/.gitignore index 7185862..aef7cd0 100644 --- a/.gitignore +++ b/.gitignore @@ -23,5 +23,6 @@ *.o src/osmo-e1d +src/osmo-e1d-pipe contrib/e1-prbs-test/e1-prbs-test contrib/e1-prbs-test/ice40-e1-prbs-check diff --git a/src/Makefile.am b/src/Makefile.am index e811f0a..9c098e7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -27,6 +27,7 @@ bin_PROGRAMS = \ osmo-e1d \ + osmo-e1d-pipe \ $(NULL) osmo_e1d_SOURCES = \ @@ -41,3 +42,9 @@ osmo_e1d_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) \ $(LIBOSMOUSB_LIBS) $(LIBUSB_LIBS) libosmo-e1d.la + +osmo_e1d_pipe_SOURCES = \ + e1d-ts-pipe.c \ + $(NULL) + +osmo_e1d_pipe_LDADD = $(LIBOSMOCORE_LIBS) libosmo-e1d.la diff --git a/src/e1d-ts-pipe.c b/src/e1d-ts-pipe.c new file mode 100644 index 0000000..b4eb6f5 --- /dev/null +++ b/src/e1d-ts-pipe.c @@ -0,0 +1,195 @@ +/* Virtual E1 interface pair: Two virtual interfaces with N lines each, + * where data written to A can be read from B and vice-versa. + * + * (C) 2020 by Harald Welte + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + + +static void *g_ctx; +static struct osmo_e1dp_client *g_client; +static struct osmo_fd ts_ofd; +static int outfd = 1; +static int infd = 0; + + +static int ts_open(uint8_t intf_nr, uint8_t line_nr, uint8_t ts_nr, + enum osmo_e1dp_ts_mode mode) +{ + int rc = osmo_e1dp_client_ts_open(g_client, intf_nr, line_nr, ts_nr, mode); + if (rc < 0) + fprintf(stderr, "Cannot open e1d timeslot %u:%u:%u\n", intf_nr, line_nr, ts_nr); + return rc; +} + +static int ts_fd_cb(struct osmo_fd *ofd, unsigned int what) +{ + uint8_t buf[32*10]; + int rc, count; + + if (what & OSMO_FD_READ) { + rc = read(ofd->fd, buf, sizeof(buf)); + if (rc < 0 && errno != EAGAIN) + exit(3); + else if (rc > 0) { + count = rc; + rc = write(outfd, buf, count); + if (rc < 0 && errno != EAGAIN) + exit(3); + } + } + + if (what & OSMO_FD_WRITE) { + rc = read(infd, buf, sizeof(buf)); + if (rc < 0 && errno != EAGAIN) + exit(4); + else if (rc > 0) { + count = rc; + rc = write(ofd->fd, buf, count); + if (rc < 0 && errno != EAGAIN) + exit(4); + } + + } + + return 0; +} + +static int set_nonblock(int fd) +{ + int rc, flags; + + flags = fcntl(fd, F_GETFL); + OSMO_ASSERT(flags >= 0); + + rc = fcntl(fd, F_SETFL, flags | O_NONBLOCK); + OSMO_ASSERT(rc >= 0); + + return 0; +} + +static void print_help(void) +{ + printf( + " -h --help This help message\n" + " -p --path PATH Path of the osmo-e1d control socket\n" + " -i --interface <0-255> E1 Interface Number\n" + " -l --line <0-255> E1 Line Number\n" + " -t --timeslot <0-31> E1 Timeslot Number\n" + " -m --mode (RAW|HDLC-FCS) E1 Timeslot Mode\n" + ); +} + +int main(int argc, char **argv) +{ + int intf_nr = -1, line_nr = -1, ts_nr = -1; + enum osmo_e1dp_ts_mode mode = E1DP_TSMODE_RAW; + char *path = E1DP_DEFAULT_SOCKET; + int tsfd; + int option_index, rc; + + g_ctx = talloc_named_const(NULL, 0, "g_ctx"); + OSMO_ASSERT(g_ctx); + + osmo_init_logging2(g_ctx, NULL); + + /* FIXME: handle options */ + while (1) { + int c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "path", 1, 0, 'p' }, + { "interface", 1, 0, 'i' }, + { "line", 1, 0, 'l' }, + { "timeslot", 1, 0, 't' }, + { "mode", 1, 0, 'm' }, + { 0,0,0,0 } + }; + + c = getopt_long(argc, argv, "hp:i:l:t:m:", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 'p': + path = optarg; + break; + case 'i': + intf_nr = atoi(optarg); + break; + case 'l': + line_nr = atoi(optarg); + break; + case 't': + ts_nr = atoi(optarg); + break; + case 'm': + rc = get_string_value(osmo_e1dp_ts_mode_names, optarg); + if (rc < 0) { + fprintf(stderr, "Unknown mode '%s'\n", optarg); + exit(2); + } + mode = rc; + break; + } + } + + if (intf_nr == -1 || line_nr == -1 || ts_nr == -1) { + fprintf(stderr, "You must at least specify interface, line and timeslot numbers\n"); + exit(2); + } + + g_client = osmo_e1dp_client_create(g_ctx, path); + if (!g_client) { + fprintf(stderr, "Cannot establish connection to osmo-e1d at %s\n", path); + exit(1); + } + + tsfd = ts_open(intf_nr, line_nr, ts_nr, mode); + if (tsfd < 0) + exit(2); + + osmo_fd_setup(&ts_ofd, tsfd, OSMO_FD_READ|OSMO_FD_WRITE, ts_fd_cb, NULL, 0); + osmo_fd_register(&ts_ofd); + + set_nonblock(infd); + set_nonblock(outfd); + + while (1) { + osmo_select_main(0); + } +} + -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-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 Jun 29 21:00:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 21:00:28 +0000 Subject: Change in osmo-e1d[master]: Add virtual pair of E1 interfaces In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 to look at the new patch set (#4). Change subject: Add virtual pair of E1 interfaces ...................................................................... Add virtual pair of E1 interfaces The idea is to generate a pair of virtual E1 interfaces (each with identical number of lines), where each line A:n is connected to line B:n of the pair and vice-versa. This allows to test E1 using applications back to back against each other, without any physical E1 circuits in between. Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 --- M src/Makefile.am M src/ctl.c M src/e1d.h M src/intf_line.c A src/vpair.c M src/vty.c 6 files changed, 232 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/47/19047/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 Gerrit-Change-Number: 19047 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 21:04:28 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 21:04:28 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19036/3/src/vty.c File src/vty.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19036/3/src/vty.c at 6 PS3, Line 6: * it under the terms of the GNU Affero General Public License as published by Oh yeah ... wrong license. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 29 Jun 2020 21:04:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 21:11:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 21:11:15 +0000 Subject: Change in osmo-e1d[master]: close timeslot socket if read or write returns negative In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 to look at the new patch set (#2). Change subject: close timeslot socket if read or write returns negative ...................................................................... close timeslot socket if read or write returns negative If the user application has closed the timeslot socket, we will get error returns from read/write calls, which we must use to clean up the daemon-side state for this timeslot. Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f --- M src/intf_line.c 1 file changed, 23 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/56/19056/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f Gerrit-Change-Number: 19056 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 21:11:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 21:11:15 +0000 Subject: Change in osmo-e1d[master]: extend logging (log more noteworthy events) In-Reply-To: References: Message-ID: Hello tnt, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19058 to look at the new patch set (#2). Change subject: extend logging (log more noteworthy events) ...................................................................... extend logging (log more noteworthy events) Let's log some more events that might happen. Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 --- M src/ctl.c M src/intf_line.c 2 files changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/58/19058/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 Gerrit-Change-Number: 19058 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 21:11:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 29 Jun 2020 21:11:35 +0000 Subject: Change in osmo-e1d[master]: close timeslot socket if read or write returns negative In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19056 ) Change subject: close timeslot socket if read or write returns negative ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19056/1/src/intf_line.c File src/intf_line.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19056/1/src/intf_line.c at 150 PS1, Line 150: e1_ts_stop(ts); > I think the e1_ts_stop should be in the caller. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f Gerrit-Change-Number: 19056 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 21:11:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 21:15:49 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 21:15:49 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19060 ) Change subject: Add osmo-e1d-pipe utility ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19060/3/src/e1d-ts-pipe.c File src/e1d-ts-pipe.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19060/3/src/e1d-ts-pipe.c at 1 PS3, Line 1: /* Virtual E1 interface pair: Two virtual interfaces with N lines each, That comment doesn't match this file -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 21:15:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 21:16:38 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 21:16:38 +0000 Subject: Change in osmo-e1d[master]: Add virtual pair of E1 interfaces In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19047 ) Change subject: Add virtual pair of E1 interfaces ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 Gerrit-Change-Number: 19047 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 21:16:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 29 21:17:43 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 21:17:43 +0000 Subject: Change in osmo-e1d[master]: close timeslot socket if read or write returns negative In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19056 ) Change subject: close timeslot socket if read or write returns negative ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f Gerrit-Change-Number: 19056 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 21:17: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 Jun 29 21:18:19 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 29 Jun 2020 21:18:19 +0000 Subject: Change in osmo-e1d[master]: extend logging (log more noteworthy events) In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19058 ) Change subject: extend logging (log more noteworthy events) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 Gerrit-Change-Number: 19058 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 29 Jun 2020 21:18:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 03:12:15 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 30 Jun 2020 03:12:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fixup for Osmocom_CTRL_Functions: rate counters in bulk References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19061 ) Change subject: fixup for Osmocom_CTRL_Functions: rate counters in bulk ...................................................................... fixup for Osmocom_CTRL_Functions: rate counters in bulk At the time of writing Ief0d9b096feeee7d37b5f2429dd3e80de0161806 I wasn't aware of the 'inout' keyword, which allows to pass the counter list by reference. Rather modify the counter lists in-place. Instead of requiring list := f_counter_name_vals_add(list, ...) rather implement by directly modifying list: f_counter_name_vals_add(list, ...) Change-Id: I85ac56b042fe4bb1db392c1f451c8e900582cc2a --- M bsc/BSC_Tests.ttcn M library/Osmocom_CTRL_Functions.ttcn 2 files changed, 7 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/61/19061/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index facb001..f25c75d 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -197,7 +197,7 @@ } private function f_ctrs_msc_add(integer msc_nr, charstring countername, integer val := 1) runs on test_CT { - g_ctr_msc := f_counter_name_vals_list_add(g_ctr_msc, msc_nr, countername, val); + f_counter_name_vals_list_add(g_ctr_msc, msc_nr, countername, val); } /* f_ctrs_msc_init(); diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index ee7025c..60c66c0 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -222,12 +222,12 @@ } /* In a list of one instance's counters, increment a specifically named counter. */ - function f_counter_name_vals_add(CounterNameVals vals, charstring countername, integer val := 1) - return CounterNameVals{ + function f_counter_name_vals_add(inout CounterNameVals vals, charstring countername, integer val := 1) + { for (var integer i := 0; i < lengthof(vals); i := i + 1) { if (vals[i].name == countername) { vals[i].val := vals[i].val + val; - return vals; + return; } } /* name not found, append */ @@ -235,15 +235,13 @@ name := countername, val := val } - return vals; } /* In a list of several instances' counters, increment a specific instance's specifically named counter. */ - function f_counter_name_vals_list_add(CounterNameValsList vals, integer instance_nr, + function f_counter_name_vals_list_add(inout CounterNameValsList vals, integer instance_nr, charstring countername, integer val := 1) - return CounterNameValsList { - vals[instance_nr] := f_counter_name_vals_add(vals[instance_nr], countername, val); - return vals; + { + f_counter_name_vals_add(vals[instance_nr], countername, val); } /* For a specific instance, call f_counter_name_vals_get() and compare with expected counter values. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19061 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I85ac56b042fe4bb1db392c1f451c8e900582cc2a Gerrit-Change-Number: 19061 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 Jun 30 03:12:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 30 Jun 2020 03:12:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: retrieve System Information seen on RSL startup References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062 ) Change subject: bsc: retrieve System Information seen on RSL startup ...................................................................... bsc: retrieve System Information seen on RSL startup Change-Id: I6a8ef404087efee491390dc1d2452ac323f145f0 --- M bsc/BSC_Tests.ttcn 1 file changed, 157 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/62/19062/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f25c75d..f025eef 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -84,6 +84,35 @@ { "mscpool:subscr:paged", 0 } }; + +/* One System Information payload as received on RSL. + * Note that some System Information may be sent on RSL, but lacking actual SI data, to indicate that the BTS should not + * broadcast that SI type. + */ +type record SystemInformation { + RSL_IE_SysinfoType si_type, + RSL_MessageType from_rsl_msg_type, + octetstring data optional +} +type set of SystemInformation SystemInformationConfig; +type record of SystemInformationConfig SystemInformationConfig_list; + +const SystemInformationConfig SystemInformationConfig_default := { + { si_type := RSL_SYSTEM_INFO_1, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + { si_type := RSL_SYSTEM_INFO_2, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + { si_type := RSL_SYSTEM_INFO_2bis, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + { si_type := RSL_SYSTEM_INFO_2quater, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + { si_type := RSL_SYSTEM_INFO_2ter, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + { si_type := RSL_SYSTEM_INFO_3, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + { si_type := RSL_SYSTEM_INFO_4, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + { si_type := RSL_SYSTEM_INFO_13, from_rsl_msg_type := RSL_MT_BCCH_INFO, data := omit }, + + { si_type := RSL_SYSTEM_INFO_5, from_rsl_msg_type := RSL_MT_SACCH_FILL, data := omit }, + { si_type := RSL_SYSTEM_INFO_5bis, from_rsl_msg_type := RSL_MT_SACCH_FILL, data := omit }, + { si_type := RSL_SYSTEM_INFO_5ter, from_rsl_msg_type := RSL_MT_SACCH_FILL, data := omit }, + { si_type := RSL_SYSTEM_INFO_6, from_rsl_msg_type := RSL_MT_SACCH_FILL, data := omit } +}; + type component test_CT extends CTRL_Adapter_CT { /* Array of per-BTS state */ var BTS_State bts[NUM_BTS]; @@ -117,6 +146,58 @@ timer T_guard := 30.0; var CounterNameValsList g_ctr_msc; + + /* System Information bytes as received during RSL startup, for each RSL[idx]. */ + var SystemInformationConfig_list g_system_information := {}; +} + +private function f_sysinfo_seen(integer rsl_idx, in SystemInformation si) runs on test_CT +{ + log("RSL ", rsl_idx, ": got System Information ", si); + var integer idx := 0; + if (lengthof(g_system_information) > rsl_idx) { + idx := lengthof(g_system_information[rsl_idx]); + for (var integer i := 0; i < lengthof(g_system_information[rsl_idx]); i := i + 1) { + if (g_system_information[rsl_idx][i].si_type == si.si_type) { + idx := i; + break; + } + } + } + g_system_information[rsl_idx][idx] := si; +} + +private function f_sysinfo_verify_presence(integer rsl_idx, SystemInformationConfig expected_types := SystemInformationConfig_default) +runs on test_CT +{ + if (lengthof(expected_types) > 0 + and (lengthof(g_system_information) < rsl_idx or lengthof(g_system_information[rsl_idx]) == 0)) { + setverdict(fail, "RSL ", rsl_idx, ": Expected to see ", lengthof(expected_types), " System Informations, but did not receive any"); + return; + } + + for (var integer i := 0; i < lengthof(expected_types); i := i + 1) { + var boolean found := false; + for (var integer j := 0; j < lengthof(g_system_information[rsl_idx]); j := j + 1) { + if (g_system_information[rsl_idx][j].si_type != expected_types[i].si_type) { + continue; + } + if (g_system_information[rsl_idx][j].from_rsl_msg_type != expected_types[i].from_rsl_msg_type) { + setverdict(fail, "RSL ", rsl_idx, ": Expected to see ", expected_types[i], " in ", + expected_types[i].from_rsl_msg_type, " but got it from ", + g_system_information[rsl_idx][j].from_rsl_msg_type); + return; + } + found := true; + break; + } + if (not found) { + setverdict(fail, "RSL ", rsl_idx, ": Expected to see ", expected_types[i], " during startup, but it was not sent"); + return; + } + } + log("RSL ", rsl_idx, ": verified presence of ", lengthof(expected_types), " System Informations"); + setverdict(pass); } modulepar { @@ -425,6 +506,76 @@ f_vty_transceive(BSCVTY, "logp lglobal notice " & log_msg); } +private function f_rsl_get_sysinfo(RSL_Message rsl) +return SystemInformation +{ + var SystemInformation ret; + var RSL_IE_Body sysinfo_type_ie; + + if (f_rsl_find_ie(rsl, RSL_IE_SYSINFO_TYPE, sysinfo_type_ie) == false) { + setverdict(fail, "Cannot find RSL_IE_SYSINFO_TYPE"); + mtc.stop; + } + ret.si_type := sysinfo_type_ie.sysinfo_type; + ret.from_rsl_msg_type := rsl.msg_type; + + if (rsl.msg_type == RSL_MT_BCCH_INFO) { + var RSL_IE_Body bcch_ie; + if (f_rsl_find_ie(rsl, RSL_IE_FULL_BCCH_INFO, bcch_ie) == false) { + ret.data := omit; + } else { + ret.data := bcch_ie.other.payload; + } + } else if (rsl.msg_type == RSL_MT_SACCH_FILL) { + var RSL_IE_Body l3_ie; + if (f_rsl_find_ie(rsl, RSL_IE_L3_INFO, l3_ie) == false) { + ret.data := omit; + } else { + ret.data := l3_ie.l3_info.payload; + } + } + return ret; +} + +altstep as_catch_RSL_sysinfo(integer rsl_idx) runs on test_CT { + var ASP_RSL_Unitdata rx_rsl_ud; + /* For handler_mode := false, receiving the RSL bootstrap messages directly on IPA_RSL */ + [] IPA_RSL[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_NO_BCCH_INFO)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } + [] IPA_RSL[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_BCCH_INFO)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } + [] IPA_RSL[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_NO_SACCH_FILL)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } + [] IPA_RSL[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_SACCH_FILL)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } + + /* For handler_mode := true, receiving the RSL bootstrap messages via RSL_Emulation */ + [] RSL_CCHAN[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_NO_BCCH_INFO)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } + [] RSL_CCHAN[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_BCCH_INFO)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } + [] RSL_CCHAN[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_NO_SACCH_FILL)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } + [] RSL_CCHAN[rsl_idx].receive(tr_ASP_RSL_UD(tr_RSL_SACCH_FILL)) -> value rx_rsl_ud { + f_sysinfo_seen(rsl_idx, f_rsl_get_sysinfo(rx_rsl_ud.rsl)); + repeat; + } +} + /* global initialization function * \param nr_bts Number of BTSs we should start/bring up * \param handler_mode Start an RSL_Emulation_CT component (true) or not (false). @@ -472,10 +623,16 @@ for (i := 0; i < nr_bts; i := i+1) { /* wait until osmo-bts-omldummy has respawned */ f_wait_oml(i, "degraded", 5.0); + + var default sysinfo := activate(as_catch_RSL_sysinfo(i)); + /* start RSL connection */ f_ipa_rsl_start(bts[i].rsl, mp_bsc_ip, mp_bsc_rsl_port, i, handler_mode); /* wait until BSC tells us "connected" */ f_wait_oml(i, "connected", 5.0); + + deactivate(sysinfo); + f_sysinfo_verify_presence(i); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6a8ef404087efee491390dc1d2452ac323f145f0 Gerrit-Change-Number: 19062 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 Jun 30 03:29:44 2020 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 30 Jun 2020 03:29:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify System Information presence on RSL startup 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/+/19062 to look at the new patch set (#2). Change subject: bsc: verify System Information presence on RSL startup ...................................................................... bsc: verify System Information presence on RSL startup Store all System Information data received during RSL bootstrap in a list, then verify that the 12 expected SI are indeed sent. The SI data presence and content are recorded, but not yet verified, leaving that to a future patch. Change-Id: I6a8ef404087efee491390dc1d2452ac323f145f0 --- M bsc/BSC_Tests.ttcn 1 file changed, 163 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/62/19062/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6a8ef404087efee491390dc1d2452ac323f145f0 Gerrit-Change-Number: 19062 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 Tue Jun 30 04:46:00 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 30 Jun 2020 04:46:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify System Information presence on RSL startup In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062 ) Change subject: bsc: verify System Information presence on RSL startup ...................................................................... Patch Set 2: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062/2/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062/2/bsc/BSC_Tests.ttcn at 91 PS2, Line 91: type This type and its sub-types should be private unless you want to use it/them from other modules. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062/2/bsc/BSC_Tests.ttcn at 640 PS2, Line 640: deactivate Maybe we need a timer here? Looks like a potential race condition to me... -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6a8ef404087efee491390dc1d2452ac323f145f0 Gerrit-Change-Number: 19062 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 30 Jun 2020 04: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 Tue Jun 30 04:50:42 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 30 Jun 2020 04:50:42 +0000 Subject: Change in osmo-trx[master]: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19049 ) Change subject: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea Gerrit-Change-Number: 19049 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 04: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 Tue Jun 30 06:00:26 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:00:26 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06:00:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:00:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:00:51 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19034 ) Change subject: move from printf() debug output to libosmocore logging ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06: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 Tue Jun 30 06:00:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:00:58 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06:00:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:01:14 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:14 +0000 Subject: Change in osmo-e1d[master]: change list ordering for list of interfaces / lines In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19054 ) Change subject: change list ordering for list of interfaces / lines ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I07a6ba706f855a29b4e33b1a6b008e0d2f11b6f3 Gerrit-Change-Number: 19054 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06:01: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 Jun 30 06:01:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:19 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19041 ) Change subject: introduce notion of 'driver' ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06:01: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 Jun 30 06:01:30 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:30 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19044 ) Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06:01: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 Jun 30 06:01:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:33 +0000 Subject: Change in osmo-e1d[master]: add e1_line_destroy() / e1_intf_destroy() functions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add e1_line_destroy() / e1_intf_destroy() functions ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06: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 Tue Jun 30 06:01:39 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:39 +0000 Subject: Change in osmo-e1d[master]: proto.h: Share default socket path between client and daemon In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19055 ) Change subject: proto.h: Share default socket path between client and daemon ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibc5bc1bc59056ebaf0f6072de0ff08c2f3bb5457 Gerrit-Change-Number: 19055 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06: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 Tue Jun 30 06:01:48 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:48 +0000 Subject: Change in osmo-e1d[master]: close timeslot socket if read or write returns negative In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19056 ) Change subject: close timeslot socket if read or write returns negative ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f Gerrit-Change-Number: 19056 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06:01: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 Jun 30 06:01:51 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:51 +0000 Subject: Change in osmo-e1d[master]: Always log context (interface/line/timeslot) when available In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19057 ) Change subject: Always log context (interface/line/timeslot) when available ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I3d8909b396928ed3c023b8ac47fa9ec72c99e681 Gerrit-Change-Number: 19057 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06:01:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:01:54 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:54 +0000 Subject: Change in osmo-e1d[master]: extend logging (log more noteworthy events) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19058 ) Change subject: extend logging (log more noteworthy events) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 Gerrit-Change-Number: 19058 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06:01: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 Jun 30 06:01:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:57 +0000 Subject: Change in osmo-e1d[master]: actually set the back-pointer from timeslot to line In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19059 ) Change subject: actually set the back-pointer from timeslot to line ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5e6c8189bf5aa4af26d6cd6c6d288a149ed7fa66 Gerrit-Change-Number: 19059 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 06:01: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 Jun 30 06:01:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:01:59 +0000 Subject: Change in osmo-e1d[master]: update .gitignore to ignore binaries from contrib In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19053 ) Change subject: update .gitignore to ignore binaries from contrib ...................................................................... update .gitignore to ignore binaries from contrib Change-Id: I15c33d271eded44214ab61da40427f71d1fdb128 --- M .gitignore 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/.gitignore b/.gitignore index d52225c..7185862 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ *.o src/osmo-e1d +contrib/e1-prbs-test/e1-prbs-test +contrib/e1-prbs-test/ice40-e1-prbs-check -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I15c33d271eded44214ab61da40427f71d1fdb128 Gerrit-Change-Number: 19053 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 Jun 30 06:02:00 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:00 +0000 Subject: Change in osmo-e1d[master]: remove code not specific to USB from usb.c to intf_line.c In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19033 ) Change subject: remove code not specific to USB from usb.c to intf_line.c ...................................................................... remove code not specific to USB from usb.c to intf_line.c Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 --- M src/Makefile.am M src/e1d.h A src/intf_line.c M src/usb.c 4 files changed, 271 insertions(+), 197 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/Makefile.am b/src/Makefile.am index 2890554..bc05998 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,6 +30,7 @@ osmo_e1d_SOURCES = \ ctl.c \ + intf_line.c \ log.c \ osmo-e1d.c \ usb.c \ diff --git a/src/e1d.h b/src/e1d.h index 330168b..5b7ba83 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -80,3 +80,15 @@ void *ctx; struct llist_head interfaces; }; + +struct e1_intf * +e1_intf_new(struct e1_daemon *e1d, void *drv_data); + +struct e1_line * +e1_line_new(struct e1_intf *intf, void *drv_data); + +int +e1_line_mux_out(struct e1_line *line, uint8_t *buf, int fts); + +int +e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size); diff --git a/src/intf_line.c b/src/intf_line.c new file mode 100644 index 0000000..22d5f55 --- /dev/null +++ b/src/intf_line.c @@ -0,0 +1,252 @@ +/* + * intf_line.c + * + * (C) 2019 by Sylvain Munaut + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include + +#include +#include + +#include "e1d.h" +#include "log.h" + + +// --------------------------------------------------------------------------- +// e1d structures +// --------------------------------------------------------------------------- + +struct e1_intf * +e1_intf_new(struct e1_daemon *e1d, void *drv_data) +{ + struct e1_intf *intf; + + intf = talloc_zero(e1d->ctx, struct e1_intf); + OSMO_ASSERT(intf); + + intf->e1d = e1d; + intf->drv_data = drv_data; + + INIT_LLIST_HEAD(&intf->list); + INIT_LLIST_HEAD(&intf->lines); + + if (!llist_empty(&e1d->interfaces)) { + struct e1_intf *f = llist_first_entry(&e1d->interfaces, struct e1_intf, list); + intf->id = f->id + 1; + } + + llist_add(&intf->list, &e1d->interfaces); + + return intf; +} + +struct e1_line * +e1_line_new(struct e1_intf *intf, void *drv_data) +{ + struct e1_line *line; + + line = talloc_zero(intf->e1d->ctx, struct e1_line); + OSMO_ASSERT(line); + + line->intf = intf; + line->drv_data = drv_data; + + for (int i=0; i<32; i++) + line->ts[i].id = i; + + INIT_LLIST_HEAD(&line->list); + + if (!llist_empty(&intf->lines)) { + struct e1_line *l = llist_first_entry(&intf->lines, struct e1_line, list); + line->id = l->id + 1; + } + + llist_add(&line->list, &intf->lines); + + return line; +} + +// --------------------------------------------------------------------------- +// data transfer +// --------------------------------------------------------------------------- + +static int +_e1_rx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) +{ + int rv, cl, oi; + + oi = 0; + + while (oi < len) { + rv = osmo_isdnhdlc_decode(&ts->hdlc_rx, + &buf[oi], len-oi, &cl, + ts->rx_buf, sizeof(ts->rx_buf) + ); + + if (rv > 0) { + printf("RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); + write(ts->fd, ts->rx_buf, rv); + } else if (rv < 0 && ts->id == 4) { + printf("ERR RX: %d %d %d [ %s]\n",rv,oi,cl, osmo_hexdump(buf, len)); + } + + oi += cl; + } + + return 0; +} + +static int +_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) +{ + int rv, oo, cl; + + oo = 0; + + while (oo < len) { + /* Pending message ? */ + if (!ts->tx_len) { + rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); + if (rv > 0) { + printf("TX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); + ts->tx_len = rv; + ts->tx_ofs = 0; + } + } + + /* */ + rv = osmo_isdnhdlc_encode(&ts->hdlc_tx, + &ts->tx_buf[ts->tx_ofs], ts->tx_len - ts->tx_ofs, &cl, + &buf[oo], len - oo + ); + + if (rv < 0) + printf("ERR TX: %d\n", rv); + + if (ts->tx_ofs < ts->tx_len) + printf("TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); + + if (rv > 0) + oo += rv; + + ts->tx_ofs += cl; + if (ts->tx_ofs >= ts->tx_len) { + ts->tx_len = 0; + ts->tx_ofs = 0; + } + } + + return len; +} + +/*! generate (multiplex) output data for the specified e1_line + * \param[in] line E1 line for which to genrate output data + * \param[in] buf caller-allocated output buffer for multiplexed data + * \param[in] fts number of E1 frames (32 bytes each) to generate + * \return number of bytes written to buf */ +int +e1_line_mux_out(struct e1_line *line, uint8_t *buf, int fts) +{ + int tsz; + + /* Prepare */ + tsz = 32 * fts; + memset(buf, 0xff, tsz); + + /* Scan timeslots */ + for (int tsn=1; tsn<32; tsn++) + { + struct e1_ts *ts = &line->ts[tsn]; + uint8_t buf_ts[fts]; + int l; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + switch (ts->mode) { + case E1_TS_MODE_RAW: + l = read(ts->fd, buf_ts, fts); + break; + case E1_TS_MODE_HDLCFCS: + l = _e1_tx_hdlcfs(ts, buf_ts, fts); + break; + default: + continue; + } + + if (l <= 0) + continue; + + for (int i=0; its[tsn]; + uint8_t buf_ts[ftr]; + + if (ts->mode == E1_TS_MODE_OFF) + continue; + + for (int i=0; imode) { + case E1_TS_MODE_RAW: + write(ts->fd, buf_ts, ftr); + break; + case E1_TS_MODE_HDLCFCS: + _e1_rx_hdlcfs(ts, buf_ts, ftr); + break; + default: + continue; + } + } + + return 0; +} diff --git a/src/usb.c b/src/usb.c index 19855f8..ecbb54d 100644 --- a/src/usb.c +++ b/src/usb.c @@ -105,111 +105,9 @@ // --------------------------------------------------------------------------- static int -_e1_rx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) -{ - int rv, cl, oi; - - oi = 0; - - while (oi < len) { - rv = osmo_isdnhdlc_decode(&ts->hdlc_rx, - &buf[oi], len-oi, &cl, - ts->rx_buf, sizeof(ts->rx_buf) - ); - - if (rv > 0) { - printf("RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); - write(ts->fd, ts->rx_buf, rv); - } else if (rv < 0 && ts->id == 4) { - printf("ERR RX: %d %d %d [ %s]\n",rv,oi,cl, osmo_hexdump(buf, len)); - } - - oi += cl; - } - - return 0; -} - -static int -_e1_tx_hdlcfs(struct e1_ts *ts, uint8_t *buf, int len) -{ - int rv, oo, cl; - - oo = 0; - - while (oo < len) { - /* Pending message ? */ - if (!ts->tx_len) { - rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); - if (rv > 0) { - printf("TX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); - ts->tx_len = rv; - ts->tx_ofs = 0; - } - } - - /* */ - rv = osmo_isdnhdlc_encode(&ts->hdlc_tx, - &ts->tx_buf[ts->tx_ofs], ts->tx_len - ts->tx_ofs, &cl, - &buf[oo], len - oo - ); - - if (rv < 0) - printf("ERR TX: %d\n", rv); - - if (ts->tx_ofs < ts->tx_len) - printf("TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); - - if (rv > 0) - oo += rv; - - ts->tx_ofs += cl; - if (ts->tx_ofs >= ts->tx_len) { - ts->tx_len = 0; - ts->tx_ofs = 0; - } - } - - return len; -} - -static int e1_usb_xfer_in(struct e1_usb_flow *flow, uint8_t *buf, int size) { - struct e1_line *line = flow->line; - int ftr; - - if (size <= 0) { - printf("IN ERROR: %d\n", size); - return -1; - } - - ftr = (size - 4) / 32; - - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[32]; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - for (int i=0; imode) { - case E1_TS_MODE_RAW: - write(ts->fd, buf_ts, ftr); - break; - case E1_TS_MODE_HDLCFCS: - _e1_rx_hdlcfs(ts, buf_ts, ftr); - break; - default: - continue; - } - } - - return 0; + return e1_line_demux_in(flow->line, buf + 4, size - 4); } static int @@ -217,7 +115,7 @@ { struct e1_line *line = flow->line; struct e1_usb_line_data *ld = (struct e1_usb_line_data *) line->drv_data; - int fts, tsz; + int fts; if (size <= 0) { printf("OUT ERROR: %d\n", size); @@ -235,42 +133,9 @@ if (ld->r_acc & 0x80000000) ld->r_acc = 0; - /* Prepare */ - tsz = 4 + 32 * fts; - memset(buf, 0xff, tsz); + memset(buf, 0xff, 4); - /* Header */ - /* FIXME */ - - /* Scan timeslots */ - for (int tsn=1; tsn<32; tsn++) - { - struct e1_ts *ts = &line->ts[tsn]; - uint8_t buf_ts[32]; - int l; - - if (ts->mode == E1_TS_MODE_OFF) - continue; - - switch (ts->mode) { - case E1_TS_MODE_RAW: - l = read(ts->fd, buf_ts, fts); - break; - case E1_TS_MODE_HDLCFCS: - l = _e1_tx_hdlcfs(ts, buf_ts, fts); - break; - default: - continue; - } - - if (l <= 0) - continue; - - for (int i=0; ictx, struct e1_intf); - OSMO_ASSERT(intf); - - intf->e1d = e1d; - intf->drv_data = drv_data; - - INIT_LLIST_HEAD(&intf->list); - INIT_LLIST_HEAD(&intf->lines); - - if (!llist_empty(&e1d->interfaces)) { - struct e1_intf *f = llist_first_entry(&e1d->interfaces, struct e1_intf, list); - intf->id = f->id + 1; - } - - llist_add(&intf->list, &e1d->interfaces); - - return intf; -} - -struct e1_line * -_e1_line_new(struct e1_intf *intf, void *drv_data) -{ - struct e1_line *line; - - line = talloc_zero(intf->e1d->ctx, struct e1_line); - OSMO_ASSERT(line); - - line->intf = intf; - line->drv_data = drv_data; - - for (int i=0; i<32; i++) - line->ts[i].id = i; - - INIT_LLIST_HEAD(&line->list); - - if (!llist_empty(&intf->lines)) { - struct e1_line *l = llist_first_entry(&intf->lines, struct e1_line, list); - line->id = l->id + 1; - } - - llist_add(&line->list, &intf->lines); - - return line; -} - - - -// --------------------------------------------------------------------------- // Init / Probing // --------------------------------------------------------------------------- @@ -490,7 +299,7 @@ intf_data = talloc_zero(e1d->ctx, struct e1_usb_intf_data); intf_data->devh = devh; - intf = _e1_intf_new(e1d, intf_data); + intf = e1_intf_new(e1d, intf_data); ret = libusb_get_active_config_descriptor(dev, &cd); if (ret) { @@ -551,7 +360,7 @@ return -EINVAL; } - line = _e1_line_new(intf, line_data); + line = e1_line_new(intf, line_data); line_data->flow_in = e1uf_create(line, e1_usb_xfer_in, line_data->ep_in, 2, line_data->pkt_size, 4); line_data->flow_out = e1uf_create(line, e1_usb_xfer_out, line_data->ep_out, 2, line_data->pkt_size, 4); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7d4d4ab39cb3e7e6a7eb8e738a367122eb3fbee2 Gerrit-Change-Number: 19033 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:01 +0000 Subject: Change in osmo-e1d[master]: move from printf() debug output to libosmocore logging In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19034 ) Change subject: move from printf() debug output to libosmocore logging ...................................................................... move from printf() debug output to libosmocore logging Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 --- M src/intf_line.c M src/log.c M src/log.h M src/usb.c 4 files changed, 19 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/intf_line.c b/src/intf_line.c index 22d5f55..bc01559 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -107,10 +107,12 @@ ); if (rv > 0) { - printf("RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); + LOGP(DXFR, LOGL_DEBUG, "RX Message: %d %d [ %s]\n", + ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); write(ts->fd, ts->rx_buf, rv); } else if (rv < 0 && ts->id == 4) { - printf("ERR RX: %d %d %d [ %s]\n",rv,oi,cl, osmo_hexdump(buf, len)); + LOGP(DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", + rv,oi,cl, osmo_hexdump(buf, len)); } oi += cl; @@ -131,7 +133,8 @@ if (!ts->tx_len) { rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); if (rv > 0) { - printf("TX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); + LOGP(DXFR, LOGL_DEBUG, "TX Message: %d %d [ %s]\n", + ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); ts->tx_len = rv; ts->tx_ofs = 0; } @@ -144,10 +147,12 @@ ); if (rv < 0) - printf("ERR TX: %d\n", rv); + LOGP(DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); - if (ts->tx_ofs < ts->tx_len) - printf("TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); + if (ts->tx_ofs < ts->tx_len) { + LOGP(DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", + ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); + } if (rv > 0) oo += rv; @@ -218,7 +223,7 @@ int ftr; if (size <= 0) { - printf("IN ERROR: %d\n", size); + LOGP(DXFR, LOGL_ERROR, "IN ERROR: %d\n", size); return -1; } diff --git a/src/log.c b/src/log.c index 805d355..c50efe5 100644 --- a/src/log.c +++ b/src/log.c @@ -33,6 +33,11 @@ .loglevel = LOGL_DEBUG, .enabled = 1, }, + [DXFR] = { + .name = "DXFR", + .loglevel = LOGL_DEBUG, + .enabled = 1, + }, }; const struct log_info log_info = { diff --git a/src/log.h b/src/log.h index b3bed47..2a9b210 100644 --- a/src/log.h +++ b/src/log.h @@ -28,6 +28,7 @@ enum { DE1D, + DXFR, }; extern const struct log_info log_info; diff --git a/src/usb.c b/src/usb.c index ecbb54d..8cf96b4 100644 --- a/src/usb.c +++ b/src/usb.c @@ -118,7 +118,7 @@ int fts; if (size <= 0) { - printf("OUT ERROR: %d\n", size); + LOGP(DXFR, LOGL_ERROR, "OUT ERROR: %d\n", size); return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b652554c472c0fa7d180b533ef1ed4b92b49ab9 Gerrit-Change-Number: 19034 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:01 +0000 Subject: Change in osmo-e1d[master]: libosmo-e1d: Add value_string for msg_type and mode In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19035 ) Change subject: libosmo-e1d: Add value_string for msg_type and mode ...................................................................... libosmo-e1d: Add value_string for msg_type and mode Change-Id: I72807f8eb2dcfaaba2819969c7aa62a4a1a79966 --- M include/osmocom/e1d/proto.h M src/proto.c 2 files changed, 20 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved tnt: Looks good to me, but someone else must approve diff --git a/include/osmocom/e1d/proto.h b/include/osmocom/e1d/proto.h index a3c94bb..f719cff 100644 --- a/include/osmocom/e1d/proto.h +++ b/include/osmocom/e1d/proto.h @@ -27,6 +27,7 @@ #include #include +#include /* E1DP_CMD_INTF_QUERY @@ -107,3 +108,6 @@ struct msgb *osmo_e1dp_recv(struct osmo_fd *ofd, int *fd); int osmo_e1dp_send(struct osmo_fd *ofd, struct msgb *msgb, int fd); + +extern const struct value_string osmo_e1dp_msg_type_names[]; +extern const struct value_string osmo_e1dp_ts_mode_names[]; diff --git a/src/proto.c b/src/proto.c index ee59ad1..6a32bb7 100644 --- a/src/proto.c +++ b/src/proto.c @@ -37,6 +37,22 @@ #include "log.h" +const struct value_string osmo_e1dp_msg_type_names[] = { + { E1DP_CMD_INTF_QUERY, "CMD_INTF_QUERY" }, + { E1DP_CMD_LINE_QUERY, "CMD_LINE_QUERY" }, + { E1DP_CMD_TS_QUERY, "CMD_TS_QUERY" }, + { E1DP_CMD_TS_OPEN, "CMD_TS_OPEN" }, + { E1DP_EVT_TYPE, "EVT_TYPE" }, + { E1DP_RESP_TYPE, "RESP_TYPE" }, + { E1DP_ERR_TYPE, "ERR_TYPE" }, + { 0, NULL } +}; +const struct value_string osmo_e1dp_ts_mode_names[] = { + { E1DP_TSMODE_OFF, "OFF" }, + { E1DP_TSMODE_RAW, "RAW" }, + { E1DP_TSMODE_HDLCFCS, "HDLC-FCS" }, + { 0, NULL } +}; struct msgb * osmo_e1dp_recv(struct osmo_fd *ofd, int *fd) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I72807f8eb2dcfaaba2819969c7aa62a4a1a79966 Gerrit-Change-Number: 19035 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:02 +0000 Subject: Change in osmo-e1d[master]: VTY interface support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19036 ) Change subject: VTY interface support ...................................................................... VTY interface support Let's add a VTY interface on TCP port 4269. The purpose is - for now - not for configuration storage, but for state introspection. Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 --- M configure.ac M src/Makefile.am M src/ctl.c M src/e1d.h M src/osmo-e1d.c A src/vty.c 6 files changed, 238 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/configure.ac b/configure.ac index c0508eb..5be845b 100644 --- a/configure.ac +++ b/configure.ac @@ -33,6 +33,7 @@ PKG_CHECK_MODULES(TALLOC, [talloc >= 2.0.1]) PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.0.1.120) +PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty) PKG_CHECK_MODULES(LIBOSMOUSB, libosmousb) PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= 1.0.21) diff --git a/src/Makefile.am b/src/Makefile.am index bc05998..aa796f2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,7 +4,8 @@ LIBVERSION=0:0:0 AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir) -AM_CFLAGS=-Wall -Wno-unused-result $(LIBOSMOCORE_CFLAGS) $(LIBOSMOUSB_LIBS) $(LIBUSB_CFLAGS) +AM_CFLAGS=-Wall -Wno-unused-result $(LIBOSMOCORE_CFLAGS) \ + $(LIBOSMOVTY_LIBS) $(LIBOSMOUSB_LIBS) $(LIBUSB_CFLAGS) lib_LTLIBRARIES = libosmo-e1d.la @@ -34,6 +35,8 @@ log.c \ osmo-e1d.c \ usb.c \ + vty.c \ $(NULL) -osmo_e1d_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOUSB_LIBS) $(LIBUSB_LIBS) libosmo-e1d.la +osmo_e1d_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) \ + $(LIBOSMOUSB_LIBS) $(LIBUSB_LIBS) libosmo-e1d.la diff --git a/src/ctl.c b/src/ctl.c index 835811f..a70556d 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -38,8 +38,8 @@ #include "e1d.h" -static struct e1_intf * -_e1d_find_intf(struct e1_daemon *e1d, uint8_t id) +struct e1_intf * +e1d_find_intf(struct e1_daemon *e1d, uint8_t id) { struct e1_intf *intf; @@ -137,7 +137,7 @@ /* Process query and find interface */ if (hdr->intf != E1DP_INVALID) { - intf = _e1d_find_intf(e1d, hdr->intf); + intf = e1d_find_intf(e1d, hdr->intf); n = intf ? 1 : 0; } else { n = llist_count(&e1d->interfaces); @@ -174,7 +174,7 @@ int n; /* Process query and find line */ - intf = _e1d_find_intf(e1d, hdr->intf); + intf = e1d_find_intf(e1d, hdr->intf); if (!intf) return 0; @@ -216,7 +216,7 @@ int n; /* Process query and find timeslot */ - intf = _e1d_find_intf(e1d, hdr->intf); + intf = e1d_find_intf(e1d, hdr->intf); if (!intf) return 0; @@ -262,7 +262,7 @@ int ret; /* Process query and find timeslot */ - intf = _e1d_find_intf(e1d, hdr->intf); + intf = e1d_find_intf(e1d, hdr->intf); if (!intf) return 0; diff --git a/src/e1d.h b/src/e1d.h index 5b7ba83..303757f 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -84,6 +84,9 @@ struct e1_intf * e1_intf_new(struct e1_daemon *e1d, void *drv_data); +struct e1_intf * +e1d_find_intf(struct e1_daemon *e1d, uint8_t id); + struct e1_line * e1_line_new(struct e1_intf *intf, void *drv_data); @@ -92,3 +95,6 @@ int e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size); + +void +e1d_vty_init(struct e1_daemon *e1d); diff --git a/src/osmo-e1d.c b/src/osmo-e1d.c index 92d98d3..808bd68 100644 --- a/src/osmo-e1d.c +++ b/src/osmo-e1d.c @@ -28,23 +28,30 @@ #include #include +#define _GNU_SOURCE +#include + #include #include #include #include +#include #include #include "e1d.h" #include "log.h" +#ifndef OSMO_VTY_PORT_E1D +#define OSMO_VTY_PORT_E1D 4269 +#endif extern struct osmo_e1dp_server_handler e1d_ctl_handlers[]; extern int e1_usb_probe(struct e1_daemon *e1d); - +static const char *g_config_file = "osmo-e1d.cfg"; static void *g_e1d_ctx = NULL; static int g_shutdown = 0; @@ -71,6 +78,61 @@ } } +static struct vty_app_info vty_info = { + .name = "osmo-e1d", + .version = PACKAGE_VERSION, + .copyright = + "(C) 2019 by Sylvain Munaut \r\n", + "License GPLv2+: GNU GPL version 2 or later \r\n" + "This is free software: you are free to change and redistribute it.\r\n" + "There is NO WARRANTY, to the extent permitted by law.\r\n", +}; + +static void print_help(void) +{ + printf(" Some useful help...\n"); + printf(" -h --help This text.\n"); + printf(" -d --debug option --debug=DE1D:DXFR enable debugging.\n"); + printf(" -c --config-file filename The config file to use.\n"); +} + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_index = 0, c; + static const struct option long_options[] = { + {"help", 0, 0, 'h'}, + {"debug", 1, 0, 'd'}, + {"config-file", 1, 0, 'c'}, + {0, 0, 0, 0} + }; + + c = getopt_long(argc, argv, "hd:c:", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'c': + g_config_file = optarg; + break; + default: + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } + + if (argc > optind) { + fprintf(stderr, "Unsupported positional arguments on command line\n"); + exit(2); + } +} int main(int argc, char *argv[]) { @@ -82,6 +144,7 @@ /* talloc init */ g_e1d_ctx = talloc_named_const(NULL, 0, "osmo-e1d"); msgb_talloc_ctx_init(g_e1d_ctx, 0); + vty_info.tall_ctx = g_e1d_ctx; /* logging init */ osmo_init_logging2(g_e1d_ctx, &log_info); @@ -108,6 +171,23 @@ OSMO_ASSERT(e1d); INIT_LLIST_HEAD(&e1d->interfaces); + vty_init(&vty_info); + e1d_vty_init(e1d); + + handle_options(argc, argv); + + rv = vty_read_config_file(g_config_file, NULL); + if (rv < 0) { + LOGP(DE1D, LOGL_FATAL, "Failed to parse the config file '%s'\n", g_config_file); + exit(2); + } + + rv = telnet_init_dynif(g_e1d_ctx, e1d, vty_get_bind_addr(), OSMO_VTY_PORT_E1D); + if (rv != 0) { + LOGP(DE1D, LOGL_FATAL, "Failed to bind VTY interface to %s:%u\n", + vty_get_bind_addr(), OSMO_VTY_PORT_E1D); + exit(1); + } /* probe devices */ rv = e1_usb_probe(e1d); diff --git a/src/vty.c b/src/vty.c new file mode 100644 index 0000000..88b6257 --- /dev/null +++ b/src/vty.c @@ -0,0 +1,139 @@ +/* osmo-e1d VTY interface */ +/* (C) 2020 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 . + * + */ + +#define _GNU_SOURCE /* struct ucred */ +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include "e1d.h" + +static struct e1_daemon *vty_e1d; + +#if 0 +static void vty_dump_ts(struct vty *vty, const struct e1_ts *ts) +{ +} +#endif + +static void vty_dump_intf(struct vty *vty, const struct e1_intf *intf) +{ + vty_out(vty, "Interface #%u, Driver: FIXME%s", intf->id, VTY_NEWLINE); +} + +DEFUN(show_intf, show_intf_cmd, "show interface [<0-255>]", + SHOW_STR "Display information about an E1 Interface/Card\n") +{ + struct e1_intf *intf; + + if (argc) { + int id = atoi(argv[0]); + intf = e1d_find_intf(vty_e1d, id); + if (!intf) { + vty_out(vty, "%% Unknown interface %u%s\n", id, VTY_NEWLINE); + return CMD_WARNING; + } + vty_dump_intf(vty, intf); + } else { + llist_for_each_entry(intf, &vty_e1d->interfaces, list) + vty_dump_intf(vty, intf); + } + + return CMD_SUCCESS; +} + +static int get_remote_pid(int fd) +{ + struct ucred uc; + socklen_t len = sizeof(uc); + int rc; + + rc = getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &uc, &len); + if (rc != 0) + return -1; + return uc.pid; +} + +static const struct value_string e1_ts_mode_names[] = { + { E1_TS_MODE_OFF, "OFF" }, + { E1_TS_MODE_RAW, "RAW" }, + { E1_TS_MODE_HDLCFCS, "HDLC-FCS" }, + { 0, NULL } +}; + +static void vty_dump_line(struct vty *vty, const struct e1_line *line) +{ + int tn; + + vty_out(vty, "Interface #%u, Line #%u:%s", line->intf->id, line->id, VTY_NEWLINE); + + for (tn = 0; tn < ARRAY_SIZE(line->ts); tn++) { + const struct e1_ts *ts = &line->ts[tn]; + vty_out(vty, " TS%02u: Mode %s, FD %d, Peer PID %d%s", + ts->id, get_value_string(e1_ts_mode_names, ts->mode), + ts->fd, get_remote_pid(ts->fd), VTY_NEWLINE); + } +} + +DEFUN(show_line, show_line_cmd, "show line [<0-255>]", + SHOW_STR "Display information about an E1 Line\n") +{ + struct e1_line *line; + struct e1_intf *intf; + + if (argc) { + int id = atoi(argv[0]); + intf = e1d_find_intf(vty_e1d, id); + if (!intf) { + vty_out(vty, "%% Unknown interface %u%s\n", id, VTY_NEWLINE); + return CMD_WARNING; + } + llist_for_each_entry(line, &intf->lines, list) + vty_dump_line(vty, line); + } else { + llist_for_each_entry(intf, &vty_e1d->interfaces, list) { + llist_for_each_entry(line, &intf->lines, list) + vty_dump_line(vty, line); + } + } + + return CMD_SUCCESS; +} + +void e1d_vty_init(struct e1_daemon *e1d) +{ + vty_e1d = e1d; + install_element_ve(&show_intf_cmd); + install_element_ve(&show_line_cmd); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I47b6e4efaad52e68e2b50a7993076f3706f86628 Gerrit-Change-Number: 19036 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:02 +0000 Subject: Change in osmo-e1d[master]: change list ordering for list of interfaces / lines In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19054 ) Change subject: change list ordering for list of interfaces / lines ...................................................................... change list ordering for list of interfaces / lines By using llist_add_tail(), we add new elements at the end of the list, rather than inserting at front. Among other things, this has the added benefit that when the VTY prints information on lines, they are printed in numerically ascending orrder (0,1,2, ...) and not the reverse. Change-Id: I07a6ba706f855a29b4e33b1a6b008e0d2f11b6f3 --- M src/intf_line.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/intf_line.c b/src/intf_line.c index bc01559..c3466e0 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -54,11 +54,11 @@ INIT_LLIST_HEAD(&intf->lines); if (!llist_empty(&e1d->interfaces)) { - struct e1_intf *f = llist_first_entry(&e1d->interfaces, struct e1_intf, list); + struct e1_intf *f = llist_last_entry(&e1d->interfaces, struct e1_intf, list); intf->id = f->id + 1; } - llist_add(&intf->list, &e1d->interfaces); + llist_add_tail(&intf->list, &e1d->interfaces); return intf; } @@ -80,11 +80,11 @@ INIT_LLIST_HEAD(&line->list); if (!llist_empty(&intf->lines)) { - struct e1_line *l = llist_first_entry(&intf->lines, struct e1_line, list); + struct e1_line *l = llist_last_entry(&intf->lines, struct e1_line, list); line->id = l->id + 1; } - llist_add(&line->list, &intf->lines); + llist_add_tail(&line->list, &intf->lines); return line; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I07a6ba706f855a29b4e33b1a6b008e0d2f11b6f3 Gerrit-Change-Number: 19054 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:02 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:02 +0000 Subject: Change in osmo-e1d[master]: introduce notion of 'driver' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19041 ) Change subject: introduce notion of 'driver' ...................................................................... introduce notion of 'driver' Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b --- M src/e1d.h M src/intf_line.c M src/usb.c 3 files changed, 12 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/e1d.h b/src/e1d.h index 303757f..c1a28ce 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -65,12 +65,19 @@ struct e1_ts ts[32]; }; +enum e1_driver { + E1_DRIVER_USB, +}; + +extern const struct value_string e1_driver_names[]; + struct e1_intf { struct llist_head list; struct e1_daemon *e1d; uint8_t id; + enum e1_driver drv; void *drv_data; struct llist_head lines; diff --git a/src/intf_line.c b/src/intf_line.c index c3466e0..f572190 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -34,6 +34,10 @@ #include "e1d.h" #include "log.h" +const struct value_string e1_driver_names[] = { + { E1_DRIVER_USB, "usb" }, + { 0, NULL } +}; // --------------------------------------------------------------------------- // e1d structures diff --git a/src/usb.c b/src/usb.c index 8cf96b4..5d38d32 100644 --- a/src/usb.c +++ b/src/usb.c @@ -300,6 +300,7 @@ intf_data->devh = devh; intf = e1_intf_new(e1d, intf_data); + intf->drv = E1_DRIVER_USB; ret = libusb_get_active_config_descriptor(dev, &cd); if (ret) { -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ic168e25f2622b397bac2c133ec35f4a0a38f859b Gerrit-Change-Number: 19041 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:03 +0000 Subject: Change in osmo-e1d[master]: _e1_line_new(): Initialize timeslot fd to -1 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19042 ) Change subject: _e1_line_new(): Initialize timeslot fd to -1 ...................................................................... _e1_line_new(): Initialize timeslot fd to -1 Otherwise we might up ending up doing plenty of unintended close(0) in _e1d_ts_stop() Change-Id: I6b88a3ff7d650a0caa242e6ac60d7778564e237c --- M src/intf_line.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved tnt: Looks good to me, but someone else must approve diff --git a/src/intf_line.c b/src/intf_line.c index f572190..a879922 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -78,8 +78,10 @@ line->intf = intf; line->drv_data = drv_data; - for (int i=0; i<32; i++) + for (int i=0; i<32; i++) { line->ts[i].id = i; + line->ts[i].fd = -1; + } INIT_LLIST_HEAD(&line->list); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6b88a3ff7d650a0caa242e6ac60d7778564e237c Gerrit-Change-Number: 19042 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:03 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:03 +0000 Subject: Change in osmo-e1d[master]: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19043 ) Change subject: ctl.c: Fix off-by-one: FD=0 is a valid file descriptor ...................................................................... ctl.c: Fix off-by-one: FD=0 is a valid file descriptor It is possible that fd=0 (stdin) is closed in a daemon scenario, and subsequently fd=0 is reused for other files/sockets. Change-Id: Id8279f04373e891009224bab34a4d1d886520fea --- M src/ctl.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve tnt: Looks good to me, approved diff --git a/src/ctl.c b/src/ctl.c index a70556d..dd9155d 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -96,7 +96,7 @@ { ts->mode = E1_TS_MODE_OFF; - if (ts->fd > 0) { + if (ts->fd >= 0) { close(ts->fd); ts->fd = -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Id8279f04373e891009224bab34a4d1d886520fea Gerrit-Change-Number: 19043 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:04 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:04 +0000 Subject: Change in osmo-e1d[master]: Export _e1d_ts_stop() function inside daemon In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19044 ) Change subject: Export _e1d_ts_stop() function inside daemon ...................................................................... Export _e1d_ts_stop() function inside daemon Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 --- M src/ctl.c M src/e1d.h 2 files changed, 7 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/ctl.c b/src/ctl.c index dd9155d..1fa5d84 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -91,8 +91,8 @@ } -static void -_e1d_ts_stop(struct e1_ts *ts) +void +e1_ts_stop(struct e1_ts *ts) { ts->mode = E1_TS_MODE_OFF; @@ -287,7 +287,7 @@ } /* If already open, close previous */ - _e1d_ts_stop(ts); + e1_ts_stop(ts); /* Init */ ret = _e1d_ts_start(ts, mode); diff --git a/src/e1d.h b/src/e1d.h index c1a28ce..a5076b0 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -104,4 +104,8 @@ e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size); void +e1_ts_stop(struct e1_ts *ts); + +void e1d_vty_init(struct e1_daemon *e1d); + -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If3ceca05d4fdf1e33d926061f30fce6bfa8e0357 Gerrit-Change-Number: 19044 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:05 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:05 +0000 Subject: Change in osmo-e1d[master]: add e1_line_destroy() / e1_intf_destroy() functions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19045 ) Change subject: add e1_line_destroy() / e1_intf_destroy() functions ...................................................................... add e1_line_destroy() / e1_intf_destroy() functions Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b --- M src/e1d.h M src/intf_line.c 2 files changed, 35 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/e1d.h b/src/e1d.h index a5076b0..7803b2e 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -94,9 +94,15 @@ struct e1_intf * e1d_find_intf(struct e1_daemon *e1d, uint8_t id); +void +e1_intf_destroy(struct e1_intf *intf); + struct e1_line * e1_line_new(struct e1_intf *intf, void *drv_data); +void +e1_line_destroy(struct e1_line *line); + int e1_line_mux_out(struct e1_line *line, uint8_t *buf, int fts); diff --git a/src/intf_line.c b/src/intf_line.c index a879922..9118232 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -67,6 +67,21 @@ return intf; } +void +e1_intf_destroy(struct e1_intf *intf) +{ + struct e1_line *line, *line2; + + /* destroy all lines */ + llist_for_each_entry_safe(line, line2, &intf->lines, list) + e1_line_destroy(line); + + /* remove from global list of interfaces */ + llist_del(&intf->list); + + talloc_free(intf); +} + struct e1_line * e1_line_new(struct e1_intf *intf, void *drv_data) { @@ -95,6 +110,20 @@ return line; } +void +e1_line_destroy(struct e1_line *line) +{ + /* close all [peer] file descriptors */ + for (int i=0; i<32; i++) + e1_ts_stop(&line->ts[i]); + + /* remove from per-interface list of lines */ + llist_del(&line->list); + + talloc_free(line); +} + + // --------------------------------------------------------------------------- // data transfer // --------------------------------------------------------------------------- -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b Gerrit-Change-Number: 19045 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:06 +0000 Subject: Change in osmo-e1d[master]: proto.h: Share default socket path between client and daemon In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19055 ) Change subject: proto.h: Share default socket path between client and daemon ...................................................................... proto.h: Share default socket path between client and daemon This way clients and daemon don't have to be manually configured to use the same default socket path. Change-Id: Ibc5bc1bc59056ebaf0f6072de0ff08c2f3bb5457 --- M include/osmocom/e1d/proto.h M src/osmo-e1d.c 2 files changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/e1d/proto.h b/include/osmocom/e1d/proto.h index f719cff..ef95d0c 100644 --- a/include/osmocom/e1d/proto.h +++ b/include/osmocom/e1d/proto.h @@ -73,6 +73,7 @@ #define E1DP_MAGIC 0x00e1 #define E1DP_MAX_LEN 4096 #define E1DP_INVALID 0xff +#define E1DP_DEFAULT_SOCKET "/tmp/osmo-e1d.ctl" struct osmo_e1dp_msg_hdr { diff --git a/src/osmo-e1d.c b/src/osmo-e1d.c index 808bd68..647b039 100644 --- a/src/osmo-e1d.c +++ b/src/osmo-e1d.c @@ -39,6 +39,7 @@ #include #include +#include #include "e1d.h" #include "log.h" @@ -196,7 +197,7 @@ } /* server init */ - srv = osmo_e1dp_server_create(g_e1d_ctx, "/tmp/osmo-e1d.ctl", e1d_ctl_handlers, e1d); + srv = osmo_e1dp_server_create(g_e1d_ctx, E1DP_DEFAULT_SOCKET, e1d_ctl_handlers, e1d); OSMO_ASSERT(srv); /* main loop */ -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ibc5bc1bc59056ebaf0f6072de0ff08c2f3bb5457 Gerrit-Change-Number: 19055 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:06 +0000 Subject: Change in osmo-e1d[master]: close timeslot socket if read or write returns negative In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19056 ) Change subject: close timeslot socket if read or write returns negative ...................................................................... close timeslot socket if read or write returns negative If the user application has closed the timeslot socket, we will get error returns from read/write calls, which we must use to clean up the daemon-side state for this timeslot. Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f --- M src/intf_line.c 1 file changed, 23 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/intf_line.c b/src/intf_line.c index 9118232..7b85b4c 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -142,9 +142,12 @@ ); if (rv > 0) { + int bytes_to_write = rv; LOGP(DXFR, LOGL_DEBUG, "RX Message: %d %d [ %s]\n", ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); - write(ts->fd, ts->rx_buf, rv); + rv = write(ts->fd, ts->rx_buf, bytes_to_write); + if (rv < 0) + return rv; } else if (rv < 0 && ts->id == 4) { LOGP(DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", rv,oi,cl, osmo_hexdump(buf, len)); @@ -172,7 +175,8 @@ ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); ts->tx_len = rv; ts->tx_ofs = 0; - } + } else if (rv < 0) + return rv; } /* */ @@ -234,9 +238,16 @@ l = _e1_tx_hdlcfs(ts, buf_ts, fts); break; default: + OSMO_ASSERT(0); continue; } + if (l < 0 && errno != EAGAIN) { + LOGP(DE1D, LOGL_ERROR, "dead socket during read: %s\n", + strerror(errno)); + e1_ts_stop(ts); + } + if (l <= 0) continue; @@ -269,6 +280,7 @@ { struct e1_ts *ts = &line->ts[tsn]; uint8_t buf_ts[ftr]; + int rv; if (ts->mode == E1_TS_MODE_OFF) continue; @@ -278,14 +290,21 @@ switch (ts->mode) { case E1_TS_MODE_RAW: - write(ts->fd, buf_ts, ftr); + rv = write(ts->fd, buf_ts, ftr); break; case E1_TS_MODE_HDLCFCS: - _e1_rx_hdlcfs(ts, buf_ts, ftr); + rv = _e1_rx_hdlcfs(ts, buf_ts, ftr); break; default: + OSMO_ASSERT(0); continue; } + if (rv < 0 && errno != EAGAIN) { + LOGP(DE1D, LOGL_ERROR, "dead socket during write: %s\n", + strerror(errno)); + e1_ts_stop(ts); + } + } return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I2e3e5010f36e916b4c8908af91447b3d3661123f Gerrit-Change-Number: 19056 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:06 +0000 Subject: Change in osmo-e1d[master]: Always log context (interface/line/timeslot) when available In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19057 ) Change subject: Always log context (interface/line/timeslot) when available ...................................................................... Always log context (interface/line/timeslot) when available We always want to know as much context as possible. Which exact timeslot on which line of which interface ha logged something? Change-Id: I3d8909b396928ed3c023b8ac47fa9ec72c99e681 --- M src/intf_line.c M src/log.h M src/usb.c 3 files changed, 21 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve diff --git a/src/intf_line.c b/src/intf_line.c index 7b85b4c..305f5dd 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -143,13 +143,13 @@ if (rv > 0) { int bytes_to_write = rv; - LOGP(DXFR, LOGL_DEBUG, "RX Message: %d %d [ %s]\n", - ts->id, rv, osmo_hexdump(ts->rx_buf, rv)); + LOGPTS(ts, DXFR, LOGL_DEBUG, "RX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->rx_buf, rv)); rv = write(ts->fd, ts->rx_buf, bytes_to_write); if (rv < 0) return rv; } else if (rv < 0 && ts->id == 4) { - LOGP(DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR RX: %d %d %d [ %s]\n", rv,oi,cl, osmo_hexdump(buf, len)); } @@ -171,8 +171,8 @@ if (!ts->tx_len) { rv = read(ts->fd, ts->tx_buf, sizeof(ts->tx_buf)); if (rv > 0) { - LOGP(DXFR, LOGL_DEBUG, "TX Message: %d %d [ %s]\n", - ts->id, rv, osmo_hexdump(ts->tx_buf, rv)); + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX Message: %d [ %s]\n", + rv, osmo_hexdump(ts->tx_buf, rv)); ts->tx_len = rv; ts->tx_ofs = 0; } else if (rv < 0) @@ -186,10 +186,10 @@ ); if (rv < 0) - LOGP(DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); + LOGPTS(ts, DXFR, LOGL_ERROR, "ERR TX: %d\n", rv); if (ts->tx_ofs < ts->tx_len) { - LOGP(DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", + LOGPTS(ts, DXFR, LOGL_DEBUG, "TX chunk %d/%d %d [ %s]\n", ts->tx_ofs, ts->tx_len, cl, osmo_hexdump(&buf[ts->tx_ofs], rv)); } @@ -269,7 +269,7 @@ int ftr; if (size <= 0) { - LOGP(DXFR, LOGL_ERROR, "IN ERROR: %d\n", size); + LOGPLI(line, DXFR, LOGL_ERROR, "IN ERROR: %d\n", size); return -1; } diff --git a/src/log.h b/src/log.h index 2a9b210..d46a5a7 100644 --- a/src/log.h +++ b/src/log.h @@ -31,4 +31,13 @@ DXFR, }; +#define LOGPIF(itf, ss, lvl, fmt, args...) \ + LOGP(ss, lvl, "(I%u) " fmt, (itf)->id, ## args) + +#define LOGPLI(li, ss, lvl, fmt, args...) \ + LOGP(ss, lvl, "(I%u:L%u) " fmt, (li)->intf->id, (li)->id, ## args) + +#define LOGPTS(ts, ss, lvl, fmt, args...) \ + LOGP(ss, lvl, "(I%u:L%u:T%u) " fmt, (ts)->line->intf->id, (ts)->line->id, (ts)->id, ## args) + extern const struct log_info log_info; diff --git a/src/usb.c b/src/usb.c index 5d38d32..578bc34 100644 --- a/src/usb.c +++ b/src/usb.c @@ -118,7 +118,7 @@ int fts; if (size <= 0) { - LOGP(DXFR, LOGL_ERROR, "OUT ERROR: %d\n", size); + LOGPLI(line, DXFR, LOGL_ERROR, "OUT ERROR: %d\n", size); return -1; } @@ -144,10 +144,10 @@ struct e1_usb_line_data *ld = (struct e1_usb_line_data *) flow->line->drv_data; if (size < 0) { - LOGP(DE1D, LOGL_ERROR, "Feedback transfer error\n"); + LOGPLI(flow->line, DE1D, LOGL_ERROR, "Feedback transfer error\n"); return 0; } else if (size != 3) { - LOGP(DE1D, LOGL_ERROR, "Feedback packet invalid size (%d)\n", size); + LOGPLI(flow->line, DE1D, LOGL_ERROR, "Feedback packet invalid size (%d)\n", size); return 0; } @@ -193,7 +193,7 @@ rv = libusb_submit_transfer(xfr); if (rv) - LOGP(DE1D, LOGL_ERROR, "Failed to resubmit buffer for transfer\n"); + LOGPLI(flow->line, DE1D, LOGL_ERROR, "Failed to resubmit buffer for transfer\n"); } static struct e1_usb_flow * -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I3d8909b396928ed3c023b8ac47fa9ec72c99e681 Gerrit-Change-Number: 19057 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:07 +0000 Subject: Change in osmo-e1d[master]: extend logging (log more noteworthy events) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19058 ) Change subject: extend logging (log more noteworthy events) ...................................................................... extend logging (log more noteworthy events) Let's log some more events that might happen. Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 --- M src/ctl.c M src/intf_line.c 2 files changed, 16 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/ctl.c b/src/ctl.c index 1fa5d84..b29e990 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -31,11 +31,13 @@ #include #include +#include #include #include #include "e1d.h" +#include "log.h" struct e1_intf * @@ -94,6 +96,8 @@ void e1_ts_stop(struct e1_ts *ts) { + LOGPTS(ts, DE1D, LOGL_INFO, "Stopping\n"); + ts->mode = E1_TS_MODE_OFF; if (ts->fd >= 0) { @@ -107,6 +111,8 @@ { int ret, sd[2]; + LOGPTS(ts, DE1D, LOGL_INFO, "Starting in mode %u\n", mode); + ret = socketpair(AF_UNIX, SOCK_SEQPACKET, 0, sd); if (ret < 0) return ret; diff --git a/src/intf_line.c b/src/intf_line.c index 305f5dd..a1fbc0f 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -64,6 +64,8 @@ llist_add_tail(&intf->list, &e1d->interfaces); + LOGPIF(intf, DE1D, LOGL_NOTICE, "Created\n"); + return intf; } @@ -72,6 +74,8 @@ { struct e1_line *line, *line2; + LOGPIF(intf, DE1D, LOGL_NOTICE, "Destroying\n"); + /* destroy all lines */ llist_for_each_entry_safe(line, line2, &intf->lines, list) e1_line_destroy(line); @@ -107,12 +111,16 @@ llist_add_tail(&line->list, &intf->lines); + LOGPLI(line, DE1D, LOGL_NOTICE, "Created\n"); + return line; } void e1_line_destroy(struct e1_line *line) { + LOGPLI(line, DE1D, LOGL_NOTICE, "Destroying\n"); + /* close all [peer] file descriptors */ for (int i=0; i<32; i++) e1_ts_stop(&line->ts[i]); @@ -243,7 +251,7 @@ } if (l < 0 && errno != EAGAIN) { - LOGP(DE1D, LOGL_ERROR, "dead socket during read: %s\n", + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during read: %s\n", strerror(errno)); e1_ts_stop(ts); } @@ -300,7 +308,7 @@ continue; } if (rv < 0 && errno != EAGAIN) { - LOGP(DE1D, LOGL_ERROR, "dead socket during write: %s\n", + LOGPTS(ts, DE1D, LOGL_ERROR, "dead socket during write: %s\n", strerror(errno)); e1_ts_stop(ts); } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I37fd290f0f0621fbf6e20e33fa709efc14df94c7 Gerrit-Change-Number: 19058 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:07 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:07 +0000 Subject: Change in osmo-e1d[master]: actually set the back-pointer from timeslot to line In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19059 ) Change subject: actually set the back-pointer from timeslot to line ...................................................................... actually set the back-pointer from timeslot to line 'struct e1_ts' always had a back-pointer to the line it is part of, but apparently this was never initialized so far. Change-Id: I5e6c8189bf5aa4af26d6cd6c6d288a149ed7fa66 --- M src/intf_line.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve diff --git a/src/intf_line.c b/src/intf_line.c index a1fbc0f..afe477d 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -98,6 +98,7 @@ line->drv_data = drv_data; for (int i=0; i<32; i++) { + line->ts[i].line = line; line->ts[i].id = i; line->ts[i].fd = -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I5e6c8189bf5aa4af26d6cd6c6d288a149ed7fa66 Gerrit-Change-Number: 19059 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:02:40 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:40 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19037 ) Change subject: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie224a45f10522332eac653fa371564f022108c3f Gerrit-Change-Number: 19037 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06:02: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 Jun 30 06:02:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:02:43 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19037 ) Change subject: abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty ...................................................................... abis_rsl: Mobile Allocation IE in CHANnel ACTIVation shall be empty According to 3GPP TS 48.058 (version 15.0.0), section 9.3.5, the 3GPP TS 24.008 "Mobile Allocation" shall for compatibility reasons be included but empty, i.e. the length shall be zero. Therefore, no matter if frequency hopping is in use or not, send it empty. Change-Id: Ie224a45f10522332eac653fa371564f022108c3f Related: OS#4545, OS#4546 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 4 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/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 8376f98..f6e564b 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -516,11 +516,10 @@ len = msgb_put(msg, 1); msgb_tv_fixed_put(msg, GSM48_IE_CHANDESC_2, sizeof(cd), (const uint8_t *) &cd); - if (lchan->ts->hopping.enabled) - msgb_tlv_put(msg, GSM48_IE_MA_AFTER, lchan->ts->hopping.ma_len, - lchan->ts->hopping.ma_data); - else - msgb_tlv_put(msg, GSM48_IE_MA_AFTER, 0, NULL); + /* See 3GPP TS 48.058 (version 15.0.0), section 9.3.5 "Channel Identification". + * The 3GPP TS 24.008 "Mobile Allocation" shall for compatibility reasons + * be included but empty, i.e. the length shall be zero. */ + msgb_tlv_put(msg, GSM48_IE_MA_AFTER, 0, NULL); /* update the calculated size */ msg->l3h = len + 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie224a45f10522332eac653fa371564f022108c3f Gerrit-Change-Number: 19037 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:03:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:03:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fixup for Osmocom_CTRL_Functions: rate counters in bulk In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19061 ) Change subject: fixup for Osmocom_CTRL_Functions: rate counters in bulk ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19061 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I85ac56b042fe4bb1db392c1f451c8e900582cc2a Gerrit-Change-Number: 19061 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 30 Jun 2020 06:03:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:03:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:03:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fixup for Osmocom_CTRL_Functions: rate counters in bulk In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19061 ) Change subject: fixup for Osmocom_CTRL_Functions: rate counters in bulk ...................................................................... fixup for Osmocom_CTRL_Functions: rate counters in bulk At the time of writing Ief0d9b096feeee7d37b5f2429dd3e80de0161806 I wasn't aware of the 'inout' keyword, which allows to pass the counter list by reference. Rather modify the counter lists in-place. Instead of requiring list := f_counter_name_vals_add(list, ...) rather implement by directly modifying list: f_counter_name_vals_add(list, ...) Change-Id: I85ac56b042fe4bb1db392c1f451c8e900582cc2a --- M bsc/BSC_Tests.ttcn M library/Osmocom_CTRL_Functions.ttcn 2 files changed, 7 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index facb001..f25c75d 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -197,7 +197,7 @@ } private function f_ctrs_msc_add(integer msc_nr, charstring countername, integer val := 1) runs on test_CT { - g_ctr_msc := f_counter_name_vals_list_add(g_ctr_msc, msc_nr, countername, val); + f_counter_name_vals_list_add(g_ctr_msc, msc_nr, countername, val); } /* f_ctrs_msc_init(); diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index ee7025c..60c66c0 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -222,12 +222,12 @@ } /* In a list of one instance's counters, increment a specifically named counter. */ - function f_counter_name_vals_add(CounterNameVals vals, charstring countername, integer val := 1) - return CounterNameVals{ + function f_counter_name_vals_add(inout CounterNameVals vals, charstring countername, integer val := 1) + { for (var integer i := 0; i < lengthof(vals); i := i + 1) { if (vals[i].name == countername) { vals[i].val := vals[i].val + val; - return vals; + return; } } /* name not found, append */ @@ -235,15 +235,13 @@ name := countername, val := val } - return vals; } /* In a list of several instances' counters, increment a specific instance's specifically named counter. */ - function f_counter_name_vals_list_add(CounterNameValsList vals, integer instance_nr, + function f_counter_name_vals_list_add(inout CounterNameValsList vals, integer instance_nr, charstring countername, integer val := 1) - return CounterNameValsList { - vals[instance_nr] := f_counter_name_vals_add(vals[instance_nr], countername, val); - return vals; + { + f_counter_name_vals_add(vals[instance_nr], countername, val); } /* For a specific instance, call f_counter_name_vals_get() and compare with expected counter values. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19061 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I85ac56b042fe4bb1db392c1f451c8e900582cc2a Gerrit-Change-Number: 19061 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 Tue Jun 30 06:04:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:04:15 +0000 Subject: Change in osmo-trx[master]: cosmetic: trx_rate_ctr: Fix whitespace In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19048 ) Change subject: cosmetic: trx_rate_ctr: Fix whitespace ...................................................................... cosmetic: trx_rate_ctr: Fix whitespace Change-Id: I4dc8220a6813d6ff30f1b241cc46b801adec4057 --- M CommonLibs/trx_rate_ctr.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index 1b44b13..d10b315 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -255,7 +255,7 @@ llist_for_each_entry(ctr, &threshold_list, list) { secs = ctr_threshold_2_seconds(ctr); - if( min_secs > secs) + if (min_secs > secs) min_secs = secs; } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4dc8220a6813d6ff30f1b241cc46b801adec4057 Gerrit-Change-Number: 19048 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:04:35 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:04:35 +0000 Subject: Change in osmo-trx[master]: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19049 ) Change subject: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea Gerrit-Change-Number: 19049 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06:04:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:04:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:04:43 +0000 Subject: Change in osmo-trx[master]: Introduce rate counter tx_stale_bursts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19051 ) Change subject: Introduce rate counter tx_stale_bursts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 Gerrit-Change-Number: 19051 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06:04:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:06:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:06:15 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c at 145 PS8, Line 145: epname + prefix_len == str_trunk_nr_end > well it really depends on the format of the string, so no idea here. given the amount of the discussion here, I think it would be good to have some kind of unit tests with a variety of valid and invalid strings? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06:06:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:09:15 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:09:15 +0000 Subject: Change in osmo-mgw[master]: endp: add E1 endpoint interlocking In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18898 ) Change subject: endp: add E1 endpoint interlocking ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I18e90b10648a7e504371179ad144645fc82e1c27 Gerrit-Change-Number: 18898 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06:09:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:09:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:09:33 +0000 Subject: Change in osmo-gsm-manuals[master]: synchronize port_numbers.adoc with wiki In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/19039 ) Change subject: synchronize port_numbers.adoc with wiki ...................................................................... synchronize port_numbers.adoc with wiki The osmo-uecups related ports were not added at the time, and the upcoming osmo-e1d VTY port had to be added, too. Change-Id: If4128991efdba3a1c3c38e6cd688593a212346f6 --- M common/chapters/port_numbers.adoc 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/common/chapters/port_numbers.adoc b/common/chapters/port_numbers.adoc index 2ab698a..fdb8ef9 100644 --- a/common/chapters/port_numbers.adoc +++ b/common/chapters/port_numbers.adoc @@ -45,6 +45,9 @@ |TCP|4265|Control Interface|osmo-cbc |TCP|4266|D-GSM MS Lookup: mDNS serve|osmo-hlr |TCP|4267|Control Interface|osmo-mgw +|TCP|4268|telnet (VTY)|osmo-uecups +|SCTP|4268|UECUPS|osmo-uecups +|TCP|4269|telnet (VTY)|osmo-e1d |UDP|4729|GSMTAP|Almost every osmocom project |TCP|5000|A/IP|osmo-bsc, osmo-bsc_nat |UDP|23000|GPRS-NS over IP default port|osmo-pcu, osmo-sgsn, osmo-gbproxy -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/19039 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: If4128991efdba3a1c3c38e6cd688593a212346f6 Gerrit-Change-Number: 19039 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:09:58 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:09:58 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: Change default for clock_advance to 2 In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17766 ) Change subject: osmo-bts-trx: Change default for clock_advance to 2 ...................................................................... Removed Code-Review+1 by laforge -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7da3d0948f38e12342fb714b29f8edc5e9d0933d Gerrit-Change-Number: 17766 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:10:38 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:10:38 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18972 ) Change subject: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4337cfdc393ec44df9bb9824ba4981eaf5b45f0b Gerrit-Change-Number: 18972 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 06: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 Tue Jun 30 06:10:57 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 06:10:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18972 ) Change subject: osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state ...................................................................... osmo-bts-trx/scheduler: get rid of unused 'meas' in l1sched_chan_state Change-Id: I4337cfdc393ec44df9bb9824ba4981eaf5b45f0b --- M include/osmo-bts/scheduler.h 1 file changed, 1 insertion(+), 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/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index e65665f..bc2fb69 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -127,10 +127,7 @@ uint8_t dl_encr_key[MAX_A5_KEY_LEN]; /* measurements */ - struct { - int32_t toa256_sum; /* sum of TOA values (1/256 symbol) */ - int toa_num; /* number of TOA value */ - } meas; + /* TODO: measurement history (ring buffer) will be added here */ /* handover */ bool ho_rach_detect; /* if rach detection is on */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4337cfdc393ec44df9bb9824ba4981eaf5b45f0b Gerrit-Change-Number: 18972 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 06:28:49 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 30 Jun 2020 06:28:49 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx/scheduler: refactor UL burst measurement processing In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/18973 ) Change subject: osmo-bts-trx/scheduler: refactor UL burst measurement processing ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/18973/3/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/c/osmo-bts/+/18973/3/src/osmo-bts-trx/scheduler_trx.c at 372 PS3, Line 372: /* Add a set of UL burst measurements to the history */ > those kind of functions (non-static, relatively self-contained) should make good candidates for uni [?] Ack, will add a unit test. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b02b51fea5664f161382a4ddc63dbf14ffc9ac5 Gerrit-Change-Number: 18973 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: neels Gerrit-Comment-Date: Tue, 30 Jun 2020 06:28: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 Tue Jun 30 07:44:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 07:44:16 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 to look at the new patch set (#4). Change subject: Add osmo-e1d-pipe utility ...................................................................... Add osmo-e1d-pipe utility This adds the 'osmo-e1d-pipe' utlility program, which can be used as a command-line client to open a given E1 timeslot and connect it to stdin/stdout. This in turn allows to rediect file input/output via the shell. Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 --- M .gitignore M src/Makefile.am A src/e1d-ts-pipe.c 3 files changed, 202 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/60/19060/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-CC: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 07:45:59 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 07:45:59 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19060 ) Change subject: Add osmo-e1d-pipe utility ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/19060/3/src/e1d-ts-pipe.c File src/e1d-ts-pipe.c: https://gerrit.osmocom.org/c/osmo-e1d/+/19060/3/src/e1d-ts-pipe.c at 1 PS3, Line 1: /* Virtual E1 interface pair: Two virtual interfaces with N lines each, > That comment doesn't match this file Done -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 07:45:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 07:49:31 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 07:49:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify System Information presence on RSL startup In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062 ) Change subject: bsc: verify System Information presence on RSL startup ...................................................................... Patch Set 2: I think what is needed here is to play via VTY with the relevant settings impacting presence and content of the respective SI + verification of that content (+changes). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19062 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6a8ef404087efee491390dc1d2452ac323f145f0 Gerrit-Change-Number: 19062 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 30 Jun 2020 07:49:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 08:07:36 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Tue, 30 Jun 2020 08:07:36 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19060 ) Change subject: Add osmo-e1d-pipe utility ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 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 Tue Jun 30 08:40:39 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 08:40:39 +0000 Subject: Change in osmo-trx[master]: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19049 ) Change subject: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea Gerrit-Change-Number: 19049 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 08:40: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 Jun 30 08:40:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 08:40:46 +0000 Subject: Change in osmo-trx[master]: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19049 ) Change subject: trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds ...................................................................... trx_rate_ctr: Fix immediate rescheduling on per-sec thresholds For instance, use in VTY: "ctr-error-threshold tx_underruns 5 per-second" If the condition becomes true (eg 5 underruns happened in one sec), the statement inside OSMO_MAX would become -1, but it was being handled as an unsigned when doing the OSMO_MAX internal comparison. As a result, OSMO_MAX((unsigned)-1, 1) was returning -1 (unsigned) stored in threshold_timer_sched_secs which then became and int -1, which was handled by osmo_timer_schedule as a 0, hence having an immediate trigerring all the time. While at it, make threshold_timer_sched_secs unsigned since it doesn't make sense to have it as signed anyway. Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea --- M CommonLibs/trx_rate_ctr.cpp 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Objections: neels: I would prefer this is not merged as is diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index d10b315..381b387 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -81,7 +81,7 @@ struct osmo_timer_list threshold_timer; static LLIST_HEAD(threshold_list); -static int threshold_timer_sched_secs; +static unsigned int threshold_timer_sched_secs; static bool threshold_initied; const struct value_string rate_ctr_intv[] = { @@ -260,7 +260,7 @@ } - threshold_timer_sched_secs = OSMO_MAX(min_secs / 2 - 1, 1); + threshold_timer_sched_secs = OSMO_MAX((int)(min_secs / 2 - 1), 1); LOGC(DMAIN, INFO) << "New ctr-error-threshold check interval: " << threshold_timer_sched_secs << " seconds"; osmo_timer_schedule(&threshold_timer, threshold_timer_sched_secs, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6ea3d64dff189a5bc924e72d846e02d50536a8ea Gerrit-Change-Number: 19049 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 08:40:46 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 08:40:46 +0000 Subject: Change in osmo-trx[master]: Rename device specific rate counter multi-thread helpers In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19050 ) Change subject: Rename device specific rate counter multi-thread helpers ...................................................................... Rename device specific rate counter multi-thread helpers RadioInterface ones will be added in next commit, so let's differentiate the structs required for each one. Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975 --- M CommonLibs/trx_rate_ctr.cpp M CommonLibs/trx_rate_ctr.h 2 files changed, 49 insertions(+), 49 deletions(-) Approvals: neels: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index 381b387..e941cf0 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -67,17 +67,17 @@ #include "Threads.h" #include "Logger.h" -/* Used in ctrs_pending, when set it means that channel slot contains unused +/* Used in dev_ctrs_pending, when set it means that channel slot contains unused (non-pending) counter data */ #define PENDING_CHAN_NONE SIZE_MAX static void *trx_rate_ctr_ctx; static struct rate_ctr_group** rate_ctrs; -static struct device_counters* ctrs_pending; +static struct device_counters* dev_ctrs_pending; static size_t chan_len; -static struct osmo_fd rate_ctr_timerfd; -static Mutex rate_ctr_mutex; +static struct osmo_fd dev_rate_ctr_timerfd; +static Mutex dev_rate_ctr_mutex; struct osmo_timer_list threshold_timer; static LLIST_HEAD(threshold_list); @@ -93,22 +93,22 @@ }; const struct value_string trx_chan_ctr_names[] = { - { TRX_CTR_RX_OVERRUNS, "rx_overruns" }, - { TRX_CTR_TX_UNDERRUNS, "tx_underruns" }, - { TRX_CTR_RX_DROP_EV, "rx_drop_events" }, - { TRX_CTR_RX_DROP_SMPL, "rx_drop_samples" }, - { TRX_CTR_TX_DROP_EV, "tx_drop_events" }, - { TRX_CTR_TX_DROP_SMPL, "tx_drop_samples" }, + { TRX_CTR_DEV_RX_OVERRUNS, "rx_overruns" }, + { TRX_CTR_DEV_TX_UNDERRUNS, "tx_underruns" }, + { TRX_CTR_DEV_RX_DROP_EV, "rx_drop_events" }, + { TRX_CTR_DEV_RX_DROP_SMPL, "rx_drop_samples" }, + { TRX_CTR_DEV_TX_DROP_EV, "tx_drop_events" }, + { TRX_CTR_DEV_TX_DROP_SMPL, "tx_drop_samples" }, { 0, NULL } }; static const struct rate_ctr_desc trx_chan_ctr_desc[] = { - [TRX_CTR_RX_OVERRUNS] = { "device:rx_overruns", "Number of Rx overruns in FIFO queue" }, - [TRX_CTR_TX_UNDERRUNS] = { "device:tx_underruns", "Number of Tx underruns in FIFO queue" }, - [TRX_CTR_RX_DROP_EV] = { "device:rx_drop_events", "Number of times Rx samples were dropped by HW" }, - [TRX_CTR_RX_DROP_SMPL] = { "device:rx_drop_samples", "Number of Rx samples dropped by HW" }, - [TRX_CTR_TX_DROP_EV] = { "device:tx_drop_events", "Number of times Tx samples were dropped by HW" }, - [TRX_CTR_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" } + [TRX_CTR_DEV_RX_OVERRUNS] = { "device:rx_overruns", "Number of Rx overruns in FIFO queue" }, + [TRX_CTR_DEV_TX_UNDERRUNS] = { "device:tx_underruns", "Number of Tx underruns in FIFO queue" }, + [TRX_CTR_DEV_RX_DROP_EV] = { "device:rx_drop_events", "Number of times Rx samples were dropped by HW" }, + [TRX_CTR_DEV_RX_DROP_SMPL] = { "device:rx_drop_samples", "Number of Rx samples dropped by HW" }, + [TRX_CTR_DEV_TX_DROP_EV] = { "device:tx_drop_events", "Number of times Tx samples were dropped by HW" }, + [TRX_CTR_DEV_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" } }; static const struct rate_ctr_group_desc trx_chan_ctr_group_desc = { @@ -119,34 +119,34 @@ .ctr_desc = trx_chan_ctr_desc, }; -static int rate_ctr_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { +static int dev_rate_ctr_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { size_t chan; struct rate_ctr *ctr; - LOGC(DMAIN, NOTICE) << "Main thread is updating counters"; - rate_ctr_mutex.lock(); + LOGC(DMAIN, NOTICE) << "Main thread is updating Device counters"; + dev_rate_ctr_mutex.lock(); for (chan = 0; chan < chan_len; chan++) { - if (ctrs_pending[chan].chan == PENDING_CHAN_NONE) + if (dev_ctrs_pending[chan].chan == PENDING_CHAN_NONE) continue; LOGCHAN(chan, DMAIN, INFO) << "rate_ctr update"; - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_RX_OVERRUNS]; - rate_ctr_add(ctr, ctrs_pending[chan].rx_overruns - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TX_UNDERRUNS]; - rate_ctr_add(ctr, ctrs_pending[chan].tx_underruns - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_RX_DROP_EV]; - rate_ctr_add(ctr, ctrs_pending[chan].rx_dropped_events - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_RX_DROP_SMPL]; - rate_ctr_add(ctr, ctrs_pending[chan].rx_dropped_samples - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TX_DROP_EV]; - rate_ctr_add(ctr, ctrs_pending[chan].tx_dropped_events - ctr->current); - ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TX_DROP_SMPL]; - rate_ctr_add(ctr, ctrs_pending[chan].tx_dropped_samples - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_RX_OVERRUNS]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].rx_overruns - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_TX_UNDERRUNS]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].tx_underruns - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_RX_DROP_EV]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].rx_dropped_events - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_RX_DROP_SMPL]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].rx_dropped_samples - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_TX_DROP_EV]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].tx_dropped_events - ctr->current); + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_DEV_TX_DROP_SMPL]; + rate_ctr_add(ctr, dev_ctrs_pending[chan].tx_dropped_samples - ctr->current); /* Mark as done */ - ctrs_pending[chan].chan = PENDING_CHAN_NONE; + dev_ctrs_pending[chan].chan = PENDING_CHAN_NONE; } - if (osmo_timerfd_disable(&rate_ctr_timerfd) < 0) + if (osmo_timerfd_disable(&dev_rate_ctr_timerfd) < 0) LOGC(DMAIN, ERROR) << "Failed to disable timerfd"; - rate_ctr_mutex.unlock(); + dev_rate_ctr_mutex.unlock(); return 0; } @@ -165,12 +165,12 @@ case S_DEVICE_COUNTER_CHANGE: ctr = (struct device_counters *)signal_data; LOGCHAN(ctr->chan, DMAIN, NOTICE) << "Received counter change from radioDevice"; - rate_ctr_mutex.lock(); - ctrs_pending[ctr->chan] = *ctr; - if (osmo_timerfd_schedule(&rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { + dev_rate_ctr_mutex.lock(); + dev_ctrs_pending[ctr->chan] = *ctr; + if (osmo_timerfd_schedule(&dev_rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { LOGC(DMAIN, ERROR) << "Failed to schedule timerfd: " << errno << " = "<< strerror(errno); } - rate_ctr_mutex.unlock(); + dev_rate_ctr_mutex.unlock(); break; default: break; @@ -272,19 +272,19 @@ size_t i; trx_rate_ctr_ctx = ctx; chan_len = trx_ctx->cfg.num_chans; - ctrs_pending = (struct device_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct device_counters)); + dev_ctrs_pending = (struct device_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct device_counters)); rate_ctrs = (struct rate_ctr_group**) talloc_zero_size(ctx, chan_len * sizeof(struct rate_ctr_group*)); for (i = 0; i < chan_len; i++) { - ctrs_pending[i].chan = PENDING_CHAN_NONE; + dev_ctrs_pending[i].chan = PENDING_CHAN_NONE; rate_ctrs[i] = rate_ctr_group_alloc(ctx, &trx_chan_ctr_group_desc, i); if (!rate_ctrs[i]) { LOGCHAN(i, DMAIN, ERROR) << "Failed to allocate rate ctr"; exit(1); } } - rate_ctr_timerfd.fd = -1; - if (osmo_timerfd_setup(&rate_ctr_timerfd, rate_ctr_timerfd_cb, NULL) < 0) { + dev_rate_ctr_timerfd.fd = -1; + if (osmo_timerfd_setup(&dev_rate_ctr_timerfd, dev_rate_ctr_timerfd_cb, NULL) < 0) { LOGC(DMAIN, ERROR) << "Failed to setup timerfd"; exit(1); } diff --git a/CommonLibs/trx_rate_ctr.h b/CommonLibs/trx_rate_ctr.h index 155f413..e122f99 100644 --- a/CommonLibs/trx_rate_ctr.h +++ b/CommonLibs/trx_rate_ctr.h @@ -4,12 +4,12 @@ #include enum TrxCtr { - TRX_CTR_RX_OVERRUNS, - TRX_CTR_TX_UNDERRUNS, - TRX_CTR_RX_DROP_EV, - TRX_CTR_RX_DROP_SMPL, - TRX_CTR_TX_DROP_EV, - TRX_CTR_TX_DROP_SMPL, + TRX_CTR_DEV_RX_OVERRUNS, + TRX_CTR_DEV_TX_UNDERRUNS, + TRX_CTR_DEV_RX_DROP_EV, + TRX_CTR_DEV_RX_DROP_SMPL, + TRX_CTR_DEV_TX_DROP_EV, + TRX_CTR_DEV_TX_DROP_SMPL, }; struct ctr_threshold { -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ib0e142a1dd4bedefdb4c5f15c34132da872c0975 Gerrit-Change-Number: 19050 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Jun 30 08:40:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 08:40:47 +0000 Subject: Change in osmo-trx[master]: Introduce rate counter tx_stale_bursts In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/19051 ) Change subject: Introduce rate counter tx_stale_bursts ...................................................................... Introduce rate counter tx_stale_bursts This allows checking if there's timing issues on the downlink side between osmo-bts-trx and osmo-trx. This counter is useful to find information about osmo-bts-trx 'fn-advance' setting, since this counter basically counts if burstrs from it arrived too late to osmo-trx. Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 --- M CommonLibs/osmo_signal.h M CommonLibs/trx_rate_ctr.cpp M CommonLibs/trx_rate_ctr.h M CommonLibs/trx_vty.c M Transceiver52M/Transceiver.cpp M Transceiver52M/Transceiver.h 6 files changed, 73 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/CommonLibs/osmo_signal.h b/CommonLibs/osmo_signal.h index ceb7d6f..de17b1d 100644 --- a/CommonLibs/osmo_signal.h +++ b/CommonLibs/osmo_signal.h @@ -43,6 +43,7 @@ (struct device_counters). Must be sent with PTHREAD_CANCEL_DISABLE to avoid deadlocks in case osmo-trx process is asked to exit. */ S_DEVICE_COUNTER_CHANGE, + S_TRX_COUNTER_CHANGE, /* same, but for Transceiver class */ }; /* signal cb for signal */ @@ -55,3 +56,9 @@ unsigned int tx_dropped_events; unsigned int tx_dropped_samples; }; + +/* signal cb for signal */ +struct trx_counters { + size_t chan; + unsigned int tx_stale_bursts; /* Amount of Tx bursts dropped to to arriving too late from TRXD */ +}; diff --git a/CommonLibs/trx_rate_ctr.cpp b/CommonLibs/trx_rate_ctr.cpp index e941cf0..76aff7d 100644 --- a/CommonLibs/trx_rate_ctr.cpp +++ b/CommonLibs/trx_rate_ctr.cpp @@ -75,9 +75,12 @@ static struct rate_ctr_group** rate_ctrs; static struct device_counters* dev_ctrs_pending; +static struct trx_counters* trx_ctrs_pending; static size_t chan_len; static struct osmo_fd dev_rate_ctr_timerfd; +static struct osmo_fd trx_rate_ctr_timerfd; static Mutex dev_rate_ctr_mutex; +static Mutex trx_rate_ctr_mutex; struct osmo_timer_list threshold_timer; static LLIST_HEAD(threshold_list); @@ -99,6 +102,7 @@ { TRX_CTR_DEV_RX_DROP_SMPL, "rx_drop_samples" }, { TRX_CTR_DEV_TX_DROP_EV, "tx_drop_events" }, { TRX_CTR_DEV_TX_DROP_SMPL, "tx_drop_samples" }, + { TRX_CTR_TRX_TX_STALE_BURSTS, "tx_stale_bursts" }, { 0, NULL } }; @@ -108,7 +112,8 @@ [TRX_CTR_DEV_RX_DROP_EV] = { "device:rx_drop_events", "Number of times Rx samples were dropped by HW" }, [TRX_CTR_DEV_RX_DROP_SMPL] = { "device:rx_drop_samples", "Number of Rx samples dropped by HW" }, [TRX_CTR_DEV_TX_DROP_EV] = { "device:tx_drop_events", "Number of times Tx samples were dropped by HW" }, - [TRX_CTR_DEV_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" } + [TRX_CTR_DEV_TX_DROP_SMPL] = { "device:tx_drop_samples", "Number of Tx samples dropped by HW" }, + [TRX_CTR_TRX_TX_STALE_BURSTS] = { "trx:tx_stale_bursts", "Number of Tx burts dropped by TRX due to arriving too late" }, }; static const struct rate_ctr_group_desc trx_chan_ctr_group_desc = { @@ -150,11 +155,32 @@ return 0; } +static int trx_rate_ctr_timerfd_cb(struct osmo_fd *ofd, unsigned int what) { + size_t chan; + struct rate_ctr *ctr; + LOGC(DMAIN, NOTICE) << "Main thread is updating Transceiver counters"; + dev_rate_ctr_mutex.lock(); + for (chan = 0; chan < chan_len; chan++) { + if (trx_ctrs_pending[chan].chan == PENDING_CHAN_NONE) + continue; + LOGCHAN(chan, DMAIN, INFO) << "rate_ctr update"; + ctr = &rate_ctrs[chan]->ctr[TRX_CTR_TRX_TX_STALE_BURSTS]; + rate_ctr_add(ctr, trx_ctrs_pending[chan].tx_stale_bursts - ctr->current); + /* Mark as done */ + trx_ctrs_pending[chan].chan = PENDING_CHAN_NONE; + } + if (osmo_timerfd_disable(&trx_rate_ctr_timerfd) < 0) + LOGC(DMAIN, ERROR) << "Failed to disable timerfd"; + trx_rate_ctr_mutex.unlock(); + return 0; +} + /* Callback function to be called every time we receive a signal from DEVICE */ static int device_sig_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { - struct device_counters *ctr; + struct device_counters *dev_ctr; + struct trx_counters *trx_ctr; /* Delay sched around 20 ms, in case we receive several calls from several * channels batched */ struct timespec next_sched = {.tv_sec = 0, .tv_nsec = 20*1000*1000}; @@ -163,15 +189,25 @@ switch (signal) { case S_DEVICE_COUNTER_CHANGE: - ctr = (struct device_counters *)signal_data; - LOGCHAN(ctr->chan, DMAIN, NOTICE) << "Received counter change from radioDevice"; + dev_ctr = (struct device_counters *)signal_data; + LOGCHAN(dev_ctr->chan, DMAIN, NOTICE) << "Received counter change from radioDevice"; dev_rate_ctr_mutex.lock(); - dev_ctrs_pending[ctr->chan] = *ctr; + dev_ctrs_pending[dev_ctr->chan] = *dev_ctr; if (osmo_timerfd_schedule(&dev_rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { LOGC(DMAIN, ERROR) << "Failed to schedule timerfd: " << errno << " = "<< strerror(errno); } dev_rate_ctr_mutex.unlock(); break; + case S_TRX_COUNTER_CHANGE: + trx_ctr = (struct trx_counters *)signal_data; + LOGCHAN(trx_ctr->chan, DMAIN, NOTICE) << "Received counter change from Transceiver"; + trx_rate_ctr_mutex.lock(); + trx_ctrs_pending[trx_ctr->chan] = *trx_ctr; + if (osmo_timerfd_schedule(&trx_rate_ctr_timerfd, &next_sched, &intv_sched) < 0) { + LOGC(DMAIN, ERROR) << "Failed to schedule timerfd: " << errno << " = "<< strerror(errno); + } + trx_rate_ctr_mutex.unlock(); + break; default: break; } @@ -273,10 +309,12 @@ trx_rate_ctr_ctx = ctx; chan_len = trx_ctx->cfg.num_chans; dev_ctrs_pending = (struct device_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct device_counters)); + trx_ctrs_pending = (struct trx_counters*) talloc_zero_size(ctx, chan_len * sizeof(struct trx_counters)); rate_ctrs = (struct rate_ctr_group**) talloc_zero_size(ctx, chan_len * sizeof(struct rate_ctr_group*)); for (i = 0; i < chan_len; i++) { dev_ctrs_pending[i].chan = PENDING_CHAN_NONE; + trx_ctrs_pending[i].chan = PENDING_CHAN_NONE; rate_ctrs[i] = rate_ctr_group_alloc(ctx, &trx_chan_ctr_group_desc, i); if (!rate_ctrs[i]) { LOGCHAN(i, DMAIN, ERROR) << "Failed to allocate rate ctr"; @@ -288,6 +326,11 @@ LOGC(DMAIN, ERROR) << "Failed to setup timerfd"; exit(1); } + trx_rate_ctr_timerfd.fd = -1; + if (osmo_timerfd_setup(&trx_rate_ctr_timerfd, trx_rate_ctr_timerfd_cb, NULL) < 0) { + LOGC(DMAIN, ERROR) << "Failed to setup timerfd"; + exit(1); + } osmo_signal_register_handler(SS_DEVICE, device_sig_cb, NULL); /* Now set up threshold checks */ diff --git a/CommonLibs/trx_rate_ctr.h b/CommonLibs/trx_rate_ctr.h index e122f99..588ac2f 100644 --- a/CommonLibs/trx_rate_ctr.h +++ b/CommonLibs/trx_rate_ctr.h @@ -10,6 +10,7 @@ TRX_CTR_DEV_RX_DROP_SMPL, TRX_CTR_DEV_TX_DROP_EV, TRX_CTR_DEV_TX_DROP_SMPL, + TRX_CTR_TRX_TX_STALE_BURSTS, }; struct ctr_threshold { diff --git a/CommonLibs/trx_vty.c b/CommonLibs/trx_vty.c index 3f875f5..f085d09 100644 --- a/CommonLibs/trx_vty.c +++ b/CommonLibs/trx_vty.c @@ -390,7 +390,7 @@ return -1; } -#define THRESHOLD_ARGS "(rx_overruns|tx_underruns|rx_drop_events|rx_drop_samples|tx_drop_events|tx_drop_samples)" +#define THRESHOLD_ARGS "(rx_overruns|tx_underruns|rx_drop_events|rx_drop_samples|tx_drop_events|tx_drop_samples|tx_stale_bursts)" #define THRESHOLD_STR_VAL(s) "Set threshold value for rate_ctr device:" OSMO_STRINGIFY_VAL(s) "\n" #define THRESHOLD_STRS \ THRESHOLD_STR_VAL(rx_overruns) \ @@ -398,7 +398,8 @@ THRESHOLD_STR_VAL(rx_drop_events) \ THRESHOLD_STR_VAL(rx_drop_samples) \ THRESHOLD_STR_VAL(tx_drop_events) \ - THRESHOLD_STR_VAL(tx_drop_samples) + THRESHOLD_STR_VAL(tx_drop_samples) \ + THRESHOLD_STR_VAL(tx_stale_bursts) #define INTV_ARGS "(per-second|per-minute|per-hour|per-day)" #define INTV_STR_VAL(s) "Threshold value sampled " OSMO_STRINGIFY_VAL(s) "\n" #define INTV_STRS \ diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 7a81b7b..941b761 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -420,18 +420,29 @@ std::vector bursts(mChans); std::vector zeros(mChans); std::vector filler(mChans, true); + bool stale_bursts_changed; for (size_t i = 0; i < mChans; i ++) { state = &mStates[i]; + stale_bursts_changed = false; while ((burst = mTxPriorityQueues[i].getStaleBurst(nowTime))) { LOGCHAN(i, DTRXDDL, NOTICE) << "dumping STALE burst in TRX->SDR interface (" << burst->getTime() <<" vs " << nowTime << "), retrans=" << state->mRetrans; + state->ctrs.tx_stale_bursts++; + stale_bursts_changed = true; if (state->mRetrans) updateFillerTable(i, burst); delete burst; } + if (stale_bursts_changed) { + thread_enable_cancel(false); + state->ctrs.chan = i; + osmo_signal_dispatch(SS_DEVICE, S_TRX_COUNTER_CHANGE, &state->ctrs); + thread_enable_cancel(true); + } + TN = nowTime.TN(); modFN = nowTime.FN() % state->fillerModulus[TN]; diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h index 6e0d157..7ce5fa2 100644 --- a/Transceiver52M/Transceiver.h +++ b/Transceiver52M/Transceiver.h @@ -83,6 +83,9 @@ /* Shadowed downlink attenuation */ int mPower; + + /* counters */ + struct trx_counters ctrs; }; /** The Transceiver class, responsible for physical layer of basestation */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/19051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Id6df00da81f6d6884f4dddc5a2c4b354dca3af97 Gerrit-Change-Number: 19051 Gerrit-PatchSet: 1 Gerrit-Owner: pespin 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 Jun 30 11:00:04 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 11:00:04 +0000 Subject: Change in osmo-bsc[master]: create ASP+AS only once per cs7 instance In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19003 ) Change subject: create ASP+AS only once per cs7 instance ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I16f4f7f447f69525a2f57c4649ab295112904d6a Gerrit-Change-Number: 19003 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 11:00: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 Jun 30 11:38:14 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 30 Jun 2020 11:38:14 +0000 Subject: Change in osmo-bsc[master]: gsm_04_08_rr: fix hopping parameters in RR Assignment Command References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19063 ) Change subject: gsm_04_08_rr: fix hopping parameters in RR Assignment Command ...................................................................... gsm_04_08_rr: fix hopping parameters in RR Assignment Command According to 3GPP TS 44.018, section 9.1.2.4, if at least one of the Channel Description IEs indicates frequency hopping, one and only one of the following IEs shall be present: - Mobile Allocation, after time (see 10.5.2.21); - Frequency List, after time (see 10.5.2.13). For some reason, osmo-bsc includes the GSM48_IE_MA_BEFORE instead of GSM48_IE_MA_AFTER - fix this. According to section 9.1.2.6 of the same document, if any of the Mobile Allocation IEs (before/after time) is present, then the network must ensure that either the MS has already received the the proper reference cell frequency list (CA), or that the Cell Channel Description IE (see 10.5.2.1b) is present. Without this IE, the phone I was using in my testing setup sends RR Status message with cause #100 "conditional IE error". Fortunately, we already have generate_cell_chan_list(), since we also need to include the Cell Channel Description in SI Type 1. Change-Id: I43ef66c109b107ebcaa1cb6197637701b13b3787 Related: SYS#4868, OS#4545, OS#4546 --- M src/osmo-bsc/gsm_04_08_rr.c 1 file changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/19063/1 diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 8a74aab..2fca5dd 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -44,6 +44,7 @@ #include #include +extern int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); int gsm48_sendmsg(struct msgb *msg) { @@ -576,13 +577,18 @@ gsm48_lchan2chan_desc(&ass->chan_desc, lchan); ass->power_command = power_command; - /* optional: cell channel description */ + /* 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; + } msgb_tv_put(msg, GSM48_IE_CHANMODE_1, lchan->tch_mode); - /* mobile allocation in case of hopping */ + /* Mobile Allocation (freq. hopping), TLV (see 3GPP TS 44.018, 10.5.2.21) */ if (lchan->ts->hopping.enabled) { - msgb_tlv_put(msg, GSM48_IE_MA_BEFORE, lchan->ts->hopping.ma_len, + msgb_tlv_put(msg, GSM48_IE_MA_AFTER, lchan->ts->hopping.ma_len, lchan->ts->hopping.ma_data); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19063 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I43ef66c109b107ebcaa1cb6197637701b13b3787 Gerrit-Change-Number: 19063 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 Jun 30 12:16:23 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 12:16:23 +0000 Subject: Change in osmo-bsc[master]: gsm_04_08_rr: fix hopping parameters in RR Assignment Command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/19063 ) Change subject: gsm_04_08_rr: fix hopping parameters in RR Assignment Command ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/19063/1/src/osmo-bsc/gsm_04_08_rr.c File src/osmo-bsc/gsm_04_08_rr.c: https://gerrit.osmocom.org/c/osmo-bsc/+/19063/1/src/osmo-bsc/gsm_04_08_rr.c at 47 PS1, Line 47: extern int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); can we add this to some header file please? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/19063 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I43ef66c109b107ebcaa1cb6197637701b13b3787 Gerrit-Change-Number: 19063 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 12:16: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 Tue Jun 30 12:23:50 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 30 Jun 2020 12:23:50 +0000 Subject: Change in osmo-gsm-tester[master]: {ms, enb}_srs: add method to read kpi from a test run In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 ) Change subject: {ms,enb}_srs: add method to read kpi from a test run ...................................................................... Patch Set 1: (6 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py File src/osmo_gsm_tester/obj/srslte_common.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 20 PS1, Line 20: class srslte_common(): > inherit from log. [?] Ack https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 26 PS1, Line 26: from kpi_analyzer import kpi_analyzer > So this kpi_analyzer is out of tree? What does it do exactly? can't it be mainlained? Please documen [?] I added a comment. It will be shipped with srsLTE in a script folder and can be used from there. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 28 PS1, Line 28: if self.log_file is not None: > add self. [?] Ack https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 29 PS1, Line 29: kpis["log_" + self.name()] = analyzer.get_kpi_from_logfile(self.log_file) > if you use self.name(), you definetly want to inherit from log.Origin here. Ack https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 30 PS1, Line 30: if self.process.get_output_file('stdout') is not None: > self. [?] Ack https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/1/src/osmo_gsm_tester/obj/srslte_common.py at 35 PS1, Line 35: print("Can't load KPI analyzer module.") > self.log() (or self. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 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: I28226a375f9ac4e08424c488062ae6a74a19af92 Gerrit-Change-Number: 18986 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: srs_andre Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 12:23:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 12:24:16 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 30 Jun 2020 12:24:16 +0000 Subject: Change in osmo-gsm-tester[master]: process: provide API to return filename for process output In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 to look at the new patch set (#2). Change subject: process: provide API to return filename for process output ...................................................................... process: provide API to return filename for process output this is useful if the caller handles the opening/reading from the file itself Change-Id: I5e70fd1593a5bc7902fa218aae6452103545e4e0 --- M src/osmo_gsm_tester/core/process.py 1 file changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/85/18985/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 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: I5e70fd1593a5bc7902fa218aae6452103545e4e0 Gerrit-Change-Number: 18985 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 12:24:16 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 30 Jun 2020 12:24:16 +0000 Subject: Change in osmo-gsm-tester[master]: {ms, enb}_srs: add method to read kpi from a test run In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 to look at the new patch set (#2). Change subject: {ms,enb}_srs: add method to read kpi from a test run ...................................................................... {ms,enb}_srs: add method to read kpi from a test run this method uses the kpi_analyzer module for analyzing stdout, CSV metrics and the logfile (if present). if the module can't be loaded, no KPI will be added. Change-Id: I28226a375f9ac4e08424c488062ae6a74a19af92 --- M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py A src/osmo_gsm_tester/obj/srslte_common.py 3 files changed, 57 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/86/18986/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 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: I28226a375f9ac4e08424c488062ae6a74a19af92 Gerrit-Change-Number: 18986 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: srs_andre Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 12:24:17 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 30 Jun 2020 12:24:17 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: remove comment introduced through copy+paste References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19064 ) Change subject: enb_srs: remove comment introduced through copy+paste ...................................................................... enb_srs: remove comment introduced through copy+paste Change-Id: I7d14ae5c17bd1cd1c1b23657dc60dc331519e32c --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/64/19064/1 diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index fe1ea4e..a945319 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -235,7 +235,7 @@ if cell_list is None or len(cell_list) < cell + 1: raise log.Error('cell_list attribute or subitem not found!') rfemu_cfg = cell_list[cell].get('dl_rfemu', None) - if rfemu_cfg is None: # craft amarisfot by default: + if rfemu_cfg is None: raise log.Error('rfemu attribute not found in cell_list item!') rfemu_obj = rfemu.get_instance_by_type(rfemu_cfg['type'], rfemu_cfg) return rfemu_obj -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19064 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: I7d14ae5c17bd1cd1c1b23657dc60dc331519e32c Gerrit-Change-Number: 19064 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 12:29:59 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 12:29:59 +0000 Subject: Change in osmo-gsm-tester[master]: process: provide API to return filename for process output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 ) Change subject: process: provide API to return filename for process output ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18985 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: I5e70fd1593a5bc7902fa218aae6452103545e4e0 Gerrit-Change-Number: 18985 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 12: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 Tue Jun 30 12:33:05 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 12:33:05 +0000 Subject: Change in osmo-gsm-tester[master]: {ms, enb}_srs: add method to read kpi from a test run In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 ) Change subject: {ms,enb}_srs: add method to read kpi from a test run ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/2/src/osmo_gsm_tester/obj/srslte_common.py File src/osmo_gsm_tester/obj/srslte_common.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/2/src/osmo_gsm_tester/obj/srslte_common.py at 24 PS2, Line 24: def __init__(self, name, run_dir): You don't seem to be using this run_dir. BTW, you should be calling the log.Origin constructor here, check how other classes do it. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/2/src/osmo_gsm_tester/obj/srslte_common.py at 34 PS2, Line 34: # Please make sure the srsLTE scripts folder is included in your PYTHONPATH env variable shipped with srsLTE means srsLTE.git? if so write "srsLTE.git" there, or explain a bit better please. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 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: I28226a375f9ac4e08424c488062ae6a74a19af92 Gerrit-Change-Number: 18986 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: srs_andre Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 12:33:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 12:33:18 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 12:33:18 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: remove comment introduced through copy+paste In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19064 ) Change subject: enb_srs: remove comment introduced through copy+paste ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/19064 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: I7d14ae5c17bd1cd1c1b23657dc60dc331519e32c Gerrit-Change-Number: 19064 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 12:33:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 12:59:48 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 30 Jun 2020 12:59:48 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 to look at the new patch set (#9). Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_trunk.c M tests/mgcp/mgcp_test.c 3 files changed, 58 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 13:11:17 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 30 Jun 2020 13:11:17 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: Hello neels, laforge, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 to look at the new patch set (#10). Change subject: trunk: parse E1 trunk number ...................................................................... trunk: parse E1 trunk number The E1 trunk number is currently not parsed, whenever a trunk prefix is detected that indicates an E1 trunk, then the entire request is rejected. Parse the trunk number and select the trunk accordingly Related: OS#2547 Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 --- M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/mgcp_trunk.c M tests/mgcp/mgcp_test.c 3 files changed, 60 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/52/18752/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 13:13:49 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 30 Jun 2020 13:13:49 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 10: (1 comment) I have added a unit test now, so I hope we can go ahead now. https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c File src/libosmo-mgcp/mgcp_trunk.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/8/src/libosmo-mgcp/mgcp_trunk.c at 145 PS8, Line 145: epname + prefix_len == str_trunk_nr_end > given the amount of the discussion here, I think it would be good to have some kind of unit tests wi [?] Now I finally understand, you want the delimiter to be checked... -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 13:13:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: neels 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 Jun 30 13:23:27 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 30 Jun 2020 13:23:27 +0000 Subject: Change in osmo-gsm-tester[master]: {ms, enb}_srs: add method to read kpi from a test run In-Reply-To: References: Message-ID: srs_andre has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 ) Change subject: {ms,enb}_srs: add method to read kpi from a test run ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/2/src/osmo_gsm_tester/obj/srslte_common.py File src/osmo_gsm_tester/obj/srslte_common.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/2/src/osmo_gsm_tester/obj/srslte_common.py at 24 PS2, Line 24: def __init__(self, name, run_dir): > You don't seem to be using this run_dir. [?] added the superclass ctor() but it seems it needs the third argument. otherwise I get "takes 2 positional arguments but 3 were given" https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986/2/src/osmo_gsm_tester/obj/srslte_common.py at 34 PS2, Line 34: # Please make sure the srsLTE scripts folder is included in your PYTHONPATH env variable > shipped with srsLTE means srsLTE.git? if so write "srsLTE. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 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: I28226a375f9ac4e08424c488062ae6a74a19af92 Gerrit-Change-Number: 18986 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: srs_andre Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 13:23: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 Jun 30 13:24:21 2020 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Tue, 30 Jun 2020 13:24:21 +0000 Subject: Change in osmo-gsm-tester[master]: {ms, enb}_srs: add method to read kpi from a test run In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 to look at the new patch set (#3). Change subject: {ms,enb}_srs: add method to read kpi from a test run ...................................................................... {ms,enb}_srs: add method to read kpi from a test run this method uses the kpi_analyzer module for analyzing stdout, CSV metrics and the logfile (if present). if the module can't be loaded, no KPI will be added. Change-Id: I28226a375f9ac4e08424c488062ae6a74a19af92 --- M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py A src/osmo_gsm_tester/obj/srslte_common.py 3 files changed, 57 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/86/18986/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18986 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: I28226a375f9ac4e08424c488062ae6a74a19af92 Gerrit-Change-Number: 18986 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: srs_andre Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 15:14:43 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 15:14:43 +0000 Subject: Change in osmo-mgw[master]: trunk: parse E1 trunk number In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/18752 ) Change subject: trunk: parse E1 trunk number ...................................................................... Patch Set 10: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/18752/10/tests/mgcp/mgcp_test.c File tests/mgcp/mgcp_test.c: https://gerrit.osmocom.org/c/osmo-mgw/+/18752/10/tests/mgcp/mgcp_test.c at 2138 PS10, Line 2138: * the trunk number. Since the prefix has a fixt length, only fixed -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ifdaab953544151e73b58cc3e95d21afdb40765f4 Gerrit-Change-Number: 18752 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 15:14: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 Jun 30 15:44:14 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 15:44:14 +0000 Subject: Change in osmo-pcu[master]: pdch.cpp: Fix logging line format in rcv_block wrong length References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19065 ) Change subject: pdch.cpp: Fix logging line format in rcv_block wrong length ...................................................................... pdch.cpp: Fix logging line format in rcv_block wrong length Change-Id: I2f818021cef41ab6f4569cd87026072811853352 --- M src/pdch.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/65/19065/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index b97f4c7..7260e4a 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -754,8 +754,8 @@ enum CodingScheme cs = mcs_get_by_size_ul(len); if (!cs) { bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); - LOGP(DRLCMACUL, LOGL_ERROR, "Dropping data block with invalid" - "length: %d)\n", len); + LOGP(DRLCMACUL, LOGL_ERROR, "Dropping data block with invalid " + "length: %d\n", len); return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19065 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2f818021cef41ab6f4569cd87026072811853352 Gerrit-Change-Number: 19065 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 Jun 30 15:52:54 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 15:52:54 +0000 Subject: Change in osmo-pcu[master]: pdch.cpp: Fix logging line format in rcv_block wrong length 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/+/19065 to look at the new patch set (#2). Change subject: pdch.cpp: Fix logging line format in rcv_block wrong length ...................................................................... pdch.cpp: Fix logging line format in rcv_block wrong length Change-Id: I2f818021cef41ab6f4569cd87026072811853352 --- M src/pdch.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/65/19065/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19065 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2f818021cef41ab6f4569cd87026072811853352 Gerrit-Change-Number: 19065 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 16:23:37 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 16:23:37 +0000 Subject: Change in docker-playground[master]: Makefile: Support overriding LIBOSMOCORE_BRANCH References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/19066 ) Change subject: Makefile: Support overriding LIBOSMOCORE_BRANCH ...................................................................... Makefile: Support overriding LIBOSMOCORE_BRANCH gr-gsm-master is using it but it cannot be overriden. Similarly iy can be helpful to do so in temporarliy modified images when testing libosmocore features. Change-Id: Ia9f26f3513da339d2255a0f6b2277682fe15bdf2 --- M make/Makefile 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/66/19066/1 diff --git a/make/Makefile b/make/Makefile index 0dd111c..d483082 100644 --- a/make/Makefile +++ b/make/Makefile @@ -16,6 +16,7 @@ REGISTRY_HOST?=docker.io USERNAME?=$(USER) NAME?=$(shell basename $(CURDIR)) +LIBOSMOCORE_BRANCH?=master OSMO_TTCN3_BRANCH?=master OSMO_BB_BRANCH?=master OSMO_BSC_BRANCH?=master @@ -60,6 +61,7 @@ --build-arg USER=$(USERNAME) \ --build-arg OSMO_TTCN3_BRANCH=$(OSMO_TTCN3_BRANCH) \ --build-arg DISTRO=$(DISTRO) \ + --build-arg LIBOSMOCORE_BRANCH=$(LIBOSMOCORE_BRANCH) \ --build-arg OSMO_BB_BRANCH=$(OSMO_BB_BRANCH) \ --build-arg OSMO_BSC_BRANCH=$(OSMO_BSC_BRANCH) \ --build-arg OSMO_BTS_BRANCH=$(OSMO_BTS_BRANCH) \ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/19066 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia9f26f3513da339d2255a0f6b2277682fe15bdf2 Gerrit-Change-Number: 19066 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 Jun 30 16:29:03 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 16:29:03 +0000 Subject: Change in libosmocore[master]: Revert "gsmtap_makemsg_ex: NULL for unknown chan_type" References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/19067 ) Change subject: Revert "gsmtap_makemsg_ex: NULL for unknown chan_type" ...................................................................... Revert "gsmtap_makemsg_ex: NULL for unknown chan_type" Reverting due to being completely normal for some applications to submit usning this channel type when decoding/parsing failed and hence not being able to determine channel type. This reverts commit 12f93be6073ed89055862baafbfe0e08e50ed17a. Change-Id: I6ebaa89cc3422df1d7fd2365a6176cb2902d1c67 --- M src/gsmtap_util.c 1 file changed, 1 insertion(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/67/19067/1 diff --git a/src/gsmtap_util.c b/src/gsmtap_util.c index 8674f1c..9a0ac02 100644 --- a/src/gsmtap_util.c +++ b/src/gsmtap_util.c @@ -169,8 +169,7 @@ * \param[in] snr Signal/Noise Ratio (SNR) * \param[in] data Pointer to data buffer * \param[in] len Length of \ref data - * \return dynamically allocated message buffer containing data, - * or NULL for unknown chan_type + * \return dynamically allocated message buffer containing data * * This function will allocate a new msgb and fill it with a GSMTAP * header containing the information @@ -183,9 +182,6 @@ struct gsmtap_hdr *gh; uint8_t *dst; - if (chan_type == GSMTAP_CHANNEL_UNKNOWN) - return NULL; - msg = msgb_alloc(sizeof(*gh) + len, "gsmtap_tx"); if (!msg) return NULL; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19067 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ebaa89cc3422df1d7fd2365a6176cb2902d1c67 Gerrit-Change-Number: 19067 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 Jun 30 16:37:01 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 16:37:01 +0000 Subject: Change in osmo-pcu[master]: Set correct GSMTAP channel type for PDTCH messages returning error References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/19068 ) Change subject: Set correct GSMTAP channel type for PDTCH messages returning error ...................................................................... Set correct GSMTAP channel type for PDTCH messages returning error For instance, that may happen because the len of the message is not filling the expect size (because padding is missing for example). Still, in this case we know the channel type, so we set it so that wireshark tries to decode the message as a data one. Change-Id: Ifea94095d669b528874e64ca823a776cd6e22b4b --- M src/pcu_l1_if.cpp 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/68/19068/1 diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 23f6fbb..7fa82fb 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -315,6 +315,7 @@ int rc; int current_fn = get_current_fn(); pcu_l1_meas meas; + uint8_t gsmtap_chantype; LOGP(DL1IF, LOGL_DEBUG, "Data indication received: sapi=%d arfcn=%d " "fn=%d cur_fn=%d block=%d data=%s\n", data_ind->sapi, @@ -335,19 +336,22 @@ rc = pcu_rx_data_ind_pdtch(data_ind->trx_nr, data_ind->ts_nr, data_ind->data, data_ind->len, data_ind->fn, &meas); + gsmtap_chantype = GSMTAP_CHANNEL_PDTCH; break; case PCU_IF_SAPI_BCCH: rc = pcu_rx_data_ind_bcch(data_ind->data, data_ind->len); + gsmtap_chantype = GSMTAP_CHANNEL_BCCH; break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU data indication with " "unsupported sapi %d\n", data_ind->sapi); rc = -EINVAL; + gsmtap_chantype = GSMTAP_CHANNEL_UNKNOWN; } if (rc < 0 && (bts->gsmtap_categ_mask & (1 <gsmtap, data_ind->arfcn | GSMTAP_ARFCN_F_UPLINK, data_ind->ts_nr, - GSMTAP_CHANNEL_UNKNOWN, 0, data_ind->fn, meas.rssi, meas.link_qual, data_ind->data, data_ind->len); + gsmtap_chantype, 0, data_ind->fn, meas.rssi, meas.link_qual, data_ind->data, data_ind->len); } return rc; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/19068 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifea94095d669b528874e64ca823a776cd6e22b4b Gerrit-Change-Number: 19068 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 Jun 30 17:35:19 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 17:35:19 +0000 Subject: Change in libosmo-abis[master]: fix compilation with --enable-e1d References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/19069 ) Change subject: fix compilation with --enable-e1d ...................................................................... fix compilation with --enable-e1d In Commit Ib81a749ae24013b17caaf5fd64ccd9acbbc3ce08 we introduced a syntax error leading to compile failure sfor --enable-e1d ever since. This hsan't been discovered as osmo-e1d support is not built automatically anywhere. Change-Id: If1f4bd9469a614470045716df4c35187ff2cc76b --- M src/input/e1d.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/69/19069/1 diff --git a/src/input/e1d.c b/src/input/e1d.c index 617c747..627fc52 100644 --- a/src/input/e1d.c +++ b/src/input/e1d.c @@ -257,7 +257,7 @@ if (!e1i_ts->lapd) { char name[32]; - e1inp_ts_name(name, e1i_ts); + e1inp_ts_name(name, sizeof(name), e1i_ts); e1i_ts->lapd = lapd_instance_alloc2(1, e1d_write_msg, bfd, e1inp_dlsap_up, e1i_ts, &lapd_profile_abis, name); -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/19069 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: If1f4bd9469a614470045716df4c35187ff2cc76b Gerrit-Change-Number: 19069 Gerrit-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 Jun 30 17:35:20 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 17:35:20 +0000 Subject: Change in libosmo-abis[master]: move flib_buf_bits() from DAHDI to shared flip.c References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/19070 ) Change subject: move flib_buf_bits() from DAHDI to shared flip.c ...................................................................... move flib_buf_bits() from DAHDI to shared flip.c Change-Id: I8c6dc3eea921a73ebe65540aad0f0c0584d47e5a --- M src/Makefile.am A src/flip.c A src/flip.h M src/input/dahdi.c M src/input/e1d.c 5 files changed, 36 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/70/19070/1 diff --git a/src/Makefile.am b/src/Makefile.am index 4254428..dae7e6e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -16,6 +16,7 @@ libosmoabis_la_SOURCES = init.c \ e1_input.c \ e1_input_vty.c \ + flip.c \ ipa_proxy.c \ subchan_demux.c \ trau_frame.c \ diff --git a/src/flip.c b/src/flip.c new file mode 100644 index 0000000..502503d --- /dev/null +++ b/src/flip.c @@ -0,0 +1,28 @@ +#include "flip.h" + +static uint8_t flip_table[256]; + +void init_flip_bits(void) +{ + int i,k; + + for (i = 0 ; i < 256 ; i++) { + uint8_t sample = 0 ; + for (k = 0; k<8; k++) { + if ( i & 1 << k ) sample |= 0x80 >> k; + } + flip_table[i] = sample; + } +} + +uint8_t *flip_buf_bits (uint8_t *buf , int len) +{ + int i; + uint8_t * start = buf; + + for (i = 0 ; i < len; i++) { + buf[i] = flip_table[(uint8_t)buf[i]]; + } + + return start; +} diff --git a/src/flip.h b/src/flip.h new file mode 100644 index 0000000..29b0178 --- /dev/null +++ b/src/flip.h @@ -0,0 +1,5 @@ +#pragma once +#include + +void init_flip_bits(void); +uint8_t *flip_buf_bits(uint8_t *buf, int len); diff --git a/src/input/dahdi.c b/src/input/dahdi.c index 075b7ff..80a4042 100644 --- a/src/input/dahdi.c +++ b/src/input/dahdi.c @@ -25,6 +25,7 @@ */ #include "config.h" +#include "flip.h" #include #include @@ -311,33 +312,6 @@ static int invertbits = 1; -static uint8_t flip_table[256]; - -static void init_flip_bits(void) -{ - int i,k; - - for (i = 0 ; i < 256 ; i++) { - uint8_t sample = 0 ; - for (k = 0; k<8; k++) { - if ( i & 1 << k ) sample |= 0x80 >> k; - } - flip_table[i] = sample; - } -} - -static uint8_t * flip_buf_bits ( uint8_t * buf , int len) -{ - int i; - uint8_t * start = buf; - - for (i = 0 ; i < len; i++) { - buf[i] = flip_table[(uint8_t)buf[i]]; - } - - return start; -} - #define D_BCHAN_TX_GRAN 160 /* write to a B channel TS */ static int handle_tsX_write(struct osmo_fd *bfd) diff --git a/src/input/e1d.c b/src/input/e1d.c index 627fc52..f23f631 100644 --- a/src/input/e1d.c +++ b/src/input/e1d.c @@ -23,6 +23,7 @@ */ #include "config.h" +#include "flip.h" #ifdef HAVE_E1D -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/19070 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I8c6dc3eea921a73ebe65540aad0f0c0584d47e5a Gerrit-Change-Number: 19070 Gerrit-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 Jun 30 17:35:21 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 17:35:21 +0000 Subject: Change in libosmo-abis[master]: input/e1d: Fix support for TRAU slots References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/19071 ) Change subject: input/e1d: Fix support for TRAU slots ...................................................................... input/e1d: Fix support for TRAU slots Change-Id: I2d7f85523089f4e1f2496d9836bced577eda4671 --- M src/input/e1d.c 1 file changed, 78 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/71/19071/1 diff --git a/src/input/e1d.c b/src/input/e1d.c index f23f631..4193fde 100644 --- a/src/input/e1d.c +++ b/src/input/e1d.c @@ -48,6 +48,8 @@ struct osmo_e1dp_client *g_e1d; +static int invertbits = 1; + /* pre-declaration */ extern struct e1inp_driver e1d_driver; static int e1d_want_write(struct e1inp_ts *e1i_ts); @@ -118,6 +120,76 @@ return 0; } +#define D_BCHAN_TX_GRAN 160 +#define D_TSX_ALLOC_SIZE (D_BCHAN_TX_GRAN) + +static int +handle_ts_trau_write(struct osmo_fd *bfd) +{ + struct e1inp_line *line = bfd->data; + unsigned int ts_nr = bfd->priv_nr; + struct e1inp_ts *e1i_ts = &line->ts[ts_nr-1]; + uint8_t tx_buf[D_BCHAN_TX_GRAN]; + struct subch_mux *mx = &e1i_ts->trau.mux; + int ret; + + ret = subchan_mux_out(mx, tx_buf, D_BCHAN_TX_GRAN); + + if (ret != D_BCHAN_TX_GRAN) { + LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "Huh, got ret of %d\n", ret); + if (ret < 0) + return ret; + } + + LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "BCHAN TX: %s\n", osmo_hexdump(tx_buf, D_BCHAN_TX_GRAN)); + + if (invertbits) { + flip_buf_bits(tx_buf, ret); + } + + ret = write(bfd->fd, tx_buf, ret); + if (ret < D_BCHAN_TX_GRAN) + LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "send returns %d instead of %d\n", + ret, D_BCHAN_TX_GRAN); + + return ret; +} + + +static int +handle_ts_trau_read(struct osmo_fd *bfd) +{ + struct e1inp_line *line = bfd->data; + unsigned int ts_nr = bfd->priv_nr; + struct e1inp_ts *e1i_ts = &line->ts[ts_nr-1]; + struct msgb *msg = msgb_alloc(D_TSX_ALLOC_SIZE, "E1D Rx TSx"); + int ret; + + if (!msg) + return -ENOMEM; + + ret = read(bfd->fd, msg->data, D_TSX_ALLOC_SIZE); + if (ret < 0 || ret != D_TSX_ALLOC_SIZE) { + LOGPITS(e1i_ts, DLINP, LOGL_DEBUG, "read error %d %s\n", ret, strerror(errno)); + return ret; + } + + if (invertbits) { + flip_buf_bits(msg->data, ret); + } + + msgb_put(msg, ret); + + msg->l2h = msg->data; + LOGPITS(e1i_ts, DLMIB, LOGL_DEBUG, "BCHAN RX: %s\n", osmo_hexdump(msgb_l2(msg), ret)); + ret = e1inp_rx_ts(e1i_ts, msg, 0, 0); + /* physical layer indicates that data has been sent, + * we thus can send some more data */ + ret = handle_ts_trau_write(bfd); + + return ret; +} + static void e1d_write_msg(struct msgb *msg, void *cbdata) @@ -150,6 +222,12 @@ if (what & BSC_FD_WRITE) ret = handle_ts_sign_write(bfd); break; + case E1INP_TS_TYPE_TRAU: + if (what & BSC_FD_READ) + ret = handle_ts_trau_read(bfd); + if (what & BSC_FD_WRITE) + ret = handle_ts_trau_write(bfd); + break; default: LOGPITS(e1i_ts, DLINP, LOGL_NOTICE, "unknown/unsupported E1 TS type %u\n", e1i_ts->type); break; -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/19071 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I2d7f85523089f4e1f2496d9836bced577eda4671 Gerrit-Change-Number: 19071 Gerrit-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 Jun 30 17:40:21 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 17:40:21 +0000 Subject: Change in libosmo-abis[master]: fix compilation with --enable-e1d In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/19069 ) Change subject: fix compilation with --enable-e1d ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/19069 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: If1f4bd9469a614470045716df4c35187ff2cc76b Gerrit-Change-Number: 19069 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 17:40:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 17:44:16 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 17:44:16 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: Hello tnt, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 to look at the new patch set (#5). Change subject: Add osmo-e1d-pipe utility ...................................................................... Add osmo-e1d-pipe utility This adds the 'osmo-e1d-pipe' utlility program, which can be used as a command-line client to open a given E1 timeslot and connect it to stdin/stdout. This in turn allows to rediect file input/output via the shell. Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 --- M .gitignore M src/Makefile.am A src/e1d-ts-pipe.c 3 files changed, 219 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/60/19060/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder 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 Tue Jun 30 17:44:17 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 17:44:17 +0000 Subject: Change in osmo-e1d[master]: vty: Print actual driver name instead of FIXME References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19072 ) Change subject: vty: Print actual driver name instead of FIXME ...................................................................... vty: Print actual driver name instead of FIXME Change-Id: I6f909cc493417f9e156672024f879a7294b4d816 --- M src/vty.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/72/19072/1 diff --git a/src/vty.c b/src/vty.c index 57a21bf..cc0df21 100644 --- a/src/vty.c +++ b/src/vty.c @@ -49,7 +49,8 @@ static void vty_dump_intf(struct vty *vty, const struct e1_intf *intf) { - vty_out(vty, "Interface #%u, Driver: FIXME%s", intf->id, VTY_NEWLINE); + vty_out(vty, "Interface #%u, Driver: %s%s", intf->id, + get_value_string(e1_driver_names, intf->drv), VTY_NEWLINE); } DEFUN(show_intf, show_intf_cmd, "show interface [<0-255>]", -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19072 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6f909cc493417f9e156672024f879a7294b4d816 Gerrit-Change-Number: 19072 Gerrit-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 Jun 30 17:52:51 2020 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Tue, 30 Jun 2020 17:52:51 +0000 Subject: Change in gapk[master]: don't assert just because a broken RTP packet (wrong lenth) is received In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/gapk/+/18930 ) Change subject: don't assert just because a broken RTP packet (wrong lenth) is received ...................................................................... Patch Set 1: Just the comment from fixeria, the rests looks good. -- To view, visit https://gerrit.osmocom.org/c/gapk/+/18930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I373308ed40614d29d9b578ddc056f27e20e4aa21 Gerrit-Change-Number: 18930 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 17:52: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 Jun 30 17:53:41 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 17:53:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_ul_flow_multiple_llc_blocks References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19073 ) Change subject: pcu: Introduce test TC_ul_flow_multiple_llc_blocks ...................................................................... pcu: Introduce test TC_ul_flow_multiple_llc_blocks Related: OS#4559 Change-Id: I62f42981d31bc5c2e4c61e92bea329bd74cb2d19 --- M library/RLCMAC_Templates.ttcn M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 3 files changed, 128 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/73/19073/1 diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index 939a814..848052e 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -683,17 +683,27 @@ } } - /* Template for a LlcBlock (part of a LLC frame inside RlcMac?lDataBlock */ - template LlcBlock t_RLCMAC_LLCBLOCK(octetstring data, boolean more := false, boolean e := true) := { - /* let encoder figure out the header */ - hdr := omit, + template LlcBlockHdr t_RLCMAC_LLCBLOCK_HDR(uint16_t length_ind, boolean more, boolean e) := { + length_ind := length_ind, + more := more, /* 1 = new LLC PDU starts */ + e := e /* 0 = another extension octet after LLC PDU, 1 = no more extension octets */ + } + + template EgprsLlcBlockHdr t_RLCMAC_LLCBLOCK_EGPRS_HDR(uint16_t length_ind, boolean e) := { + length_ind := length_ind, + e := e /* 0 = another extension octet after LLC PDU, 1 = no more extension octets */ + } + + /* Template for a LlcBlock (part of a LLC frame inside RlcMacDlDataBlock */ + template LlcBlock t_RLCMAC_LLCBLOCK(octetstring data, template (omit) LlcBlockHdr llc_hdr := omit) := { + hdr := llc_hdr, /* omit = let encoder figure out the header */ payload := data } /* Template for a LlcBlock (part of a LLC frame inside RlcMacEgprs?lDataBlock */ - template EgprsLlcBlock t_RLCMAC_LLCBLOCK_EGPRS(octetstring data, boolean e := true) := { + template EgprsLlcBlock t_RLCMAC_LLCBLOCK_EGPRS(octetstring data, template (omit) EgprsLlcBlockHdr llc_hdr := omit) := { /* let encoder figure out the header */ - hdr := omit, + hdr := llc_hdr, /* omit = let encoder figure out the header */ payload := data } diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 392440c..3eb3f9f 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -263,6 +263,12 @@ return dl_tbf; } +function f_ultbf_inc_bsn(inout UlTbf ul_tbf) +runs on MS_BTS_IFACE_CT { + ul_tbf.bsn := ul_tbf.bsn + 1; + ul_tbf.bsn := ul_tbf.bsn mod 128; /* FIXME: EGPRS SNS: 2048 */ +} + function f_ms_use_ra(inout GprsMS ms, uint16_t ra, uint8_t ra_is_11bit := 0) runs on MS_BTS_IFACE_CT { ms.ra_is_11bit := ra_is_11bit; @@ -353,10 +359,8 @@ ul_data.data.mac_hdr.tlli_ind := true; ul_data.data.tlli := ms.tlli; } - ms.ul_tbf.bsn := ms.ul_tbf.bsn + 1; - ms.ul_tbf.bsn := ms.ul_tbf.bsn mod 128; /* FIXME: EGPRS SNS: 2048 */ + f_ultbf_inc_bsn(ms.ul_tbf); return f_ms_tx_ul_block(ms, ul_data, fn); - } /* Send random payload for last "num_blocks" blocks in Ul TBF (ending with CV=0). */ diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index bdcf7c1..c5f4b59 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1333,6 +1333,110 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify Decoding and segmentation of UL LLC PDUs into RLC data blocks, OS#4559. + * Check "GPRS from A-Z" slide "Example of LI-Field and E-Bit" page 186. + * Check "3GPP TS 44.060" Annex B. */ +testcase TC_ul_flow_multiple_llc_blocks() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var octetstring dataA := f_rnd_octstring(20); + var octetstring dataB := f_rnd_octstring(13); + var octetstring dataC := f_rnd_octstring(3); + var octetstring dataD := f_rnd_octstring(12); + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlBlock ul_data; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename()); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + + /* Establish an Uplink TBF */ + f_ms_establish_ul_tbf(ms); + + /* Summary of what's transmitted: + * 1- UL RlcDataBlock(dataA) [BSN=0, CV=3] + * 2- UL RlcDataBlock(dataA finished, dataB starts) [BSN=1, CV=2] + * 3- UL RlcDataBlock(dataB finished, dataC starts and finishes, dataD starts) [BSN=2, CV=1] + * 4- UL RlcDataBlock(dataD finishes) [BSN=3, CV=0] + And on SGSN we receive 4 packets, one for each LlcBlock dataA..D. + We'll also receive some UL ACK/NACK we need to reply with CTRL ACK. + */ + + /* UL RlcDataBlock(dataA) [BSN=0, CV=3] */ + ul_data := t_RLCMAC_UL_DATA_TLLI(tfi := ms.ul_tbf.tfi, + cv := 3, + bsn := ms.ul_tbf.bsn, + blocks := { t_RLCMAC_LLCBLOCK(substr(dataA, 0, 16)) }, + tlli := ms.tlli); + /* Indicate no llc header, meaning first LLC block doesn't finish in current + * 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); + + /* UL RlcDataBlock(dataA finished, dataB starts) [BSN=1, CV=2] */ + ul_data := t_RLCMAC_UL_DATA_TLLI(tfi := ms.ul_tbf.tfi, + cv := 2, + bsn := ms.ul_tbf.bsn, + blocks := { t_RLCMAC_LLCBLOCK(substr(dataA, 16, 4), + t_RLCMAC_LLCBLOCK_HDR(length_ind := 4, more := true, e := true)), + t_RLCMAC_LLCBLOCK(substr(dataB, 0, 11)) + }, + tlli := ms.tlli); + f_ultbf_inc_bsn(ms.ul_tbf); + f_ms_tx_ul_block(ms, ul_data); + + /* UL block dataA should be received in SGSN */ + BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.cell_id, dataA)); + + /* UL RlcDataBlock(dataB finished, dataC starts and finishes, dataD starts) [BSN=2, CV=1] */ + ul_data := t_RLCMAC_UL_DATA_TLLI(tfi := ms.ul_tbf.tfi, + cv := 1, + bsn := ms.ul_tbf.bsn, + blocks := { t_RLCMAC_LLCBLOCK(substr(dataB, 11, 2), + t_RLCMAC_LLCBLOCK_HDR(length_ind := 2, more := true, e := false)), + t_RLCMAC_LLCBLOCK(substr(dataC, 0, 3), + t_RLCMAC_LLCBLOCK_HDR(length_ind := 3, more := true, e := true)), + t_RLCMAC_LLCBLOCK(substr(dataD, 0, 9)) + }, + tlli := ms.tlli); + f_ultbf_inc_bsn(ms.ul_tbf); + f_ms_tx_ul_block(ms, ul_data); + + /* UL block dataB and dataC should be received in SGSN */ + BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.cell_id, dataB)); + BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.cell_id, dataC)); + + /* UL RlcDataBlock(dataD finishes) [BSN=3, CV=0] */ + ul_data := t_RLCMAC_UL_DATA_TLLI(tfi := ms.ul_tbf.tfi, + cv := 0, + bsn := ms.ul_tbf.bsn, + blocks := { t_RLCMAC_LLCBLOCK(substr(dataD, 9, 3), + t_RLCMAC_LLCBLOCK_HDR(length_ind := 3, more := false, e := true)) + }, + tlli := ms.tlli); + f_ultbf_inc_bsn(ms.ul_tbf); + f_ms_tx_ul_block(ms, ul_data); + + /* UL block dataB and dataD should be received in SGSN */ + BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.cell_id, dataD)); + + 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); + + f_shutdown(__BFILE__, __LINE__, final := true); +} + private function f_pkt_paging_match_imsi(in PacketPagingReq req, hexstring imsi) runs on RAW_PCU_Test_CT { var MobileIdentityLV_Paging mi_lv := req.repeated_pageinfo.cs.mobile_identity; @@ -1766,6 +1870,7 @@ execute (TC_ul_intermediate_retrans() ); execute( TC_imm_ass_dl_block_retrans() ); execute( TC_dl_flow_more_blocks() ); + execute (TC_ul_flow_multiple_llc_blocks() ); execute( TC_paging_cs_from_bts() ); execute( TC_paging_cs_from_sgsn_sign_ptmsi() ); execute( TC_paging_cs_from_sgsn_sign() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19073 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I62f42981d31bc5c2e4c61e92bea329bd74cb2d19 Gerrit-Change-Number: 19073 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 Jun 30 18:33:06 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 30 Jun 2020 18:33:06 +0000 Subject: Change in osmo-mgw[master]: endp: require domain name also for E1 endpoints References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19074 ) Change subject: endp: require domain name also for E1 endpoints ...................................................................... endp: require domain name also for E1 endpoints RFC3435 requires an MGW domain name appeneded to every endpoints. When defining endpoint names in Appendix E, the domain name is is not mentioned for digital trunks, however, this does not mean that digital trunks do not have a domain appended. Osmo-mgw currently violates the spec because it explicitly checks if the domain name is _NOT_ present for E1 endpoints. Change-Id: Ibb800b689e090b97b58d0206959b660890acd967 --- M src/libosmo-mgcp/mgcp_endp.c 1 file changed, 14 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/74/19074/1 diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 5e7bebb..82f7732 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -77,8 +77,8 @@ } /* Generate E1 endpoint name from given numeric parameters */ -static char *gen_e1_epname(void *ctx, uint8_t trunk_nr, uint8_t ts_nr, - uint8_t ss_nr) +static char *gen_e1_epname(void *ctx, const char *domain, uint8_t trunk_nr, + uint8_t ts_nr, uint8_t ss_nr) { unsigned int rate; unsigned int offset; @@ -88,8 +88,9 @@ rate = e1_rates[ss_nr]; offset = e1_offsets[ss_nr]; - return talloc_asprintf(ctx, "%s%u/s-%u/su%u-%u", - MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, rate, offset); + return talloc_asprintf(ctx, "%s%u/s-%u/su%u-%u@%s", + MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, + rate, offset, domain); } /*! allocate an endpoint and set default values. @@ -116,7 +117,9 @@ break; case MGCP_TRUNK_E1: endp->type = &ep_typeset.rtp; - endp->name = gen_e1_epname(endp, trunk->trunk_nr, index / 15, index % 15); + endp->name = gen_e1_epname(endp, trunk->cfg->domain, + trunk->trunk_nr, + index / 15, index % 15); break; default: osmo_panic("Cannot allocate unimplemented trunk type %d! %s:%d\n", @@ -353,11 +356,9 @@ if (!trunk) return NULL; - /* Virtual endpoints require a domain name (see RFC3435, section E.3) */ - if (trunk->trunk_type == MGCP_TRUNK_VIRTUAL) { - if (check_domain_name(epname, cfg)) - return NULL; - } + /* All endpoint names require a domain as suffix */ + if (check_domain_name(epname, cfg)) + return NULL; /* Identify the endpoint on the trunk */ endp = mgcp_endp_by_name_trunk(cause, epname, trunk); @@ -567,9 +568,9 @@ break; /* Pick overlapping endpoint to check */ - epname_check = - gen_e1_epname(endp, endp->trunk->trunk_nr, ts_nr, - interlock[i]); + epname_check = gen_e1_epname(endp, endp->trunk->cfg->domain, + endp->trunk->trunk_nr, ts_nr, + interlock[i]); endp_check = find_specific_endpoint(epname_check, endp->trunk); if (!endp_check) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19074 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ibb800b689e090b97b58d0206959b660890acd967 Gerrit-Change-Number: 19074 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 Jun 30 18:33:07 2020 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 30 Jun 2020 18:33:07 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add function to generate e1-endpoint names References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19075 ) Change subject: mgcp_client: add function to generate e1-endpoint names ...................................................................... mgcp_client: add function to generate e1-endpoint names mgcp_client.h offers functions to generate endpoint names for wildcarded request. This is used in osmo-bsc, lets now also add a function that can generate e1-endpoint names. Related: OS#2547 Change-Id: Iec35b5bae8a7b07ddb3559f7114a24dcd10e8f14 --- M include/osmocom/mgcp_client/mgcp_client.h M src/libosmo-mgcp-client/mgcp_client.c 2 files changed, 62 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/75/19075/1 diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 32bd87b..8a43ccc 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -137,6 +137,8 @@ const char *mgcp_client_endpoint_domain(const struct mgcp_client *mgcp); const char *mgcp_client_rtpbridge_wildcard(const struct mgcp_client *mgcp); +const char *mgcp_client_e1_epname(const struct mgcp_client *mgcp, uint8_t trunk_id, uint8_t ts, uint8_t rate, + uint8_t offset); /* Invoked when an MGCP response is received or sending failed. When the * response is passed as NULL, this indicates failure during transmission. */ diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 819461d..17983fa 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -900,6 +900,66 @@ return _mgcp_client_name_append_domain(mgcp, "rtpbridge/*"); } +/*! Compose endpoint name for an E1 endpoint. + * \param[in] mgcp MGCP client descriptor. + * \param[in] trunk_id id number of the E1 trunk (1-64). + * \param[in] ts timeslot on the E1 trunk (1-31). + * \param[in] rate bitrate used on the E1 trunk (e.g 16 for 16kbit). + * \param[in] offset bit offset of the E1 subslot (e.g. 4 for the third 16k subslot). + * \returns string containing the endpoint name (e.g. ds/e1-0/s-1/su16-4). */ +const char *mgcp_client_e1_epname(const struct mgcp_client *mgcp, uint8_t trunk_id, uint8_t ts, uint8_t rate, + uint8_t offset) +{ + /* See also comment in libosmo-mgcp, mgcp_client.c, gen_e1_epname() */ + static const uint8_t valid_rates[] = { 64, 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 8, 8 }; + static const uint8_t valid_offsets[] = { 0, 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 }; + + static char endpoint[MGCP_ENDPOINT_MAXLEN]; + uint8_t i; + int rc; + bool rate_offs_valid = false; + + /* Check if the supplied rate/offset pair resembles a valid combination */ + for (i = 0; i < sizeof(valid_rates); i++) { + if (valid_rates[i] == rate && valid_offsets[i] == offset) + rate_offs_valid = true; + } + if (!rate_offs_valid) { + LOGP(DLMGCP, LOGL_ERROR, + "Cannot compose MGCP e1-endpoint name, rate(%u)/offset(%u) combination is invalid!\n", rate, + offset); + return NULL; + } + + /* osmo-mgw only allows a maximum of 64 trunks. The trunk id 0 is + * reserved due to historical reasons. */ + if (trunk_id == 0 || trunk_id > 64) { + LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP e1-endpoint name, trunk number (%u) is invalid!\n", + trunk_id); + return NULL; + } + /* An E1 line has a maximum of 32 timeslots, while the first (ts=0) is + * reserverd for signalling, so we can not use it here. */ + if (ts == 0 || ts > 31) { + LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP e1-endpoint name, E1-timeslot number (%u) is invalid!\n", + ts); + return NULL; + } + + rc = snprintf(endpoint, sizeof(endpoint), "ds/e1-%u/s-%u/su%u-%u", trunk_id, ts, rate, offset); + if (rc > sizeof(endpoint) - 1) { + LOGP(DLMGCP, LOGL_ERROR, "MGCP endpoint exceeds maximum length of %zu: 'ds/e1-%u/s-%u/su%u-%u'\n", + sizeof(endpoint) - 1, trunk_id, ts, rate, offset); + return NULL; + } + if (rc < 1) { + LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP endpoint name\n"); + return NULL; + } + + return _mgcp_client_name_append_domain(mgcp, endpoint); +} + struct mgcp_response_pending * mgcp_client_pending_add( struct mgcp_client *mgcp, mgcp_trans_id_t trans_id, -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19075 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iec35b5bae8a7b07ddb3559f7114a24dcd10e8f14 Gerrit-Change-Number: 19075 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 Jun 30 19:04:44 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 19:04:44 +0000 Subject: Change in osmo-mgw[master]: endp: require domain name also for E1 endpoints In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19074 ) Change subject: endp: require domain name also for E1 endpoints ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19074 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ibb800b689e090b97b58d0206959b660890acd967 Gerrit-Change-Number: 19074 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 19:04: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 Jun 30 19:05:47 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 19:05:47 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add function to generate e1-endpoint names In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/19075 ) Change subject: mgcp_client: add function to generate e1-endpoint names ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/19075 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iec35b5bae8a7b07ddb3559f7114a24dcd10e8f14 Gerrit-Change-Number: 19075 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 19:05:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 19:12:20 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 19:12:20 +0000 Subject: Change in osmo-e1d[master]: vty: Print actual driver name instead of FIXME In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19072 ) Change subject: vty: Print actual driver name instead of FIXME ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19072 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6f909cc493417f9e156672024f879a7294b4d816 Gerrit-Change-Number: 19072 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 19:12:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 19:13:11 2020 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 30 Jun 2020 19:13:11 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19060 ) Change subject: Add osmo-e1d-pipe utility ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 19:13:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 19:56:44 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 19:56:44 +0000 Subject: Change in osmo-e1d[master]: add example configurations References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19078 ) Change subject: add example configurations ...................................................................... add example configurations Change-Id: I25c28f7a1eeb4deaebba3b2fd593cbbdceb1fa07 --- M Makefile.am M configure.ac A doc/Makefile.am A doc/examples/Makefile.am A doc/examples/osmo-e1d-vpair.cfg A doc/examples/osmo-e1d.cfg 6 files changed, 41 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/78/19078/1 diff --git a/Makefile.am b/Makefile.am index 9862cd8..029b599 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,12 +1,14 @@ AUTOMAKE_OPTIONS = foreign dist-bzip2 SUBDIRS = \ + doc \ src \ include \ $(NULL) EXTRA_DIST = \ .version \ + doc \ $(NULL) pkgconfigdir = $(libdir)/pkgconfig diff --git a/configure.ac b/configure.ac index 5be845b..0320b6f 100644 --- a/configure.ac +++ b/configure.ac @@ -74,6 +74,8 @@ AC_OUTPUT( Makefile + doc/Makefile + doc/examples/Makefile src/Makefile include/Makefile libosmo-e1d.pc diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..8acb8f8 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = \ + examples \ + $(NULL) diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am new file mode 100644 index 0000000..9fd345c --- /dev/null +++ b/doc/examples/Makefile.am @@ -0,0 +1,32 @@ +OSMOCONF_FILES = \ + osmo-e1d.cfg \ + osmo-e1d-vpair.cfg \ + $(NULL) + +osmoconfdir = $(sysconfdir)/osmocom +osmoconf_DATA = $(OSMOCONF_FILES) + +EXTRA_DIST = $(OSMOCONF_FILES) + +CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,' + +dist-hook: + for f in $$($(CFG_FILES)); do \ + j="$(distdir)/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +install-data-hook: + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +uninstall-hook: + @$(PRE_UNINSTALL) + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + $(RM) $$j; \ + done diff --git a/doc/examples/osmo-e1d-vpair.cfg b/doc/examples/osmo-e1d-vpair.cfg new file mode 100644 index 0000000..32742de --- /dev/null +++ b/doc/examples/osmo-e1d-vpair.cfg @@ -0,0 +1,2 @@ + +virtual-e1-pair 1 diff --git a/doc/examples/osmo-e1d.cfg b/doc/examples/osmo-e1d.cfg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doc/examples/osmo-e1d.cfg -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I25c28f7a1eeb4deaebba3b2fd593cbbdceb1fa07 Gerrit-Change-Number: 19078 Gerrit-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 Jun 30 19:56:45 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 19:56:45 +0000 Subject: Change in osmo-e1d[master]: add git-version-gen to EXTRA_DIST References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19079 ) Change subject: add git-version-gen to EXTRA_DIST ...................................................................... add git-version-gen to EXTRA_DIST Change-Id: I874e7c323e0700c3282cb992dfaf1853bdc3a8c8 --- M Makefile.am 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/79/19079/1 diff --git a/Makefile.am b/Makefile.am index 029b599..cecc020 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,6 +9,7 @@ EXTRA_DIST = \ .version \ doc \ + git-version-gen \ $(NULL) pkgconfigdir = $(libdir)/pkgconfig -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I874e7c323e0700c3282cb992dfaf1853bdc3a8c8 Gerrit-Change-Number: 19079 Gerrit-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 Jun 30 19:56:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 19:56:46 +0000 Subject: Change in osmo-e1d[master]: WIP: debian packaging References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19080 ) Change subject: WIP: debian packaging ...................................................................... WIP: debian packaging Change-Id: Idac376e92f95ab8beef506e9617227f1c7277838 --- M .gitignore M Makefile.am A debian/changelog A debian/compat A debian/control A debian/copyright A debian/libosmo-e1d-dev.install A debian/libosmo-e1d.install A debian/osmo-e1d.install A debian/rules A debian/source/format 11 files changed, 144 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/80/19080/1 diff --git a/.gitignore b/.gitignore index aef7cd0..3e31435 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,13 @@ .deps .libs +debian/.debhelper +debian/autoreconf.* +debian/libosmo-e1d* +debian/osmo-e1d +debian/*.log +debian/tmp + *.la *.lo *.o diff --git a/Makefile.am b/Makefile.am index cecc020..40dff3f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST = \ .version \ + debian \ doc \ git-version-gen \ $(NULL) diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..238f98d --- /dev/null +++ b/debian/changelog @@ -0,0 +1,6 @@ +osmo-e1d (0.0.1) unstable; urgency=medium + + [ Harald Welte ] + * initial debian package + + -- Harald Welte Tue, 30 Jun 2020 18:24:51 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..66cef8a --- /dev/null +++ b/debian/control @@ -0,0 +1,43 @@ +Source: osmo-e1d +Section: net +Priority: extra +Maintainer: Harald Welte +Build-Depends: debhelper (>=9), + dh-autoreconf, + autotools-dev, + autoconf, + automake, + libtool, + pkg-config, + python3-minimal, + libosmocore-dev (>= 1.3.0), + libosmo-abis-dev (>= 0.6.0), + osmo-gsm-manuals-dev +Standards-Version: 3.9.8 +Vcs-Git: git://git.osmocom.org/osmo-e1d.git +Vcs-Browser: https://git.osmocom.org/osmo-e1d/ +Homepage: https://projects.osmocom.org/projects/osmo-e1d + +Package: osmo-e1d +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: osmo-e1d: Osmocom's E1 interface daemon + +Package: libosmo-e1d0 +Section: libs +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, ${shlibs:Depends} +Pre-Depends: ${misc:Pre-Depends} +Description: Client library for talking to the Osmocom E1 interface daemon osmo-e1d. + +Package: libosmo-e1d-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, ${shlibs:Depends}, + libosmo-e1d0 (= ${binary:Version}), + libosmocore-dev, + libosmo-abis-dev +Description: Development headers for the osmo-e1d library. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..df9e0c3 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,19 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: osmo-e1d +Source: git://git.osmocom.org/osmo-e1d + +Files: * +Copyright: 2019 Sylvain Munaut +License: GPL-2.0+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero 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 . diff --git a/debian/libosmo-e1d-dev.install b/debian/libosmo-e1d-dev.install new file mode 100644 index 0000000..6179405 --- /dev/null +++ b/debian/libosmo-e1d-dev.install @@ -0,0 +1,5 @@ +usr/include/osmocom/e1d +usr/lib/*/libosmo-e1d*.a +usr/lib/*/libosmo-e1d*.so +usr/lib/*/libosmo-e1d*.la +usr/lib/*/pkgconfig/libosmo-e1d.pc diff --git a/debian/libosmo-e1d.install b/debian/libosmo-e1d.install new file mode 100644 index 0000000..dd98843 --- /dev/null +++ b/debian/libosmo-e1d.install @@ -0,0 +1 @@ +usr/lib/*/libosmo-e1d*.so.* diff --git a/debian/osmo-e1d.install b/debian/osmo-e1d.install new file mode 100644 index 0000000..7aeba92 --- /dev/null +++ b/debian/osmo-e1d.install @@ -0,0 +1,2 @@ +/etc/osmocom/osmo-e1d.cfg +usr/bin/osmo-e1d diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..33be3c8 --- /dev/null +++ b/debian/rules @@ -0,0 +1,58 @@ +#!/usr/bin/make -f +# You must remove unused comment lines for the released package. +# See debhelper(7) (uncomment to enable) +# This is an autogenerated template for debian/rules. +# +# Output every command that modifies files on the build system. +#export DH_VERBOSE = 1 +# +# Copy some variable definitions from pkg-info.mk and vendor.mk +# under /usr/share/dpkg/ to here if they are useful. +# +# See FEATURE AREAS/ENVIRONMENT in dpkg-buildflags(1) +# Apply all hardening options +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all +# Package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# Package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed +# +# With debhelper version 9 or newer, the dh command exports +# all buildflags. So there is no need to include the +# /usr/share/dpkg/buildflags.mk file here if compat is 9 or newer. +# +# These are rarely used code. (START) +# +# The following include for *.mk magically sets miscellaneous +# variables while honoring existing values of pertinent +# environment variables: +# +# Architecture-related variables such as DEB_TARGET_MULTIARCH: +#include /usr/share/dpkg/architecture.mk +# Vendor-related variables such as DEB_VENDOR: +#include /usr/share/dpkg/vendor.mk +# Package-related variables such as DEB_DISTRIBUTION +#include /usr/share/dpkg/pkg-info.mk +# +# You may alternatively set them susing a simple script such as: +# DEB_VENDOR ?= $(shell dpkg-vendor --query Vendor) +# +# These are rarely used code. (END) +# + +# main packaging script based on dh7 syntax +%: + dh $@ --with autoreconf + +# debmake generated override targets +CONFIGURE_FLAGS += --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals +override_dh_auto_configure: + dh_auto_configure -- $(CONFIGURE_FLAGS) +# +# Do not install libtool archive, python .pyc .pyo +#override_dh_install: +# dh_install --list-missing -X.la -X.pyc -X.pyo + +# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers) +override_dh_compress: + dh_compress -X.pdf diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Idac376e92f95ab8beef506e9617227f1c7277838 Gerrit-Change-Number: 19080 Gerrit-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 Jun 30 19:56:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 19:56:46 +0000 Subject: Change in osmo-e1d[master]: add systemd service/unit References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19081 ) Change subject: add systemd service/unit ...................................................................... add systemd service/unit Change-Id: I956cd9e7ff378a6372524175a1c83416be45610b --- M Makefile.am M configure.ac A contrib/Makefile.am A contrib/systemd/Makefile.am A contrib/systemd/osmo-e1d.service M debian/osmo-e1d.install 6 files changed, 43 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/81/19081/1 diff --git a/Makefile.am b/Makefile.am index 40dff3f..3f87824 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,7 @@ AUTOMAKE_OPTIONS = foreign dist-bzip2 SUBDIRS = \ + contrib \ doc \ src \ include \ @@ -16,6 +17,10 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libosmo-e1d.pc +AM_DISTCHECK_CONFIGURE_FLAGS = \ + --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) + + @RELMAKE@ BUILT_SOURCES = $(top_srcdir)/.version diff --git a/configure.ac b/configure.ac index 0320b6f..548cc68 100644 --- a/configure.ac +++ b/configure.ac @@ -72,8 +72,26 @@ 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])],, + [with_systemdsystemunitdir=auto]) +AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [ + def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd) + + AS_IF([test "x$def_systemdsystemunitdir" = "x"], + [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"], + [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])]) + with_systemdsystemunitdir=no], + [with_systemdsystemunitdir="$def_systemdsystemunitdir"])]) +AS_IF([test "x$with_systemdsystemunitdir" != "xno"], + [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])]) +AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"]) + AC_OUTPUT( Makefile + contrib/Makefile + contrib/systemd/Makefile doc/Makefile doc/examples/Makefile src/Makefile diff --git a/contrib/Makefile.am b/contrib/Makefile.am new file mode 100644 index 0000000..3439c97 --- /dev/null +++ b/contrib/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = systemd diff --git a/contrib/systemd/Makefile.am b/contrib/systemd/Makefile.am new file mode 100644 index 0000000..54c6c6e --- /dev/null +++ b/contrib/systemd/Makefile.am @@ -0,0 +1,6 @@ +EXTRA_DIST = osmo-e1d.service + +if HAVE_SYSTEMD +systemdsystemunit_DATA = \ + osmo-e1d.service +endif diff --git a/contrib/systemd/osmo-e1d.service b/contrib/systemd/osmo-e1d.service new file mode 100644 index 0000000..03ac643 --- /dev/null +++ b/contrib/systemd/osmo-e1d.service @@ -0,0 +1,12 @@ +[Unit] +Description=Osmocom E1 Interface Daemon +Wants=osmo-e1d.service + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/osmo-e1d -c /etc/osmocom/osmo-e1d.cfg +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/debian/osmo-e1d.install b/debian/osmo-e1d.install index 7aeba92..80bd25a 100644 --- a/debian/osmo-e1d.install +++ b/debian/osmo-e1d.install @@ -1,2 +1,3 @@ /etc/osmocom/osmo-e1d.cfg +lib/systemd/system/osmo-e1d.service usr/bin/osmo-e1d -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I956cd9e7ff378a6372524175a1c83416be45610b Gerrit-Change-Number: 19081 Gerrit-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 Jun 30 19:57:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 19:57:28 +0000 Subject: Change in osmo-e1d[master]: debian packaging In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-e1d/+/19080 ) Change subject: debian packaging ...................................................................... debian packaging Change-Id: Idac376e92f95ab8beef506e9617227f1c7277838 --- M .gitignore M Makefile.am A debian/changelog A debian/compat A debian/control A debian/copyright A debian/libosmo-e1d-dev.install A debian/libosmo-e1d.install A debian/osmo-e1d.install A debian/rules A debian/source/format 11 files changed, 144 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/80/19080/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Idac376e92f95ab8beef506e9617227f1c7277838 Gerrit-Change-Number: 19080 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 Tue Jun 30 19:57:28 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 19:57:28 +0000 Subject: Change in osmo-e1d[master]: add systemd service/unit In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-e1d/+/19081 ) Change subject: add systemd service/unit ...................................................................... add systemd service/unit Change-Id: I956cd9e7ff378a6372524175a1c83416be45610b --- M Makefile.am M configure.ac A contrib/Makefile.am A contrib/systemd/Makefile.am A contrib/systemd/osmo-e1d.service M debian/osmo-e1d.install 6 files changed, 43 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/81/19081/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I956cd9e7ff378a6372524175a1c83416be45610b Gerrit-Change-Number: 19081 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 Tue Jun 30 20:14:05 2020 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 30 Jun 2020 20:14:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/GSM_RestOctets: initial SI2quater Rest Octets definition References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19082 ) Change subject: library/GSM_RestOctets: initial SI2quater Rest Octets definition ...................................................................... library/GSM_RestOctets: initial SI2quater Rest Octets definition Change-Id: I6a12c9ee12f8df8b4fc0976dd593152dc1195718 Related: SYS#4870 --- M library/GSM_RestOctets.ttcn 1 file changed, 342 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/19082/1 diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn index 531528c..73059de 100644 --- a/library/GSM_RestOctets.ttcn +++ b/library/GSM_RestOctets.ttcn @@ -1,7 +1,9 @@ /** * GSM Rest Octets definitions as per 3GPP TS 44.018. * + * (C) 2020 by sysmocom s.f.m.c. GmbH * (C) 2020 Vadim Yanitskiy + * * All rights reserved. * * Released under the terms of GNU General Public License, Version 2 or @@ -15,6 +17,346 @@ import from General_Types all; import from Osmocom_Types all; +/* 10.5.2.33b SI 2quater Rest Octets */ +type record SI2quaterRestOctets { + BIT1 ba_ind, + BIT1 ba_3g_ind, + BIT1 mp_change_mark, + uint4_t si2quater_index, + uint4_t si2quater_count, + + /* Measurement Parameters Description */ + MeasParamsDescOpt meas_params_desc, + /* GPRS specific parameters */ + record { + GPRS_RealTimeDiffDescOpt rt_diff_desc, + GPRS_BSICDescOpt bsic_desc, + GPRS_ReportPrioDescOpt rep_prio_desc, + MeasParamsDescOpt meas_params_desc + } gprs, + /* NC Measurement Parameters Description */ + NCMeasParamsOpt nc_meas_params, + /* SI2quater Extension Information */ + SI2quaterExtInfoOpt ext_info, + + /* 3G Neighbour Cell Description */ + UTRAN_NeighDescOpt utran_neigh_desc, + /* 3G Measurement Parameters Description */ + UTRAN_MeasParamsDescOpt utran_meas_params_desc, + /* GPRS 3G Measurement Parameters Description */ + UTRAN_GPRSMeasParamsDescOpt utran_gprs_meas_params_desc, + + /* SI2quater Rel-{5,6,7,8,9,10} Additions (Matrioshka!) */ + SI2quaterAdditions rel_additions +} with { + /* The TITAN's RAW encoder generates an octet-aligned octetstring, + * so we should make sure that unused bits contain proper padding. */ + variant "PADDING(yes), PADDING_PATTERN('00101011'B)" +}; + +/* Measurement Parameters Description */ +private type record MeasParamsDesc { + BIT1 report_type, + BIT2 serving_band_reporting +} with { variant "" }; + +private type record MeasParamsDescOpt { + BIT1 presence, // 0/1 + MeasParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* GPRS Real Time Difference Description (not implemented) */ +private type record GPRS_RealTimeDiffDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: GPRS_RealTimeDiffDesc desc optional +} with { variant "" }; + +/* GPRS BSIC Description (not implemented) */ +private type record GPRS_BSICDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: GPRS_BSICDesc desc optional +} with { variant "" }; + +/* GPRS Report Priority Description (not implemented) */ +private type record GPRS_ReportPrioDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: GPRS_ReportPrioDesc desc optional +} with { variant "" }; + +/* NC (Network Controlled?) Measurement Parameters */ +private type record NCMeasParams { + /* Network Control Order */ + BIT2 nco, + BIT1 p_presence, + NCMeasPeriods p optional +} with { + variant (p) "PRESENCE(p_presence = '1'B)" +}; + +/* NC Measurement Periods */ +private type record NCMeasPeriods { + BIT3 non_drx_period, + BIT3 rep_period_i, + BIT3 rep_period_t +} with { variant "" }; + +private type record NCMeasParamsOpt { + BIT1 presence, // 0/1 + NCMeasParams params optional +} with { + variant (params) "PRESENCE(presence = '1'B)" +}; + +/* SI2quater Extersion Information */ +private type record SI2quaterExtInfo { + uint8_t len, + CCNSupportDescOpt ccn_supp_desc optional, + bitstring padding /* Octet alignment? */ +} with { + variant (len) "LENGTHTO(ccn_supp_desc,padding) + 1" + variant (len) "UNIT(bits)" +}; + +private type record SI2quaterExtInfoOpt { + BIT1 presence, // 0/1 + SI2quaterExtInfo info optional +} with { + variant (info) "PRESENCE(presence = '1'B)" +}; + +/* CCN Support Description */ +private type record CCNSupportDesc { + uint7_t nr_of_cells, + bitstring ccn_supported +} with { + variant (nr_of_cells) "LENGTHTO(ccn_supported)" + variant (nr_of_cells) "UNIT(bits)" +}; + +private type record CCNSupportDescOpt { + BIT1 presence, // 0/1 + CCNSupportDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* 3G Neighbour Cell Description */ +private type record UTRAN_NeighDesc { + BIT1 idx_start_3g_presence, + uint7_t idx_start_3g optional, + BIT1 abs_idx_start_emr_presence, + uint7_t abs_idx_start_emr optional, + UTRAN_FDDDescOpt fdd_desc, + UTRAN_TDDDescOpt tdd_desc +} with { + variant (idx_start_3g) "PRESENCE(idx_start_3g_presence = '1'B)" + variant (abs_idx_start_emr) "PRESENCE(abs_idx_start_emr_presence = '1'B)" +}; + +private type record UTRAN_NeighDescOpt { + BIT1 presence, // 0/1 + UTRAN_NeighDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* UTRAN (3G) FDD/TDD Description (not implementaed). + * + * TODO: Repeated UTRAN FDD/TDD Neighbour Cells structure contains a variable length + * field, that needs to be computed using tables (see 9.1.54.1a and 9.1.54.1b) with + * magic numbers. This cannot be described uing TITAN's RAW codec attributes. */ +private type record UTRAN_FDDDescOpt { + BIT1 presence ('0'B) // 0/1 + // UTRAN_FDDDesc desc optional +} with { variant "" }; + +private type record UTRAN_TDDDescOpt { + BIT1 presence ('0'B) // 0/1 + // UTRAN_TDDDesc desc optional +} with { variant "" }; + +/* 3G Measurement Parameters Description (not implemented) */ +private type record UTRAN_MeasParamsDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: UTRAN_MeasParamsDesc desc optional +} with { variant "" }; + +/* GPRS 3G Measurement Parameters Description (not implemented) */ +private type record UTRAN_GPRSMeasParamsDescOpt { + BIT1 presence ('0'B) // 0/1 + // TODO: UTRAN_GPRSMeasParamsDesc desc optional +} with { variant "" }; + +/* SI2quater Rel-{5,6,7,8,9,10} Additions */ +private type record SI2quaterAdditions { + BIT1 rel5_presence, // L/H + SI2quaterR5Additions rel5 optional +} with { + variant (rel5_presence) "CSN.1 L/H" + variant (rel5) "PRESENCE(rel5_presence = '1'B)" +}; + +/* SI2quater Rel-5 and Rel-{6,7,8,9,10} Additions */ +private type record SI2quaterR5Additions { + UMTS_AddMeasParamsDescOpt umts_add_meas_params_desc, + UMTS_AddMeasParamsDesc2Opt umts_add_meas_params_desc2, + BIT1 rel6_presence, // L/H + SI2quaterR6Additions rel6 optional +} with { + variant (rel6_presence) "CSN.1 L/H" + variant (rel6) "PRESENCE(rel6_presence = '1'B)" +}; + +/* 3G Additional Measurement Parameters Description */ +private type record UMTS_AddMeasParamsDesc { + BIT3 fdd_qmin_offset, + BIT4 fdd_rscpmin +} with { variant "" }; + +private type record UMTS_AddMeasParamsDescOpt { + BIT1 presence, // 0/1 + UMTS_AddMeasParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* 3G Additional Measurement Parameters Description 2 */ +private type record UMTS_AddMeasParamsDesc2 { + /* FDD Reporting Threshold 2 */ + BIT1 presence, // 0/1 + uint6_t threshold optional +} with { + variant (threshold) "PRESENCE(presence = '1'B)" +}; + +private type record UMTS_AddMeasParamsDesc2Opt { + BIT1 presence, // 0/1 + UMTS_AddMeasParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* SI2quater Rel-6 and Rel-{7,8,9,10} Additions */ +private type record SI2quaterR6Additions { + BIT1 umts_ccn_active, + BIT1 rel7_presence, // L/H + SI2quaterR7Additions rel7 optional +} with { + variant (rel7_presence) "CSN.1 L/H" + variant (rel7) "PRESENCE(rel7_presence = '1'B)" +}; + +/* SI2quater Rel-7 and Rel-{8,9,10} Additions */ +private type record SI2quaterR7Additions { + Rel7RepOffseThresholdOpt rep700, + Rel7RepOffseThresholdOpt rep810, + BIT1 rel8_presence, // L/H + SI2quaterR8Additions rel8 optional +} with { + variant (rel8_presence) "CSN.1 L/H" + variant (rel8) "PRESENCE(rel8_presence = '1'B)" +}; + +/* Additions in Rel-7: Reporting Offset & Threshold */ +private type record Rel7RepOffseThreshold { + BIT3 offset, + BIT3 threshold +} with { variant "" }; + +private type record Rel7RepOffseThresholdOpt { + BIT1 presence, // 0/1 + Rel7RepOffseThreshold val optional +} with { + variant (val) "PRESENCE(presence = '1'B)" +}; + +/* SI2quater Rel-8 and Rel-{9,10} Additions */ +private type record SI2quaterR8Additions { + Rel8PrioEUTRANParamsDescOpt prio_eutran_params_desc, + Rel8UTRANCSGDescOpt utran_csg_desc, + Rel8EUTRANCSGDescOpt eutran_csg_desc, + BIT1 rel9_presence // L/H + // TODO: SI2quaterR9Additions rel9 optional +} with { + variant (rel9_presence) "CSN.1 L/H" +}; + +/* Additions in Rel-8: Priority and E-UTRAN Parameters Description */ +private type record Rel8PrioEUTRANParamsDesc { + ServingCellPrioParamsDescOpt sc_prio_params_desc, + UTRANPrioParamsDescOpt utran_prio_params_desc, + EUTRANParamsDescOpt eutran_params_desc +} with { variant "" }; + +private type record Rel8PrioEUTRANParamsDescOpt { + BIT1 presence, // 0/1 + Rel8PrioEUTRANParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* Serving Cell Priority Parameters Description */ +private type record ServingCellPrioParamsDesc { + BIT3 geran_priority, + BIT4 thresh_priority_search, + BIT4 thresh_gsm_low, + BIT2 h_prio, + BIT2 t_reselection +} with { variant "" }; + +private type record ServingCellPrioParamsDescOpt { + BIT1 presence, // 0/1 + ServingCellPrioParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* 3G Priority Parameters Description (not implemented) */ +private type record UTRANPrioParamsDescOpt { + BIT1 presence // 0/1 + // TODO: UTRANPrioParamsDesc desc optional +} with { variant "" }; + +/* TODO: E-UTRAN Parameters Description */ +private type record EUTRANParamsDesc { + BIT1 ccn_active, + BIT1 e_start, + BIT1 e_stop + /* TODO: 0 | 1 << E-UTRAN Measurement Parameters Description >> */ + /* TODO: 0 | 1 << GPRS E-UTRAN Measurement Parameters Description >> */ + /* TODO: 1 << Repeated E-UTRAN Neighbour Cells >> ** 0 */ + /* TODO: 1 << Repeated E-UTRAN Not Allowed Cells >> ** 0 */ + /* TODO: 1 << Repeated E-UTRAN PCID to TA mapping >> ** 0 */ +} with { variant "" }; + +private type record EUTRANParamsDescOpt { + BIT1 presence, // 0/1 + EUTRANParamsDesc desc optional +} with { + variant (desc) "PRESENCE(presence = '1'B)" +}; + +/* Additions in Rel-8: 3G CSG Description (not implemented) */ +private type record Rel8UTRANCSGDescOpt { + BIT1 presence // 0/1 + // TODO: Rel8UTRANCSGDesc desc optional +} with { variant "" }; + +/* Additions in Rel-8: E-UTRAN CSG Description (not implemented) */ +private type record Rel8EUTRANCSGDescOpt { + BIT1 presence // 0/1 + // TODO: Rel8EUTRANCSGDesc desc optional +} with { variant "" }; + + +external function enc_SI2quaterRestOctets(in SI2quaterRestOctets ro) return octetstring + with { extension "prototype(convert) encode(RAW)" }; +external function dec_SI2quaterRestOctets(in octetstring stream) return SI2quaterRestOctets + with { extension "prototype(convert) decode(RAW)" }; + + /* 10.5.2.34 SI 3 Rest Octets */ type record SI3RestOctets { SelectionParamsOpt sel_params, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19082 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6a12c9ee12f8df8b4fc0976dd593152dc1195718 Gerrit-Change-Number: 19082 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 Jun 30 20:14:33 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 20:14:33 +0000 Subject: Change in osmo-e1d[master]: Add virtual pair of E1 interfaces In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19047 ) Change subject: Add virtual pair of E1 interfaces ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 Gerrit-Change-Number: 19047 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 20:14: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 Jun 30 20:14:43 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 20:14:43 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19060 ) Change subject: Add osmo-e1d-pipe utility ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 30 Jun 2020 20:14:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 20:14:46 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 20:14:46 +0000 Subject: Change in osmo-e1d[master]: vty: Print actual driver name instead of FIXME In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19072 ) Change subject: vty: Print actual driver name instead of FIXME ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19072 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6f909cc493417f9e156672024f879a7294b4d816 Gerrit-Change-Number: 19072 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 30 Jun 2020 20:14: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 Jun 30 20:15:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 20:15:01 +0000 Subject: Change in osmo-e1d[master]: Add virtual pair of E1 interfaces In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19047 ) Change subject: Add virtual pair of E1 interfaces ...................................................................... Add virtual pair of E1 interfaces The idea is to generate a pair of virtual E1 interfaces (each with identical number of lines), where each line A:n is connected to line B:n of the pair and vice-versa. This allows to test E1 using applications back to back against each other, without any physical E1 circuits in between. Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 --- M src/Makefile.am M src/ctl.c M src/e1d.h M src/intf_line.c A src/vpair.c M src/vty.c 6 files changed, 232 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/Makefile.am b/src/Makefile.am index aa796f2..e811f0a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ log.c \ osmo-e1d.c \ usb.c \ + vpair.c \ vty.c \ $(NULL) diff --git a/src/ctl.c b/src/ctl.c index b29e990..0fb42de 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -52,8 +52,8 @@ return NULL; } -static struct e1_line * -_e1d_find_line(struct e1_intf *intf, uint8_t id) +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id) { struct e1_line *line; @@ -185,7 +185,7 @@ return 0; if (hdr->line != E1DP_INVALID) { - line = _e1d_find_line(intf, hdr->line); + line = e1_intf_find_line(intf, hdr->line); n = line ? 1 : 0; } else{ n = llist_count(&intf->lines); @@ -226,7 +226,7 @@ if (!intf) return 0; - line = _e1d_find_line(intf, hdr->line); + line = e1_intf_find_line(intf, hdr->line); if (!line) return 0; @@ -272,7 +272,7 @@ if (!intf) return 0; - line = _e1d_find_line(intf, hdr->line); + line = e1_intf_find_line(intf, hdr->line); if (!line) return 0; diff --git a/src/e1d.h b/src/e1d.h index 7803b2e..64e8f45 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -67,6 +67,7 @@ enum e1_driver { E1_DRIVER_USB, + E1_DRIVER_VPAIR, }; extern const struct value_string e1_driver_names[]; @@ -97,6 +98,10 @@ void e1_intf_destroy(struct e1_intf *intf); + +struct e1_line * +e1_intf_find_line(struct e1_intf *intf, uint8_t id); + struct e1_line * e1_line_new(struct e1_intf *intf, void *drv_data); @@ -115,3 +120,5 @@ void e1d_vty_init(struct e1_daemon *e1d); +int +e1d_vpair_create(struct e1_daemon *e1d, unsigned int num_lines); diff --git a/src/intf_line.c b/src/intf_line.c index afe477d..ce30b4f 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -36,6 +36,7 @@ const struct value_string e1_driver_names[] = { { E1_DRIVER_USB, "usb" }, + { E1_DRIVER_VPAIR, "vpair" }, { 0, NULL } }; diff --git a/src/vpair.c b/src/vpair.c new file mode 100644 index 0000000..12452fe --- /dev/null +++ b/src/vpair.c @@ -0,0 +1,196 @@ +/* Virtual E1 interface pair: Two virtual interfaces with N lines each, + * where data written to A can be read from B and vice-versa. + * + * (C) 2020 by Harald Welte + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "e1d.h" +#include "log.h" + +/* number of bits in each frame */ +#define BITS_PER_FRAME (32*8) +/* overall bit-rate of E1 line in bits per second */ +#define BITRATE 2048000 +/* number of frames per second (8000) */ +#define FRAME_RATE (BITRATE / BITS_PER_FRAME) +/* duration of one frame in nanoseconds (125000) */ +#define FRAME_DURATION_NS (1000000000UL / FRAME_RATE) + +/* number of E1 frames (32bytes) to handle for each timer interval */ +#define FRAMES_PER_TIMER 10 + +struct ve1_intf_data { + /* pointer to other side of the interface pair */ + struct e1_intf *peer; + struct osmo_fd timerfd; +}; + +struct ve1_line_data { + /* pointer to other side of the interface pair */ + struct e1_line *peer; +}; + +static struct e1_intf * +vintf_create(struct e1_daemon *e1d, unsigned int num_lines) +{ + struct e1_intf *intf; + struct ve1_intf_data *intf_data; + unsigned int i; + + intf_data = talloc_zero(e1d->ctx, struct ve1_intf_data); + + intf = e1_intf_new(e1d, intf_data); + intf->drv = E1_DRIVER_VPAIR; + + for (i = 0; i < num_lines; i++) { + struct ve1_line_data *line_data; + + line_data = talloc_zero(e1d->ctx, struct ve1_line_data); + e1_line_new(intf, line_data); + } + + return intf; +} + +static void +vintf_destroy(struct e1_intf *intf) +{ + OSMO_ASSERT(intf->drv == E1_DRIVER_VPAIR); + e1_intf_destroy(intf); + talloc_free(intf->drv_data); +} + +static int +ve1_timerfd_cb(struct osmo_fd *ofd, unsigned int what) +{ + struct e1_intf *intf = ofd->data; + struct e1_line *line, *peer; + uint64_t expire_count; + unsigned int frames_expired; + int rc; + + if (!(what & OSMO_FD_READ)) + return 0; + + rc = read(ofd->fd, (void *) &expire_count, sizeof(expire_count)); + if (rc < 0 && errno == EAGAIN) + return 0; + OSMO_ASSERT(rc == sizeof(expire_count)); + + if (expire_count > 1) { + LOGP(DE1D, LOGL_NOTICE, "vpair timer expire_count=%" PRIu64 + ": We missed %" PRIu64 " timers\n", expire_count, expire_count-1); + } + + OSMO_ASSERT(expire_count < UINT_MAX/FRAMES_PER_TIMER); + frames_expired = expire_count * FRAMES_PER_TIMER; + + llist_for_each_entry(line, &intf->lines, list) { + uint8_t buf[32*frames_expired]; + struct ve1_line_data *ldata = line->drv_data; + + peer = ldata->peer; + + /* generate data on current line */ + rc = e1_line_mux_out(line, buf, frames_expired); + OSMO_ASSERT(rc >= 0); + /* write data to peer */ + rc = e1_line_demux_in(peer, buf, rc); + OSMO_ASSERT(rc >= 0); + + /* generate data on peer line */ + rc = e1_line_mux_out(peer, buf, frames_expired); + OSMO_ASSERT(rc >= 0); + /* write data to current line */ + rc = e1_line_demux_in(line, buf, rc); + OSMO_ASSERT(rc >= 0); + } + + return 0; +} + +int +e1d_vpair_create(struct e1_daemon *e1d, unsigned int num_lines) +{ + struct e1_intf *a, *b; + struct e1_line *al, *bl; + struct ve1_intf_data *adata, *bdata; + int rc = -1; + + /* create both interfaces, each with identical line count */ + a = vintf_create(e1d, num_lines); + if (!a) + goto err; + adata = a->drv_data; + + b = vintf_create(e1d, num_lines); + if (!b) + goto err_free_a; + bdata = b->drv_data; + + /* point the interfaces at each other */ + adata->peer = b; + bdata->peer = a; + + /* point the lines at each other */ + llist_for_each_entry(al, &a->lines, list) { + struct ve1_line_data *aldata, *bldata; + bl = e1_intf_find_line(b, al->id); + OSMO_ASSERT(bl); + aldata = al->drv_data; + bldata = bl->drv_data; + + aldata->peer = bl; + bldata->peer = al; + } + + /* schedule timer only for 'a' side; handles both directions */ + struct timespec interval = { + .tv_sec = 0, + .tv_nsec = FRAME_DURATION_NS*FRAMES_PER_TIMER, + }; + adata->timerfd.fd = -1; + rc = osmo_timerfd_setup(&adata->timerfd, ve1_timerfd_cb, a); + if (rc < 0) + goto err_free_b; + rc = osmo_timerfd_schedule(&adata->timerfd, NULL, &interval); + if (rc < 0) + goto err_free_b; + + return 0; + +err_free_b: + vintf_destroy(b); +err_free_a: + vintf_destroy(a); +err: + return rc; +} diff --git a/src/vty.c b/src/vty.c index 88b6257..57a21bf 100644 --- a/src/vty.c +++ b/src/vty.c @@ -3,16 +3,16 @@ * 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 + * 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 Affero General Public License for more details. + * GNU General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License + * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ @@ -131,9 +131,27 @@ return CMD_SUCCESS; } +DEFUN(cfg_vpair, cfg_vpair_cmd, "virtual-e1-pair <1-255>", + "Create a virtual E1 interface pair\n" + "Number of E1 lines in virtual E1 interface pair\n") +{ + int num_lines = atoi(argv[0]); + int rc; + + rc = e1d_vpair_create(vty_e1d, num_lines); + if (rc < 0) { + vty_out(vty, "%% Error creating virtual-e1-pair: %d%s", rc, VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + void e1d_vty_init(struct e1_daemon *e1d) { vty_e1d = e1d; install_element_ve(&show_intf_cmd); install_element_ve(&show_line_cmd); + + install_element(CONFIG_NODE, &cfg_vpair_cmd); } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: If42c959556b17d543762546eb45dd69d25f715f2 Gerrit-Change-Number: 19047 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 20:15:01 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 20:15:01 +0000 Subject: Change in osmo-e1d[master]: Add osmo-e1d-pipe utility In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19060 ) Change subject: Add osmo-e1d-pipe utility ...................................................................... Add osmo-e1d-pipe utility This adds the 'osmo-e1d-pipe' utlility program, which can be used as a command-line client to open a given E1 timeslot and connect it to stdin/stdout. This in turn allows to rediect file input/output via the shell. Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 --- M .gitignore M src/Makefile.am A src/e1d-ts-pipe.c 3 files changed, 219 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/.gitignore b/.gitignore index 7185862..aef7cd0 100644 --- a/.gitignore +++ b/.gitignore @@ -23,5 +23,6 @@ *.o src/osmo-e1d +src/osmo-e1d-pipe contrib/e1-prbs-test/e1-prbs-test contrib/e1-prbs-test/ice40-e1-prbs-check diff --git a/src/Makefile.am b/src/Makefile.am index e811f0a..9c098e7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -27,6 +27,7 @@ bin_PROGRAMS = \ osmo-e1d \ + osmo-e1d-pipe \ $(NULL) osmo_e1d_SOURCES = \ @@ -41,3 +42,9 @@ osmo_e1d_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) \ $(LIBOSMOUSB_LIBS) $(LIBUSB_LIBS) libosmo-e1d.la + +osmo_e1d_pipe_SOURCES = \ + e1d-ts-pipe.c \ + $(NULL) + +osmo_e1d_pipe_LDADD = $(LIBOSMOCORE_LIBS) libosmo-e1d.la diff --git a/src/e1d-ts-pipe.c b/src/e1d-ts-pipe.c new file mode 100644 index 0000000..6d3ec80 --- /dev/null +++ b/src/e1d-ts-pipe.c @@ -0,0 +1,211 @@ +/* E1 timeslot "pipe" utility: Open a 64k timeslot of osmo-e1d and connect to stdin/stdout + * + * (C) 2020 by Harald Welte + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + + +static void *g_ctx; +static struct osmo_e1dp_client *g_client; +static struct osmo_fd ts_ofd; +static int outfd = 1; +static int infd = 0; + + +static int ts_open(uint8_t intf_nr, uint8_t line_nr, uint8_t ts_nr, + enum osmo_e1dp_ts_mode mode) +{ + int rc = osmo_e1dp_client_ts_open(g_client, intf_nr, line_nr, ts_nr, mode); + if (rc < 0) + fprintf(stderr, "Cannot open e1d timeslot %u:%u:%u\n", intf_nr, line_nr, ts_nr); + return rc; +} + +static int ts_fd_cb(struct osmo_fd *ofd, unsigned int what) +{ + uint8_t buf[32*10]; + int rc, count; + + if (what & OSMO_FD_READ) { + rc = read(ofd->fd, buf, sizeof(buf)); + if (rc < 0 && errno != EAGAIN) + exit(3); + else if (rc > 0) { + count = rc; + rc = write(outfd, buf, count); + if (rc < 0 && errno != EAGAIN) + exit(3); + } + } + + if (what & OSMO_FD_WRITE) { + rc = read(infd, buf, sizeof(buf)); + if (rc < 0 && errno != EAGAIN) + exit(4); + else if (rc == 0) { /* EOF */ + rc = lseek(infd, 0, SEEK_SET); + if (rc < 0) { + perror("rewind input file"); + exit(5); + } + } else if (rc > 0) { + count = rc; + rc = write(ofd->fd, buf, count); + if (rc < 0 && errno != EAGAIN) + exit(4); + } + + } + + return 0; +} + +static int set_nonblock(int fd) +{ + int rc, flags; + + flags = fcntl(fd, F_GETFL); + OSMO_ASSERT(flags >= 0); + + rc = fcntl(fd, F_SETFL, flags | O_NONBLOCK); + OSMO_ASSERT(rc >= 0); + + return 0; +} + +static void print_help(void) +{ + printf( + " -h --help This help message\n" + " -p --path PATH Path of the osmo-e1d control socket\n" + " -i --interface <0-255> E1 Interface Number\n" + " -l --line <0-255> E1 Line Number\n" + " -t --timeslot <0-31> E1 Timeslot Number\n" + " -m --mode (RAW|HDLC-FCS) E1 Timeslot Mode\n" + " -r --read FILE Read from FILE instead of STDIN\n" + ); +} + +int main(int argc, char **argv) +{ + int intf_nr = -1, line_nr = -1, ts_nr = -1; + enum osmo_e1dp_ts_mode mode = E1DP_TSMODE_RAW; + char *path = E1DP_DEFAULT_SOCKET; + int tsfd; + int option_index, rc; + + g_ctx = talloc_named_const(NULL, 0, "g_ctx"); + OSMO_ASSERT(g_ctx); + + osmo_init_logging2(g_ctx, NULL); + + /* FIXME: handle options */ + while (1) { + int c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "path", 1, 0, 'p' }, + { "interface", 1, 0, 'i' }, + { "line", 1, 0, 'l' }, + { "timeslot", 1, 0, 't' }, + { "mode", 1, 0, 'm' }, + { "read", 1, 0, 'r' }, + { 0,0,0,0 } + }; + + c = getopt_long(argc, argv, "hp:i:l:t:m:r:", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 'p': + path = optarg; + break; + case 'i': + intf_nr = atoi(optarg); + break; + case 'l': + line_nr = atoi(optarg); + break; + case 't': + ts_nr = atoi(optarg); + break; + case 'm': + rc = get_string_value(osmo_e1dp_ts_mode_names, optarg); + if (rc < 0) { + fprintf(stderr, "Unknown mode '%s'\n", optarg); + exit(2); + } + mode = rc; + break; + case 'r': + rc = open(optarg, 0, O_RDONLY); + if (rc < 0) { + fprintf(stderr, "Unable to open '%s': %s\n", optarg, strerror(errno)); + exit(2); + } + infd = rc; + break; + } + } + + if (intf_nr == -1 || line_nr == -1 || ts_nr == -1) { + fprintf(stderr, "You must at least specify interface, line and timeslot numbers\n"); + exit(2); + } + + g_client = osmo_e1dp_client_create(g_ctx, path); + if (!g_client) { + fprintf(stderr, "Cannot establish connection to osmo-e1d at %s\n", path); + exit(1); + } + + tsfd = ts_open(intf_nr, line_nr, ts_nr, mode); + if (tsfd < 0) + exit(2); + + osmo_fd_setup(&ts_ofd, tsfd, OSMO_FD_READ|OSMO_FD_WRITE, ts_fd_cb, NULL, 0); + osmo_fd_register(&ts_ofd); + + set_nonblock(infd); + set_nonblock(outfd); + + while (1) { + osmo_select_main(0); + } +} + -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib9d55af786c87e15465b8e73493680b35afb5913 Gerrit-Change-Number: 19060 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Assignee: tnt Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 30 20:15:06 2020 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 30 Jun 2020 20:15:06 +0000 Subject: Change in osmo-e1d[master]: vty: Print actual driver name instead of FIXME In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19072 ) Change subject: vty: Print actual driver name instead of FIXME ...................................................................... vty: Print actual driver name instead of FIXME Change-Id: I6f909cc493417f9e156672024f879a7294b4d816 --- M src/vty.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/vty.c b/src/vty.c index 57a21bf..cc0df21 100644 --- a/src/vty.c +++ b/src/vty.c @@ -49,7 +49,8 @@ static void vty_dump_intf(struct vty *vty, const struct e1_intf *intf) { - vty_out(vty, "Interface #%u, Driver: FIXME%s", intf->id, VTY_NEWLINE); + vty_out(vty, "Interface #%u, Driver: %s%s", intf->id, + get_value_string(e1_driver_names, intf->drv), VTY_NEWLINE); } DEFUN(show_intf, show_intf_cmd, "show interface [<0-255>]", -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19072 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I6f909cc493417f9e156672024f879a7294b4d816 Gerrit-Change-Number: 19072 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: